mirror of
https://github.com/github/codeql.git
synced 2026-05-02 20:25:13 +02:00
better support for the &&=, ||=, and ??= operators
This commit is contained in:
9
javascript/ql/test/library-tests/Expr/assignment2.ts
Normal file
9
javascript/ql/test/library-tests/Expr/assignment2.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
let a = 2;
|
||||
let b = 3;
|
||||
|
||||
a = 23;
|
||||
a += 19;
|
||||
|
||||
a &&= 4;
|
||||
a ||= 5;
|
||||
a ??= 6;
|
||||
@@ -1,4 +1,25 @@
|
||||
test_getParent
|
||||
| assignment2.ts:1:5:1:5 | a | assignment2.ts:1:5:1:9 | a = 2 |
|
||||
| assignment2.ts:1:5:1:9 | a = 2 | assignment2.ts:1:1:1:10 | let a = 2; |
|
||||
| assignment2.ts:1:9:1:9 | 2 | assignment2.ts:1:5:1:9 | a = 2 |
|
||||
| assignment2.ts:2:5:2:5 | b | assignment2.ts:2:5:2:9 | b = 3 |
|
||||
| assignment2.ts:2:5:2:9 | b = 3 | assignment2.ts:2:1:2:10 | let b = 3; |
|
||||
| assignment2.ts:2:9:2:9 | 3 | assignment2.ts:2:5:2:9 | b = 3 |
|
||||
| assignment2.ts:4:1:4:1 | a | assignment2.ts:4:1:4:6 | a = 23 |
|
||||
| assignment2.ts:4:1:4:6 | a = 23 | assignment2.ts:4:1:4:7 | a = 23; |
|
||||
| assignment2.ts:4:5:4:6 | 23 | assignment2.ts:4:1:4:6 | a = 23 |
|
||||
| assignment2.ts:5:1:5:1 | a | assignment2.ts:5:1:5:7 | a += 19 |
|
||||
| assignment2.ts:5:1:5:7 | a += 19 | assignment2.ts:5:1:5:8 | a += 19; |
|
||||
| assignment2.ts:5:6:5:7 | 19 | assignment2.ts:5:1:5:7 | a += 19 |
|
||||
| assignment2.ts:7:1:7:1 | a | assignment2.ts:7:1:7:7 | a &&= 4 |
|
||||
| assignment2.ts:7:1:7:7 | a &&= 4 | assignment2.ts:7:1:7:8 | a &&= 4; |
|
||||
| assignment2.ts:7:7:7:7 | 4 | assignment2.ts:7:1:7:7 | a &&= 4 |
|
||||
| assignment2.ts:8:1:8:1 | a | assignment2.ts:8:1:8:7 | a \|\|= 5 |
|
||||
| assignment2.ts:8:1:8:7 | a \|\|= 5 | assignment2.ts:8:1:8:8 | a \|\|= 5; |
|
||||
| assignment2.ts:8:7:8:7 | 5 | assignment2.ts:8:1:8:7 | a \|\|= 5 |
|
||||
| assignment2.ts:9:1:9:1 | a | assignment2.ts:9:1:9:7 | a ??= 6 |
|
||||
| assignment2.ts:9:1:9:7 | a ??= 6 | assignment2.ts:9:1:9:8 | a ??= 6; |
|
||||
| assignment2.ts:9:7:9:7 | 6 | assignment2.ts:9:1:9:7 | a ??= 6 |
|
||||
| assignment.js:1:1:1:1 | a | assignment.js:1:1:1:6 | a = 23 |
|
||||
| assignment.js:1:1:1:6 | a = 23 | assignment.js:1:1:1:7 | a = 23; |
|
||||
| assignment.js:1:5:1:6 | 23 | assignment.js:1:1:1:6 | a = 23 |
|
||||
@@ -468,6 +489,27 @@ test_getParent
|
||||
| update.js:4:1:4:1 | b | update.js:4:1:4:3 | b-- |
|
||||
| update.js:4:1:4:3 | b-- | update.js:4:1:4:4 | b--; |
|
||||
test_getTopLevel
|
||||
| assignment2.ts:1:5:1:5 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:1:5:1:9 | a = 2 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:1:9:1:9 | 2 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:2:5:2:5 | b | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:2:5:2:9 | b = 3 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:2:9:2:9 | 3 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:4:1:4:1 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:4:1:4:6 | a = 23 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:4:5:4:6 | 23 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:5:1:5:1 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:5:1:5:7 | a += 19 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:5:6:5:7 | 19 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:7:1:7:1 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:7:1:7:7 | a &&= 4 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:7:7:7:7 | 4 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:8:1:8:1 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:8:1:8:7 | a \|\|= 5 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:8:7:8:7 | 5 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:9:1:9:1 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:9:1:9:7 | a ??= 6 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:9:7:9:7 | 6 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment.js:1:1:1:1 | a | assignment.js:1:1:12:7 | <toplevel> |
|
||||
| assignment.js:1:1:1:6 | a = 23 | assignment.js:1:1:12:7 | <toplevel> |
|
||||
| assignment.js:1:5:1:6 | 23 | assignment.js:1:1:12:7 | <toplevel> |
|
||||
@@ -937,6 +979,20 @@ test_getTopLevel
|
||||
| update.js:4:1:4:1 | b | update.js:1:1:5:0 | <toplevel> |
|
||||
| update.js:4:1:4:3 | b-- | update.js:1:1:5:0 | <toplevel> |
|
||||
test_getChild
|
||||
| assignment2.ts:1:5:1:9 | a = 2 | 0 | assignment2.ts:1:5:1:5 | a |
|
||||
| assignment2.ts:1:5:1:9 | a = 2 | 1 | assignment2.ts:1:9:1:9 | 2 |
|
||||
| assignment2.ts:2:5:2:9 | b = 3 | 0 | assignment2.ts:2:5:2:5 | b |
|
||||
| assignment2.ts:2:5:2:9 | b = 3 | 1 | assignment2.ts:2:9:2:9 | 3 |
|
||||
| assignment2.ts:4:1:4:6 | a = 23 | 0 | assignment2.ts:4:1:4:1 | a |
|
||||
| assignment2.ts:4:1:4:6 | a = 23 | 1 | assignment2.ts:4:5:4:6 | 23 |
|
||||
| assignment2.ts:5:1:5:7 | a += 19 | 0 | assignment2.ts:5:1:5:1 | a |
|
||||
| assignment2.ts:5:1:5:7 | a += 19 | 1 | assignment2.ts:5:6:5:7 | 19 |
|
||||
| assignment2.ts:7:1:7:7 | a &&= 4 | 0 | assignment2.ts:7:1:7:1 | a |
|
||||
| assignment2.ts:7:1:7:7 | a &&= 4 | 1 | assignment2.ts:7:7:7:7 | 4 |
|
||||
| assignment2.ts:8:1:8:7 | a \|\|= 5 | 0 | assignment2.ts:8:1:8:1 | a |
|
||||
| assignment2.ts:8:1:8:7 | a \|\|= 5 | 1 | assignment2.ts:8:7:8:7 | 5 |
|
||||
| assignment2.ts:9:1:9:7 | a ??= 6 | 0 | assignment2.ts:9:1:9:1 | a |
|
||||
| assignment2.ts:9:1:9:7 | a ??= 6 | 1 | assignment2.ts:9:7:9:7 | 6 |
|
||||
| assignment.js:1:1:1:6 | a = 23 | 0 | assignment.js:1:1:1:1 | a |
|
||||
| assignment.js:1:1:1:6 | a = 23 | 1 | assignment.js:1:5:1:6 | 23 |
|
||||
| assignment.js:2:1:2:7 | a += 19 | 0 | assignment.js:2:1:2:1 | a |
|
||||
@@ -1213,6 +1269,20 @@ test_getChild
|
||||
| update.js:3:1:3:3 | --b | 0 | update.js:3:3:3:3 | b |
|
||||
| update.js:4:1:4:3 | b-- | 0 | update.js:4:1:4:1 | b |
|
||||
test_isPure
|
||||
| assignment2.ts:1:5:1:5 | a |
|
||||
| assignment2.ts:1:9:1:9 | 2 |
|
||||
| assignment2.ts:2:5:2:5 | b |
|
||||
| assignment2.ts:2:9:2:9 | 3 |
|
||||
| assignment2.ts:4:1:4:1 | a |
|
||||
| assignment2.ts:4:5:4:6 | 23 |
|
||||
| assignment2.ts:5:1:5:1 | a |
|
||||
| assignment2.ts:5:6:5:7 | 19 |
|
||||
| assignment2.ts:7:1:7:1 | a |
|
||||
| assignment2.ts:7:7:7:7 | 4 |
|
||||
| assignment2.ts:8:1:8:1 | a |
|
||||
| assignment2.ts:8:7:8:7 | 5 |
|
||||
| assignment2.ts:9:1:9:1 | a |
|
||||
| assignment2.ts:9:7:9:7 | 6 |
|
||||
| assignment.js:1:1:1:1 | a |
|
||||
| assignment.js:1:5:1:6 | 23 |
|
||||
| assignment.js:2:1:2:1 | a |
|
||||
@@ -1708,6 +1778,27 @@ test_stripParens
|
||||
| primaries.js:28:2:28:5 | (42) | primaries.js:28:3:28:4 | 42 |
|
||||
| unary.js:6:5:6:7 | (0) | unary.js:6:6:6:6 | 0 |
|
||||
test_getContainer
|
||||
| assignment2.ts:1:5:1:5 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:1:5:1:9 | a = 2 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:1:9:1:9 | 2 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:2:5:2:5 | b | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:2:5:2:9 | b = 3 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:2:9:2:9 | 3 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:4:1:4:1 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:4:1:4:6 | a = 23 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:4:5:4:6 | 23 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:5:1:5:1 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:5:1:5:7 | a += 19 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:5:6:5:7 | 19 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:7:1:7:1 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:7:1:7:7 | a &&= 4 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:7:7:7:7 | 4 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:8:1:8:1 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:8:1:8:7 | a \|\|= 5 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:8:7:8:7 | 5 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:9:1:9:1 | a | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:9:1:9:7 | a ??= 6 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment2.ts:9:7:9:7 | 6 | assignment2.ts:1:1:9:8 | <toplevel> |
|
||||
| assignment.js:1:1:1:1 | a | assignment.js:1:1:12:7 | <toplevel> |
|
||||
| assignment.js:1:1:1:6 | a = 23 | assignment.js:1:1:12:7 | <toplevel> |
|
||||
| assignment.js:1:5:1:6 | 23 | assignment.js:1:1:12:7 | <toplevel> |
|
||||
@@ -2177,6 +2268,27 @@ test_getContainer
|
||||
| update.js:4:1:4:1 | b | update.js:1:1:5:0 | <toplevel> |
|
||||
| update.js:4:1:4:3 | b-- | update.js:1:1:5:0 | <toplevel> |
|
||||
test_getEnclosingStmt
|
||||
| assignment2.ts:1:5:1:5 | a | assignment2.ts:1:1:1:10 | let a = 2; |
|
||||
| assignment2.ts:1:5:1:9 | a = 2 | assignment2.ts:1:1:1:10 | let a = 2; |
|
||||
| assignment2.ts:1:9:1:9 | 2 | assignment2.ts:1:1:1:10 | let a = 2; |
|
||||
| assignment2.ts:2:5:2:5 | b | assignment2.ts:2:1:2:10 | let b = 3; |
|
||||
| assignment2.ts:2:5:2:9 | b = 3 | assignment2.ts:2:1:2:10 | let b = 3; |
|
||||
| assignment2.ts:2:9:2:9 | 3 | assignment2.ts:2:1:2:10 | let b = 3; |
|
||||
| assignment2.ts:4:1:4:1 | a | assignment2.ts:4:1:4:7 | a = 23; |
|
||||
| assignment2.ts:4:1:4:6 | a = 23 | assignment2.ts:4:1:4:7 | a = 23; |
|
||||
| assignment2.ts:4:5:4:6 | 23 | assignment2.ts:4:1:4:7 | a = 23; |
|
||||
| assignment2.ts:5:1:5:1 | a | assignment2.ts:5:1:5:8 | a += 19; |
|
||||
| assignment2.ts:5:1:5:7 | a += 19 | assignment2.ts:5:1:5:8 | a += 19; |
|
||||
| assignment2.ts:5:6:5:7 | 19 | assignment2.ts:5:1:5:8 | a += 19; |
|
||||
| assignment2.ts:7:1:7:1 | a | assignment2.ts:7:1:7:8 | a &&= 4; |
|
||||
| assignment2.ts:7:1:7:7 | a &&= 4 | assignment2.ts:7:1:7:8 | a &&= 4; |
|
||||
| assignment2.ts:7:7:7:7 | 4 | assignment2.ts:7:1:7:8 | a &&= 4; |
|
||||
| assignment2.ts:8:1:8:1 | a | assignment2.ts:8:1:8:8 | a \|\|= 5; |
|
||||
| assignment2.ts:8:1:8:7 | a \|\|= 5 | assignment2.ts:8:1:8:8 | a \|\|= 5; |
|
||||
| assignment2.ts:8:7:8:7 | 5 | assignment2.ts:8:1:8:8 | a \|\|= 5; |
|
||||
| assignment2.ts:9:1:9:1 | a | assignment2.ts:9:1:9:8 | a ??= 6; |
|
||||
| assignment2.ts:9:1:9:7 | a ??= 6 | assignment2.ts:9:1:9:8 | a ??= 6; |
|
||||
| assignment2.ts:9:7:9:7 | 6 | assignment2.ts:9:1:9:8 | a ??= 6; |
|
||||
| assignment.js:1:1:1:1 | a | assignment.js:1:1:1:7 | a = 23; |
|
||||
| assignment.js:1:1:1:6 | a = 23 | assignment.js:1:1:1:7 | a = 23; |
|
||||
| assignment.js:1:5:1:6 | 23 | assignment.js:1:1:1:7 | a = 23; |
|
||||
@@ -2612,6 +2724,14 @@ test_getEnclosingStmt
|
||||
| update.js:4:1:4:1 | b | update.js:4:1:4:4 | b--; |
|
||||
| update.js:4:1:4:3 | b-- | update.js:4:1:4:4 | b--; |
|
||||
test_inNullSensitiveContext
|
||||
| assignment2.ts:5:1:5:1 | a |
|
||||
| assignment2.ts:5:6:5:7 | 19 |
|
||||
| assignment2.ts:7:1:7:1 | a |
|
||||
| assignment2.ts:7:7:7:7 | 4 |
|
||||
| assignment2.ts:8:1:8:1 | a |
|
||||
| assignment2.ts:8:7:8:7 | 5 |
|
||||
| assignment2.ts:9:1:9:1 | a |
|
||||
| assignment2.ts:9:7:9:7 | 6 |
|
||||
| assignment.js:2:1:2:1 | a |
|
||||
| assignment.js:2:6:2:7 | 19 |
|
||||
| assignment.js:3:1:3:1 | a |
|
||||
|
||||
@@ -3048,6 +3048,239 @@ nodes
|
||||
| torrents.js:7:25:7:27 | loc |
|
||||
| torrents.js:7:25:7:27 | loc |
|
||||
| torrents.js:7:25:7:27 | loc |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:24:9:30 | req.url |
|
||||
| typescript.ts:9:24:9:30 | req.url |
|
||||
| typescript.ts:9:24:9:30 | req.url |
|
||||
| typescript.ts:9:24:9:30 | req.url |
|
||||
| typescript.ts:9:24:9:30 | req.url |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:32:29:32:33 | path6 |
|
||||
| views.js:1:43:1:55 | req.params[0] |
|
||||
| views.js:1:43:1:55 | req.params[0] |
|
||||
| views.js:1:43:1:55 | req.params[0] |
|
||||
@@ -7362,6 +7595,310 @@ edges
|
||||
| torrents.js:6:24:6:27 | name | torrents.js:6:12:6:45 | dir + " ... t.data" |
|
||||
| torrents.js:6:24:6:27 | name | torrents.js:6:12:6:45 | dir + " ... t.data" |
|
||||
| torrents.js:6:24:6:27 | name | torrents.js:6:12:6:45 | dir + " ... t.data" |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:12:29:12:32 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:20:15:20:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:23:15:23:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:7:9:48 | path | typescript.ts:30:15:30:18 | path |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:37 | url.par ... , true) | typescript.ts:9:14:9:43 | url.par ... ).query |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:43 | url.par ... ).query | typescript.ts:9:14:9:48 | url.par ... ry.path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:14:9:48 | url.par ... ry.path | typescript.ts:9:7:9:48 | path |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:9:24:9:30 | req.url | typescript.ts:9:14:9:37 | url.par ... , true) |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:7:20:18 | path3 | typescript.ts:21:39:21:43 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:20:15:20:18 | path | typescript.ts:20:7:20:18 | path3 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:7:23:18 | path4 | typescript.ts:24:39:24:43 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:23:15:23:18 | path | typescript.ts:23:7:23:18 | path4 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:7:30:18 | path6 | typescript.ts:32:29:32:33 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| typescript.ts:30:15:30:18 | path | typescript.ts:30:7:30:18 | path6 |
|
||||
| views.js:1:43:1:55 | req.params[0] | views.js:1:43:1:55 | req.params[0] |
|
||||
#select
|
||||
| TaintedPath-es6.js:10:26:10:45 | join("public", path) | TaintedPath-es6.js:7:20:7:26 | req.url | TaintedPath-es6.js:10:26:10:45 | join("public", path) | This path depends on $@. | TaintedPath-es6.js:7:20:7:26 | req.url | a user-provided value |
|
||||
@@ -7497,4 +8034,8 @@ edges
|
||||
| tainted-string-steps.js:26:18:26:45 | path.sp ... hatever | tainted-string-steps.js:6:24:6:30 | req.url | tainted-string-steps.js:26:18:26:45 | path.sp ... hatever | This path depends on $@. | tainted-string-steps.js:6:24:6:30 | req.url | a user-provided value |
|
||||
| tainted-string-steps.js:27:18:27:36 | path.split(unknown) | tainted-string-steps.js:6:24:6:30 | req.url | tainted-string-steps.js:27:18:27:36 | path.split(unknown) | This path depends on $@. | tainted-string-steps.js:6:24:6:30 | req.url | a user-provided value |
|
||||
| torrents.js:7:25:7:27 | loc | torrents.js:5:13:5:38 | parseTo ... t).name | torrents.js:7:25:7:27 | loc | This path depends on $@. | torrents.js:5:13:5:38 | parseTo ... t).name | a user-provided value |
|
||||
| typescript.ts:12:29:12:32 | path | typescript.ts:9:24:9:30 | req.url | typescript.ts:12:29:12:32 | path | This path depends on $@. | typescript.ts:9:24:9:30 | req.url | a user-provided value |
|
||||
| typescript.ts:21:39:21:43 | path3 | typescript.ts:9:24:9:30 | req.url | typescript.ts:21:39:21:43 | path3 | This path depends on $@. | typescript.ts:9:24:9:30 | req.url | a user-provided value |
|
||||
| typescript.ts:24:39:24:43 | path4 | typescript.ts:9:24:9:30 | req.url | typescript.ts:24:39:24:43 | path4 | This path depends on $@. | typescript.ts:9:24:9:30 | req.url | a user-provided value |
|
||||
| typescript.ts:32:29:32:33 | path6 | typescript.ts:9:24:9:30 | req.url | typescript.ts:32:29:32:33 | path6 | This path depends on $@. | typescript.ts:9:24:9:30 | req.url | a user-provided value |
|
||||
| views.js:1:43:1:55 | req.params[0] | views.js:1:43:1:55 | req.params[0] | views.js:1:43:1:55 | req.params[0] | This path depends on $@. | views.js:1:43:1:55 | req.params[0] | a user-provided value |
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
var fs = require('fs'),
|
||||
http = require('http'),
|
||||
url = require('url'),
|
||||
sanitize = require('sanitize-filename'),
|
||||
pathModule = require('path')
|
||||
;
|
||||
|
||||
var server = http.createServer(function(req, res) {
|
||||
let path = url.parse(req.url, true).query.path;
|
||||
|
||||
// BAD: This could read any file on the file system
|
||||
res.write(fs.readFileSync(path));
|
||||
|
||||
if (path === 'foo.txt')
|
||||
res.write(fs.readFileSync(path)); // GOOD: Path is compared to white-list
|
||||
|
||||
let path2 = path;
|
||||
path2 ||= res.write(fs.readFileSync(path2)); // GOOD: path is falsy
|
||||
|
||||
let path3 = path;
|
||||
path3 &&= res.write(fs.readFileSync(path3)); // BAD: path is truthy
|
||||
|
||||
let path4 = path;
|
||||
path4 ??= res.write(fs.readFileSync(path4)); // GOOD - path is null or undefined - but we don't capture that. [INCONSISTENCY]
|
||||
|
||||
let path5 = path;
|
||||
path5 &&= "clean";
|
||||
res.write(fs.readFileSync(path5)); // GOOD: path is either falsy or "clean";
|
||||
|
||||
let path6 = path;
|
||||
path6 ||= "clean";
|
||||
res.write(fs.readFileSync(path6)); // BAD: path can still be tainted
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user