Implement the core components for translating tsgo's binary AST format into the JSON format expected by the Java extractor: - decoder.go: Binary AST format parser with random-access node accessors (kind, pos, end, flags, children, strings, extended data) - converter.go: Walks decoded AST and produces JSON matching Node.js wrapper output (augmented , , , , isTypeOnly, HeritageClause token, TypeOperator operator) - childprops.go: Maps ~100 SyntaxKind names to ordered child property name lists for correct bitmask-to-property assignment - scanner.go: TypeScript tokenizer producing array with rescan support for regex, template, and greater-than disambiguation Update metadata.go with correct TS7 SyntaxKind iota values and export metadata functions. Wire decoder+converter through TsgoParser.Parse(). Validation test passes: all 421 diffs are expected TS5-vs-TS7 numeric kind/flags/token/operator value differences. Zero structural diffs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
JavaScript extractor
This directory contains the source code of the JavaScript extractor. The extractor depends on various libraries that are not currently bundled with the source code, so at present it cannot be built in isolation.
The extractor consists of a parser for the latest version of ECMAScript, including a few proposed and historic extensions (see src/com/semmle/jcorn), classes for representing JavaScript and TypeScript ASTs (src/com/semmle/js/ast and src/com/semmle/ts/ast), and various other bits of functionality. Historically, the main entry point of the JavaScript extractor has been com.semmle.js.extractor.Main. However, this class is slowly being phased out in favour of com.semmle.js.extractor.AutoBuild, which is the entry point used by CodeQL.
License
Like the CodeQL queries, the JavaScript extractor is licensed under the MIT License by GitHub. Some code is derived from other projects, whose licenses are noted in other LICENSE-*.md files in this folder.