|
8 | 8 |
|
9 | 9 | * Support for the following frameworks and libraries has been improved: |
10 | 10 | - [firebase](https://www.npmjs.com/package/firebase) |
| 11 | + - [get-them-args](https://www.npmjs.com/package/get-them-args) |
| 12 | + - [minimist](https://www.npmjs.com/package/minimist) |
11 | 13 | - [mongodb](https://www.npmjs.com/package/mongodb) |
12 | 14 | - [mongoose](https://www.npmjs.com/package/mongoose) |
| 15 | + - [optimist](https://www.npmjs.com/package/optimist) |
| 16 | + - [parse-torrent](https://www.npmjs.com/package/parse-torrent) |
13 | 17 | - [rate-limiter-flexible](https://www.npmjs.com/package/rate-limiter-flexible) |
| 18 | + - [yargs](https://www.npmjs.com/package/yargs) |
14 | 19 |
|
15 | 20 | * The call graph has been improved to resolve method calls in more cases. This may produce more security alerts. |
16 | 21 |
|
|
20 | 25 |
|
21 | 26 | | **Query** | **Tags** | **Purpose** | |
22 | 27 | |---------------------------------------------------------------------------|-------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |
23 | | -| Unused index variable (`js/unused-index-variable`) | correctness | Highlights loops that iterate over an array, but do not use the index variable to access array elements, indicating a possible typo or logic error. Results are shown on LGTM by default. | |
| 28 | +| Ignoring result from pure array method (`js/ignore-array-result`) | maintainability, correctness | Highlights calls to array methods without side effects where the return value is ignored. Results are shown on LGTM by default. | |
| 29 | +| Incomplete URL scheme check (`js/incomplete-url-scheme-check`) | security, correctness, external/cwe/cwe-020 | Highlights checks for `javascript:` URLs that do not take `data:` or `vbscript:` URLs into account. Results are shown on LGTM by default. | |
24 | 30 | | Loop bound injection (`js/loop-bound-injection`) | security, external/cwe/cwe-834 | Highlights loops where a user-controlled object with an arbitrary .length value can trick the server to loop indefinitely. Results are shown on LGTM by default. | |
25 | | -| Suspicious method name (`js/suspicious-method-name-declaration`) | correctness, typescript, methods | Highlights suspiciously named methods where the developer likely meant to write a constructor or function. Results are shown on LGTM by default. | |
26 | 31 | | Shell command built from environment values (`js/shell-command-injection-from-environment`) | correctness, security, external/cwe/cwe-078, external/cwe/cwe-088 | Highlights shell commands that may change behavior inadvertently depending on the execution environment, indicating a possible violation of [CWE-78](https://cwe.mitre.org/data/definitions/78.html). Results are shown on LGTM by default.| |
| 32 | +| Suspicious method name (`js/suspicious-method-name-declaration`) | correctness, typescript, methods | Highlights suspiciously named methods where the developer likely meant to write a constructor or function. Results are shown on LGTM by default. | |
| 33 | +| Unreachable method overloads (`js/unreachable-method-overloads`) | correctness, typescript | Highlights method overloads that are impossible to use from client code. Results are shown on LGTM by default. | |
| 34 | +| Unused index variable (`js/unused-index-variable`) | correctness | Highlights loops that iterate over an array, but do not use the index variable to access array elements, indicating a possible typo or logic error. Results are shown on LGTM by default. | |
27 | 35 | | Use of returnless function (`js/use-of-returnless-function`) | maintainability, correctness | Highlights calls where the return value is used, but the callee never returns a value. Results are shown on LGTM by default. | |
28 | 36 | | Useless regular expression character escape (`js/useless-regexp-character-escape`) | correctness, security, external/cwe/cwe-20 | Highlights regular expression strings with useless character escapes, indicating a possible violation of [CWE-20](https://cwe.mitre.org/data/definitions/20.html). Results are shown on LGTM by default. | |
29 | | -| Unreachable method overloads (`js/unreachable-method-overloads`) | correctness, typescript | Highlights method overloads that are impossible to use from client code. Results are shown on LGTM by default. | |
30 | | -| Ignoring result from pure array method (`js/ignore-array-result`) | maintainability, correctness | Highlights calls to array methods without side effects where the return value is ignored. Results are shown on LGTM by default. | |
31 | 37 |
|
32 | 38 | ## Changes to existing queries |
33 | 39 |
|
|
51 | 57 | ## Changes to libraries |
52 | 58 |
|
53 | 59 | * `Expr.getDocumentation()` now handles chain assignments. |
| 60 | +* String literals are now parsed as regular expressions. |
| 61 | + Consequently, a `RegExpTerm` may occur as part of a string literal or |
| 62 | + as a regular expression literal. Queries that search for regular expressions may need to |
| 63 | + use `RegExpTerm.isPartOfRegExpLiteral` or `RegExpTerm.isUsedAsRegExp` to restrict the search. |
| 64 | + A regular expression AST can be obtained from a string literal using `StringLiteral.asRegExp`. |
54 | 65 |
|
55 | 66 | ## Removal of deprecated queries |
56 | 67 |
|
|
0 commit comments