{"_id":"@captain09/blueprint","_rev":"3-e5aef5889447239331120c30a198d5d7","name":"@captain09/blueprint","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@captain09/blueprint","version":"0.1.0","keywords":["dependency","graph","visualization","code-analysis","static-analysis","treemap","cli","developer-tools","typescript"],"author":{"url":"xCaptaiN09","name":"Muhammed Dilshad A"},"license":"MIT","_id":"@captain09/blueprint@0.1.0","maintainers":[{"name":"captain09","email":"dilsheddilu123@gmail.com"}],"homepage":"https://github.com/xCaptaiN09/blueprint#readme","bugs":{"url":"https://github.com/xCaptaiN09/blueprint/issues"},"bin":{"blueprint":"dist/index.js"},"dist":{"shasum":"c16885f9bc15dd256a74615e9d26b3de30ac8912","tarball":"https://registry.npmjs.org/@captain09/blueprint/-/blueprint-0.1.0.tgz","fileCount":5,"integrity":"sha512-W6PCPpOUqA0P6t/ltOyabpVrpyTHUO/+IOpwA6W2f0WP5ilrCBkOVtVbvh6by2iuRIX9w4Va9vlIwzuNGoqing==","signatures":[{"sig":"MEUCIQDRSx4zJcmmj+kB7Ey2A5TKf8QH1eNC8gSvY2wAjRqsTAIgZQ+SCxObfDA+4lVtqumau0dfDqX/CmgC08C/mZp0voY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134161},"type":"module","engines":{"node":">=18"},"gitHead":"5b8e200ec21bef48b97cb3798321d9ea3b1a8b17","scripts":{"dev":"tsup --watch","build":"tsup","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"captain09","email":"dilsheddilu123@gmail.com"},"repository":{"url":"git+https://github.com/xCaptaiN09/blueprint.git","type":"git"},"_npmVersion":"11.12.0","description":"Generate interactive dependency blueprints for any codebase. Fully local, multi-language, zero config — one self-contained HTML, nothing leaves your machine.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/blueprint_0.1.0_1785058035928_0.8083540928464608","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@captain09/blueprint","version":"0.1.2","keywords":["dependency","graph","visualization","code-analysis","static-analysis","treemap","cli","developer-tools","typescript"],"author":{"url":"xCaptaiN09","name":"Muhammed Dilshad A"},"license":"MIT","_id":"@captain09/blueprint@0.1.2","maintainers":[{"name":"captain09","email":"dilsheddilu123@gmail.com"}],"homepage":"https://github.com/xCaptaiN09/blueprint#readme","bugs":{"url":"https://github.com/xCaptaiN09/blueprint/issues"},"bin":{"blueprint":"dist/index.js"},"dist":{"shasum":"d94bd82bdf8e9f6ea869e6f049e085e440e1c13d","tarball":"https://registry.npmjs.org/@captain09/blueprint/-/blueprint-0.1.2.tgz","fileCount":5,"integrity":"sha512-H2E1FbkQeppIReXZzToASSFoML09rEInQ9jsloVQmUKkhL50slxGExO2aZRp/uXluYBDQkY5dLD5tztoNAkX3Q==","signatures":[{"sig":"MEUCIDfxO3vDnf3DSUmK6FktFz5NKXzMwwd2GIrRnQejDdFuAiEAzFnSl3Lx1NpKyF0lvu9Zt3clRcERI1WbtLyja/Cq4Bo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117693},"type":"module","engines":{"node":">=18"},"gitHead":"21d4d355092f705e8340187fb3e180fe3582d6f0","scripts":{"dev":"tsup --watch","build":"tsup","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"captain09","email":"dilsheddilu123@gmail.com"},"repository":{"url":"git+https://github.com/xCaptaiN09/blueprint.git","type":"git"},"_npmVersion":"11.12.0","description":"Generate interactive dependency blueprints for any codebase. Fully local, multi-language, zero config — one self-contained HTML, nothing leaves your machine.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ignore":"^7.0.6","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/blueprint_0.1.2_1785060643663_0.11686729941977192","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@captain09/blueprint","version":"0.1.3","description":"Generate interactive dependency blueprints for any codebase. Fully local, multi-language, zero config — one self-contained HTML, nothing leaves your machine.","type":"module","bin":{"blueprint":"dist/index.js"},"engines":{"node":">=18"},"scripts":{"build":"tsup","dev":"tsup --watch","start":"node dist/index.js","prepublishOnly":"npm run build"},"keywords":["dependency","graph","visualization","code-analysis","static-analysis","treemap","cli","developer-tools","typescript"],"author":{"name":"Muhammed Dilshad A","url":"xCaptaiN09"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/xCaptaiN09/blueprint.git"},"homepage":"https://github.com/xCaptaiN09/blueprint#readme","bugs":{"url":"https://github.com/xCaptaiN09/blueprint/issues"},"publishConfig":{"access":"public"},"dependencies":{"commander":"^12.1.0","ignore":"^7.0.6"},"devDependencies":{"@types/node":"^20.14.0","tsup":"^8.1.0","typescript":"^5.5.0"},"gitHead":"a7052252a53d81eb0e42ad263cb17bc72b59c961","_id":"@captain09/blueprint@0.1.3","_nodeVersion":"26.5.0","_npmVersion":"11.12.0","dist":{"integrity":"sha512-N/6xV6VJpmPZoM4t2Gl47J1C3t4vvKDrQjkGAyGI/emoBsnp/uszfbYdeB65HPUjvIHJVgCMS28kKHFhbRS2rg==","shasum":"98ab2f852804cb6c875c125ac15adff62c2b59ff","tarball":"https://registry.npmjs.org/@captain09/blueprint/-/blueprint-0.1.3.tgz","fileCount":5,"unpackedSize":117935,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDtLRetEo9ZGOyfrGmVMu1nIMMhV+zQly9xQeHu388JeAiA9qstRlW0mN/IpsMDGRlcABxpH7z9KywSzYD01v+j8UQ=="}]},"_npmUser":{"name":"captain09","email":"dilsheddilu123@gmail.com"},"directories":{},"maintainers":[{"name":"captain09","email":"dilsheddilu123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/blueprint_0.1.3_1785061311125_0.75118268347218"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-26T09:27:15.769Z","modified":"2026-07-26T10:21:51.477Z","0.1.0":"2026-07-26T09:27:16.057Z","0.1.2":"2026-07-26T10:10:43.864Z","0.1.3":"2026-07-26T10:21:51.311Z"},"bugs":{"url":"https://github.com/xCaptaiN09/blueprint/issues"},"author":{"name":"Muhammed Dilshad A","url":"xCaptaiN09"},"license":"MIT","homepage":"https://github.com/xCaptaiN09/blueprint#readme","keywords":["dependency","graph","visualization","code-analysis","static-analysis","treemap","cli","developer-tools","typescript"],"repository":{"type":"git","url":"git+https://github.com/xCaptaiN09/blueprint.git"},"description":"Generate interactive dependency blueprints for any codebase. Fully local, multi-language, zero config — one self-contained HTML, nothing leaves your machine.","maintainers":[{"name":"captain09","email":"dilsheddilu123@gmail.com"}],"readme":"# blueprint.\n\n<!-- OPTIONAL MOTION SLOT: when you record the `watch` auto-reload clip, drop it in\n     as assets/watch.gif and uncomment the line below. Everything else stays as-is.\n![blueprint watch mode regenerating and reloading the sheet the instant a file is saved](assets/watch.gif)\n-->\n\n> **RENDERED ON YOUR MACHINE** · no telemetry · no accounts · no cdns · the `.html` you generate opens offline, forever — that's the contract, not a feature.\n\n![blueprint mapping kaeru, a 150-file C project, into a single sheet: the kconfig core knotted around two hubs, dozens of board device files fanning off a third, three languages in the corner chips](assets/sc3.png)\n_kaeru — 150 files · 50 internal links · c / python / cpp. one command in, one sheet out: pan it, zoom it, pull it apart._\n\npoint it at any codebase and blueprint reads every import, traces which file leans on which, and draws the whole thing as one interactive drafting sheet. small projects settle into a quiet force layout; huge ones fold into a module treemap so the structure stays legible instead of collapsing into a hairball. the output is a single self-contained `.html` — no server, no build step, no phone-home.\n\n## install.\n\none line from the registry — the command you type afterward is just `blueprint`, the scope only ever lives in this install line:\n\n```bash\nnpm i -g @captain09/blueprint\n```\n\n```bash\ncd path/to/your/project\nblueprint                 # writes ./blueprint.html\nblueprint --open          # writes it and opens your browser\nblueprint watch           # serves it live at localhost:4321, reloads on save\n```\n\nfrom source, if you'd rather build it yourself:\n\n```bash\ngit clone https://github.com/xCaptaiN09/blueprint.git\ncd blueprint && npm install && npm run build && npm link\n```\n\n## at rest.\n\n![blueprint on hermes, a 48-file python toolkit, at rest: two shared helpers as black hubs, standalone scripts as lone dots](assets/sc1.png)\n_hermes — 48 files · python + javascript. shared glue (`_common.py`, `_hermes_home.py`) pulls its dependents into quiet hubs; the rest drift as lone dots. the honest shape of a bag-of-scripts repo, no layout tricks pretending otherwise._\n\n## see it answer.\n\n![blueprint with lkc.h selected: the node and its connections turn orange, the spec panel lists its two includes and thirteen includers](assets/sc2.png)\n_click `lkc.h` and the sheet answers — two headers it includes, thirteen files that include it, every one listed in the spec panel. monochrome until you touch it; then exactly one accent, exactly where you're looking._\n\n## the sheet, key by key.\n\n| do this          | and the sheet does this                                                              |\n| ---------------- | ------------------------------------------------------------------------------------ |\n| **hover** a node | its connections light up orange; animated dashes show which way the dependency flows |\n| **click** a node | the spec panel opens — language, path, in/out degree, dependents, cycle flag         |\n| press **`/`**    | jump to search; **enter** frames the first match, **esc** clears it                  |\n| click a **chip** | filter the whole graph by language; **fit** reframes to the survivors                |\n| click **layout** | reseed the physics for a fresh arrangement                                           |\n| **scroll**       | semantic zoom on big repos — blocks, then dot grids, then filenames                  |\n| **drag**         | pan; the render loop goes silent the instant you stop, so the fans stay quiet        |\n\n## three ways to run it.\n\n**generate** scans once and writes a single self-contained `blueprint.html` — the artifact you commit, email, or open on a plane. `-o <path>` renames it, `--json` also dumps the raw graph, `--exclude <globs>` skips paths, `--open` launches the browser.\n\n**watch** generates, then serves the sheet at `http://localhost:4321` and keeps it live: save a file in your editor and the open tab reloads itself a beat later, so you can park it beside your work and watch the graph track your code. `-p <port>` and `--no-open` are there when you need them.\n\n**serve** is an alias for `watch`, for the days \"serve\" reads better in your head.\n\n## supported languages.\n\nparsed today — imports extracted and, where static analysis can honestly do it, resolved to local files:\n\n| language   | extensions                        |\n| ---------- | --------------------------------- |\n| javascript | `.js` `.jsx` `.mjs` `.cjs`        |\n| typescript | `.ts` `.tsx` `.mts` `.cts`        |\n| python     | `.py`                             |\n| c          | `.c` `.h`                         |\n| c++        | `.cpp` `.cc` `.cxx` `.hpp` `.hxx` |\n| go         | `.go`                             |\n| rust       | `.rs`                             |\n| java       | `.java`                           |\n| kotlin     | `.kt` `.kts`                      |\n\n<details>\n<summary>ruby · php · swift · c#?</summary>\n\ndetected as files but not yet parsed — they show up as nodes with their import list in the panel, but no drawn edges, because their imports name packages and classes rather than files, and we'd rather show that honestly than invent connections. each is a small, self-contained parser away; see `CONTRIBUTING.md`.\n\n</details>\n\n## how it works.\n\na gitignore-aware scanner walks the tree and groups files by extension; a small per-language parser pulls the import statements and resolves local paths; the results become a directed graph carrying in/out degree and Tarjan-detected circular dependencies; that graph is injected into one self-contained html template that draws everything on a canvas. the layout is adaptive — a Barnes–Hut force simulation for small and medium projects, a squarified directory treemap past the threshold — and the draw path is level-of-detail on a dirty-flag loop, which is what lets it scale from a 40-file script to a 70,000-file kernel without melting the tab.\n\n<details>\n<summary>tuning the two thresholds</summary>\n\n`LAYOUT_THRESHOLD` (default 1500 files) flips between the force layout and the module treemap; `EDGE_REST_CAP` (default 1200 edges) decides whether the full edge web shows at rest or only on hover/search. both sit at the top of `templates/graph.html` — edit them and just regenerate, no rebuild needed.\n\n</details>\n\n## sheet 01.\n\n|                  |                                                    |\n| ---------------- | -------------------------------------------------- |\n| version          | 0.1.3                                              |\n| install          | `npm i -g @captain09/blueprint`                    |\n| runtime          | node ≥ 18                                          |\n| languages parsed | js · ts · py · c · c++ · go · rust · java · kotlin |\n| output           | one self-contained `.html`                         |\n| network          | none — rendered on your machine                    |\n| license          | MIT                                                |\n\n## contributing.\n\nblueprint is deliberately small and hackable: a typescript cli, a handful of per-language parsers, one html template, no framework to fight. adding a language is a good first issue — the architecture map and the four-step recipe live in [`CONTRIBUTING.md`](CONTRIBUTING.md).\n\n## license.\n\nMIT — © 2026 Muhammed Dilshad A (xCaptaiN09).\n","readmeFilename":"README.md"}