{"_id":"@dawidkrasinski/uml-diagram-generator","_rev":"11-6c5b523fc0972384193dc495db62fdf6","name":"@dawidkrasinski/uml-diagram-generator","dist-tags":{"latest":"0.0.10"},"versions":{"0.0.1":{"name":"@dawidkrasinski/uml-diagram-generator","version":"0.0.1","keywords":["uml","typescript","javascript","ast","analysis"],"license":"UNLICENSED","_id":"@dawidkrasinski/uml-diagram-generator@0.0.1","maintainers":[{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"}],"dist":{"shasum":"ee1cd8c215febc86c48576faf2b31a79a426c9c5","tarball":"https://registry.npmjs.org/@dawidkrasinski/uml-diagram-generator/-/uml-diagram-generator-0.0.1.tgz","fileCount":40,"integrity":"sha512-KmGOKvQs5r8vnayg7TiQpWg+0mfSMQfawlVoJ3ZnWRBWc1OZ4NwHgYr0y0vPZ+Iu1DwzAWEXrp+7ikqEWoo/GQ==","signatures":[{"sig":"MEYCIQDYQUTwT8KDjXv7UgoDDHNsZ7pt8pvvS+Caq1PSqWGFhQIhAP0MpOlteByueLauuskvNbav3+2UmOMZLesprTR6B+7K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61074},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"00abf62037774a305b2513e45c8b56cafdc472d5","scripts":{"test":"jest --watch","build":"rm -rf dist && tsc","start":"npm run build && npm --prefix ./template run dev","prepublishOnly":"npm run build"},"_npmUser":{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"},"_npmVersion":"11.9.0","description":"Generate UML-like dependency graphs from TypeScript and JavaScript codebases.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@babel/types":"^7.29.0","@babel/parser":"^7.29.0","directory-tree":"^3.6.0","@babel/traverse":"^7.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/uml-diagram-generator_0.0.1_1774956462008_0.009883969152334249","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@dawidkrasinski/uml-diagram-generator","version":"0.0.2","keywords":["uml","typescript","javascript","ast","analysis"],"license":"MIT","_id":"@dawidkrasinski/uml-diagram-generator@0.0.2","maintainers":[{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"}],"dist":{"shasum":"f5e5b06e26cf9d35819b84ec2c54cf418c429abd","tarball":"https://registry.npmjs.org/@dawidkrasinski/uml-diagram-generator/-/uml-diagram-generator-0.0.2.tgz","fileCount":40,"integrity":"sha512-+HWqSGXj2run6bRoMavJyGO/j+FAcno8phXZNMdcDJ6UQECmGx788HTmHKnx4rzug8ZiiyGsjQo9b4xd/SqB6w==","signatures":[{"sig":"MEUCIQCwXDc5shyCbP1qp+Nr7v3yeGoC5uXrWu7y9fobkJX/TAIgbuPbHe07kl8scMa2HZDXU003l76VfkT5e/rJB6V5k6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61090},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bf4b7a883ab37672d2a9922be7f5a2670c692c9c","scripts":{"test":"jest --watch","build":"rm -rf dist && tsc","start":"npm run build && npm --prefix ./template run dev","prepublishOnly":"npm run build"},"_npmUser":{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"},"_npmVersion":"11.9.0","description":"Generate UML-like dependency graphs from TypeScript and JavaScript codebases.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@babel/types":"^7.29.0","@babel/parser":"^7.29.0","directory-tree":"^3.6.0","@babel/traverse":"^7.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/uml-diagram-generator_0.0.2_1774957136039_0.8875982406568124","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@dawidkrasinski/uml-diagram-generator","version":"0.0.3","keywords":["uml","typescript","javascript","ast","analysis"],"license":"MIT","_id":"@dawidkrasinski/uml-diagram-generator@0.0.3","maintainers":[{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"}],"bin":{"uml":"dist/index.js","uml-diagram-generator":"dist/index.js"},"dist":{"shasum":"1eb88e94cd0fa0740092b00c3e77b1dd89b29879","tarball":"https://registry.npmjs.org/@dawidkrasinski/uml-diagram-generator/-/uml-diagram-generator-0.0.3.tgz","fileCount":75,"integrity":"sha512-++bOlABgo4xChMFNnQYleC8C1/c/P14gl9YzhqfsuNtKJI4srUfBQ7ShfNYFMiLyyXvirZo5RyWg5twh1k87SA==","signatures":[{"sig":"MEYCIQDsIAf1st4NXrWdDqhVZP7Xh6Hht6ONpK//8l+2/SmIOwIhAN8hsRsZe/nxj4jJzbobqyhxAZWEQQeDAfDbI/lrVp3w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":404572},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d2c666a174c0c298566ff05cd2ab2bf532a529cc","scripts":{"test":"jest --watch","build":"rm -rf dist && tsc && node ./scripts/fix-esm-imports.mjs && chmod +x dist/index.js","start":"npm run build && node dist/index.js .","postinstall":"node ./scripts/postinstall-add-generate-uml.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"},"_npmVersion":"11.9.0","description":"Generate UML-like dependency graphs from TypeScript and JavaScript codebases.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@babel/types":"^7.29.0","@babel/parser":"^7.29.0","directory-tree":"^3.6.0","@babel/traverse":"^7.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/uml-diagram-generator_0.0.3_1774963255802_0.38442935252926214","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@dawidkrasinski/uml-diagram-generator","version":"0.0.4","keywords":["uml","typescript","javascript","ast","analysis"],"license":"MIT","_id":"@dawidkrasinski/uml-diagram-generator@0.0.4","maintainers":[{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"}],"bin":{"uml":"dist/index.js","uml-diagram-generator":"dist/index.js"},"dist":{"shasum":"6b5149cc86551c6d3958be1a2d6e0e9c43495c94","tarball":"https://registry.npmjs.org/@dawidkrasinski/uml-diagram-generator/-/uml-diagram-generator-0.0.4.tgz","fileCount":74,"integrity":"sha512-DJ3M4TdaUbAoi6l7+Yu0zb8HAsPpqyRiFICWwV8ggdssx0dbBN9VGOX5hw+AcH9L7I9qtqYxR/xeKP8Re8QXFg==","signatures":[{"sig":"MEUCICNNDgYaqqknSTwUIZpAFt1wL3JHSkk20SP53mXnMNvtAiEAvNU3lbE4zoOItfcqVQWmcIjRPs/Dz/nIcBQSpYyI9c8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":406874},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d2c666a174c0c298566ff05cd2ab2bf532a529cc","scripts":{"dev":"UML_TARGET_PATH=. npm --prefix ./template run dev","test":"jest --watch","build":"rm -rf dist && tsc && node ./scripts/fix-esm-imports.mjs && chmod +x dist/index.js","start":"npm run build && npm run dev","postinstall":"node ./scripts/postinstall-add-generate-uml.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"},"_npmVersion":"11.9.0","description":"Generate UML-like dependency graphs from TypeScript and JavaScript codebases.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@babel/types":"^7.29.0","@babel/parser":"^7.29.0","directory-tree":"^3.6.0","@babel/traverse":"^7.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/uml-diagram-generator_0.0.4_1774981847086_0.3090531925469766","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@dawidkrasinski/uml-diagram-generator","version":"0.0.5","keywords":["uml","typescript","javascript","ast","analysis"],"license":"MIT","_id":"@dawidkrasinski/uml-diagram-generator@0.0.5","maintainers":[{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"}],"bin":{"uml":"dist/index.js","uml-diagram-generator":"dist/index.js"},"dist":{"shasum":"ea5023f026daf6c885e37469ee5292e766720f19","tarball":"https://registry.npmjs.org/@dawidkrasinski/uml-diagram-generator/-/uml-diagram-generator-0.0.5.tgz","fileCount":74,"integrity":"sha512-pis6uegKEslRJuOhJSTs5UaFgPq67lNjilBvyYn1zUcLAVb0OLH28Wwi12bIsGzwsD/kyf4EuTaKKgy3Lo8+0w==","signatures":[{"sig":"MEUCIQCEWnnCs4U2yVeddGn3FG0LtmlC2Uv5AAQ81rHBOBZ18AIgejD9LrYf19dfhIBfQCLG9enr3v4kz+zo5VgMJmmiMJw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408865},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d2c666a174c0c298566ff05cd2ab2bf532a529cc","scripts":{"dev":"UML_TARGET_PATH=. npm --prefix ./template run dev","test":"jest --watch","build":"rm -rf dist && tsc && node ./scripts/fix-esm-imports.mjs && chmod +x dist/index.js","start":"npm run build && npm run dev","postinstall":"node ./scripts/postinstall-add-generate-uml.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"},"_npmVersion":"11.9.0","description":"Generate UML-like dependency graphs from TypeScript and JavaScript codebases.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@babel/types":"^7.29.0","@babel/parser":"^7.29.0","directory-tree":"^3.6.0","@babel/traverse":"^7.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/uml-diagram-generator_0.0.5_1774983212724_0.580152893745153","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@dawidkrasinski/uml-diagram-generator","version":"0.0.6","keywords":["uml","typescript","javascript","ast","analysis"],"license":"MIT","_id":"@dawidkrasinski/uml-diagram-generator@0.0.6","maintainers":[{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"}],"bin":{"uml":"dist/index.js","uml-diagram-generator":"dist/index.js"},"dist":{"shasum":"4c0837e071dcf050f4a52f34c820013b99788466","tarball":"https://registry.npmjs.org/@dawidkrasinski/uml-diagram-generator/-/uml-diagram-generator-0.0.6.tgz","fileCount":74,"integrity":"sha512-RAOh70fE35UPDVRG1OStw4MFxfr4pI26qXzAVnGPgfHWYRP44aSs3tQ5ry1cn/ZuEX8bDPApux+lkDyU2OO2Pg==","signatures":[{"sig":"MEYCIQCV+z3C2RMN6WPivAUsUO3MwHKiW9WUHeRsXfeAy9KunwIhAI8+cPBd9e3GQ+fXCQHkspinBomIypVDStlSOoUM8wUN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":409378},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d2c666a174c0c298566ff05cd2ab2bf532a529cc","scripts":{"dev":"UML_TARGET_PATH=. npm --prefix ./template run dev","test":"jest --watch","build":"rm -rf dist && tsc && node ./scripts/fix-esm-imports.mjs && chmod +x dist/index.js","start":"npm run build && npm run dev","postinstall":"node ./scripts/postinstall-add-generate-uml.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"},"_npmVersion":"11.9.0","description":"Generate UML-like dependency graphs from TypeScript and JavaScript codebases.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@babel/types":"^7.29.0","@babel/parser":"^7.29.0","directory-tree":"^3.6.0","@babel/traverse":"^7.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/uml-diagram-generator_0.0.6_1774983477681_0.3348935976433134","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@dawidkrasinski/uml-diagram-generator","version":"0.0.8","keywords":["uml","typescript","javascript","ast","analysis"],"license":"MIT","_id":"@dawidkrasinski/uml-diagram-generator@0.0.8","maintainers":[{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"}],"bin":{"uml":"dist/index.js","uml-diagram-generator":"dist/index.js"},"dist":{"shasum":"5b546f06e26ff9d08e8c36f06d8334169b7a215f","tarball":"https://registry.npmjs.org/@dawidkrasinski/uml-diagram-generator/-/uml-diagram-generator-0.0.8.tgz","fileCount":74,"integrity":"sha512-wJDsbv5YlF9bwseZDisZuCbMpooyRSWjPeMueyPVL5YmUyJ8DnNezfsr810UzVDMcr0S00fleCg1nLcxtsuyJg==","signatures":[{"sig":"MEQCIFczvFk1iWvYMd9hW7zMo9jCgmOLBm8H9fgI80v1nrguAiAM5DyadxHg3R1jmgYEczhMVEIoz4gYFUTtMwDduz14eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":410751},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d2c666a174c0c298566ff05cd2ab2bf532a529cc","scripts":{"dev":"UML_TARGET_PATH=. npm --prefix ./template run dev","test":"jest --watch","build":"rm -rf dist && tsc && node ./scripts/fix-esm-imports.mjs && chmod +x dist/index.js","start":"npm run build && npm run dev","postinstall":"node ./scripts/postinstall-add-generate-uml.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"},"_npmVersion":"11.9.0","description":"Generate UML-like dependency graphs from TypeScript and JavaScript codebases.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@babel/types":"^7.29.0","@babel/parser":"^7.29.0","directory-tree":"^3.6.0","@babel/traverse":"^7.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/uml-diagram-generator_0.0.8_1774985539131_0.9336721302501825","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@dawidkrasinski/uml-diagram-generator","version":"0.0.9","keywords":["uml","typescript","javascript","ast","analysis"],"license":"MIT","_id":"@dawidkrasinski/uml-diagram-generator@0.0.9","maintainers":[{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"}],"bin":{"uml":"dist/index.js","uml-diagram-generator":"dist/index.js"},"dist":{"shasum":"73bd38280e5875ae54db5d2bf73d1c2336c9adb6","tarball":"https://registry.npmjs.org/@dawidkrasinski/uml-diagram-generator/-/uml-diagram-generator-0.0.9.tgz","fileCount":74,"integrity":"sha512-Rbh9we8qNocE1IUzeompDpp41DguGH+hWRoNMDmj12sNCotqevCnrZmb2tm0SCWogcpiNW+8BcjPuw9rZwJ9Jg==","signatures":[{"sig":"MEUCIQD/lheRgm6P+C1ar3nSeBrJpGcHS/2eY2pem9YEBmg3VAIgQg6e6TbXRzM6yQv89t4tvv8WXTNCraBFRGx5U+w8R4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412950},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6d873f6b6ef891c61ff7b6ee3f4e3aec37ac0149","scripts":{"dev":"UML_TARGET_PATH=. npm --prefix ./template run dev","test":"jest --watch","build":"rm -rf dist && tsc && node ./scripts/fix-esm-imports.mjs && chmod +x dist/index.js","start":"npm run build && npm run dev","postinstall":"node ./scripts/postinstall-add-generate-uml.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"},"_npmVersion":"11.9.0","description":"Generate UML-like dependency graphs from TypeScript and JavaScript codebases.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@babel/types":"^7.29.0","@babel/parser":"^7.29.0","directory-tree":"^3.6.0","@babel/traverse":"^7.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/uml-diagram-generator_0.0.9_1774986916696_0.6499022365692693","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@dawidkrasinski/uml-diagram-generator","version":"0.0.10","description":"Generate UML-like dependency graphs from TypeScript and JavaScript codebases.","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"uml-diagram-generator":"dist/index.js","uml":"dist/index.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"keywords":["uml","typescript","javascript","ast","analysis"],"license":"MIT","publishConfig":{"access":"public"},"scripts":{"build":"rm -rf dist && tsc && node ./scripts/fix-esm-imports.mjs && chmod +x dist/index.js","postinstall":"node ./scripts/postinstall-add-generate-uml.mjs","prepublishOnly":"npm run build","start":"npm run build && npm run dev","dev":"UML_TARGET_PATH=. npm --prefix ./template run dev","test":"jest --watch"},"dependencies":{"@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/types":"^7.29.0","directory-tree":"^3.6.0"},"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^25.5.0","jest":"^30.3.0","ts-jest":"^29.4.6","typescript":"^5.9.3"},"gitHead":"dffd6aa757a59dde8b26fc8d15a8dfb5c7f76432","_id":"@dawidkrasinski/uml-diagram-generator@0.0.10","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-hKrf+GzsAwRAoY7AhSU7MGY6tztq7YhXB4CpMRWr9fZ+AkMWYsYdwas/PJIroClPqUam36DFJ2vo36l4S5X6IQ==","shasum":"0a8baef57ce18d676e76ed454c489c4f7b37eecc","tarball":"https://registry.npmjs.org/@dawidkrasinski/uml-diagram-generator/-/uml-diagram-generator-0.0.10.tgz","fileCount":74,"unpackedSize":413244,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCJ9pLyzcnG+0fFhCuFYgkx+zoLPYPz3DSYFz/5PJsEMwIgMGTbWrueV2A5jDaknbCOofRE/PZq/GaEwdkARDvFtYI="}]},"_npmUser":{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"},"directories":{},"maintainers":[{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/uml-diagram-generator_0.0.10_1774991891545_0.16286152420519717"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-31T11:27:41.905Z","modified":"2026-03-31T21:18:11.841Z","0.2.1":"2026-03-31T07:58:23.373Z","0.0.1":"2026-03-31T11:27:42.171Z","0.0.2":"2026-03-31T11:38:56.171Z","0.0.3":"2026-03-31T13:20:55.974Z","0.0.4":"2026-03-31T18:30:47.222Z","0.0.5":"2026-03-31T18:53:32.876Z","0.0.6":"2026-03-31T18:57:57.849Z","0.0.8":"2026-03-31T19:32:19.298Z","0.0.9":"2026-03-31T19:55:16.932Z","0.0.10":"2026-03-31T21:18:11.733Z"},"license":"MIT","keywords":["uml","typescript","javascript","ast","analysis"],"description":"Generate UML-like dependency graphs from TypeScript and JavaScript codebases.","maintainers":[{"name":"dawidkrasinski","email":"dawidkrasinski14@gmail.com"}],"readme":"# Full Stack UML Diagram Generator\n\n`@dawidkrasinski/uml-diagram-generator` is a full-stack package that analyzes TypeScript/JavaScript code and generates interactive UML diagrams.\n\n**Two parts in one package:**\n\n- **Backend (lib/)**: AST parser, code analysis, UML graph generation\n- **Frontend (template/)**: Next.js UI for interactive diagram viewing\n\n## 🚀 What does this project do\n\nThe package performs the entire pipeline from raw code to visual diagram:\n\n1. **File Collection**: Recursively searches directories and collects `.ts`, `.js`, `.tsx`, `.jsx`, `.mjs`, `.cjs` files, excluding `node_modules`, `.git`, `dist`, `.next`.\n2. **Parsing and Analysis**: Parses AST using Babel and extracts classes, functions, global variables, inheritance, methods, properties.\n3. **Graph Generation**: Converts metadata to UML structure (nodes + relations).\n4. **Visualization**: Displays interactive diagram in the browser with filtering and navigation features.\n\n## 🧱 Project Architecture\n\n```\numl-diagram-generator/\n├── lib/                           # Backend — parser and generator\n│   ├── files/FileCollector.ts     # File collection from filesystem\n│   ├── parser/ParserFacade.ts     # AST parser + entity extractors\n│   ├── parser/extractors/         # ClassExtractor, FunctionExtractor, etc.\n│   ├── graph/GraphGenerator.ts    # Conversion to UML graph\n│   └── pipeline/CodeAnalyzerService.ts # Orchestration of entire analysis\n├── template/                      # Frontend — Next.js UI\n│   ├── app/page.tsx               # Main screen (graph + sidebar)\n│   ├── app/api/route.ts           # GET /api endpoint (runs analyzer)\n│   ├── components/graph/          # Interactive graph rendering\n│   └── components/FileTreeSidebar # File tree and entity filtering\n├── tests/                         # Unit tests (lib)\n├── index.ts                       # API entry point\n└── README.md                      # This file\n```\n\n## ✅ Features\n\n### Backend (lib/)\n\n- ✓ Recursive source file collection\n- ✓ Extension filtering (`.ts`, `.js`, `.tsx`, `.jsx`, `.mjs`, `.cjs`)\n- ✓ AST parsing with Babel\n- ✓ Class extraction (with access modifiers: private/protected/public)\n- ✓ Function extraction, global variables, React components\n- ✓ Inheritance and relation definitions (extends, implements)\n- ✓ UML Graph structure (nodes + relations)\n\n### Frontend (template/)\n\n- ✓ Interactive UML graph (XY Flow + ELK Layout)\n- ✓ Sidebar with file tree for filtering\n- ✓ Entity activation and auto-fit view\n- ✓ VS Code integration (`code -g` for opening files)\n- ✓ Responsive UI (Tailwind CSS)\n\n## ⚙️ Installation and Running\n\n### For Users (Installation as a Package)\n\nIn any project:\n\n```bash\nnpm install --save-dev @dawidkrasinski/uml-diagram-generator\n```\n\nThe package will automatically add a script to the host's `package.json`:\n\n```json\n{\n  \"scripts\": {\n    \"generate:uml\": \"uml .\"\n  }\n}\n```\n\nThen run:\n\n```bash\nnpm run generate:uml\n```\n\nThis will open the full UI (Next.js frontend) analyzing the current directory.\n\nIf you only want machine-readable output or the UI cannot start in your environment, use the CLI fallback:\n\n```bash\numl . --json\n```\n\n### For Developers (Working with Repository)\n\n```bash\ngit clone <repo>\ncd uml-diagram-generator\nnpm install\n```\n\n**Running the entire pipeline (backend + frontend):**\n\n```bash\nnpm start\n```\n\nBuilds the library and runs the Next.js UI on `http://localhost:3000`\n\n**Running separately:**\n\nFrontend (Next.js dev server):\n\n```bash\nnpm --prefix ./template run dev\n```\n\nBackend (build lib):\n\n```bash\nnpm run build\n```\n\nCLI (JSON output without UI):\n\n```bash\nnode dist/index.js /path/to/project --json\n```\n\n### Programmatic API\n\n```ts\nimport { main } from \"@dawidkrasinski/uml-diagram-generator\";\n\nconst graph = main(\"/path/to/project\");\nconsole.log(JSON.stringify(graph, null, 2));\n```\n\n### Frontend API\n\n**GET /api**\n\nRuns the analyzer and returns the graph:\n\n```json\n{\n  \"graph\": {\n    \"nodes\": [...],\n    \"relations\": [...]\n  }\n}\n```\n\nOptional configuration via environment variable:\n\n```bash\nUML_TARGET_PATH=/custom/path npm --prefix ./template run dev\n```\n\nBundled frontend stack:\n\n- `next@16.1.6`\n- `react@19.2.3`\n- `react-dom@19.2.3`\n\n**POST /api/open-file**\n\nOpens a file in VS Code (only files from the project):\n\n```bash\ncurl -X POST http://localhost:3000/api/open-file \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"pathParts\":[\"src\",\"app\",\"page.tsx\"]}'\n```\n\n## 🧭 Data Model\n\nThe `/api` endpoint returns `UMLGraph`:\n\n```json\n{\n  \"nodes\": [\n    {\n      \"id\": \"1\",\n      \"name\": \"UserService\",\n      \"type\": \"class\",\n      \"attributes\": [\"user\", \"db\"],\n      \"methods\": [\"getUser\", \"saveUser\"],\n      \"path\": [\"src\", \"services\", \"UserService.ts\"]\n    },\n    {\n      \"id\": \"2\",\n      \"name\": \"PrismaClient\",\n      \"type\": \"class\",\n      \"attributes\": [],\n      \"methods\": [],\n      \"path\": [\"node_modules\", \"@prisma\", \"client\"]\n    }\n  ],\n  \"relations\": [\n    {\n      \"id\": \"rel-1\",\n      \"from\": \"1\",\n      \"to\": \"2\",\n      \"type\": \"dependency\"\n    }\n  ]\n}\n```\n\n**Node Types:**\n\n- `class` — TypeScript/JavaScript class\n- `function` — top-level function\n- `api-endpoint` — API endpoint in Next.js\n- `variable` — global variable\n- `component` — React component\n\n## 🧪 Tests\n\nRun unit tests (lib):\n\n```bash\nnpm test\n```\n\nWatch mode:\n\n```bash\nnpm test -- --watch\n```\n\nCoverage:\n\n```bash\nnpm test -- --coverage\n```\n\n## 🏗️ Structure for Developers\n\n### Backend Extensions\n\nAdd new file extensions in [lib/files/FileCollector.ts](lib/files/FileCollector.ts):\n\n```ts\nconst SUPPORTED_EXTENSIONS = [\".ts\", \".tsx\", \".js\", \".jsx\", \".mjs\", \".cjs\"];\n```\n\nAdd extraction logic in [lib/parser/extractors/](lib/parser/extractors/):\n\n```ts\n// New file: ClassExtractorCustom.ts\nexport function extractCustomEntities(node: t.ClassDeclaration): Entity {\n  // ...\n}\n```\n\n### Frontend Extensions\n\nAdd new components in [template/components/](template/components/):\n\n```tsx\n// New UML node\nexport function UMLCustomElement({ node }: Props) {\n  return <div>{node.name}</div>;\n}\n```\n\nIntegrate with [lib/Generator.ts](lib/Generator.ts) for type coordination.\n\n## 📌 Important Notes\n\n- Parser skips files that fail to parse — logs warnings to stderr\n- Inheritance relations are created only between classes in the same parsed set\n- Frontend filters the view based on the file tree — graph shows only active entities\n- The `/api/open-file` endpoint validates paths — only files in the project directory\n\n## 🛠️ Troubleshooting\n\n| Problem                             | Solution                                                                                 |\n| ----------------------------------- | ---------------------------------------------------------------------------------------- |\n| `code: command not found`           | Install VS Code CLI (Cmd+Shift+P → \"install code command\")                               |\n| Frontend shows empty graph          | Check `UML_TARGET_PATH` — does it point to the code folder?                              |\n| UI start fails after package update | Delete `.uml-diagram-generator-runtime/` in the target project and run the command again |\n| Build fails                         | Delete `dist/` and try `npm run build` again                                             |\n| Files are not being parsed          | Parser logs warnings — check console output                                              |\n\n## 📚 More Information\n\n- Frontend: [template/README.md](template/README.md)\n- Backend API: [lib/Generator.ts](lib/Generator.ts)\n- Parser: [lib/parser/ParserFacade.ts](lib/parser/ParserFacade.ts)\n- Tests: [tests/](tests/)\n\n## ❤️ License\n\nOpen source. Use and modify freely.\n","readmeFilename":"README.md"}