monoripple 0.0.1

Symbol-aware affected target detection for JavaScript and TypeScript monorepos
Documentation
# monoripple

monoripple finds JavaScript and TypeScript applications affected by a change at symbol precision. It uses Oxc for parsing, semantic binding analysis, and module resolution instead of treating every declared package dependency as a runtime dependency.

## Status

monoripple currently supports:

- JavaScript, JSX, TypeScript, and TSX
- npm-compatible workspace package manifests
- relative and package imports
- named, default, namespace, and re-exported bindings
- runtime versus type-only dependency edges
- deployable target discovery from package scripts and Wrangler entrypoints
- Git working-tree comparisons
- dependency-path explanations

The current implementation builds the working-tree graph. Deleted modules conservatively affect their owning package; a base/current graph union is planned to make deletion and export-removal paths symbol-precise.

## Usage

```sh
cargo install monoripple
monoripple --root /path/to/monorepo affected --base origin/main
monoripple --root /path/to/monorepo affected --base origin/main --format json
monoripple --root /path/to/monorepo why @repo/engine --base origin/main
```

By default monoripple reports packages with a `deploy` script. Use `--target <script>` to select another package script, or `--target all` to include every package with an inferred entrypoint.

## How it works

monoripple creates declaration nodes for each module using `oxc_semantic`. References inside a declaration become edges to the exact local or imported symbols they consume. `oxc_resolver` links imports and package exports across files. Changed declaration fingerprints are then propagated backwards to application entrypoints.

```text
changed declaration
  -> local consumer
  -> imported binding
  -> application target
```

Type-only imports and exports do not participate in runtime affected-target queries.