René's URL Explorer Experiment


Title: JavaScript: Migrate the TypeScript parser to TypeScript 7.1 (based on Go) by paldepind · Pull Request #22841 · github/codeql · GitHub

Open Graph Title: JavaScript: Migrate the TypeScript parser to TypeScript 7.1 (based on Go) by paldepind · Pull Request #22841 · github/codeql

X Title: JavaScript: Migrate the TypeScript parser to TypeScript 7.1 (based on Go) by paldepind · Pull Request #22841 · github/codeql

Description: Migrate the TypeScript dependency in the TypeScript extractor to 7.1. This entail: Fairly large changes to the wrapper around TypeScript. Serializing AST nodes to JSON is now a bit harder, since the new node types allow access to children through getters, and these getters are available on every node kind. So we can't just iterate over properties on the nodes. To handle this pull in dist/api/node/protocol.generated.js which contains a map from node kinds to the children. This is hacky (the API is not public) but it works. Changes to the bazel build as we now need to include native binaries in the distribution. These binaries are not included in the typescript npm package. Instead they're in sibling packages. For instance @typescript/typescript-linux-x64 contains the binary for Linux on x86. Note to reviewer: This code was created with heavy LLM assistance and I'm not familiar with the code base, but I've done my best to review and polish up things. I've focused primarily on the core of the TypeScript part (main.ts and ast_extractor.ts) as well as the Bazel changes. I've mostly skimmed the changes to the Java part. Beware: The changes to javascript/extractor/lib/typescript/README.md are full of junk that we certainly don't want to merge. I've left them in just in case they're useful for a review, but I propose that we simply undo those changes before merging. Copilot has added a lot of tests and some of them don't even run in CI. I suspect that we have enough verification as-is and that we don't really need them. But again, if left them in just so that a reviewer has a chance to see them.

Open Graph Description: Migrate the TypeScript dependency in the TypeScript extractor to 7.1. This entail: Fairly large changes to the wrapper around TypeScript. Serializing AST nodes to JSON is now a bit harder, since t...

X Description: Migrate the TypeScript dependency in the TypeScript extractor to 7.1. This entail: Fairly large changes to the wrapper around TypeScript. Serializing AST nodes to JSON is now a bit harder, since t...

Opengraph URL: https://github.com/github/codeql/pull/22841

X: @github

direct link

Domain: github.com

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:b2b9a408-769e-6815-386b-3e6989628a47
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idC4F2:5FBD3:D2259E:125ECC9:6AF89120
html-safe-noncef7dd645d73c2e9b09fa7f50553d435b8c96b0d9347b51ff0dff5c29ee0a26d03
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDNEYyOjVGQkQzOkQyMjU5RToxMjVFQ0M5OjZBRjg5MTIwIiwidmlzaXRvcl9pZCI6IjY1NTg0ODI2MzU1MDcxNDI5NDQiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac7134b0822fd3efe531983a42db391d8529a10169f022c0adfa48520e746aad25
hovercard-subject-tagpull_request:4919174942
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/github/codeql/pull/22841/files
twitter:imagehttps://avatars.githubusercontent.com/u/521604?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/521604?s=400&v=4
og:image:altMigrate the TypeScript dependency in the TypeScript extractor to 7.1. This entail: Fairly large changes to the wrapper around TypeScript. Serializing AST nodes to JSON is now a bit harder, since t...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None612d3e6ffd693e7ea8d9fcf452370995872baef31d825b1fedef704cd3d24ac7
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/github/codeql git https://github.com/github/codeql.git
octolytics-dimension-user_id9919
octolytics-dimension-user_logingithub
octolytics-dimension-repository_id143040428
octolytics-dimension-repository_nwogithub/codeql
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id143040428
octolytics-dimension-repository_network_root_nwogithub/codeql
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release072e34035c13c31543fba9f025cbbbda4210dae4
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/github/codeql/pull/22841/files#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fgithub%2Fcodeql%2Fpull%2F22841%2Ffiles
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fgithub%2Fcodeql%2Fpull%2F22841%2Ffiles
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=github%2Fcodeql
Reloadhttps://github.com/github/codeql/pull/22841/files
Reloadhttps://github.com/github/codeql/pull/22841/files
Reloadhttps://github.com/github/codeql/pull/22841/files
githubhttps://github.com/github
codeqlhttps://github.com/github/codeql
Codehttps://github.com/github/codeql
Issues1k (1k)https://github.com/github/codeql/issues
Pull requests516 (516)https://github.com/github/codeql/pulls
Discussionshttps://github.com/github/codeql/discussions
Actionshttps://github.com/github/codeql/actions
Projectshttps://github.com/github/codeql/projects
Security and qualityhttps://github.com/github/codeql/security
Insightshttps://github.com/github/codeql/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fgithub%2Fcodeql%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fgithub%2Fcodeql%2Fissues%2Fnew%2Fchoose
paldepindhttps://github.com/paldepind
mainhttps://github.com/github/codeql/tree/main
js/typescript-7.1https://github.com/github/codeql/tree/js/typescript-7.1
Conversation 15 https://github.com/github/codeql/pull/22841
Commits 10 https://github.com/github/codeql/pull/22841/commits
Checks 20 https://github.com/github/codeql/pull/22841/checks
Findings https://github.com/github/codeql/pull/22841/findings
Files changed https://github.com/github/codeql/pull/22841/files
Please reload this pagehttps://github.com/github/codeql/pull/22841/files
JavaScript: Migrate the TypeScript parser to TypeScript 7.1 (based on Go) https://github.com/github/codeql/pull/22841/files#top
Show all changes 10 commits https://github.com/github/codeql/pull/22841/files
f63b850 Build: Support architecture overrides for imported ZIP archives paldepind Oct 19, 2026 https://github.com/github/codeql/pull/22841/commits/f63b850f27bbd8479b0fddb2fc3a2e7b62bf795f
dba7357 JS: Package native TypeScript runtimes by distribution paldepind Oct 19, 2026 https://github.com/github/codeql/pull/22841/commits/dba7357fe1bc0c654cee1dd681bdff293412f695
9c7f582 JS: Migrate the parser to native TypeScript 7.1 paldepind Oct 19, 2026 https://github.com/github/codeql/pull/22841/commits/9c7f5824c330ef0a26d009c009d08ac75d125f3c
e648d08 JS: Classify native parser crashes consistently after pipe errors paldepind Oct 19, 2026 https://github.com/github/codeql/pull/22841/commits/e648d08d12b3a0708409ee9a72fbfd8d90449f7c
6493379 JS: Document the native TypeScript parser and runtime requirements paldepind Oct 19, 2026 https://github.com/github/codeql/pull/22841/commits/6493379a39353a6795290dcab3d9d4c3c92007a9
fbc23c6 JS: Delete tests paldepind Nov 2, 2026 https://github.com/github/codeql/pull/22841/commits/fbc23c6f6caae7204b68acfe7d3efb6eb9ecd98a
11ca2cf JS: Remove junk from readme paldepind Nov 3, 2026 https://github.com/github/codeql/pull/22841/commits/11ca2cf0f1056eb33938e36b28194982cd0fad7c
fdf0b18 Merge origin/main into js/typescript-7.1 paldepind Nov 9, 2026 https://github.com/github/codeql/pull/22841/commits/fdf0b18946f85e46944f16ff63cbdbac40d0aec6
2dec3c6 JS: Fix extractor entering infinite loop for `#` in JSX paldepind Nov 13, 2026 https://github.com/github/codeql/pull/22841/commits/2dec3c69f4048a47b0448ba4e6042201561f64b6
cd04bcf JS: Use JSX comments for Relay test expectations paldepind Nov 13, 2026 https://github.com/github/codeql/pull/22841/commits/cd04bcf469c02d02dd749528d210c4d69177414e
Clear filters https://github.com/github/codeql/pull/22841/files
Please reload this pagehttps://github.com/github/codeql/pull/22841/files
Please reload this pagehttps://github.com/github/codeql/pull/22841/files
system-requirements.rst https://github.com/github/codeql/pull/22841/files#diff-e6e4d9ce72e23328615d9d2b741d95513ec5a79ee9641e9a30b6beb564329412
BUILD.bazel https://github.com/github/codeql/pull/22841/files#diff-4e6c972fc9def792d9bf599d1333ba33792bfe9fe626e87eda2abdc555da8895
BUILD.bazel https://github.com/github/codeql/pull/22841/files#diff-fa0c09c5e050d77a509dc936437500efca237bd437a7a5df62bb2130d009ea54
package-lock.json https://github.com/github/codeql/pull/22841/files#diff-b6726146993d8548d776f6e9833ac9e6a6c18677c8204197f433feae8b3a1534
package-runtime.mjs https://github.com/github/codeql/pull/22841/files#diff-e4e88990c19e91f53f70fb610fa6c16de1ad0d4857e9136145cd07b35d8d3c88
package.json https://github.com/github/codeql/pull/22841/files#diff-683e5feb284d00ab4fce2a4cbfb0f53fb410acc6ae2ddf04db60daa79ad4399e
ast_extractor.ts https://github.com/github/codeql/pull/22841/files#diff-fb9abbf10d9e177b0cc800c0819871f2cd997c3b504914cbf2185274efc8253a
main.ts https://github.com/github/codeql/pull/22841/files#diff-ae9cb8c7ab2b8622a84b032f9529817adc5c06f123ad107e03e0cef73c9a52bb
tsconfig.json https://github.com/github/codeql/pull/22841/files#diff-427903d5475135789aeaa71592cbd28af095d38110fe52cf9e98603a198c831e
TypeScriptASTConverter.java https://github.com/github/codeql/pull/22841/files#diff-cc44112c6e8d612ffee22a5f3601bb288df186b8cd4c39cbf5b0b58cc8181af4
TypeScriptParser.java https://github.com/github/codeql/pull/22841/files#diff-8f81f2efff69cde0fd27f9cd5d3b041bf24b6e64edc5c461f0d4370f5c168188
AllTests.java https://github.com/github/codeql/pull/22841/files#diff-ff9ab2c8f3d2b8c7c783894047c007c920ab6f44d4ca12fe931c7f92189cfde9
BUILD.bazel https://github.com/github/codeql/pull/22841/files#diff-41f97db71570fff22c468105cbb615d8e962e0ee11dd75ab4edf788c631ed7ca
import-attributes.ts.trap https://github.com/github/codeql/pull/22841/files#diff-d4bf3f05567cc3e447ad7af71d41a7fd8d2c1ac46e0d210c1615a3a81de0aa93
fail-native.cjs https://github.com/github/codeql/pull/22841/files#diff-ac59a9ee5d1f64f421c57d10abdb22f0fbf739078611db8e1173cf548b9218dc
test.py https://github.com/github/codeql/pull/22841/files#diff-51628607b95e2db0807bec1df39e6a83c9c7de73c44daaa65fcde35702d433e9
SyntaxErrors.expected https://github.com/github/codeql/pull/22841/files#diff-d99105de2a68b5c456f4b79b06e57bf0b7ae1fc16cc60143ec80363a901eb22f
bareHash.ts https://github.com/github/codeql/pull/22841/files#diff-f49676a7fba77bf6734c935856e621831f1eec0d791e7972fece6dddbfb2dcaf
jsx.tsx https://github.com/github/codeql/pull/22841/files#diff-fbb83bd099fe2505d76f98674eb4aa1a0314d891e48b1491e1c00978cd0bd0a4
JsxComments.expected https://github.com/github/codeql/pull/22841/files#diff-dece1656a62e614b2cd17d2b2d4a1cbb33432e2f7a8b47cdf9210738b13c4719
JsxComments.ql https://github.com/github/codeql/pull/22841/files#diff-156f137618b30ec525231cf3ccab14b8dd3dfb67406184b03600f6b848621180
PrettyPrintTokens.expected https://github.com/github/codeql/pull/22841/files#diff-bb5105bf717bf814aff51b270c19e0326f0907f7b1a2126d3e2cfbdb507881ee
jsx.tsx https://github.com/github/codeql/pull/22841/files#diff-91b1113bd0c9e048e4f757c727da76715f6fb7b5c66cc94e1ab667794994138a
testReactRelay.tsx https://github.com/github/codeql/pull/22841/files#diff-26f258bc7a09605f7f70e4759ab2f5b0cc0a585fb8ec14bf8042ff7c2d108c64
pkg.bzl https://github.com/github/codeql/pull/22841/files#diff-9c9fa9446a8e90ef71f71a225c22b78f00fb73982c859109ebdcc0ec008407ab
https://github.com/github/codeql/blob/main/CODEOWNERS#L2
docs/codeql/codeql-overview/system-requirements.rsthttps://github.com/github/codeql/pull/22841/files#diff-e6e4d9ce72e23328615d9d2b741d95513ec5a79ee9641e9a30b6beb564329412
View file https://github.com/github/codeql/blob/cd04bcf469c02d02dd749528d210c4d69177414e/docs/codeql/codeql-overview/system-requirements.rst
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22841/{{ revealButtonHref }}
https://github.com/github/codeql/pull/22841/files#diff-e6e4d9ce72e23328615d9d2b741d95513ec5a79ee9641e9a30b6beb564329412
paldepindhttps://github.com/paldepind
Oct 27, 2026https://github.com/github/codeql/pull/22841/files#r4388870938
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/github/codeql/pull/22841/files
https://github.com/github/codeql/pull/22841/files#diff-e6e4d9ce72e23328615d9d2b741d95513ec5a79ee9641e9a30b6beb564329412
https://github.com/github/codeql/blob/main/CODEOWNERS#L16
javascript/BUILD.bazelhttps://github.com/github/codeql/pull/22841/files#diff-4e6c972fc9def792d9bf599d1333ba33792bfe9fe626e87eda2abdc555da8895
View file https://github.com/github/codeql/blob/cd04bcf469c02d02dd749528d210c4d69177414e/javascript/BUILD.bazel
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22841/{{ revealButtonHref }}
https://github.com/github/codeql/pull/22841/files#diff-4e6c972fc9def792d9bf599d1333ba33792bfe9fe626e87eda2abdc555da8895
https://github.com/github/codeql/blob/main/CODEOWNERS#L17
javascript/extractor/lib/typescript/BUILD.bazelhttps://github.com/github/codeql/pull/22841/files#diff-fa0c09c5e050d77a509dc936437500efca237bd437a7a5df62bb2130d009ea54
View file https://github.com/github/codeql/blob/cd04bcf469c02d02dd749528d210c4d69177414e/javascript/extractor/lib/typescript/BUILD.bazel
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/github/codeql/pull/22841/{{ revealButtonHref }}
https://github.com/github/codeql/pull/22841/files#diff-fa0c09c5e050d77a509dc936437500efca237bd437a7a5df62bb2130d009ea54
https://github.com/github/codeql/pull/22841/files#diff-fa0c09c5e050d77a509dc936437500efca237bd437a7a5df62bb2130d009ea54
Please reload this pagehttps://github.com/github/codeql/pull/22841/files
Please reload this pagehttps://github.com/github/codeql/pull/22841/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.