Repository navigation
v0.1.0
First public release on npm as @js-recon/taintwire.
Added
taintwire.import()parses JavaScript (through CS-MAST by default, or plain Babel) into an embedded LadybugDB graph you can query with openCypher.graph.add()loads more files into the same graph.- Every AST node becomes a graph node with its CS-MAST-S structural hash. Parent-to-child links are stored as
SONedges. TaintGraph.save()writes the graph to a LadybugDB file, andTaintGraph.code()maps a node id back to its source.- Semantic layer:
- scopes (
Scopenodes,CREATES_SCOPE,PARENT_SCOPE,IN_SCOPE) - declarations (
DECLARES) - references (
REFERS_TO,READS,WRITES) - intra-procedural
FLOWS_TO
- scopes (
- Static call graph:
CALLS,ARGUMENT_TO,RETURNS_TO. RELATIONS, the stable list of edge-table names.npm run graph:stats -- <file.lbug>prints what a saved graph contains.- Docs site at https://taintwire.js-recon.io.
Fixed
- Child keys now come from both Babel and cs-mast, so subtrees cs-mast walks but Babel doesn't (for example TS enum
members) are no longer dropped from the graph. - Callee aliases resolve iteratively in linear time.
- Params and vars now shadow a named function expression's own name.
- Opening a graph creates every relationship table.