Skip to content

v0.3.0

Choose a tag to compare

@haddyadnan haddyadnan released this 19 Apr 22:43
· 54 commits to main since this release

What's Changed

v0.3.0 — First-pass TypeScript Support

This release adds the first non-Python parser to CodeMarp: TypeScript via tree-sitter.

Highlights

  • Added first-pass TypeScript support for .ts and .tsx files
  • Extended source discovery beyond Python files
  • Kept the existing facts-based parser contract across languages
  • Preserved the existing graph pipeline for high-level and mid-level views

What's New

  • Added a Tree-sitter TypeScript parser
  • Added TypeScript language detection for .ts and .tsx
  • Added TypeScript function extraction
  • Added TypeScript class method extraction
  • Added TypeScript import extraction:
    • default imports
    • named imports
    • namespace imports
  • Added TypeScript re-export extraction:
    • named re-exports
    • star re-exports
  • Added TypeScript call extraction:
    • bare calls
    • attribute calls
    • chained calls
    • super calls

Improvements

  • Generalized repository discovery from Python-only files to supported source files
  • Added JS/TS generated-directory ignores such as node_modules, .next, .turbo, and coverage/build output
  • Kept Python low-level CFG isolated from non-Python files
  • Updated README docs for Python and TypeScript support
  • Added TypeScript parser tests

Compatibility

  • Python remains fully supported
  • Tree-sitter remains the default parser
  • Python AST parser remains available via --parser-engine ast
  • Low-level CFG remains Python-only for now

Known Limitations

  • TypeScript support is first-pass and intentionally conservative
  • Arrow functions and function expressions assigned to variables are not yet extracted as functions
  • Calls inside arrow functions and function expressions are not yet attributed
  • CommonJS require() is not yet normalized as an import
  • Template-literal import sources are not specially handled
  • JavaScript support is planned but not included in this release

Full Changelog: v0.2.0...v0.3.0