Commit Graph

11726 Commits

Author SHA1 Message Date
Napalys Klicius
4332de464a Eliminate false positives by detecting non-stream objects returned from pipe() calls based on accessed properties 2025-05-22 12:31:26 +02:00
Napalys Klicius
5710f0cf51 Add test cases for non-stream field accesses and methods before and after pipe operations 2025-05-22 12:31:19 +02:00
Napalys Klicius
03d1f9a7d3 Restrict pipe detection to calls with 1-2 arguments 2025-05-21 11:41:22 +02:00
Napalys Klicius
30f2815503 Fixed issue where a custom pipe method which returns non stream would be flagged by the query 2025-05-21 11:41:19 +02:00
Napalys Klicius
ef1bde554a Fixed issue where streams would not be tracked via chainable methods 2025-05-21 11:40:35 +02:00
Napalys Klicius
f39bf62fc6 test: Add edge cases for stream pipe error handling
Add tests for chained stream methods and non-stream pipe objects
2025-05-21 11:39:03 +02:00
Napalys Klicius
c27157f021 Add UnhandledStreamPipee Quality query and tests to detect missing error handlers in Node.js streams 2025-05-21 11:38:57 +02:00
Asger F
d644f80921 JS: Remove obsolete meta query 2025-05-20 16:20:49 +02:00
Asger F
b698b4e5e2 JS: Add test for missing type flow through generics 2025-05-20 13:20:38 +02:00
Asger F
11607e5f62 JS: Update TRAP after extractor change 2025-05-20 13:20:36 +02:00
Asger F
9bcc62002d JS: Fix regression from global declare vars 2025-05-20 13:20:35 +02:00
Asger F
27979c6a2f JS: Add regression tests for declared globals 2025-05-20 13:20:34 +02:00
Asger F
b610e10122 JS: Accept change in handling of variable resolution in face of ambient declarations
This test enforced the opinion that ambient declarations should have no impact on data flow, which is no longer the case. For now I'm just updating the test output.
2025-05-20 13:20:33 +02:00
Asger F
22a41142de JS: Accept regression in overload resolution
Overload resolution has little impact on data flow analysis, because there we care about the concrete implementation of the function, which is the same for all overloads. It can affect the return type, which in turn can affect the call graph we generate, but we'll just have to accept this as overload resolution is too hard without negative recursion.
2025-05-20 13:20:31 +02:00
Asger F
de7d851195 JS: Update output of old HasUnderlyingType test 2025-05-20 13:20:30 +02:00
Asger F
bba872a3a4 JS: Make jump-to-def behave nicer 2025-05-20 13:20:28 +02:00
Asger F
b8dc1b3125 JS: Remove redundant casts 2025-05-20 13:20:27 +02:00
Asger F
fbafd6fff1 JS: Update to avoid deprecations after import resolution change 2025-05-20 13:20:26 +02:00
Asger F
e07a03619d JS: Mark type-annotated nodes as SourceNode 2025-05-20 13:20:24 +02:00
Asger F
6e82b6eb1f JS: Add failing test for assigning a non-SourceNode to a type annotated-value 2025-05-20 13:20:23 +02:00
Asger F
167f752301 JS: Also propagate through promise types 2025-05-20 13:20:21 +02:00
Asger F
500291dd54 JS: Hide shadowed inherited members 2025-05-20 13:20:20 +02:00
Asger F
f06b9a9b2b JS: Add call graph test with types 2025-05-20 13:20:19 +02:00
Asger F
307715a5cd JS: Use type resolution for CG augmentation 2025-05-20 13:20:17 +02:00
Asger F
57811edc44 JS: Some test updates 2025-05-20 13:20:16 +02:00
Asger F
989402d7b7 JS: Remove some dependencies on type extraction 2025-05-20 13:20:14 +02:00
Asger F
6ac35f1c66 JS: Use in MissingAwait 2025-05-20 13:20:13 +02:00
Asger F
4e44fdaa7b JS: Use hasUnderlyingStringOrAnyType in Nest model 2025-05-20 13:20:12 +02:00
Asger F
6fdd7feed4 JS: Use sanitizing primitive type in Nest model 2025-05-20 13:20:10 +02:00
Asger F
2d21074598 JS: Use sanitizing primitive types in ViewComponentInput 2025-05-20 13:20:09 +02:00
Asger F
9fd85c9688 JS: Update jQuery model 2025-05-20 13:20:07 +02:00
Asger F
cca48c09b9 JS: Use in TypeAnnotation.getClass and hasUnderlyingType predicates 2025-05-20 13:20:06 +02:00
Asger F
b923eac9be JS: Use underlying types in DataFlow::Node 2025-05-20 13:20:04 +02:00
Asger F
fc580a5f78 JS: Add TypeResolution.qll 2025-05-20 13:20:03 +02:00
Asger F
d61f576324 JS: Add UnderlyingTypes.qll 2025-05-20 13:20:01 +02:00
Asger F
1533e134a5 JS: Add NameResolution.qll 2025-05-20 13:20:00 +02:00
Asger F
1051136c07 JS: Add test 2025-05-20 13:19:58 +02:00
Asger F
4bfb0483a8 JS: Resolve JSDocLocalTypeAccess to a variable in scope 2025-05-20 13:19:57 +02:00
Asger F
9566265356 JS: Add helper for getting local type names 2025-05-20 13:19:56 +02:00
Asger F
4cd6f45572 JS: Avoid accidental recursion with API graphs 2025-05-20 13:19:54 +02:00
Asger F
b5a4fc0041 JS: Make Closure concepts based on AST instead 2025-05-20 13:19:52 +02:00
Asger F
50e4ac8298 JS: Do not ignore variables from ambient declarations 2025-05-20 13:19:51 +02:00
Asger F
9fc0b8c9cc JS: Add ImportSpecifier.getImportDeclaration() 2025-05-20 13:19:50 +02:00
Asger F
5064cd5d94 JS: Exclude externs from CallGraph meta-query 2025-05-20 13:19:48 +02:00
Asger F
317e61d370 JS: Update UnresolvableImports to handle nested packages 2025-05-19 12:53:19 +02:00
Asger F
1e8a49f311 JS: More efficient nested package naming 2025-05-19 12:53:18 +02:00
Michael Nebel
dabeddb62d Add change-notes. 2025-05-19 09:26:49 +02:00
Michael Nebel
530025b7ae Update integration tests expected output. 2025-05-19 09:26:47 +02:00
Michael Nebel
03ecd24469 Lower the precision of a range of harcoded password queries to remove them from query suites. 2025-05-19 09:26:45 +02:00
Napalys Klicius
f6a8909bfe Merge pull request #19356 from Napalys/js/merge_classes
JS: Merge `ES6Class` to `FunctionStyleClass`
2025-05-16 10:31:33 +02:00