cognium-dev 4.9.9 → 4.9.10
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/cli.js +154 -154
- package/package.json +3 -3
package/dist/cli.js
CHANGED
|
@@ -3232,7 +3232,7 @@ var Query = class {
|
|
|
3232
3232
|
}
|
|
3233
3233
|
};
|
|
3234
3234
|
|
|
3235
|
-
//
|
|
3235
|
+
// node_modules/circle-ir/dist/core/parser.js
|
|
3236
3236
|
var nodeModules = null;
|
|
3237
3237
|
var moduleDir = null;
|
|
3238
3238
|
async function getNodeModules() {
|
|
@@ -3472,7 +3472,7 @@ async function getDefaultLanguagePath(language) {
|
|
|
3472
3472
|
}
|
|
3473
3473
|
return `wasm/tree-sitter-${language}.wasm`;
|
|
3474
3474
|
}
|
|
3475
|
-
//
|
|
3475
|
+
// node_modules/circle-ir/dist/core/extractors/meta.js
|
|
3476
3476
|
function extractMeta(code, tree, filePath, language) {
|
|
3477
3477
|
const loc = countLinesOfCode(code);
|
|
3478
3478
|
const hash = computeHash(code);
|
|
@@ -3554,7 +3554,7 @@ function extractPackage(tree, language) {
|
|
|
3554
3554
|
}
|
|
3555
3555
|
return null;
|
|
3556
3556
|
}
|
|
3557
|
-
//
|
|
3557
|
+
// node_modules/circle-ir/dist/core/extractors/types.js
|
|
3558
3558
|
function detectLanguage(tree) {
|
|
3559
3559
|
const root = tree.rootNode;
|
|
3560
3560
|
const jsNodeTypes = new Set([
|
|
@@ -5222,7 +5222,7 @@ function findChildByType(node, type) {
|
|
|
5222
5222
|
}
|
|
5223
5223
|
return null;
|
|
5224
5224
|
}
|
|
5225
|
-
//
|
|
5225
|
+
// node_modules/circle-ir/dist/core/extractors/calls.js
|
|
5226
5226
|
function detectLanguageFromTree(tree, cache) {
|
|
5227
5227
|
const rustStructs = getNodesFromCache(tree.rootNode, "struct_item", cache);
|
|
5228
5228
|
const rustImpls = getNodesFromCache(tree.rootNode, "impl_item", cache);
|
|
@@ -7274,7 +7274,7 @@ function extractGoTypeLastSegment(typeNode) {
|
|
|
7274
7274
|
}
|
|
7275
7275
|
return null;
|
|
7276
7276
|
}
|
|
7277
|
-
//
|
|
7277
|
+
// node_modules/circle-ir/dist/core/extractors/imports.js
|
|
7278
7278
|
function detectLanguage2(tree) {
|
|
7279
7279
|
const root = tree.rootNode;
|
|
7280
7280
|
const jsNodeTypes = new Set([
|
|
@@ -7961,7 +7961,7 @@ function findGoChildByType(node, type) {
|
|
|
7961
7961
|
}
|
|
7962
7962
|
return null;
|
|
7963
7963
|
}
|
|
7964
|
-
//
|
|
7964
|
+
// node_modules/circle-ir/dist/core/extractors/exports.js
|
|
7965
7965
|
function extractExports(types) {
|
|
7966
7966
|
const exports = [];
|
|
7967
7967
|
for (const type of types) {
|
|
@@ -8014,7 +8014,7 @@ function getVisibilityFromModifiers(modifiers) {
|
|
|
8014
8014
|
}
|
|
8015
8015
|
return "package";
|
|
8016
8016
|
}
|
|
8017
|
-
//
|
|
8017
|
+
// node_modules/circle-ir/dist/core/extractors/cfg.js
|
|
8018
8018
|
function detectLanguage3(tree) {
|
|
8019
8019
|
const root = tree.rootNode;
|
|
8020
8020
|
const jsNodeTypes = new Set([
|
|
@@ -8663,7 +8663,7 @@ function isGoStatement(node) {
|
|
|
8663
8663
|
]);
|
|
8664
8664
|
return goStatementTypes.has(node.type);
|
|
8665
8665
|
}
|
|
8666
|
-
//
|
|
8666
|
+
// node_modules/circle-ir/dist/core/extractors/dfg.js
|
|
8667
8667
|
function detectLanguage4(tree) {
|
|
8668
8668
|
const root = tree.rootNode;
|
|
8669
8669
|
const jsNodeTypes = new Set([
|
|
@@ -10184,7 +10184,7 @@ function extractGoAddressableVarName(node) {
|
|
|
10184
10184
|
}
|
|
10185
10185
|
return null;
|
|
10186
10186
|
}
|
|
10187
|
-
//
|
|
10187
|
+
// node_modules/circle-ir/dist/core/extractors/runtime-registrations.js
|
|
10188
10188
|
var HTTP_VERB_METHODS = new Set([
|
|
10189
10189
|
"get",
|
|
10190
10190
|
"post",
|
|
@@ -10932,7 +10932,7 @@ function parseDistributedSliceAttribute(attrItem) {
|
|
|
10932
10932
|
}
|
|
10933
10933
|
};
|
|
10934
10934
|
}
|
|
10935
|
-
//
|
|
10935
|
+
// node_modules/circle-ir/dist/analysis/config-loader.js
|
|
10936
10936
|
var DEFAULT_SOURCES = [
|
|
10937
10937
|
{ method: "getParameter", class: "HttpServletRequest", type: "http_param", severity: "high", return_tainted: true },
|
|
10938
10938
|
{ method: "getParameterValues", class: "HttpServletRequest", type: "http_param", severity: "high", return_tainted: true },
|
|
@@ -13011,7 +13011,7 @@ var DEFAULT_HEADER_RULES = [
|
|
|
13011
13011
|
note: "Fires when the value is not a string literal (likely reflected from request)"
|
|
13012
13012
|
}
|
|
13013
13013
|
];
|
|
13014
|
-
//
|
|
13014
|
+
// node_modules/circle-ir/dist/analysis/arg-type-resolver.js
|
|
13015
13015
|
function findEnclosingType(callInMethod, types) {
|
|
13016
13016
|
if (!callInMethod)
|
|
13017
13017
|
return null;
|
|
@@ -13089,7 +13089,7 @@ function isArgvContainerType(rawType) {
|
|
|
13089
13089
|
return /^(?:List|ArrayList|LinkedList|Collection|Iterable|Deque|Queue)\s*<\s*(?:String|CharSequence|java\.lang\.String)\b/.test(s);
|
|
13090
13090
|
}
|
|
13091
13091
|
|
|
13092
|
-
//
|
|
13092
|
+
// node_modules/circle-ir/dist/analysis/taint-matcher.js
|
|
13093
13093
|
var PYTHON_TAINTED_PATTERNS = [
|
|
13094
13094
|
{ pattern: /\brequest\.args\b/, sourceType: "http_param" },
|
|
13095
13095
|
{ pattern: /\brequest\.form\b/, sourceType: "http_body" },
|
|
@@ -15094,7 +15094,7 @@ function formatSanitizerMethod(call) {
|
|
|
15094
15094
|
return `${call.method_name}()`;
|
|
15095
15095
|
}
|
|
15096
15096
|
|
|
15097
|
-
//
|
|
15097
|
+
// node_modules/circle-ir/dist/analysis/unresolved.js
|
|
15098
15098
|
function detectUnresolved(calls, types, dfg) {
|
|
15099
15099
|
const unresolved = [];
|
|
15100
15100
|
unresolved.push(...detectVirtualDispatch(calls));
|
|
@@ -15258,7 +15258,7 @@ function formatCallCode(call) {
|
|
|
15258
15258
|
}
|
|
15259
15259
|
return `${call.method_name}(${args2})`;
|
|
15260
15260
|
}
|
|
15261
|
-
//
|
|
15261
|
+
// node_modules/circle-ir/dist/analysis/non-executable-lines.js
|
|
15262
15262
|
function isNonExecutableSourceLine(sourceCode, line, language) {
|
|
15263
15263
|
if (!sourceCode || line < 1)
|
|
15264
15264
|
return false;
|
|
@@ -15318,7 +15318,7 @@ function isNonExecutablePython(trimmed) {
|
|
|
15318
15318
|
return false;
|
|
15319
15319
|
}
|
|
15320
15320
|
|
|
15321
|
-
//
|
|
15321
|
+
// node_modules/circle-ir/dist/analysis/sanitizer-index.js
|
|
15322
15322
|
var SANITIZER_SET_CACHE = new WeakMap;
|
|
15323
15323
|
function getSanitizesSet(san) {
|
|
15324
15324
|
let s = SANITIZER_SET_CACHE.get(san);
|
|
@@ -15332,7 +15332,7 @@ function sanitizerCoversSink(san, sinkType) {
|
|
|
15332
15332
|
return getSanitizesSet(san).has(sinkType);
|
|
15333
15333
|
}
|
|
15334
15334
|
|
|
15335
|
-
//
|
|
15335
|
+
// node_modules/circle-ir/dist/analysis/dfg-walk.js
|
|
15336
15336
|
var walkBackwardDefsMemo = new WeakMap;
|
|
15337
15337
|
function walkBackwardDefs(startDefId, chainsByToDef, defById, options = {}) {
|
|
15338
15338
|
const maxHops = options.maxHops ?? 32;
|
|
@@ -15385,7 +15385,7 @@ function walkBackwardDefs(startDefId, chainsByToDef, defById, options = {}) {
|
|
|
15385
15385
|
return result;
|
|
15386
15386
|
}
|
|
15387
15387
|
|
|
15388
|
-
//
|
|
15388
|
+
// node_modules/circle-ir/dist/analysis/findings.js
|
|
15389
15389
|
function canSourceReachSink(sourceType, sinkType) {
|
|
15390
15390
|
const sourceToSinkMapping = {
|
|
15391
15391
|
http_param: ["sql_injection", "command_injection", "path_traversal", "xss", "xpath_injection", "ldap_injection", "ssrf", "mybatis_mapper_call", "code_injection", "crlf", "mass_assignment", "open_redirect", "trust_boundary", "deserialization", "log_injection", "format_string", "nosql_injection", "prompt_injection"],
|
|
@@ -15416,7 +15416,7 @@ function sourceSemanticsAllowed(source, sinkType) {
|
|
|
15416
15416
|
return true;
|
|
15417
15417
|
}
|
|
15418
15418
|
|
|
15419
|
-
//
|
|
15419
|
+
// node_modules/circle-ir/dist/analysis/findings-instrumentation.js
|
|
15420
15420
|
var instrumentEnabled = false;
|
|
15421
15421
|
function setFindingsInstrumentation(enabled) {
|
|
15422
15422
|
instrumentEnabled = enabled;
|
|
@@ -15479,7 +15479,7 @@ function emitFindingsInstrumentation(filePath, findings, taint) {
|
|
|
15479
15479
|
};
|
|
15480
15480
|
console.error(`[findings-summary] ${JSON.stringify(summary)}`);
|
|
15481
15481
|
}
|
|
15482
|
-
//
|
|
15482
|
+
// node_modules/circle-ir/dist/graph/code-graph.js
|
|
15483
15483
|
class CodeGraph {
|
|
15484
15484
|
ir;
|
|
15485
15485
|
constructor(ir) {
|
|
@@ -15689,7 +15689,7 @@ class CodeGraph {
|
|
|
15689
15689
|
return result;
|
|
15690
15690
|
}
|
|
15691
15691
|
}
|
|
15692
|
-
//
|
|
15692
|
+
// node_modules/circle-ir/dist/resolution/type-hierarchy.js
|
|
15693
15693
|
class TypeHierarchyResolver {
|
|
15694
15694
|
types = new Map;
|
|
15695
15695
|
nameToFqn = new Map;
|
|
@@ -16261,7 +16261,7 @@ function registerCommonLibraries(resolver) {
|
|
|
16261
16261
|
resolver.registerFactoryReturnType("HttpClients", "createSystem", "org.apache.http.impl.client.CloseableHttpClient");
|
|
16262
16262
|
resolver.registerFactoryReturnType("HttpClients", "createMinimal", "org.apache.http.impl.client.MinimalHttpClient");
|
|
16263
16263
|
}
|
|
16264
|
-
//
|
|
16264
|
+
// node_modules/circle-ir/dist/resolution/symbol-table.js
|
|
16265
16265
|
class SymbolTable {
|
|
16266
16266
|
exports = new Map;
|
|
16267
16267
|
nameToFqns = new Map;
|
|
@@ -16484,7 +16484,7 @@ class SymbolTable {
|
|
|
16484
16484
|
return "package";
|
|
16485
16485
|
}
|
|
16486
16486
|
}
|
|
16487
|
-
//
|
|
16487
|
+
// node_modules/circle-ir/dist/resolution/cross-file.js
|
|
16488
16488
|
function buildFileIndex(ir) {
|
|
16489
16489
|
const callsByLine = new Map;
|
|
16490
16490
|
for (const c of ir.calls) {
|
|
@@ -17572,7 +17572,7 @@ class CrossFileResolver {
|
|
|
17572
17572
|
return this.fieldTaintInfo.get(`${typeFqn}.${fieldName}`);
|
|
17573
17573
|
}
|
|
17574
17574
|
}
|
|
17575
|
-
//
|
|
17575
|
+
// node_modules/circle-ir/dist/graph/project-graph.js
|
|
17576
17576
|
class ProjectGraph {
|
|
17577
17577
|
files = new Map;
|
|
17578
17578
|
_symbolTable = null;
|
|
@@ -17624,7 +17624,7 @@ class ProjectGraph {
|
|
|
17624
17624
|
return this._resolver;
|
|
17625
17625
|
}
|
|
17626
17626
|
}
|
|
17627
|
-
//
|
|
17627
|
+
// node_modules/circle-ir/dist/graph/analysis-pass.js
|
|
17628
17628
|
class AnalysisPipeline {
|
|
17629
17629
|
passes = [];
|
|
17630
17630
|
add(pass) {
|
|
@@ -17671,7 +17671,7 @@ class AnalysisPipeline {
|
|
|
17671
17671
|
return { results, findings };
|
|
17672
17672
|
}
|
|
17673
17673
|
}
|
|
17674
|
-
//
|
|
17674
|
+
// node_modules/circle-ir/dist/analysis/taint-propagation.js
|
|
17675
17675
|
function buildSanitizersByLine(sanitizers) {
|
|
17676
17676
|
const out2 = new Map;
|
|
17677
17677
|
for (const san of sanitizers) {
|
|
@@ -17970,7 +17970,7 @@ function buildTaintFlow(source, sink, taintInfo) {
|
|
|
17970
17970
|
confidence: taintInfo.confidence * 0.9
|
|
17971
17971
|
};
|
|
17972
17972
|
}
|
|
17973
|
-
//
|
|
17973
|
+
// node_modules/circle-ir/dist/analysis/constant-propagation/ast-utils.js
|
|
17974
17974
|
function isKnown(cv) {
|
|
17975
17975
|
return cv.type !== "unknown";
|
|
17976
17976
|
}
|
|
@@ -17987,7 +17987,7 @@ function getNodeLine(node) {
|
|
|
17987
17987
|
return node.startPosition.row + 1;
|
|
17988
17988
|
}
|
|
17989
17989
|
|
|
17990
|
-
//
|
|
17990
|
+
// node_modules/circle-ir/dist/analysis/constant-propagation/evaluator.js
|
|
17991
17991
|
class ExpressionEvaluator {
|
|
17992
17992
|
source;
|
|
17993
17993
|
getSymbol;
|
|
@@ -18257,7 +18257,7 @@ class ExpressionEvaluator {
|
|
|
18257
18257
|
}
|
|
18258
18258
|
}
|
|
18259
18259
|
|
|
18260
|
-
//
|
|
18260
|
+
// node_modules/circle-ir/dist/analysis/constant-propagation/patterns.js
|
|
18261
18261
|
var TAINT_PATTERNS = [
|
|
18262
18262
|
"request.getParameter",
|
|
18263
18263
|
"request.getHeader",
|
|
@@ -18452,7 +18452,7 @@ var PROPAGATOR_METHODS = new Set([
|
|
|
18452
18452
|
"decodeRequestString"
|
|
18453
18453
|
]);
|
|
18454
18454
|
|
|
18455
|
-
//
|
|
18455
|
+
// node_modules/circle-ir/dist/analysis/constant-propagation/propagator.js
|
|
18456
18456
|
class ConstantPropagator {
|
|
18457
18457
|
symbols = new Map;
|
|
18458
18458
|
tainted = new Set;
|
|
@@ -20309,7 +20309,7 @@ class ConstantPropagator {
|
|
|
20309
20309
|
}
|
|
20310
20310
|
}
|
|
20311
20311
|
|
|
20312
|
-
//
|
|
20312
|
+
// node_modules/circle-ir/dist/analysis/constant-propagation/index.js
|
|
20313
20313
|
function analyzeConstantPropagation(tree, sourceCode, options = {}) {
|
|
20314
20314
|
const propagator = new ConstantPropagator;
|
|
20315
20315
|
return propagator.analyze(tree, sourceCode, options.additionalTaintPatterns ?? [], options.sanitizerMethods ?? [], options.taintedParameters ?? []);
|
|
@@ -20397,7 +20397,7 @@ function normalizeCondition(cond) {
|
|
|
20397
20397
|
}
|
|
20398
20398
|
return normalized;
|
|
20399
20399
|
}
|
|
20400
|
-
//
|
|
20400
|
+
// node_modules/circle-ir/dist/utils/logger.js
|
|
20401
20401
|
var LOG_LEVELS = {
|
|
20402
20402
|
trace: 0,
|
|
20403
20403
|
debug: 1,
|
|
@@ -20469,7 +20469,7 @@ var logger = {
|
|
|
20469
20469
|
}
|
|
20470
20470
|
};
|
|
20471
20471
|
|
|
20472
|
-
//
|
|
20472
|
+
// node_modules/circle-ir/dist/analysis/per-file-finding-cap.js
|
|
20473
20473
|
var DEFAULT_PER_FILE_FINDING_CAP = 1000;
|
|
20474
20474
|
var SATURATED_FILE_RULE_ID = "saturated-file";
|
|
20475
20475
|
function applyPerFileFindingCap(filePath, findings, cap) {
|
|
@@ -20505,7 +20505,7 @@ function applyPerFileFindingCap(filePath, findings, cap) {
|
|
|
20505
20505
|
return [advisory];
|
|
20506
20506
|
}
|
|
20507
20507
|
|
|
20508
|
-
//
|
|
20508
|
+
// node_modules/circle-ir/dist/analysis/confidence-filter.js
|
|
20509
20509
|
function applyConfidenceFilter(findings, includeSpeculative) {
|
|
20510
20510
|
if (includeSpeculative)
|
|
20511
20511
|
return findings;
|
|
@@ -20515,7 +20515,7 @@ function isHighConfidence(finding) {
|
|
|
20515
20515
|
return finding.confidence === undefined || finding.confidence === "high";
|
|
20516
20516
|
}
|
|
20517
20517
|
|
|
20518
|
-
//
|
|
20518
|
+
// node_modules/circle-ir/dist/analysis/library-api-surface-downgrade.js
|
|
20519
20519
|
var LIBRARY_API_SURFACE_TAG = "library-api-surface:caller-responsibility";
|
|
20520
20520
|
function applyLibraryApiSurfaceDowngrade(findings) {
|
|
20521
20521
|
return findings.map((f) => {
|
|
@@ -20532,7 +20532,7 @@ function applyLibraryApiSurfaceDowngrade(findings) {
|
|
|
20532
20532
|
});
|
|
20533
20533
|
}
|
|
20534
20534
|
|
|
20535
|
-
//
|
|
20535
|
+
// node_modules/circle-ir/dist/analysis/note-coalescer.js
|
|
20536
20536
|
var CLICKJACKING_PAIR = new Set(["missing-x-frame-options", "missing-csp-frame-ancestors"]);
|
|
20537
20537
|
function levelRank(level) {
|
|
20538
20538
|
return level === "error" ? 0 : level === "warning" ? 1 : 2;
|
|
@@ -20596,7 +20596,7 @@ function coalesceNoteLevelFindings(findings) {
|
|
|
20596
20596
|
return out2;
|
|
20597
20597
|
}
|
|
20598
20598
|
|
|
20599
|
-
//
|
|
20599
|
+
// node_modules/circle-ir/dist/analysis/entry-point-detection.js
|
|
20600
20600
|
var TIER_1_METHOD_ANNOTATIONS = new Set([
|
|
20601
20601
|
"RequestMapping",
|
|
20602
20602
|
"GetMapping",
|
|
@@ -21253,7 +21253,7 @@ function methodIsRuntimeRegistrationHandler(method, regs) {
|
|
|
21253
21253
|
return false;
|
|
21254
21254
|
}
|
|
21255
21255
|
|
|
21256
|
-
//
|
|
21256
|
+
// node_modules/circle-ir/dist/analysis/require-entry-path.js
|
|
21257
21257
|
var RULE_ID_REQUIRE_ENTRY_PATH = "require-entry-path";
|
|
21258
21258
|
var MAX_VISITED_METHODS = 2000;
|
|
21259
21259
|
var TAINT_FLOW_RULE_IDS = new Set([
|
|
@@ -21642,7 +21642,7 @@ function normalizeDisabled(input) {
|
|
|
21642
21642
|
return new Set(input);
|
|
21643
21643
|
}
|
|
21644
21644
|
|
|
21645
|
-
//
|
|
21645
|
+
// node_modules/circle-ir/dist/analysis/project-profile-transform.js
|
|
21646
21646
|
var DOWNGRADE_ELIGIBLE_RULE_IDS = new Set([
|
|
21647
21647
|
"code_injection",
|
|
21648
21648
|
"template_injection",
|
|
@@ -21704,7 +21704,7 @@ function applyProjectProfileTransform(findings, resolveProfile) {
|
|
|
21704
21704
|
});
|
|
21705
21705
|
}
|
|
21706
21706
|
|
|
21707
|
-
//
|
|
21707
|
+
// node_modules/circle-ir/dist/languages/registry.js
|
|
21708
21708
|
class DefaultLanguageRegistry {
|
|
21709
21709
|
plugins = new Map;
|
|
21710
21710
|
extensionMap = new Map;
|
|
@@ -21751,7 +21751,7 @@ function registerLanguage(plugin) {
|
|
|
21751
21751
|
function getLanguagePlugin(language) {
|
|
21752
21752
|
return getLanguageRegistry().get(language);
|
|
21753
21753
|
}
|
|
21754
|
-
//
|
|
21754
|
+
// node_modules/circle-ir/dist/languages/plugins/base.js
|
|
21755
21755
|
class BaseLanguagePlugin {
|
|
21756
21756
|
parser = null;
|
|
21757
21757
|
async initialize(parser) {
|
|
@@ -21812,7 +21812,7 @@ class BaseLanguagePlugin {
|
|
|
21812
21812
|
}
|
|
21813
21813
|
}
|
|
21814
21814
|
|
|
21815
|
-
//
|
|
21815
|
+
// node_modules/circle-ir/dist/languages/plugins/java.js
|
|
21816
21816
|
class JavaPlugin extends BaseLanguagePlugin {
|
|
21817
21817
|
id = "java";
|
|
21818
21818
|
name = "Java";
|
|
@@ -22069,7 +22069,7 @@ class JavaPlugin extends BaseLanguagePlugin {
|
|
|
22069
22069
|
}
|
|
22070
22070
|
}
|
|
22071
22071
|
|
|
22072
|
-
//
|
|
22072
|
+
// node_modules/circle-ir/dist/languages/plugins/javascript.js
|
|
22073
22073
|
class JavaScriptPlugin extends BaseLanguagePlugin {
|
|
22074
22074
|
id = "javascript";
|
|
22075
22075
|
name = "JavaScript/TypeScript";
|
|
@@ -22735,7 +22735,7 @@ class JavaScriptPlugin extends BaseLanguagePlugin {
|
|
|
22735
22735
|
}
|
|
22736
22736
|
}
|
|
22737
22737
|
|
|
22738
|
-
//
|
|
22738
|
+
// node_modules/circle-ir/dist/languages/plugins/python.js
|
|
22739
22739
|
class PythonPlugin extends BaseLanguagePlugin {
|
|
22740
22740
|
id = "python";
|
|
22741
22741
|
name = "Python";
|
|
@@ -23011,7 +23011,7 @@ class PythonPlugin extends BaseLanguagePlugin {
|
|
|
23011
23011
|
}
|
|
23012
23012
|
}
|
|
23013
23013
|
|
|
23014
|
-
//
|
|
23014
|
+
// node_modules/circle-ir/dist/languages/plugins/rust.js
|
|
23015
23015
|
class RustPlugin extends BaseLanguagePlugin {
|
|
23016
23016
|
id = "rust";
|
|
23017
23017
|
name = "Rust";
|
|
@@ -23251,7 +23251,7 @@ class RustPlugin extends BaseLanguagePlugin {
|
|
|
23251
23251
|
}
|
|
23252
23252
|
}
|
|
23253
23253
|
|
|
23254
|
-
//
|
|
23254
|
+
// node_modules/circle-ir/dist/languages/plugins/bash.js
|
|
23255
23255
|
class BashPlugin extends BaseLanguagePlugin {
|
|
23256
23256
|
id = "bash";
|
|
23257
23257
|
name = "Bash/Shell";
|
|
@@ -23457,7 +23457,7 @@ class BashPlugin extends BaseLanguagePlugin {
|
|
|
23457
23457
|
}
|
|
23458
23458
|
}
|
|
23459
23459
|
|
|
23460
|
-
//
|
|
23460
|
+
// node_modules/circle-ir/dist/languages/plugins/html.js
|
|
23461
23461
|
class HtmlPlugin extends BaseLanguagePlugin {
|
|
23462
23462
|
id = "html";
|
|
23463
23463
|
name = "HTML";
|
|
@@ -23522,7 +23522,7 @@ class HtmlPlugin extends BaseLanguagePlugin {
|
|
|
23522
23522
|
}
|
|
23523
23523
|
}
|
|
23524
23524
|
|
|
23525
|
-
//
|
|
23525
|
+
// node_modules/circle-ir/dist/languages/plugins/vue.js
|
|
23526
23526
|
class VuePlugin extends BaseLanguagePlugin {
|
|
23527
23527
|
id = "vue";
|
|
23528
23528
|
name = "Vue";
|
|
@@ -23587,7 +23587,7 @@ class VuePlugin extends BaseLanguagePlugin {
|
|
|
23587
23587
|
}
|
|
23588
23588
|
}
|
|
23589
23589
|
|
|
23590
|
-
//
|
|
23590
|
+
// node_modules/circle-ir/dist/languages/plugins/go.js
|
|
23591
23591
|
class GoPlugin extends BaseLanguagePlugin {
|
|
23592
23592
|
id = "go";
|
|
23593
23593
|
name = "Go";
|
|
@@ -24236,7 +24236,7 @@ class GoPlugin extends BaseLanguagePlugin {
|
|
|
24236
24236
|
}
|
|
24237
24237
|
}
|
|
24238
24238
|
|
|
24239
|
-
//
|
|
24239
|
+
// node_modules/circle-ir/dist/languages/plugins/csharp.js
|
|
24240
24240
|
class CSharpPlugin extends BaseLanguagePlugin {
|
|
24241
24241
|
id = "csharp";
|
|
24242
24242
|
name = "C#";
|
|
@@ -24295,7 +24295,7 @@ class CSharpPlugin extends BaseLanguagePlugin {
|
|
|
24295
24295
|
}
|
|
24296
24296
|
}
|
|
24297
24297
|
|
|
24298
|
-
//
|
|
24298
|
+
// node_modules/circle-ir/dist/languages/plugins/index.js
|
|
24299
24299
|
function registerBuiltinPlugins() {
|
|
24300
24300
|
registerLanguage(new JavaPlugin);
|
|
24301
24301
|
registerLanguage(new JavaScriptPlugin);
|
|
@@ -24307,7 +24307,7 @@ function registerBuiltinPlugins() {
|
|
|
24307
24307
|
registerLanguage(new GoPlugin);
|
|
24308
24308
|
registerLanguage(new CSharpPlugin);
|
|
24309
24309
|
}
|
|
24310
|
-
//
|
|
24310
|
+
// node_modules/circle-ir/dist/analysis/passes/cross-file-pass.js
|
|
24311
24311
|
class CrossFilePass {
|
|
24312
24312
|
run(projectGraph, sourceLines, options = {}) {
|
|
24313
24313
|
const resolver = projectGraph.resolver;
|
|
@@ -24633,7 +24633,7 @@ function findCrossInstanceAliasingPaths(projectGraph, _sourceLines) {
|
|
|
24633
24633
|
return paths;
|
|
24634
24634
|
}
|
|
24635
24635
|
|
|
24636
|
-
//
|
|
24636
|
+
// node_modules/circle-ir/dist/analysis/html/html-extractor.js
|
|
24637
24637
|
var EVENT_HANDLER_ATTRS = new Set([
|
|
24638
24638
|
"onclick",
|
|
24639
24639
|
"ondblclick",
|
|
@@ -24788,7 +24788,7 @@ function stripQuotes2(text) {
|
|
|
24788
24788
|
return text;
|
|
24789
24789
|
}
|
|
24790
24790
|
|
|
24791
|
-
//
|
|
24791
|
+
// node_modules/circle-ir/dist/analysis/html/html-attribute-security-pass.js
|
|
24792
24792
|
function runHtmlAttributeSecurityChecks(rootNode, filePath) {
|
|
24793
24793
|
const findings = [];
|
|
24794
24794
|
walkForSecurityChecks(rootNode, filePath, findings);
|
|
@@ -25014,7 +25014,7 @@ function truncate(s, maxLen) {
|
|
|
25014
25014
|
return s.length > maxLen ? s.slice(0, maxLen) + "..." : s;
|
|
25015
25015
|
}
|
|
25016
25016
|
|
|
25017
|
-
//
|
|
25017
|
+
// node_modules/circle-ir/dist/analysis/html/vue-template-xss-pass.js
|
|
25018
25018
|
var DANGEROUS_BINDINGS = new Set([
|
|
25019
25019
|
"v-html",
|
|
25020
25020
|
"v-bind:innerhtml",
|
|
@@ -25134,7 +25134,7 @@ function collectTaintedNames(blocks) {
|
|
|
25134
25134
|
return names;
|
|
25135
25135
|
}
|
|
25136
25136
|
|
|
25137
|
-
//
|
|
25137
|
+
// node_modules/circle-ir/dist/analysis/html/html-merge.js
|
|
25138
25138
|
function mergeHtmlResults(htmlMeta, scriptResults, attributeFindings) {
|
|
25139
25139
|
const allTypes = [];
|
|
25140
25140
|
const allCalls = [];
|
|
@@ -25284,7 +25284,7 @@ function mergeHtmlResults(htmlMeta, scriptResults, attributeFindings) {
|
|
|
25284
25284
|
};
|
|
25285
25285
|
}
|
|
25286
25286
|
|
|
25287
|
-
//
|
|
25287
|
+
// node_modules/circle-ir/dist/analysis/passes/taint-matcher-pass.js
|
|
25288
25288
|
class TaintMatcherPass {
|
|
25289
25289
|
name = "taint-matcher";
|
|
25290
25290
|
category = "security";
|
|
@@ -25345,7 +25345,7 @@ class TaintMatcherPass {
|
|
|
25345
25345
|
}
|
|
25346
25346
|
}
|
|
25347
25347
|
|
|
25348
|
-
//
|
|
25348
|
+
// node_modules/circle-ir/dist/analysis/passes/constant-propagation-pass.js
|
|
25349
25349
|
class ConstantPropagationPass {
|
|
25350
25350
|
tree;
|
|
25351
25351
|
name = "constant-propagation";
|
|
@@ -25375,7 +25375,7 @@ class ConstantPropagationPass {
|
|
|
25375
25375
|
}
|
|
25376
25376
|
}
|
|
25377
25377
|
|
|
25378
|
-
//
|
|
25378
|
+
// node_modules/circle-ir/dist/analysis/passes/language-sources-pass.js
|
|
25379
25379
|
var JS_DOM_XSS_SINKS = [
|
|
25380
25380
|
{ pattern: /\.innerHTML\s*=/, type: "xss", cwe: "CWE-79", severity: "critical" },
|
|
25381
25381
|
{ pattern: /\.outerHTML\s*=/, type: "xss", cwe: "CWE-79", severity: "critical" },
|
|
@@ -32423,7 +32423,7 @@ function findJsTemplateInjectionSstiFindings(code, file) {
|
|
|
32423
32423
|
return findings;
|
|
32424
32424
|
}
|
|
32425
32425
|
|
|
32426
|
-
//
|
|
32426
|
+
// node_modules/circle-ir/dist/analysis/passes/source-semantics-pass.js
|
|
32427
32427
|
var DEMO_PATH_RE = /(?:^|\/)(?:demo|example|examples|samples|integration-tests|integration_tests)(?:\/|$)/i;
|
|
32428
32428
|
var CONST_STRING_ASSIGN_RE = /^\s*(?:final\s+|static\s+final\s+)?[A-Za-z_][\w.<>\[\]]*\s+[A-Za-z_]\w*\s*=\s*"[^"]*"\s*;?\s*$/;
|
|
32429
32429
|
var STATIC_FINAL_RE = /^\s*(?:public\s+|private\s+|protected\s+)?static\s+final\s+/;
|
|
@@ -32511,7 +32511,7 @@ class SourceSemanticsPass {
|
|
|
32511
32511
|
}
|
|
32512
32512
|
}
|
|
32513
32513
|
|
|
32514
|
-
//
|
|
32514
|
+
// node_modules/circle-ir/dist/analysis/passes/library-profile-source-gate-pass.js
|
|
32515
32515
|
var SPECULATIVE_SOURCE_TYPES = new Set([
|
|
32516
32516
|
"interprocedural_param",
|
|
32517
32517
|
"constructor_field"
|
|
@@ -32566,7 +32566,7 @@ class LibraryProfileSourceGatePass {
|
|
|
32566
32566
|
}
|
|
32567
32567
|
}
|
|
32568
32568
|
|
|
32569
|
-
//
|
|
32569
|
+
// node_modules/circle-ir/dist/analysis/passes/mybatis-annotation-sql-sink-pass.js
|
|
32570
32570
|
var MYBATIS_SQL_ANNOTATIONS = new Set([
|
|
32571
32571
|
"Select",
|
|
32572
32572
|
"Update",
|
|
@@ -32793,7 +32793,7 @@ class MyBatisAnnotationSqlSinkPass {
|
|
|
32793
32793
|
}
|
|
32794
32794
|
}
|
|
32795
32795
|
|
|
32796
|
-
//
|
|
32796
|
+
// node_modules/circle-ir/dist/analysis/passes/sink-filter-pass.js
|
|
32797
32797
|
function escapeReSf(s) {
|
|
32798
32798
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
32799
32799
|
}
|
|
@@ -34597,7 +34597,7 @@ function isXPathQuoteEscapedOnLine(lineText, varName) {
|
|
|
34597
34597
|
return seen > 0;
|
|
34598
34598
|
}
|
|
34599
34599
|
|
|
34600
|
-
//
|
|
34600
|
+
// node_modules/circle-ir/dist/analysis/passes/sink-semantics-pass.js
|
|
34601
34601
|
function buildRegistry(entries) {
|
|
34602
34602
|
const registry = new Map;
|
|
34603
34603
|
for (const entry of entries) {
|
|
@@ -34645,7 +34645,7 @@ class SinkSemanticsPass {
|
|
|
34645
34645
|
}
|
|
34646
34646
|
}
|
|
34647
34647
|
|
|
34648
|
-
//
|
|
34648
|
+
// node_modules/circle-ir/dist/analysis/dependency-versions.js
|
|
34649
34649
|
function resolveFastjsonFromPom(pomXml) {
|
|
34650
34650
|
if (!pomXml)
|
|
34651
34651
|
return null;
|
|
@@ -34823,7 +34823,7 @@ function fileConfiguresSnakeYamlSafely(source) {
|
|
|
34823
34823
|
return false;
|
|
34824
34824
|
}
|
|
34825
34825
|
|
|
34826
|
-
//
|
|
34826
|
+
// node_modules/circle-ir/dist/analysis/passes/deserialization-safety-gate-pass.js
|
|
34827
34827
|
var FASTJSON_METHODS = new Set(["parseObject", "parse"]);
|
|
34828
34828
|
var FASTJSON_CLASSES = new Set(["JSON", "JSONObject"]);
|
|
34829
34829
|
var JACKSON_METHODS = new Set(["readValue", "convertValue", "treeToValue"]);
|
|
@@ -34900,7 +34900,7 @@ class DeserializationSafetyGatePass {
|
|
|
34900
34900
|
}
|
|
34901
34901
|
}
|
|
34902
34902
|
|
|
34903
|
-
//
|
|
34903
|
+
// node_modules/circle-ir/dist/analysis/passes/prompt-injection-safety-gate-pass.js
|
|
34904
34904
|
function isDelimiterLiteral(lit) {
|
|
34905
34905
|
const s = lit.trim();
|
|
34906
34906
|
if (s.length === 0)
|
|
@@ -35143,7 +35143,7 @@ class PromptInjectionSafetyGatePass {
|
|
|
35143
35143
|
}
|
|
35144
35144
|
}
|
|
35145
35145
|
|
|
35146
|
-
//
|
|
35146
|
+
// node_modules/circle-ir/dist/analysis/passes/speculative-prompt-param-source-pass.js
|
|
35147
35147
|
function returnOrAssignRhs(text) {
|
|
35148
35148
|
const t = text.trim();
|
|
35149
35149
|
const ret = t.match(/^return\s+(.+?);?$/);
|
|
@@ -35269,7 +35269,7 @@ class SpeculativePromptParamSourcePass {
|
|
|
35269
35269
|
}
|
|
35270
35270
|
}
|
|
35271
35271
|
|
|
35272
|
-
//
|
|
35272
|
+
// node_modules/circle-ir/dist/analysis/passes/cli-main-reflection-suppress-pass.js
|
|
35273
35273
|
var REFLECTION_SINK_METHODS = new Set([
|
|
35274
35274
|
"forName",
|
|
35275
35275
|
"newInstance",
|
|
@@ -35457,7 +35457,7 @@ class CliMainReflectionSuppressPass {
|
|
|
35457
35457
|
}
|
|
35458
35458
|
}
|
|
35459
35459
|
|
|
35460
|
-
//
|
|
35460
|
+
// node_modules/circle-ir/dist/analysis/passes/library-profile-sink-gate-pass.js
|
|
35461
35461
|
var DROPPED_SINK_TYPES = new Set([
|
|
35462
35462
|
"log_injection"
|
|
35463
35463
|
]);
|
|
@@ -35563,7 +35563,7 @@ class LibraryProfileCwe22PathGatePass {
|
|
|
35563
35563
|
}
|
|
35564
35564
|
}
|
|
35565
35565
|
|
|
35566
|
-
//
|
|
35566
|
+
// node_modules/circle-ir/dist/analysis/passes/library-profile-xss-gate-pass.js
|
|
35567
35567
|
var XSS_NON_HTML_OUTPUT_CLASSES = new Set([
|
|
35568
35568
|
"StringBuilder",
|
|
35569
35569
|
"StringBuffer",
|
|
@@ -35644,7 +35644,7 @@ class LibraryProfileXssGatePass {
|
|
|
35644
35644
|
}
|
|
35645
35645
|
}
|
|
35646
35646
|
|
|
35647
|
-
//
|
|
35647
|
+
// node_modules/circle-ir/dist/analysis/passes/taint-propagation-pass.js
|
|
35648
35648
|
class TaintPropagationPass {
|
|
35649
35649
|
name = "taint-propagation";
|
|
35650
35650
|
category = "security";
|
|
@@ -36874,7 +36874,7 @@ function pickScopedSource(sources, sinkLine, methodName, types, taintedVar) {
|
|
|
36874
36874
|
return sources[0];
|
|
36875
36875
|
}
|
|
36876
36876
|
|
|
36877
|
-
//
|
|
36877
|
+
// node_modules/circle-ir/dist/analysis/interprocedural.js
|
|
36878
36878
|
function analyzeInterprocedural2(graphOrTypes, callsOrSources, dfgOrSinks, sourcesOrSanitizers, sinksOrOptions, sanitizersArg, optionsArg = {}) {
|
|
36879
36879
|
let graph;
|
|
36880
36880
|
let sources;
|
|
@@ -37388,7 +37388,7 @@ function findTaintBridges2(result) {
|
|
|
37388
37388
|
return bridges;
|
|
37389
37389
|
}
|
|
37390
37390
|
|
|
37391
|
-
//
|
|
37391
|
+
// node_modules/circle-ir/dist/analysis/passes/interprocedural-pass.js
|
|
37392
37392
|
class InterproceduralPass {
|
|
37393
37393
|
name = "interprocedural";
|
|
37394
37394
|
category = "security";
|
|
@@ -37594,7 +37594,7 @@ class InterproceduralPass {
|
|
|
37594
37594
|
}
|
|
37595
37595
|
}
|
|
37596
37596
|
|
|
37597
|
-
//
|
|
37597
|
+
// node_modules/circle-ir/dist/analysis/passes/dead-code-pass.js
|
|
37598
37598
|
class DeadCodePass {
|
|
37599
37599
|
name = "dead-code";
|
|
37600
37600
|
category = "reliability";
|
|
@@ -37670,7 +37670,7 @@ class DeadCodePass {
|
|
|
37670
37670
|
}
|
|
37671
37671
|
}
|
|
37672
37672
|
|
|
37673
|
-
//
|
|
37673
|
+
// node_modules/circle-ir/dist/analysis/passes/missing-await-pass.js
|
|
37674
37674
|
var ASYNC_METHODS = new Set([
|
|
37675
37675
|
"readFile",
|
|
37676
37676
|
"writeFile",
|
|
@@ -37749,7 +37749,7 @@ class MissingAwaitPass {
|
|
|
37749
37749
|
}
|
|
37750
37750
|
}
|
|
37751
37751
|
|
|
37752
|
-
//
|
|
37752
|
+
// node_modules/circle-ir/dist/analysis/passes/n-plus-one-pass.js
|
|
37753
37753
|
var HIGH_CONFIDENCE_DB_METHODS = new Set([
|
|
37754
37754
|
"executeQuery",
|
|
37755
37755
|
"executeUpdate",
|
|
@@ -37872,7 +37872,7 @@ class NPlusOnePass {
|
|
|
37872
37872
|
}
|
|
37873
37873
|
}
|
|
37874
37874
|
|
|
37875
|
-
//
|
|
37875
|
+
// node_modules/circle-ir/dist/analysis/passes/missing-public-doc-pass.js
|
|
37876
37876
|
var TEST_PATH_RE = /[/._](test|tests|spec|specs|__tests?__|__mocks?__)[/._]/i;
|
|
37877
37877
|
var UTIL_DIR_RE = /[/](utils?|helpers?|internal|private|common|shared)[/]/i;
|
|
37878
37878
|
function hasDocCommentBefore(lines, startLine) {
|
|
@@ -37979,7 +37979,7 @@ class MissingPublicDocPass {
|
|
|
37979
37979
|
}
|
|
37980
37980
|
}
|
|
37981
37981
|
|
|
37982
|
-
//
|
|
37982
|
+
// node_modules/circle-ir/dist/analysis/passes/todo-in-prod-pass.js
|
|
37983
37983
|
var TEST_PATH_RE2 = /[/._](test|tests|spec|specs|__tests?__|__mocks?__)[/._]/i;
|
|
37984
37984
|
var MARKER_RE = /(?:\/\/|#|--|^\s*\*)\s*(TODO|FIXME|HACK|XXX)\b/i;
|
|
37985
37985
|
function markerSeverity(marker) {
|
|
@@ -38025,7 +38025,7 @@ class TodoInProdPass {
|
|
|
38025
38025
|
}
|
|
38026
38026
|
}
|
|
38027
38027
|
|
|
38028
|
-
//
|
|
38028
|
+
// node_modules/circle-ir/dist/analysis/passes/string-concat-loop-pass.js
|
|
38029
38029
|
var CONCAT_RE = /\b([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\+=/;
|
|
38030
38030
|
var NUMERIC_VAR_RE = /^(i|j|k|n|m|x|y|z|count|sum|total|size|index|len|length|num|idx|score|counter|offset|pos|col|row|result|ret|value|acc|bits|byte|bytes|flag|flags|step|delta|diff|dist|min|max|avg|mean|page|line|err|error)$/i;
|
|
38031
38031
|
var NUMERIC_SUFFIX_RE = /(Count|Sum|Total|Size|Index|Length|Offset|Position|Score|Counter|Num|Amount|Val|Idx|Len|Max|Min|Avg|Delta|Diff|Step|Flag|Flags|Bits|Byte|Bytes|Calls|Items|Nodes|Edges|Blocks|Lines|Chars|Entries|Records|Rows)$/;
|
|
@@ -38088,7 +38088,7 @@ class StringConcatLoopPass {
|
|
|
38088
38088
|
}
|
|
38089
38089
|
}
|
|
38090
38090
|
|
|
38091
|
-
//
|
|
38091
|
+
// node_modules/circle-ir/dist/analysis/passes/sync-io-async-pass.js
|
|
38092
38092
|
var BLOCKING_METHODS = new Set([
|
|
38093
38093
|
"sleep"
|
|
38094
38094
|
]);
|
|
@@ -38149,7 +38149,7 @@ class SyncIoAsyncPass {
|
|
|
38149
38149
|
}
|
|
38150
38150
|
}
|
|
38151
38151
|
|
|
38152
|
-
//
|
|
38152
|
+
// node_modules/circle-ir/dist/analysis/passes/unchecked-return-pass.js
|
|
38153
38153
|
var MUST_CHECK_HIGH = new Set([
|
|
38154
38154
|
"createNewFile",
|
|
38155
38155
|
"mkdir",
|
|
@@ -38222,7 +38222,7 @@ class UncheckedReturnPass {
|
|
|
38222
38222
|
}
|
|
38223
38223
|
}
|
|
38224
38224
|
|
|
38225
|
-
//
|
|
38225
|
+
// node_modules/circle-ir/dist/analysis/passes/null-deref-pass.js
|
|
38226
38226
|
var NULL_EXPR_RE = /^\s*(null|None|undefined)\s*$/;
|
|
38227
38227
|
function escRe(s) {
|
|
38228
38228
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
@@ -38304,7 +38304,7 @@ class NullDerefPass {
|
|
|
38304
38304
|
}
|
|
38305
38305
|
}
|
|
38306
38306
|
|
|
38307
|
-
//
|
|
38307
|
+
// node_modules/circle-ir/dist/analysis/passes/resource-leak-pass.js
|
|
38308
38308
|
function escapeRegex2(s) {
|
|
38309
38309
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
38310
38310
|
}
|
|
@@ -38581,7 +38581,7 @@ class ResourceLeakPass {
|
|
|
38581
38581
|
}
|
|
38582
38582
|
}
|
|
38583
38583
|
|
|
38584
|
-
//
|
|
38584
|
+
// node_modules/circle-ir/dist/graph/scope-graph.js
|
|
38585
38585
|
function hasDeclKeyword(lineText, language) {
|
|
38586
38586
|
switch (language) {
|
|
38587
38587
|
case "java":
|
|
@@ -38621,7 +38621,7 @@ class ScopeGraph {
|
|
|
38621
38621
|
}
|
|
38622
38622
|
}
|
|
38623
38623
|
|
|
38624
|
-
//
|
|
38624
|
+
// node_modules/circle-ir/dist/analysis/passes/variable-shadowing-pass.js
|
|
38625
38625
|
var SKIP_NAMES = new Set([
|
|
38626
38626
|
"let",
|
|
38627
38627
|
"const",
|
|
@@ -38779,7 +38779,7 @@ class VariableShadowingPass {
|
|
|
38779
38779
|
}
|
|
38780
38780
|
}
|
|
38781
38781
|
|
|
38782
|
-
//
|
|
38782
|
+
// node_modules/circle-ir/dist/analysis/passes/leaked-global-pass.js
|
|
38783
38783
|
var SKIP_NAMES2 = new Set([
|
|
38784
38784
|
"_",
|
|
38785
38785
|
"e",
|
|
@@ -38866,7 +38866,7 @@ class LeakedGlobalPass {
|
|
|
38866
38866
|
}
|
|
38867
38867
|
}
|
|
38868
38868
|
|
|
38869
|
-
//
|
|
38869
|
+
// node_modules/circle-ir/dist/analysis/passes/unused-variable-pass.js
|
|
38870
38870
|
var SKIP_NAMES3 = new Set([
|
|
38871
38871
|
"_",
|
|
38872
38872
|
"unused",
|
|
@@ -39011,7 +39011,7 @@ class UnusedVariablePass {
|
|
|
39011
39011
|
}
|
|
39012
39012
|
}
|
|
39013
39013
|
|
|
39014
|
-
//
|
|
39014
|
+
// node_modules/circle-ir/dist/analysis/passes/dependency-fan-out-pass.js
|
|
39015
39015
|
var DEFAULT_THRESHOLD = 20;
|
|
39016
39016
|
|
|
39017
39017
|
class DependencyFanOutPass {
|
|
@@ -39043,7 +39043,7 @@ class DependencyFanOutPass {
|
|
|
39043
39043
|
}
|
|
39044
39044
|
}
|
|
39045
39045
|
|
|
39046
|
-
//
|
|
39046
|
+
// node_modules/circle-ir/dist/analysis/passes/stale-doc-ref-pass.js
|
|
39047
39047
|
var DOC_BLOCK_RE = /\/\*\*([\s\S]*?)\*\//g;
|
|
39048
39048
|
var LINK_RE = /\{@link\s+([\w.#]+)/g;
|
|
39049
39049
|
var SEE_RE = /@see\s+([\w.#]+)/g;
|
|
@@ -39122,7 +39122,7 @@ class StaleDocRefPass {
|
|
|
39122
39122
|
}
|
|
39123
39123
|
}
|
|
39124
39124
|
|
|
39125
|
-
//
|
|
39125
|
+
// node_modules/circle-ir/dist/analysis/passes/infinite-loop-pass.js
|
|
39126
39126
|
var EXIT_KEYWORDS = /\b(return|throw|raise|break|System\.exit|process\.exit|os\._exit|exit!\()\b/;
|
|
39127
39127
|
var ITERATOR_LOOP_PATTERNS = [
|
|
39128
39128
|
/\bfor\s*\([^)]*\s+of\s+/,
|
|
@@ -39241,7 +39241,7 @@ class InfiniteLoopPass {
|
|
|
39241
39241
|
}
|
|
39242
39242
|
}
|
|
39243
39243
|
|
|
39244
|
-
//
|
|
39244
|
+
// node_modules/circle-ir/dist/analysis/passes/deep-inheritance-pass.js
|
|
39245
39245
|
var DEPTH_THRESHOLD = 5;
|
|
39246
39246
|
var CYCLE_GUARD = 20;
|
|
39247
39247
|
|
|
@@ -39304,7 +39304,7 @@ class DeepInheritancePass {
|
|
|
39304
39304
|
}
|
|
39305
39305
|
}
|
|
39306
39306
|
|
|
39307
|
-
//
|
|
39307
|
+
// node_modules/circle-ir/dist/analysis/passes/redundant-loop-pass.js
|
|
39308
39308
|
var LENGTH_PATTERN = /\b([A-Za-z_$][A-Za-z0-9_$]*)\s*\.\s*(?:length|size\(\)|count\(\))/g;
|
|
39309
39309
|
var LENGTH_PATTERN_METHODS = /\b([A-Za-z_$][A-Za-z0-9_$]*)\s*\.\s*(?:size\(\)|count\(\))/g;
|
|
39310
39310
|
var OBJECT_STATIC_PATTERN = /\bObject\s*\.\s*(?:keys|values|entries)\s*\(\s*([A-Za-z_$][A-Za-z0-9_$]*)\s*\)/g;
|
|
@@ -39427,7 +39427,7 @@ class RedundantLoopPass {
|
|
|
39427
39427
|
}
|
|
39428
39428
|
}
|
|
39429
39429
|
|
|
39430
|
-
//
|
|
39430
|
+
// node_modules/circle-ir/dist/analysis/passes/unbounded-collection-pass.js
|
|
39431
39431
|
var GROW_METHODS = {
|
|
39432
39432
|
java: new Set(["add", "put", "offer", "push", "addAll", "addFirst", "addLast", "enqueue", "insert"]),
|
|
39433
39433
|
javascript: new Set(["push", "set", "add", "unshift", "append", "prepend"]),
|
|
@@ -39551,7 +39551,7 @@ class UnboundedCollectionPass {
|
|
|
39551
39551
|
}
|
|
39552
39552
|
}
|
|
39553
39553
|
|
|
39554
|
-
//
|
|
39554
|
+
// node_modules/circle-ir/dist/analysis/passes/serial-await-pass.js
|
|
39555
39555
|
var AWAIT_ASSIGN_RE = /(?:const|let|var)?\s*(\w+)\s*=\s*await\s/;
|
|
39556
39556
|
var AWAIT_RE = /\bawait\s/;
|
|
39557
39557
|
|
|
@@ -39647,7 +39647,7 @@ class SerialAwaitPass {
|
|
|
39647
39647
|
}
|
|
39648
39648
|
}
|
|
39649
39649
|
|
|
39650
|
-
//
|
|
39650
|
+
// node_modules/circle-ir/dist/analysis/passes/react-inline-jsx-pass.js
|
|
39651
39651
|
var JSX_COMPONENT_RE = /<[A-Z][A-Za-z0-9]*/;
|
|
39652
39652
|
var INLINE_OBJECT_RE = /\s([A-Za-z][A-Za-z0-9_]*)=\{\{/g;
|
|
39653
39653
|
var INLINE_ARROW_RE = /\s([A-Za-z][A-Za-z0-9_]*)=\{(?:\(|[A-Za-z_$]).*?=>/g;
|
|
@@ -39751,7 +39751,7 @@ class ReactInlineJsxPass {
|
|
|
39751
39751
|
}
|
|
39752
39752
|
}
|
|
39753
39753
|
|
|
39754
|
-
//
|
|
39754
|
+
// node_modules/circle-ir/dist/graph/exception-flow-graph.js
|
|
39755
39755
|
class ExceptionFlowGraph2 {
|
|
39756
39756
|
pairs;
|
|
39757
39757
|
catchEntryIds;
|
|
@@ -39802,7 +39802,7 @@ class ExceptionFlowGraph2 {
|
|
|
39802
39802
|
}
|
|
39803
39803
|
}
|
|
39804
39804
|
|
|
39805
|
-
//
|
|
39805
|
+
// node_modules/circle-ir/dist/analysis/passes/swallowed-exception-pass.js
|
|
39806
39806
|
var MEANINGFUL_ACTION_RE = /\b(throw|raise|log|logger|console\.(error|warn|log|debug|info)|System\.(out|err)\.|print(?:ln|f)?|warn|error|debug|info|fatal|LOGGER|LOG|logging\.(warning|error|debug|info|critical))\b|\breturn\s+\S/;
|
|
39807
39807
|
|
|
39808
39808
|
class SwallowedExceptionPass {
|
|
@@ -39900,7 +39900,7 @@ class SwallowedExceptionPass {
|
|
|
39900
39900
|
}
|
|
39901
39901
|
}
|
|
39902
39902
|
|
|
39903
|
-
//
|
|
39903
|
+
// node_modules/circle-ir/dist/analysis/passes/broad-catch-pass.js
|
|
39904
39904
|
var JAVA_BROAD_RE = /catch\s*\(\s*(Exception|Throwable|RuntimeException|Error)\s/;
|
|
39905
39905
|
var PYTHON_BROAD_RE = /^\s*except\s*:|except\s+(Exception|BaseException)\b/;
|
|
39906
39906
|
|
|
@@ -39956,7 +39956,7 @@ class BroadCatchPass {
|
|
|
39956
39956
|
}
|
|
39957
39957
|
}
|
|
39958
39958
|
|
|
39959
|
-
//
|
|
39959
|
+
// node_modules/circle-ir/dist/analysis/passes/unhandled-exception-pass.js
|
|
39960
39960
|
var JS_THROW_RE = /^\s*throw\s+/;
|
|
39961
39961
|
var PYTHON_RAISE_RE = /^\s*raise\b/;
|
|
39962
39962
|
function isValidationThrow(lines, throwLine) {
|
|
@@ -40126,7 +40126,7 @@ class UnhandledExceptionPass {
|
|
|
40126
40126
|
}
|
|
40127
40127
|
}
|
|
40128
40128
|
|
|
40129
|
-
//
|
|
40129
|
+
// node_modules/circle-ir/dist/analysis/passes/double-close-pass.js
|
|
40130
40130
|
var RESOURCE_CTORS2 = new Set([
|
|
40131
40131
|
"FileInputStream",
|
|
40132
40132
|
"FileOutputStream",
|
|
@@ -40241,7 +40241,7 @@ class DoubleClosePass {
|
|
|
40241
40241
|
}
|
|
40242
40242
|
}
|
|
40243
40243
|
|
|
40244
|
-
//
|
|
40244
|
+
// node_modules/circle-ir/dist/analysis/passes/use-after-close-pass.js
|
|
40245
40245
|
var RESOURCE_CTORS3 = new Set([
|
|
40246
40246
|
"FileInputStream",
|
|
40247
40247
|
"FileOutputStream",
|
|
@@ -40349,7 +40349,7 @@ class UseAfterClosePass {
|
|
|
40349
40349
|
}
|
|
40350
40350
|
}
|
|
40351
40351
|
|
|
40352
|
-
//
|
|
40352
|
+
// node_modules/circle-ir/dist/graph/dominator-graph.js
|
|
40353
40353
|
function computeRPO(cfg, entryId) {
|
|
40354
40354
|
const outgoing = new Map;
|
|
40355
40355
|
for (const edge of cfg.edges) {
|
|
@@ -40514,7 +40514,7 @@ class DominatorGraph2 {
|
|
|
40514
40514
|
}
|
|
40515
40515
|
}
|
|
40516
40516
|
|
|
40517
|
-
//
|
|
40517
|
+
// node_modules/circle-ir/dist/analysis/passes/cleanup-verify-pass.js
|
|
40518
40518
|
var RESOURCE_CTORS4 = new Set([
|
|
40519
40519
|
"FileInputStream",
|
|
40520
40520
|
"FileOutputStream",
|
|
@@ -40639,7 +40639,7 @@ class CleanupVerifyPass {
|
|
|
40639
40639
|
}
|
|
40640
40640
|
}
|
|
40641
40641
|
|
|
40642
|
-
//
|
|
40642
|
+
// node_modules/circle-ir/dist/analysis/passes/missing-override-pass.js
|
|
40643
40643
|
class MissingOverridePass {
|
|
40644
40644
|
name = "missing-override";
|
|
40645
40645
|
category = "maintainability";
|
|
@@ -40726,7 +40726,7 @@ class MissingOverridePass {
|
|
|
40726
40726
|
}
|
|
40727
40727
|
}
|
|
40728
40728
|
|
|
40729
|
-
//
|
|
40729
|
+
// node_modules/circle-ir/dist/analysis/passes/unused-interface-method-pass.js
|
|
40730
40730
|
class UnusedInterfaceMethodPass {
|
|
40731
40731
|
name = "unused-interface-method";
|
|
40732
40732
|
category = "maintainability";
|
|
@@ -40769,7 +40769,7 @@ class UnusedInterfaceMethodPass {
|
|
|
40769
40769
|
}
|
|
40770
40770
|
}
|
|
40771
40771
|
|
|
40772
|
-
//
|
|
40772
|
+
// node_modules/circle-ir/dist/analysis/passes/blocking-main-thread-pass.js
|
|
40773
40773
|
var HTTP_DECORATORS = new Set([
|
|
40774
40774
|
"Get",
|
|
40775
40775
|
"Post",
|
|
@@ -40872,7 +40872,7 @@ class BlockingMainThreadPass {
|
|
|
40872
40872
|
}
|
|
40873
40873
|
}
|
|
40874
40874
|
|
|
40875
|
-
//
|
|
40875
|
+
// node_modules/circle-ir/dist/analysis/passes/excessive-allocation-pass.js
|
|
40876
40876
|
var ALLOC_PATTERNS = {
|
|
40877
40877
|
javascript: /\bnew\s+(Array|Map|Set|Object|WeakMap|WeakSet|Error|RegExp|Date|Buffer|Uint8Array|Int8Array|Float32Array|ArrayBuffer)\s*[(<]|\bArray\.from\s*\(|\bstructuredClone\s*\(|\bObject\.create\s*\(/,
|
|
40878
40878
|
typescript: /\bnew\s+(Array|Map|Set|Object|WeakMap|WeakSet|Error|RegExp|Date|Buffer|Uint8Array|Int8Array|Float32Array|ArrayBuffer)\s*[(<]|\bArray\.from\s*\(|\bstructuredClone\s*\(|\bObject\.create\s*\(/,
|
|
@@ -40939,7 +40939,7 @@ class ExcessiveAllocationPass {
|
|
|
40939
40939
|
}
|
|
40940
40940
|
}
|
|
40941
40941
|
|
|
40942
|
-
//
|
|
40942
|
+
// node_modules/circle-ir/dist/analysis/passes/missing-stream-pass.js
|
|
40943
40943
|
var JS_WHOLE_LOAD_RE = /\b(?:readFileSync|fs\.readFile\b|response\.text\b|response\.json\b|res\.text\b|res\.json\b|body\.text\b|body\.json\b)\s*\(/;
|
|
40944
40944
|
var JS_STREAM_RE = /\.pipe\s*\(|\.on\s*\(\s*['"]data['"]|for\s+await\s*\(|\bcreateReadStream\b|\bstream\b/i;
|
|
40945
40945
|
var JAVA_WHOLE_READ_RE = /\bFiles\.readAllBytes\s*\(|\bFiles\.readAllLines\s*\(|\bFiles\.readString\s*\(|\bnew\s+BufferedReader\s*\(|\bFileInputStream\b/;
|
|
@@ -41086,7 +41086,7 @@ class MissingStreamPass {
|
|
|
41086
41086
|
}
|
|
41087
41087
|
}
|
|
41088
41088
|
|
|
41089
|
-
//
|
|
41089
|
+
// node_modules/circle-ir/dist/analysis/passes/god-class-pass.js
|
|
41090
41090
|
var WMC_THRESHOLD = 47;
|
|
41091
41091
|
var LCOM2_THRESHOLD = 0.8;
|
|
41092
41092
|
var CBO_THRESHOLD = 14;
|
|
@@ -41252,7 +41252,7 @@ class GodClassPass {
|
|
|
41252
41252
|
}
|
|
41253
41253
|
}
|
|
41254
41254
|
|
|
41255
|
-
//
|
|
41255
|
+
// node_modules/circle-ir/dist/analysis/passes/naming-convention-pass.js
|
|
41256
41256
|
var PASCAL_CASE_RE = /^[A-Z][A-Za-z0-9]*$/;
|
|
41257
41257
|
var CAMEL_CASE_RE = /^[a-z][a-zA-Z0-9]*$/;
|
|
41258
41258
|
var SNAKE_CASE_RE = /^[a-z_][a-z0-9_]*$/;
|
|
@@ -41392,7 +41392,7 @@ class NamingConventionPass {
|
|
|
41392
41392
|
}
|
|
41393
41393
|
}
|
|
41394
41394
|
|
|
41395
|
-
//
|
|
41395
|
+
// node_modules/circle-ir/dist/analysis/passes/security-headers-pass.js
|
|
41396
41396
|
var HEADER_WRITE_METHODS = new Set([
|
|
41397
41397
|
"setHeader",
|
|
41398
41398
|
"addHeader",
|
|
@@ -41853,7 +41853,7 @@ function mapReturnValueToCorsRule(returnValue) {
|
|
|
41853
41853
|
};
|
|
41854
41854
|
}
|
|
41855
41855
|
|
|
41856
|
-
//
|
|
41856
|
+
// node_modules/circle-ir/dist/analysis/passes/_fp-allowlists.js
|
|
41857
41857
|
var PEM_BODY_RE = /[A-Za-z0-9+/]{30,}/;
|
|
41858
41858
|
function pemHasInlineBody(lines, hitLineIdx) {
|
|
41859
41859
|
const end = Math.min(hitLineIdx + 5, lines.length);
|
|
@@ -41880,7 +41880,7 @@ function isProtocolMandatedCryptoFile(file, code) {
|
|
|
41880
41880
|
return false;
|
|
41881
41881
|
}
|
|
41882
41882
|
|
|
41883
|
-
//
|
|
41883
|
+
// node_modules/circle-ir/dist/analysis/passes/scan-secrets-pass.js
|
|
41884
41884
|
function applyDemoDowngrade(demoPath, severity, level) {
|
|
41885
41885
|
if (!demoPath)
|
|
41886
41886
|
return { severity, level };
|
|
@@ -42458,7 +42458,7 @@ class ScanSecretsPass {
|
|
|
42458
42458
|
}
|
|
42459
42459
|
}
|
|
42460
42460
|
|
|
42461
|
-
//
|
|
42461
|
+
// node_modules/circle-ir/dist/analysis/passes/python-receiver-taint-format-pass.js
|
|
42462
42462
|
class PythonReceiverTaintFormatPass {
|
|
42463
42463
|
name = "python-receiver-taint-format";
|
|
42464
42464
|
category = "security";
|
|
@@ -42510,7 +42510,7 @@ class PythonReceiverTaintFormatPass {
|
|
|
42510
42510
|
}
|
|
42511
42511
|
}
|
|
42512
42512
|
|
|
42513
|
-
//
|
|
42513
|
+
// node_modules/circle-ir/dist/analysis/passes/spring4shell-pass.js
|
|
42514
42514
|
var CONTROLLER_ANNOTATIONS = new Set([
|
|
42515
42515
|
"Controller",
|
|
42516
42516
|
"RestController",
|
|
@@ -42718,7 +42718,7 @@ function isPotentialPojo(type) {
|
|
|
42718
42718
|
return first >= 65 && first <= 90;
|
|
42719
42719
|
}
|
|
42720
42720
|
|
|
42721
|
-
//
|
|
42721
|
+
// node_modules/circle-ir/dist/analysis/passes/insecure-cookie-pass.js
|
|
42722
42722
|
var COOKIE_RESPONSE_RECEIVERS = new Set([
|
|
42723
42723
|
"res",
|
|
42724
42724
|
"response",
|
|
@@ -42954,7 +42954,7 @@ class InsecureCookiePass {
|
|
|
42954
42954
|
}
|
|
42955
42955
|
}
|
|
42956
42956
|
|
|
42957
|
-
//
|
|
42957
|
+
// node_modules/circle-ir/dist/analysis/passes/weak-hash-pass.js
|
|
42958
42958
|
var WEAK_HASH_NAMES = new Set([
|
|
42959
42959
|
"md2",
|
|
42960
42960
|
"md4",
|
|
@@ -43174,7 +43174,7 @@ class WeakHashPass {
|
|
|
43174
43174
|
}
|
|
43175
43175
|
}
|
|
43176
43176
|
|
|
43177
|
-
//
|
|
43177
|
+
// node_modules/circle-ir/dist/analysis/path-classification.js
|
|
43178
43178
|
var TEST_PATH_PATTERNS = [
|
|
43179
43179
|
/(^|\/)test\//i,
|
|
43180
43180
|
/(^|\/)tests\//i,
|
|
@@ -43211,7 +43211,7 @@ function isTestPath(filepath) {
|
|
|
43211
43211
|
return false;
|
|
43212
43212
|
}
|
|
43213
43213
|
|
|
43214
|
-
//
|
|
43214
|
+
// node_modules/circle-ir/dist/analysis/passes/weak-crypto-pass.js
|
|
43215
43215
|
var WEAK_CIPHER_BASES = new Set([
|
|
43216
43216
|
"des",
|
|
43217
43217
|
"3des",
|
|
@@ -43716,7 +43716,7 @@ class WeakCryptoPass {
|
|
|
43716
43716
|
}
|
|
43717
43717
|
}
|
|
43718
43718
|
|
|
43719
|
-
//
|
|
43719
|
+
// node_modules/circle-ir/dist/analysis/passes/weak-random-pass.js
|
|
43720
43720
|
var JAVA_RANDOM_METHODS = new Set([
|
|
43721
43721
|
"nextInt",
|
|
43722
43722
|
"nextLong",
|
|
@@ -43889,7 +43889,7 @@ class WeakRandomPass {
|
|
|
43889
43889
|
}
|
|
43890
43890
|
}
|
|
43891
43891
|
|
|
43892
|
-
//
|
|
43892
|
+
// node_modules/circle-ir/dist/analysis/passes/_credential-helpers.js
|
|
43893
43893
|
var CRED_KEYWORD_RE2 = /(?:password|passwd|pwd|secret|api[_-]?key|auth[_-]?token|private[_-]?key|access[_-]?key|credential)/i;
|
|
43894
43894
|
function isCredentialIdentifier(name2) {
|
|
43895
43895
|
if (!name2)
|
|
@@ -43982,7 +43982,7 @@ function priorHashOf(varName, priorCalls) {
|
|
|
43982
43982
|
return false;
|
|
43983
43983
|
}
|
|
43984
43984
|
|
|
43985
|
-
//
|
|
43985
|
+
// node_modules/circle-ir/dist/analysis/passes/weak-password-hash-pass.js
|
|
43986
43986
|
var FAST_HASH_NAMES = new Set([
|
|
43987
43987
|
"sha224",
|
|
43988
43988
|
"sha-224",
|
|
@@ -44141,7 +44141,7 @@ class WeakPasswordHashPass {
|
|
|
44141
44141
|
}
|
|
44142
44142
|
}
|
|
44143
44143
|
|
|
44144
|
-
//
|
|
44144
|
+
// node_modules/circle-ir/dist/analysis/passes/weak-password-encoding-pass.js
|
|
44145
44145
|
function isBasicAuthContext(call, code) {
|
|
44146
44146
|
const line = call.location.line;
|
|
44147
44147
|
if (line < 1)
|
|
@@ -44253,7 +44253,7 @@ class WeakPasswordEncodingPass {
|
|
|
44253
44253
|
}
|
|
44254
44254
|
}
|
|
44255
44255
|
|
|
44256
|
-
//
|
|
44256
|
+
// node_modules/circle-ir/dist/analysis/passes/info-disclosure-stacktrace-pass.js
|
|
44257
44257
|
var RESPONSE_RECEIVER_RE = /^(res|response|w|writer|ctx|c)$/i;
|
|
44258
44258
|
var LOGGER_RECEIVER_RE = /^(log|logger|slog|console|pino|winston|sentry)$/i;
|
|
44259
44259
|
var RESPONSE_SEND_METHODS = new Set([
|
|
@@ -44439,7 +44439,7 @@ class InfoDisclosureStacktracePass {
|
|
|
44439
44439
|
}
|
|
44440
44440
|
}
|
|
44441
44441
|
|
|
44442
|
-
//
|
|
44442
|
+
// node_modules/circle-ir/dist/analysis/passes/unrestricted-file-upload-pass.js
|
|
44443
44443
|
var UPLOAD_NAME_RE = /(?:getOriginalFilename|getSubmittedFileName|originalname|originalName|\.filename|\.Filename|FileHeader\.Filename|UploadFile)/;
|
|
44444
44444
|
var FILE_SAFE_CALL_RE = /(?:secure_filename|FilenameUtils\.getExtension|\.lastIndexOf\(['"]\.['"]\)|ALLOWED_EXT|ALLOWED_EXTENSIONS|allowedExtensions|\bfileFilter\b|filepath\.Ext|path\.extname)/;
|
|
44445
44445
|
function lineWindow(lines, startLine, endLine) {
|
|
@@ -44590,7 +44590,7 @@ class UnrestrictedFileUploadPass {
|
|
|
44590
44590
|
}
|
|
44591
44591
|
}
|
|
44592
44592
|
|
|
44593
|
-
//
|
|
44593
|
+
// node_modules/circle-ir/dist/analysis/passes/missing-sanitizer-gate-pass.js
|
|
44594
44594
|
var HTML_OUTPUT_SINKS = new Set([
|
|
44595
44595
|
"addAttribute",
|
|
44596
44596
|
"setAttribute",
|
|
@@ -44738,7 +44738,7 @@ function methodAcceptsHtmlShapedParam(method) {
|
|
|
44738
44738
|
return false;
|
|
44739
44739
|
}
|
|
44740
44740
|
|
|
44741
|
-
//
|
|
44741
|
+
// node_modules/circle-ir/dist/analysis/passes/insecure-deserialization-config-pass.js
|
|
44742
44742
|
var ANY_TYPE_PERMISSION_RE = /\bAnyTypePermission\b/;
|
|
44743
44743
|
|
|
44744
44744
|
class InsecureDeserializationConfigPass {
|
|
@@ -44816,7 +44816,7 @@ class InsecureDeserializationConfigPass {
|
|
|
44816
44816
|
}
|
|
44817
44817
|
var INSECURE_TYPE_NAME_HANDLING_RE = /\bTypeNameHandling\s*=\s*(?:Newtonsoft\.Json\.)?TypeNameHandling\.(All|Auto|Objects|Arrays)\b/;
|
|
44818
44818
|
|
|
44819
|
-
//
|
|
44819
|
+
// node_modules/circle-ir/dist/analysis/passes/plaintext-password-storage-pass.js
|
|
44820
44820
|
function isWriteStorageCall(call, language) {
|
|
44821
44821
|
const method = call.method_name ?? "";
|
|
44822
44822
|
const receiver = call.receiver ?? "";
|
|
@@ -44927,7 +44927,7 @@ class PlaintextPasswordStoragePass {
|
|
|
44927
44927
|
}
|
|
44928
44928
|
}
|
|
44929
44929
|
|
|
44930
|
-
//
|
|
44930
|
+
// node_modules/circle-ir/dist/analysis/passes/cleartext-credential-transport-pass.js
|
|
44931
44931
|
var LOCALHOST_RE = /^(?:localhost|127\.0\.0\.1|0\.0\.0\.0)(?::\d+)?$/i;
|
|
44932
44932
|
function isInsecureHttpUrl(urlLiteral) {
|
|
44933
44933
|
if (!urlLiteral)
|
|
@@ -45055,7 +45055,7 @@ class CleartextCredentialTransportPass {
|
|
|
45055
45055
|
}
|
|
45056
45056
|
}
|
|
45057
45057
|
|
|
45058
|
-
//
|
|
45058
|
+
// node_modules/circle-ir/dist/analysis/passes/tls-verify-disabled-pass.js
|
|
45059
45059
|
var PY_HTTP_METHODS = new Set([
|
|
45060
45060
|
"get",
|
|
45061
45061
|
"post",
|
|
@@ -45268,7 +45268,7 @@ class TlsVerifyDisabledPass {
|
|
|
45268
45268
|
}
|
|
45269
45269
|
}
|
|
45270
45270
|
|
|
45271
|
-
//
|
|
45271
|
+
// node_modules/circle-ir/dist/analysis/passes/module-side-effect-pass.js
|
|
45272
45272
|
var JS_EXEC_METHODS = new Set([
|
|
45273
45273
|
"exec",
|
|
45274
45274
|
"spawn",
|
|
@@ -45499,7 +45499,7 @@ class ModuleSideEffectPass {
|
|
|
45499
45499
|
}
|
|
45500
45500
|
}
|
|
45501
45501
|
|
|
45502
|
-
//
|
|
45502
|
+
// node_modules/circle-ir/dist/analysis/passes/cache-no-vary-pass.js
|
|
45503
45503
|
function isSharedCacheable(value) {
|
|
45504
45504
|
const v = value.toLowerCase();
|
|
45505
45505
|
if (/\b(private|no-store|no-cache)\b/.test(v))
|
|
@@ -45786,7 +45786,7 @@ class CacheNoVaryPass {
|
|
|
45786
45786
|
}
|
|
45787
45787
|
}
|
|
45788
45788
|
|
|
45789
|
-
//
|
|
45789
|
+
// node_modules/circle-ir/dist/analysis/passes/jwt-verify-disabled-pass.js
|
|
45790
45790
|
var PY_VERIFY_SIGNATURE_FALSE_RE = /["']verify_signature["']\s*:\s*False\b/;
|
|
45791
45791
|
var PY_VERIFY_KW_FALSE_RE = /\bverify\s*=\s*False\b/;
|
|
45792
45792
|
var PY_ALG_NONE_RE = /\balgorithms\s*=\s*[\[\(]\s*["']none["']/i;
|
|
@@ -45911,7 +45911,7 @@ class JwtVerifyDisabledPass {
|
|
|
45911
45911
|
}
|
|
45912
45912
|
}
|
|
45913
45913
|
|
|
45914
|
-
//
|
|
45914
|
+
// node_modules/circle-ir/dist/analysis/passes/csrf-protection-disabled-pass.js
|
|
45915
45915
|
var JAVA_CSRF_DISABLE_RE = /\.csrf\s*\([^)]*\)\s*\.\s*disable\b/;
|
|
45916
45916
|
var JAVA_CSRF_LAMBDA_DISABLE_RE = /\bcsrf\s*\(\s*\w+\s*->\s*\w+\s*\.\s*disable\s*\(/;
|
|
45917
45917
|
var JAVA_CSRF_METHODREF_RE = /\bcsrf\s*\(\s*[\w.]+::disable\s*\)/;
|
|
@@ -46047,7 +46047,7 @@ class CsrfProtectionDisabledPass {
|
|
|
46047
46047
|
}
|
|
46048
46048
|
}
|
|
46049
46049
|
|
|
46050
|
-
//
|
|
46050
|
+
// node_modules/circle-ir/dist/analysis/passes/xml-entity-expansion-pass.js
|
|
46051
46051
|
var JAVA_FACTORIES = new Set([
|
|
46052
46052
|
"SAXParserFactory",
|
|
46053
46053
|
"DocumentBuilderFactory",
|
|
@@ -46187,7 +46187,7 @@ class XmlEntityExpansionPass {
|
|
|
46187
46187
|
}
|
|
46188
46188
|
}
|
|
46189
46189
|
|
|
46190
|
-
//
|
|
46190
|
+
// node_modules/circle-ir/dist/analysis/passes/mass-assignment-pass.js
|
|
46191
46191
|
var PY_KWARGS_SPLAT_RE = /\*\*\s*(?:request|self\.request|flask\.request|ctx|self)\s*\.\s*(?:form|args|values|json|get_json\s*\(\s*\)|files|data)/;
|
|
46192
46192
|
var JS_OBJECT_SPREAD_RE = /\{\s*\.\.\.\s*(?:req|request|ctx|context)(?:\.request)?\s*\.\s*(?:body|query|params|form)\b/;
|
|
46193
46193
|
|
|
@@ -46271,7 +46271,7 @@ class MassAssignmentPass {
|
|
|
46271
46271
|
}
|
|
46272
46272
|
}
|
|
46273
46273
|
|
|
46274
|
-
//
|
|
46274
|
+
// node_modules/circle-ir/dist/graph/import-graph.js
|
|
46275
46275
|
function dirname(filePath) {
|
|
46276
46276
|
const idx = filePath.lastIndexOf("/");
|
|
46277
46277
|
return idx >= 0 ? filePath.slice(0, idx) : "";
|
|
@@ -46404,7 +46404,7 @@ class ImportGraph2 {
|
|
|
46404
46404
|
}
|
|
46405
46405
|
}
|
|
46406
46406
|
|
|
46407
|
-
//
|
|
46407
|
+
// node_modules/circle-ir/dist/analysis/passes/circular-dependency-pass.js
|
|
46408
46408
|
class CircularDependencyPass {
|
|
46409
46409
|
run(_projectGraph, importGraph) {
|
|
46410
46410
|
const findings = [];
|
|
@@ -46431,7 +46431,7 @@ class CircularDependencyPass {
|
|
|
46431
46431
|
}
|
|
46432
46432
|
}
|
|
46433
46433
|
|
|
46434
|
-
//
|
|
46434
|
+
// node_modules/circle-ir/dist/analysis/passes/orphan-module-pass.js
|
|
46435
46435
|
class OrphanModulePass {
|
|
46436
46436
|
run(_projectGraph, importGraph) {
|
|
46437
46437
|
const findings = [];
|
|
@@ -46455,7 +46455,7 @@ class OrphanModulePass {
|
|
|
46455
46455
|
}
|
|
46456
46456
|
}
|
|
46457
46457
|
|
|
46458
|
-
//
|
|
46458
|
+
// node_modules/circle-ir/dist/analysis/metrics/passes/size-metrics-pass.js
|
|
46459
46459
|
class SizeMetricsPass {
|
|
46460
46460
|
name = "size-metrics";
|
|
46461
46461
|
run(ctx) {
|
|
@@ -46511,7 +46511,7 @@ class SizeMetricsPass {
|
|
|
46511
46511
|
}
|
|
46512
46512
|
}
|
|
46513
46513
|
|
|
46514
|
-
//
|
|
46514
|
+
// node_modules/circle-ir/dist/analysis/metrics/passes/complexity-metrics-pass.js
|
|
46515
46515
|
class ComplexityMetricsPass {
|
|
46516
46516
|
name = "complexity-metrics";
|
|
46517
46517
|
run(ctx) {
|
|
@@ -46575,7 +46575,7 @@ class ComplexityMetricsPass {
|
|
|
46575
46575
|
}
|
|
46576
46576
|
}
|
|
46577
46577
|
|
|
46578
|
-
//
|
|
46578
|
+
// node_modules/circle-ir/dist/analysis/metrics/passes/halstead-metrics-pass.js
|
|
46579
46579
|
var KEYWORDS = new Set([
|
|
46580
46580
|
"if",
|
|
46581
46581
|
"else",
|
|
@@ -46730,7 +46730,7 @@ class HalsteadMetricsPass {
|
|
|
46730
46730
|
}
|
|
46731
46731
|
}
|
|
46732
46732
|
|
|
46733
|
-
//
|
|
46733
|
+
// node_modules/circle-ir/dist/analysis/metrics/passes/data-flow-metrics-pass.js
|
|
46734
46734
|
class DataFlowMetricsPass {
|
|
46735
46735
|
name = "data-flow-metrics";
|
|
46736
46736
|
run(ctx) {
|
|
@@ -46748,7 +46748,7 @@ class DataFlowMetricsPass {
|
|
|
46748
46748
|
}
|
|
46749
46749
|
}
|
|
46750
46750
|
|
|
46751
|
-
//
|
|
46751
|
+
// node_modules/circle-ir/dist/analysis/metrics/passes/coupling-metrics-pass.js
|
|
46752
46752
|
class CouplingMetricsPass {
|
|
46753
46753
|
name = "coupling-metrics";
|
|
46754
46754
|
run(ctx) {
|
|
@@ -46826,7 +46826,7 @@ class CouplingMetricsPass {
|
|
|
46826
46826
|
}
|
|
46827
46827
|
}
|
|
46828
46828
|
|
|
46829
|
-
//
|
|
46829
|
+
// node_modules/circle-ir/dist/analysis/metrics/passes/inheritance-metrics-pass.js
|
|
46830
46830
|
class InheritanceMetricsPass {
|
|
46831
46831
|
name = "inheritance-metrics";
|
|
46832
46832
|
run(ctx) {
|
|
@@ -46886,7 +46886,7 @@ class InheritanceMetricsPass {
|
|
|
46886
46886
|
}
|
|
46887
46887
|
}
|
|
46888
46888
|
|
|
46889
|
-
//
|
|
46889
|
+
// node_modules/circle-ir/dist/analysis/metrics/passes/cohesion-metrics-pass.js
|
|
46890
46890
|
class CohesionMetricsPass {
|
|
46891
46891
|
name = "cohesion-metrics";
|
|
46892
46892
|
run(ctx) {
|
|
@@ -46969,7 +46969,7 @@ class CohesionMetricsPass {
|
|
|
46969
46969
|
}
|
|
46970
46970
|
}
|
|
46971
46971
|
|
|
46972
|
-
//
|
|
46972
|
+
// node_modules/circle-ir/dist/analysis/metrics/passes/documentation-metrics-pass.js
|
|
46973
46973
|
class DocumentationMetricsPass {
|
|
46974
46974
|
name = "documentation-metrics";
|
|
46975
46975
|
run(ctx) {
|
|
@@ -47022,7 +47022,7 @@ class DocumentationMetricsPass {
|
|
|
47022
47022
|
}
|
|
47023
47023
|
}
|
|
47024
47024
|
|
|
47025
|
-
//
|
|
47025
|
+
// node_modules/circle-ir/dist/analysis/metrics/passes/composite-metrics-pass.js
|
|
47026
47026
|
class CompositeMetricsPass {
|
|
47027
47027
|
name = "composite-metrics";
|
|
47028
47028
|
run(ctx) {
|
|
@@ -47081,7 +47081,7 @@ class CompositeMetricsPass {
|
|
|
47081
47081
|
}
|
|
47082
47082
|
}
|
|
47083
47083
|
|
|
47084
|
-
//
|
|
47084
|
+
// node_modules/circle-ir/dist/analysis/metrics/metric-runner.js
|
|
47085
47085
|
class MetricRunner {
|
|
47086
47086
|
passes = [
|
|
47087
47087
|
new SizeMetricsPass,
|
|
@@ -47103,7 +47103,7 @@ class MetricRunner {
|
|
|
47103
47103
|
return accumulated;
|
|
47104
47104
|
}
|
|
47105
47105
|
}
|
|
47106
|
-
//
|
|
47106
|
+
// node_modules/circle-ir/dist/analyzer.js
|
|
47107
47107
|
var initialized = false;
|
|
47108
47108
|
async function initAnalyzer(options = {}) {
|
|
47109
47109
|
if (initialized)
|
|
@@ -47775,7 +47775,7 @@ function deriveProjectRoot(paths) {
|
|
|
47775
47775
|
}
|
|
47776
47776
|
return common.join("/") || "/";
|
|
47777
47777
|
}
|
|
47778
|
-
//
|
|
47778
|
+
// node_modules/circle-ir/dist/analysis/sbom.js
|
|
47779
47779
|
function purlVersion(spec) {
|
|
47780
47780
|
const stripped = spec.trim().replace(/^[\s^~=<>]+/, "");
|
|
47781
47781
|
if (/^v?[0-9][\w.\-+]*$/.test(stripped))
|
|
@@ -48821,7 +48821,7 @@ var colors = {
|
|
|
48821
48821
|
};
|
|
48822
48822
|
|
|
48823
48823
|
// src/version.ts
|
|
48824
|
-
var version = "4.9.
|
|
48824
|
+
var version = "4.9.10";
|
|
48825
48825
|
|
|
48826
48826
|
// src/formatters.ts
|
|
48827
48827
|
var LIBRARY_API_SURFACE_TAG2 = "library-api-surface:caller-responsibility";
|
|
@@ -49374,8 +49374,8 @@ function generateSarifResults(results, crossFileData) {
|
|
|
49374
49374
|
|
|
49375
49375
|
// src/build-info.ts
|
|
49376
49376
|
var buildInfo = {
|
|
49377
|
-
gitSha: "
|
|
49378
|
-
builtAt: "2026-
|
|
49377
|
+
gitSha: "132eaf6",
|
|
49378
|
+
builtAt: "2026-09-02T06:21:26.855Z"
|
|
49379
49379
|
};
|
|
49380
49380
|
|
|
49381
49381
|
// src/utils/args.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cognium-dev",
|
|
3
|
-
"version": "4.9.
|
|
3
|
+
"version": "4.9.10",
|
|
4
4
|
"description": "Static Application Security Testing CLI for detecting security vulnerabilities via taint tracking",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"test": "bun test",
|
|
15
15
|
"clean": "rm -rf dist cognium-dev cognium-dev-* *.bun-build wasm",
|
|
16
16
|
"typecheck": "tsc --noEmit",
|
|
17
|
-
"version": "node -e \"const v = require('./package.json').version; require('fs').writeFileSync('src/version.ts', '/**\\n * Version information\\n *\\n * Kept in sync with package.json via the \\`version\\` npm lifecycle script.\\n * Do not edit manually
|
|
17
|
+
"version": "node -e \"const v = require('./package.json').version; require('fs').writeFileSync('src/version.ts', '/**\\n * Version information\\n *\\n * Kept in sync with package.json via the \\`version\\` npm lifecycle script.\\n * Do not edit manually — use \\`npm version patch|minor|major\\` instead.\\n */\\nexport const version = \\x27' + v + '\\x27;\\n')\" && git add src/version.ts",
|
|
18
18
|
"dogfood": "bun run src/cli.ts scan src/ -q",
|
|
19
19
|
"prepublishOnly": "bun run build"
|
|
20
20
|
},
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@cognium/project-profile-detect": "1.1.0",
|
|
69
|
-
"circle-ir": "4.9.
|
|
69
|
+
"circle-ir": "4.9.10"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@types/node": "^25.5.0",
|