Asger F
67a1c2ffef
Update javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-09-01 10:20:17 +02:00
Asger F
c1df8a95cb
JS: Overlay extraction support
2025-08-19 09:19:55 +02:00
Taus
43accc50cd
JavaScript: Ignore outDirs that would exclude everything
...
In #19680 we added support for automatically ignoring files in the
`outDir` directory as specified in the TSconfig compiler options (as
these files were likely duplicates of `.ts` file we were already
scanning).
However, in some cases people put `outDir: "."` or even `outDir: ".."`
in their configuration, which had the side effect of excluding _all_
files, leading to a failed extraction.
With the changes in this PR, we now ignore any `outDir`s that are not
properly contained within the source root of the code being scanned.
This should prevent the files from being extracted, while still allowing
us to not double-scan files in, say, a `.github` directory, as seen in
some Actions workflows.
2025-07-11 13:28:59 +00:00
Asger F
2aad14771c
JS: Remove TypeScriptMode
2025-07-02 08:39:17 +02:00
Asger F
02cdde1447
JS: Fix imprecise condition
2025-06-25 14:31:28 +02:00
Asger F
74b817b642
JS: Remove code path for TypeScript full extraction
2025-06-25 14:31:05 +02:00
Asger F
8efa38be79
JS: Change default TypeScript extraction mode to basic
2025-06-23 12:55:20 +02:00
Taus
ac8b41a5da
Merge pull request #19680 from github/tausbn/javascript-exclude-obviously-generated-files
...
JavaScript: Don't extract obviously generated files
2025-06-20 15:52:39 +02:00
Taus
e3d9d92f25
JavaScript: Fix duplicate comment
2025-06-10 12:59:03 +00:00
Taus
f08c2fa387
JavaScript: Move tsconfig files into extractor.tsconfig package
...
Also make the indentation in `CompilerOptions.java` more consistent.
2025-06-10 12:58:48 +00:00
Taus
281ccf7c11
JavaScript: Extract tsconfig.json also in basic mode
...
This is needed for the logic that skips files inside the directory
specified in the `tsconfig.json` `outDir` compiler option.
2025-06-05 15:01:05 +00:00
Taus
8829f7820a
JavaScript: Don't extract files with TypeScript progenitors
2025-06-05 14:57:00 +00:00
Taus
14f50880e9
JavaScript: Don't extract files in tsconfig.json outDir
2025-06-05 14:56:59 +00:00
Asger F
50e4ac8298
JS: Do not ignore variables from ambient declarations
2025-05-20 13:19:51 +02:00
Asger F
359525b65a
JS: Extract more tsconfig.json patterns
2025-04-29 12:46:49 +02:00
Asger F
8c0b0c4800
JS: Ensure json files are extracted properly in tests
2025-04-29 12:46:20 +02:00
Asger F
152d6f3c29
JS: Tolerate trailing comma in JSON objects
2025-04-28 10:56:48 +02:00
Asger F
cfa1a9b603
JS: Update extractor version string
2025-04-10 07:20:53 +02:00
Asger F
1434f7acd2
JS: Tolerate trailing comma in JSON array
...
Previously we'd fail to extract some tsconfig.json files because of this.
2025-04-10 07:20:51 +02:00
Asger F
ee867e99c7
Merge pull request #19117 from lcartey/lcartey/support-sap-json-formats
...
JavaScript: Add support for indexing additional SAP related JSON files
2025-03-31 10:30:11 +02:00
Asger F
c8817d9667
JS: Parse with proper locations
2025-03-27 11:51:23 +01:00
Asger F
cc2bec0808
JS: Ensure correct value is used in parseNameExpression()
...
The call to expect() below here updates 'token' and 'value' to that of the NEXT token (not the name).
The code happened to work because the 'value' field is only updated if a token with a relevant value is found. E.g. if a name token could be followed by another name, then we would have seen the wrong name here.
2025-03-27 11:51:21 +01:00
Asger F
fa53ff9f3e
JS: Update extractor version string
2025-03-27 11:51:16 +01:00
Asger F
3a6089740e
JS: Separate JSDoc qualified names into individual identifiers
2025-03-27 11:51:14 +01:00
Asger F
c61454b5ca
JS: Remove unused 'spec' field
2025-03-27 11:51:13 +01:00
Luke Cartey
8814077c76
Add support for additional SAP JSON formats.
2025-03-25 17:01:37 +00:00
Asger F
bf9d7484e4
JS: Use StringBuilder when building up type name
...
This code was a bit of a performance cringe. It copied every character
into a temporary array, copied that into a String, and slow-appended
that onto another String.
Note that the call to Characters.toChars is redundant here as advance()
doesn't return a code point; it returns -1 or a UTF-16 char. The -1 case
is checked for before reaching the call, so we can just cast it to
a char and use it directly.
We use a StringBuilder to accumulate the string. Normally it's faster
to track the start/end indices and do a substring(), but that won't
work in the JSDoc extractor because of the star-skipping logic in
advance().
2025-03-20 09:43:10 +01:00
Napalys
c93be70053
Rename validation methods for type expressions and added recursive call for type validation.
...
Co-authored-by: Asgerf <asgerf@github.com >
2025-03-14 14:58:27 +01:00
Napalys
1468e81c55
Ensure interface extends valid expr.
2025-03-14 13:41:37 +01:00
Napalys Klicius
3191b2c6fc
Update javascript/extractor/src/com/semmle/js/parser/RegExpParser.java
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2025-03-11 09:40:24 +01:00
Napalys
08c07f815f
Improved documentation, removed union fram change note.
2025-03-11 08:30:17 +01:00
Napalys
9c8e0a5537
Applied changes from comments.
...
Co-authored-by: Asgerf <asgerf@github.com >
2025-03-10 13:29:05 +01:00
Napalys
95d05ceab8
Now store vFlagEnabled instead of each time searching for it.
...
Added `uFlagEnabled` for checking how should `\p{}` be treated. And small optimization.
2025-03-05 10:34:38 +01:00
Napalys
8086c25abe
Removed Union as standard character class is already an union.
2025-03-05 10:07:20 +01:00
Napalys
8099423b6d
Renamed character class operators lists to elements.
2025-03-05 09:34:21 +01:00
Napalys
fe6de2f672
Added support for character class union in regex processing
2025-03-03 14:37:46 +01:00
Napalys
3664d50772
Added support for -- subtraction opetor.
2025-03-03 14:37:43 +01:00
Napalys
381b5ebe8a
Added intersection support
2025-03-03 14:37:40 +01:00
Napalys
2333c538d9
Added ability to parse nested character classes while using v flag.
2025-03-03 14:37:38 +01:00
Napalys
ed418be97a
Add support for '\q{}' escape sequence in regular expressions.
2025-03-03 14:37:20 +01:00
Napalys
cb448db3ce
Exposed flags to the regex parser
2025-03-02 17:08:52 +01:00
Asger F
b3f7cd988b
JS: Extract TS snippets with no tsconfig.json file
2025-02-18 12:43:13 +01:00
erik-krogh
55b8e8b748
fix the ECMAScript version to be ES2024
2025-02-16 19:06:14 +01:00
Napalys
4097aa9f78
JS: Added ecma2021, thus extractor now can deal with RegExp v flag
2025-02-16 18:31:06 +01:00
Asger F
6ae06aed9e
Update javascript/extractor/src/com/semmle/js/extractor/CFGExtractor.java
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-02-06 10:03:28 +01:00
Asger F
f0afd6aa5f
Merge branch 'main' into js/hoist-in-block
2025-02-04 14:01:57 +01:00
Asger F
1e5885ea1e
JS: Remove hoisting code from functions
...
'buildFunctionBody' no longer needs to handle hoisting, because hoisting now happens when visiting the block statement that is the body of the function.
Note that curly-brace functions contain a block statement as their body, not a list of statements.
2025-02-04 10:41:47 +01:00
Asger F
427e329363
JS: Bump extractor version string
2025-02-03 15:21:41 +01:00
Asger F
be082578d4
JS: Hoist function decls in a block to the top of the block
2025-02-03 15:21:08 +01:00
Asger F
2d36a5d478
JS: Use JSX syntax in first attempt when extension is .jsx
2025-02-03 13:17:15 +01:00