{"_id":"@bernardwiesner/code-atlas","_rev":"9-0fc7c7c0acbdd7d8642984cd6d8f2d61","name":"@bernardwiesner/code-atlas","dist-tags":{"latest":"0.5.2"},"versions":{"0.1.0":{"name":"@bernardwiesner/code-atlas","version":"0.1.0","keywords":["cli","code-analysis","utility-functions","ast","typescript","codebase","developer-tools","static-analysis"],"author":{"name":"Bernard Wiesner"},"license":"MIT","_id":"@bernardwiesner/code-atlas@0.1.0","maintainers":[{"name":"bernard.wiesner","email":"brtyu941@gmail.com"}],"homepage":"https://github.com/wiesnerbernard/code-atlas#readme","bugs":{"url":"https://github.com/wiesnerbernard/code-atlas/issues"},"bin":{"code-atlas":"dist/cli.js"},"dist":{"shasum":"cf8d14635905767161e83aa666d7a2bd0854214b","tarball":"https://registry.npmjs.org/@bernardwiesner/code-atlas/-/code-atlas-0.1.0.tgz","fileCount":64,"integrity":"sha512-D9T6dm7fheIZa9d8FVrCu+KapHOyjpH755RqNOJ3TCt9Dcid9BeEwC6i4Kg8KzfrI2VgOeDQJJVKXEDhaNs13w==","signatures":[{"sig":"MEYCIQCyl0u13j4ftztOMA8gck4JN+GI9sj4/bDNJQv125e8RAIhAJ6EBM7YXr+N0lJlIcQGNVgyA4yQ1onbPZoslBZxCJN2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151270},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"844370951b469b311d34475ed417d32d03b3c37c","scripts":{"dev":"tsx src/cli.ts","lint":"eslint src/**/*.ts","build":"tsc","start":"node dist/cli.js","format":"prettier --write \"src/**/*.ts\"","lint:fix":"eslint src/**/*.ts --fix","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"bernard.wiesner","email":"brtyu941@gmail.com"},"repository":{"url":"git+https://github.com/wiesnerbernard/code-atlas.git","type":"git"},"_npmVersion":"11.3.0","description":"CLI tool to scan and index utility functions in codebases","directories":{},"_nodeVersion":"24.2.0","dependencies":{"chalk":"^5.3.0","inquirer":"^10.2.2","ts-morph":"^24.0.0","commander":"^12.1.0","fast-glob":"^3.3.2","cli-table3":"^0.6.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","eslint":"^9.17.0","prettier":"^3.4.2","typescript":"^5.7.2","@types/node":"^22.10.2","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/code-atlas_0.1.0_1765908220244_0.853508902651477","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bernardwiesner/code-atlas","version":"0.1.1","keywords":["cli","code-analysis","utility-functions","ast","typescript","codebase","developer-tools","static-analysis"],"author":{"name":"Bernard Wiesner"},"license":"MIT","_id":"@bernardwiesner/code-atlas@0.1.1","maintainers":[{"name":"bernard.wiesner","email":"brtyu941@gmail.com"}],"homepage":"https://github.com/wiesnerbernard/code-atlas#readme","bugs":{"url":"https://github.com/wiesnerbernard/code-atlas/issues"},"bin":{"code-atlas":"dist/cli.js"},"dist":{"shasum":"65beccc8c64f8268585a37d334e9e3c6f92214ea","tarball":"https://registry.npmjs.org/@bernardwiesner/code-atlas/-/code-atlas-0.1.1.tgz","fileCount":64,"integrity":"sha512-AnkteLAX8vSbGkvGdmxxFFYfmhc8jqFTFvwk5tFf2QJUFdbtkGuw4IKFP+aqKW+AZE50YRABhfYUuA2gBc60jw==","signatures":[{"sig":"MEYCIQCHXIpSt6OHJBVZzd2i4n3ABqisKiXwzUxXCyf2gfxGTwIhAOP9QcpZvzyQKkh/zi5BLIcDbsmJ2kF6V+daopXbRY7U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154508},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"55bf1ac905ce4044d28ef40b08f7d2822af7787e","scripts":{"dev":"tsx src/cli.ts","lint":"eslint src/**/*.ts","build":"tsc","start":"node dist/cli.js","format":"prettier --write \"src/**/*.ts\"","lint:fix":"eslint src/**/*.ts --fix","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"bernard.wiesner","email":"brtyu941@gmail.com"},"repository":{"url":"git+https://github.com/wiesnerbernard/code-atlas.git","type":"git"},"_npmVersion":"11.3.0","description":"CLI tool to scan and index utility functions in codebases","directories":{},"_nodeVersion":"24.2.0","dependencies":{"chalk":"^5.3.0","inquirer":"^10.2.2","ts-morph":"^24.0.0","commander":"^12.1.0","fast-glob":"^3.3.2","cli-table3":"^0.6.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","eslint":"^9.17.0","prettier":"^3.4.2","typescript":"^5.7.2","@types/node":"^22.10.2","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/code-atlas_0.1.1_1765910153560_0.7200944916820473","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bernardwiesner/code-atlas","version":"0.2.0","keywords":["cli","code-analysis","utility-functions","ast","typescript","codebase","developer-tools","static-analysis"],"author":{"name":"Bernard Wiesner"},"license":"MIT","_id":"@bernardwiesner/code-atlas@0.2.0","maintainers":[{"name":"bernard.wiesner","email":"brtyu941@gmail.com"}],"homepage":"https://github.com/wiesnerbernard/code-atlas#readme","bugs":{"url":"https://github.com/wiesnerbernard/code-atlas/issues"},"bin":{"code-atlas":"dist/cli.js"},"dist":{"shasum":"af81ac6f00b5d82a1f7b7439e6b37a1cf768faed","tarball":"https://registry.npmjs.org/@bernardwiesner/code-atlas/-/code-atlas-0.2.0.tgz","fileCount":80,"integrity":"sha512-9FXWip9uEy2NaLGt/nIVGh7SV1r4yDUGBgQPgrAHT/2C+WqKEGFNPprIcR/9cKtQJt28WObA9OTMgque7RMJbg==","signatures":[{"sig":"MEYCIQCLBE9aHFyb2glnFtxuLyK2QAguiSjCF0ryTwl3u3lA6gIhALtZgjPZQ0aQAnw7fNT/6BxLB5/qGJ642YZ9Uqllq0B2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":249102},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f6372ff3a181e46f0bff33f484a96d8309c20ffe","scripts":{"dev":"tsx src/cli.ts","lint":"eslint src/**/*.ts","build":"tsc","start":"node dist/cli.js","format":"prettier --write \"src/**/*.ts\"","lint:fix":"eslint src/**/*.ts --fix","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"bernard.wiesner","email":"brtyu941@gmail.com"},"repository":{"url":"git+https://github.com/wiesnerbernard/code-atlas.git","type":"git"},"_npmVersion":"11.3.0","description":"CLI tool to scan and index utility functions in codebases","directories":{},"_nodeVersion":"24.2.0","dependencies":{"chalk":"^5.3.0","chokidar":"^5.0.0","inquirer":"^10.2.2","ts-morph":"^24.0.0","commander":"^12.1.0","fast-glob":"^3.3.2","cli-table3":"^0.6.5","cli-progress":"^3.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","eslint":"^9.17.0","prettier":"^3.4.2","typescript":"^5.7.2","@types/node":"^22.19.3","@types/cli-progress":"^3.11.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/code-atlas_0.2.0_1765914937236_0.5965507688970253","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bernardwiesner/code-atlas","version":"0.2.1","keywords":["cli","code-analysis","utility-functions","ast","typescript","codebase","developer-tools","static-analysis"],"author":{"name":"Bernard Wiesner"},"license":"MIT","_id":"@bernardwiesner/code-atlas@0.2.1","maintainers":[{"name":"bernard.wiesner","email":"brtyu941@gmail.com"}],"homepage":"https://github.com/wiesnerbernard/code-atlas#readme","bugs":{"url":"https://github.com/wiesnerbernard/code-atlas/issues"},"bin":{"code-atlas":"dist/cli.js"},"dist":{"shasum":"8ef78110b134441320778d977226262c745d3b3c","tarball":"https://registry.npmjs.org/@bernardwiesner/code-atlas/-/code-atlas-0.2.1.tgz","fileCount":80,"integrity":"sha512-n8wmiF1pRiEP32zyYtXK/hNvpYOORyBxPM5OBB948rGcJbcQzRTNBt3ljZ9Q4twN8fR0pU6Yo9KO3GF3sSixyw==","signatures":[{"sig":"MEQCIF3T0tYj3wM0Ng5atl6Lu3BrAiyZ1Wy9zGBdHDIRENSyAiBvnDCeeztbvvFe02LHYaD9gXY+WXuvfobJ7Qs2Blbq5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248983},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f6372ff3a181e46f0bff33f484a96d8309c20ffe","scripts":{"dev":"tsx src/cli.ts","lint":"eslint src/**/*.ts","build":"tsc","start":"node dist/cli.js","format":"prettier --write \"src/**/*.ts\"","lint:fix":"eslint src/**/*.ts --fix","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"bernard.wiesner","email":"brtyu941@gmail.com"},"repository":{"url":"git+https://github.com/wiesnerbernard/code-atlas.git","type":"git"},"_npmVersion":"11.3.0","description":"CLI tool to scan and index utility functions in codebases","directories":{},"_nodeVersion":"24.2.0","dependencies":{"chalk":"^5.3.0","chokidar":"^5.0.0","inquirer":"^10.2.2","ts-morph":"^24.0.0","commander":"^12.1.0","fast-glob":"^3.3.2","cli-table3":"^0.6.5","cli-progress":"^3.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","eslint":"^9.17.0","prettier":"^3.4.2","typescript":"^5.7.2","@types/node":"^22.19.3","@types/cli-progress":"^3.11.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/code-atlas_0.2.1_1765920371951_0.6482051048527782","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bernardwiesner/code-atlas","version":"0.3.0","keywords":["cli","code-analysis","utility-functions","ast","typescript","codebase","developer-tools","static-analysis"],"author":{"name":"Bernard Wiesner"},"license":"MIT","_id":"@bernardwiesner/code-atlas@0.3.0","maintainers":[{"name":"bernard.wiesner","email":"brtyu941@gmail.com"}],"homepage":"https://github.com/wiesnerbernard/code-atlas#readme","bugs":{"url":"https://github.com/wiesnerbernard/code-atlas/issues"},"bin":{"code-atlas":"dist/cli.js"},"dist":{"shasum":"65de70244bff91a5638a16b23d3b56bde3b8a631","tarball":"https://registry.npmjs.org/@bernardwiesner/code-atlas/-/code-atlas-0.3.0.tgz","fileCount":91,"integrity":"sha512-71hr2CLFUsDW3ZHBPI4mCrW+2NuV1/vmz6SgOIZnbuu/vIKS097++dEUlBq+9Tmcr83hGrx/ZECKvwQZ5HZDZA==","signatures":[{"sig":"MEYCIQD9msaSdQUg+sy+E0QKNCvpvcp3a3WGl2uyBbff0O1EhwIhAOdTFuHf5SEHSnpzHoUqahS5MjZjZdydUP62Jmhjke0l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334183},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f6372ff3a181e46f0bff33f484a96d8309c20ffe","scripts":{"dev":"tsx src/cli.ts","lint":"eslint src/**/*.ts","build":"tsc","start":"node dist/cli.js","format":"prettier --write \"src/**/*.ts\"","lint:fix":"eslint src/**/*.ts --fix","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"bernard.wiesner","email":"brtyu941@gmail.com"},"repository":{"url":"git+https://github.com/wiesnerbernard/code-atlas.git","type":"git"},"_npmVersion":"11.3.0","description":"CLI tool to scan and index utility functions in codebases","directories":{},"_nodeVersion":"24.2.0","dependencies":{"chalk":"^5.3.0","chokidar":"^5.0.0","inquirer":"^10.2.2","ts-morph":"^24.0.0","commander":"^12.1.0","fast-glob":"^3.3.2","cli-table3":"^0.6.5","cli-progress":"^3.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","eslint":"^9.17.0","prettier":"^3.4.2","typescript":"^5.7.2","@types/node":"^22.19.3","@types/cli-progress":"^3.11.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/code-atlas_0.3.0_1765921303193_0.9491349012473027","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernardwiesner/code-atlas","version":"0.4.0","keywords":["cli","code-analysis","utility-functions","ast","typescript","codebase","developer-tools","static-analysis"],"author":{"name":"Bernard Wiesner"},"license":"MIT","_id":"@bernardwiesner/code-atlas@0.4.0","maintainers":[{"name":"bernard.wiesner","email":"brtyu941@gmail.com"}],"homepage":"https://github.com/wiesnerbernard/code-atlas#readme","bugs":{"url":"https://github.com/wiesnerbernard/code-atlas/issues"},"bin":{"code-atlas":"dist/cli.js"},"dist":{"shasum":"8618f6e4b00b549e1033dcf3582ef1efd15693a3","tarball":"https://registry.npmjs.org/@bernardwiesner/code-atlas/-/code-atlas-0.4.0.tgz","fileCount":120,"integrity":"sha512-psaNnsQBVT3EgsF2PKyxFvu3uQDoZhviM0Z7YvIL73MpaeTGwV1pTqcge2J1JBpzoDhfZda3u2mbThf0p4g2RA==","signatures":[{"sig":"MEUCIDLUhVFZukdAv83Wi5dqf8rnQR40IO1TSt+o58nomiMmAiEAursx2HeZ+LU1r3rY2nUki4S6SJJRxg9CkycHXmIJles=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462027},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"57393f541bee7b799881003c5a79d73583cf2b85","scripts":{"dev":"tsx src/cli.ts","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc","start":"node dist/cli.js","format":"prettier --write \"src/**/*.ts\"","test:ui":"vitest --ui","lint:fix":"eslint src/**/*.ts --fix","test:watch":"vitest","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bernard.wiesner","email":"brtyu941@gmail.com"},"repository":{"url":"git+https://github.com/wiesnerbernard/code-atlas.git","type":"git"},"_npmVersion":"11.3.0","description":"CLI tool to scan and index utility functions in codebases","directories":{},"_nodeVersion":"24.2.0","dependencies":{"chalk":"^5.3.0","chokidar":"^5.0.0","inquirer":"^10.2.2","ts-morph":"^24.0.0","commander":"^12.1.0","fast-glob":"^3.3.2","cli-table3":"^0.6.5","cli-progress":"^3.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","eslint":"^9.17.0","vitest":"^4.0.16","prettier":"^3.4.2","@vitest/ui":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.19.3","@types/cli-progress":"^3.11.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/code-atlas_0.4.0_1766055577646_0.8336245716478063","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bernardwiesner/code-atlas","version":"0.5.0","keywords":["cli","code-analysis","utility-functions","ast","typescript","codebase","developer-tools","static-analysis"],"author":{"name":"Bernard Wiesner"},"license":"MIT","_id":"@bernardwiesner/code-atlas@0.5.0","maintainers":[{"name":"bernard.wiesner","email":"brtyu941@gmail.com"}],"homepage":"https://github.com/wiesnerbernard/code-atlas#readme","bugs":{"url":"https://github.com/wiesnerbernard/code-atlas/issues"},"bin":{"code-atlas":"dist/cli.js"},"dist":{"shasum":"036b575b62807e9a1d3ee59211d39ef65740361f","tarball":"https://registry.npmjs.org/@bernardwiesner/code-atlas/-/code-atlas-0.5.0.tgz","fileCount":129,"integrity":"sha512-j3+FfDzyovZLVDORtNHH0w86Ja9f1ul3MdlEx+F9R6PtVMG4WVrUaJ706/T8AScVN/disuwq3B40au3HGOrKvA==","signatures":[{"sig":"MEQCIDBwbzNB3TrawWE1oyAOn+6BEFwqa1MiDxXo/0F8GQ0ZAiA94NT6TORXahBVgTJIjVprNJZmTQtwb80+W7CBdYWElQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511136},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"6388687f161d995cc2a587d2056469c56df0795c","scripts":{"dev":"tsx src/cli.ts","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc","start":"node dist/cli.js","format":"prettier --write \"src/**/*.ts\"","test:ui":"vitest --ui","lint:fix":"eslint src/**/*.ts --fix","test:watch":"vitest","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bernard.wiesner","email":"brtyu941@gmail.com"},"repository":{"url":"git+https://github.com/wiesnerbernard/code-atlas.git","type":"git"},"_npmVersion":"11.3.0","description":"CLI tool to scan and index utility functions in codebases","directories":{},"_nodeVersion":"24.2.0","dependencies":{"chalk":"^5.3.0","chokidar":"^5.0.0","inquirer":"^10.2.2","ts-morph":"^24.0.0","commander":"^12.1.0","fast-glob":"^3.3.2","cli-table3":"^0.6.5","cli-progress":"^3.12.0","@inquirer/prompts":"^8.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","eslint":"^9.17.0","vitest":"^4.0.16","prettier":"^3.4.2","@vitest/ui":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.19.3","@types/cli-progress":"^3.11.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/code-atlas_0.5.0_1766328334954_0.7828672654593989","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@bernardwiesner/code-atlas","version":"0.5.1","keywords":["cli","code-analysis","utility-functions","ast","typescript","codebase","developer-tools","static-analysis"],"author":{"name":"Bernard Wiesner"},"license":"MIT","_id":"@bernardwiesner/code-atlas@0.5.1","maintainers":[{"name":"bernard.wiesner","email":"brtyu941@gmail.com"}],"homepage":"https://github.com/wiesnerbernard/code-atlas#readme","bugs":{"url":"https://github.com/wiesnerbernard/code-atlas/issues"},"bin":{"code-atlas":"dist/cli.js"},"dist":{"shasum":"df05502f8dd6d99d18efba11047c221cdff3fc34","tarball":"https://registry.npmjs.org/@bernardwiesner/code-atlas/-/code-atlas-0.5.1.tgz","fileCount":129,"integrity":"sha512-9+XB8qk/9vtFuXtE9WnPViJv5M3MW6zeT6nMyCUFesmYBDZIZJg8DSvYkORTvh6MOfCxqZUVot122Mwj8ds1vw==","signatures":[{"sig":"MEUCIHomBrh6LAK3QQ374mInvWuMTZ05plQmuQOlbByEH6Q1AiEA7yrGvW+x6nefZ5coZkYaN4EiLKlICaQpFJOOLUsPVJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":519251},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"016dc9085e8c2b96570cfd6a346f30b9167cde0c","scripts":{"dev":"tsx src/cli.ts","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc","start":"node dist/cli.js","format":"prettier --write \"src/**/*.ts\"","test:ui":"vitest --ui","lint:fix":"eslint src/**/*.ts --fix","test:watch":"vitest","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bernard.wiesner","email":"brtyu941@gmail.com"},"repository":{"url":"git+https://github.com/wiesnerbernard/code-atlas.git","type":"git"},"_npmVersion":"11.3.0","description":"CLI tool to scan and index utility functions in codebases","directories":{},"_nodeVersion":"24.2.0","dependencies":{"chalk":"^5.3.0","chokidar":"^5.0.0","inquirer":"^10.2.2","ts-morph":"^24.0.0","commander":"^12.1.0","fast-glob":"^3.3.2","cli-table3":"^0.6.5","cli-progress":"^3.12.0","@inquirer/prompts":"^8.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","eslint":"^9.17.0","vitest":"^4.0.16","prettier":"^3.4.2","@vitest/ui":"^4.0.16","typescript":"^5.7.2","@types/node":"^22.19.3","@types/cli-progress":"^3.11.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/code-atlas_0.5.1_1766328848873_0.2585662751765623","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@bernardwiesner/code-atlas","version":"0.5.2","description":"CLI tool to scan and index utility functions in codebases","main":"dist/index.js","type":"module","bin":{"code-atlas":"dist/cli.js"},"scripts":{"build":"tsc","dev":"tsx src/cli.ts","start":"node dist/cli.js","test":"vitest run","test:watch":"vitest","test:ui":"vitest --ui","test:coverage":"vitest run --coverage","lint":"eslint src/**/*.ts","lint:fix":"eslint src/**/*.ts --fix","format":"prettier --write \"src/**/*.ts\"","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm run build"},"keywords":["cli","code-analysis","utility-functions","ast","typescript","codebase","developer-tools","static-analysis"],"author":{"name":"Bernard Wiesner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/wiesnerbernard/code-atlas.git"},"bugs":{"url":"https://github.com/wiesnerbernard/code-atlas/issues"},"homepage":"https://github.com/wiesnerbernard/code-atlas#readme","engines":{"node":">=18.0.0"},"dependencies":{"@inquirer/prompts":"^8.1.0","chalk":"^5.3.0","chokidar":"^5.0.0","cli-progress":"^3.12.0","cli-table3":"^0.6.5","commander":"^12.1.0","fast-glob":"^3.3.2","inquirer":"^10.2.2","ts-morph":"^24.0.0"},"devDependencies":{"@types/cli-progress":"^3.11.6","@types/node":"^22.19.3","@typescript-eslint/eslint-plugin":"^8.18.2","@typescript-eslint/parser":"^8.18.2","@vitest/ui":"^4.0.16","eslint":"^9.17.0","prettier":"^3.4.2","tsx":"^4.19.2","typescript":"^5.7.2","vitest":"^4.0.16"},"_id":"@bernardwiesner/code-atlas@0.5.2","gitHead":"05873e57dc9323e6fa7b85fb4c9b688aca6afe93","types":"./dist/index.d.ts","_nodeVersion":"24.2.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-G57rfQuWCZ4LBDSyxqiblfwcpCCcy95Q4lh6qZQb2JJ02kP558XqZVlrUJZ9KDxXDuon7FU2bPWylLIRinmOnw==","shasum":"8eb0d276e27fafb4b1741c030a1c64a8d7253874","tarball":"https://registry.npmjs.org/@bernardwiesner/code-atlas/-/code-atlas-0.5.2.tgz","fileCount":129,"unpackedSize":524316,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCj2S6uVjcjgTCE/tv0t2OrjYL0dwiGjGb6SbTJUeAnXQIhAPeFJf6jhL2GcSUZmOGLQ2JvOgIamnOS3W3jkb9aS4Qg"}]},"_npmUser":{"name":"bernard.wiesner","email":"brtyu941@gmail.com"},"directories":{},"maintainers":[{"name":"bernard.wiesner","email":"brtyu941@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/code-atlas_0.5.2_1766329398636_0.9945671736362014"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-16T18:03:40.146Z","modified":"2025-12-21T15:03:19.345Z","0.1.0":"2025-12-16T18:03:40.395Z","0.1.1":"2025-12-16T18:35:53.712Z","0.2.0":"2025-12-16T19:55:37.367Z","0.2.1":"2025-12-16T21:26:12.103Z","0.3.0":"2025-12-16T21:41:43.330Z","0.4.0":"2025-12-18T10:59:37.825Z","0.5.0":"2025-12-21T14:45:35.117Z","0.5.1":"2025-12-21T14:54:09.020Z","0.5.2":"2025-12-21T15:03:18.806Z"},"bugs":{"url":"https://github.com/wiesnerbernard/code-atlas/issues"},"author":{"name":"Bernard Wiesner"},"license":"MIT","homepage":"https://github.com/wiesnerbernard/code-atlas#readme","keywords":["cli","code-analysis","utility-functions","ast","typescript","codebase","developer-tools","static-analysis"],"repository":{"type":"git","url":"git+https://github.com/wiesnerbernard/code-atlas.git"},"description":"CLI tool to scan and index utility functions in codebases","maintainers":[{"name":"bernard.wiesner","email":"brtyu941@gmail.com"}],"readme":"# Code-Atlas 🗺️\n\n[![CI](https://github.com/wiesnerbernard/code-atlas/actions/workflows/ci.yml/badge.svg)](https://github.com/wiesnerbernard/code-atlas/actions/workflows/ci.yml)\n[![npm version](https://badge.fury.io/js/@bernardwiesner%2Fcode-atlas.svg)](https://www.npmjs.com/package/@bernardwiesner/code-atlas)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n> **Stop duplicating utilities. Start discovering them.**\n\nCode-Atlas is a CLI tool that scans your codebase, analyzes the AST (Abstract Syntax Tree), and builds a searchable local registry of utility functions. Say goodbye to \"utility rot\" where developers duplicate functions because they don't know they already exist.\n\n## The Problem\n\nIn large codebases:\n- 🔍 **Utilities are invisible** — Developers don't know what utility functions already exist\n- 📦 **Duplication proliferates** — The same date formatter, validator, or helper gets written 5 different ways\n- 🕰️ **Time is wasted** — Teams spend hours recreating functionality that's already there\n- 🐛 **Bugs multiply** — Each duplicate introduces its own edge cases and bugs\n\n## The Solution\n\nCode-Atlas automatically:\n1. **Scans** your codebase using fast file traversal\n2. **Parses** TypeScript/JavaScript files via AST analysis\n3. **Extracts** metadata (function signatures, JSDoc, parameters, return types)\n4. **Indexes** everything into a searchable local registry\n5. **Discovers** duplicate logic using AST-based hashing\n6. **Visualizes** dependencies and identifies code quality issues\n7. **Tracks** code history with Git integration\n\n## ✨ Features\n\n- 🔍 **Smart Search** - Fuzzy finding with interactive or JSON output\n- 📊 **Stats & Analytics** - Complexity analysis and duplicate detection\n- 📈 **Dependency Graphs** - Visualize function relationships (Mermaid, DOT, JSON)\n- 📤 **Multi-Format Export** - JSON, CSV, and Markdown for CI/CD and documentation\n- 🔥 **Git Integration** - Track authors, churn metrics, and identify hot spots\n- 📝 **HTML Reports** - Interactive visual function maps\n- ⚡ **Watch Mode** - Auto-update registry on file changes\n- 🎯 **Dead Code Detection** - Find orphaned and unused functions\n\n## Installation\n\n### Global Installation (Recommended)\n```bash\nnpm install -g @bernardwiesner/code-atlas\n```\n\n### Local Installation\n```bash\nnpm install --save-dev @bernardwiesner/code-atlas\n```\n\n### Usage via npx\n```bash\nnpx @bernardwiesner/code-atlas scan ./src\n```\n\n## Usage\n\n### Scan Your Codebase\nGenerate a registry of all utility functions:\n```bash\ncode-atlas scan ./src\n```\n\nOptions:\n```bash\n# Ignore patterns and set output path\ncode-atlas scan ./src --ignore \"**/*.test.ts\" --output .code-atlas/registry.json\n\n# Include test files\ncode-atlas scan ./src --include-tests\n\n# Filter by complexity threshold\ncode-atlas scan ./src --max-complexity 10\n\n# Include Git metadata (author, dates, churn)\ncode-atlas scan ./src --include-git\n\n# Disable cache for fresh parse\ncode-atlas scan ./src --no-cache\n```\n\n### Configuration File\n\nCreate a `.code-atlasrc.json` file in your project root to configure default settings:\n\n```json\n{\n  \"paths\": [\"./src\"],\n  \"ignore\": [\n    \"**/legacy/**\",\n    \"**/vendor/**\",\n    \"**/__mocks__/**\"\n  ],\n  \"includeTests\": false,\n  \"maxComplexity\": 20,\n  \"output\": \".code-atlas/registry.json\"\n}\n```\n\n**Configuration Options:**\n- `paths`: Directories to scan (default: `[\"./src\"]`)\n- `ignore`: Additional glob patterns to ignore (always excludes `node_modules`, `dist`, `build`, `.git`)\n- `includeTests`: Include test files in scan (default: `false`)\n- `maxComplexity`: Maximum cyclomatic complexity threshold\n- `output`: Output file path for registry\n\n**Note:** `node_modules`, `dist`, `build`, `.git`, and `coverage` are **always ignored** and cannot be overridden. The `ignore` option allows you to add additional patterns specific to your project.\n\n### Export Registry\nExport your function registry in multiple formats:\n\n```bash\n# Export to JSON (default)\ncode-atlas export\n\n# Export to CSV for spreadsheet analysis\ncode-atlas export --format csv --output functions.csv\n\n# Export to Markdown with duplicates\ncode-atlas export --format markdown --include-duplicates --output FUNCTIONS.md\n```\n\n**Export formats:**\n- **JSON**: Full registry for CI/CD pipelines\n- **CSV**: Spreadsheet-friendly with proper escaping\n- **Markdown**: GitHub-flavored with tables and statistics\n\n### Visualize Dependencies\nGenerate dependency graphs to understand code structure:\n\n```bash\n# Generate Mermaid diagram (works in GitHub markdown)\ncode-atlas graph --format mermaid --output deps.md\n\n# Generate DOT graph for GraphViz\ncode-atlas graph --format dot --output deps.dot\n\n# JSON with orphan and circular dependency details\ncode-atlas graph --format json --show-orphans --show-circular\n\n# Limit graph size for large codebases\ncode-atlas graph --max-nodes 50\n```\n\nThe graph command identifies:\n- 🔴 **Orphaned functions** - Never called (potential dead code)\n- 🔄 **Circular dependencies** - Functions that call each other\n- 🎯 **Entry points** - Exported functions with no dependencies\n\n### Search for Functions\nFind utilities interactively:\n```bash\ncode-atlas search \"date\"\n```\n\nThis opens an interactive fuzzy finder showing:\n- Function names\n- File locations\n- Parameters and return types\n- JSDoc descriptions\n\n### Search Non-Interactively\n```bash\ncode-atlas search \"formatDate\" --json\n```\n\nOutput:\n```json\n{\n  \"results\": [\n    {\n      \"name\": \"formatDate\",\n      \"file\": \"src/utils/date.ts\",\n      \"line\": 10,\n      \"params\": [{\"name\": \"date\", \"type\": \"Date\"}, {\"name\": \"format\", \"type\": \"string\"}],\n      \"returnType\": \"string\",\n      \"jsdoc\": \"Formats a date according to the specified format string\"\n    }\n  ]\n}\n```\n\n### View Stats\n```bash\ncode-atlas stats\n```\n\nShows:\n- Total functions indexed\n- Complexity distribution (simple, moderate, complex, very complex)\n- Most complex functions\n- Potential duplicates (by AST hash)\n- Git metadata (if scanned with `--include-git`)\n\n### Generate HTML Report\nCreate an interactive visual report:\n```bash\ncode-atlas report --output report.html\n```\n\n### Watch Mode\nAutomatically update registry on file changes:\n```bash\ncode-atlas watch ./src\n```\n\n## Registry Storage\n\nBy default, Code-Atlas stores the registry in `.code-atlas/registry.json` within your project root. This keeps the index local to each codebase.\n\n**Tip:** Add `.code-atlas/` to your `.gitignore` unless you want to commit the registry.\n\n## What Gets Indexed?\n\nCode-Atlas identifies \"utilities\" using heuristics:\n- ✅ Exported functions (named exports, default exports)\n- ✅ Pure functions (no side effects detected)\n- ✅ Helper functions in `utils/`, `helpers/`, `lib/` directories\n- ✅ Functions with JSDoc annotations\n- ❌ React components, classes, and framework-specific code\n- ❌ Test files (`*.test.ts`, `*.spec.ts`) - unless `--include-tests` is used\n\n## What Gets Ignored?\n\nCode-Atlas **always** excludes these directories (cannot be overridden):\n- `node_modules/` - Third-party dependencies\n- `dist/`, `build/` - Build outputs\n- `.git/` - Version control\n- `coverage/` - Test coverage reports\n- Test files - `*.test.*`, `*.spec.*` (unless `--include-tests`)\n- Type definitions - `*.d.ts`\n\nYou can add additional ignore patterns via the config file or `--ignore` flag.\n\n## Use Cases\n\n### For Developers\n- 🔍 **Discovery**: Find existing utilities before writing duplicates\n- 📊 **Refactoring**: Identify complex functions that need simplification\n- 🔥 **Hot Spots**: Find high-risk code (complex + frequently changing)\n- 🎯 **Dead Code**: Detect orphaned functions that are never called\n\n### For Teams\n- 📈 **Code Review**: Export to Markdown for PR documentation\n- 📉 **Tech Debt**: Track complexity trends over time\n- 🤝 **Onboarding**: Help new developers discover existing utilities\n- 📊 **Metrics**: Export to CSV for team dashboards\n\n### For CI/CD\n- ✅ **Quality Gates**: Fail builds if complexity exceeds thresholds\n- 📤 **Documentation**: Auto-generate function catalogs\n- 🔄 **Change Detection**: Track which utilities changed in each PR\n\n## Roadmap\n\n### ✅ v0.4.0 (Current)\n- ✅ Export command (JSON, CSV, Markdown)\n- ✅ Dependency graph visualization (Mermaid, DOT, JSON)\n- ✅ Git integration (author, dates, churn metrics, hot spots)\n- ✅ Orphan and circular dependency detection\n\n### v0.5.0\n- [ ] VS Code extension for inline function search\n- [ ] Hot spot command with risk scoring\n- [ ] Custom metrics and plugin system\n- [ ] Performance improvements for large codebases\n\n### v0.6.0\n- [ ] Web UI dashboard for interactive browsing\n- [ ] Team collaboration features\n- [ ] API analysis (unused exports, breaking changes)\n- [ ] Integration with documentation generators\n\n### v1.0.0\n- [ ] Multi-language support (Python, Go, Rust)\n- [ ] Cloud sync for team-wide registries\n- [ ] AI-powered function recommendations\n- [ ] GitHub Action for automated PR comments\n\n## Architecture\n\nCode-Atlas follows a pipeline architecture:\n\n```\nCrawler (fast-glob) \n  → Parser (ts-morph AST) \n    → Metadata Extractor \n      → Registry Builder (JSON)\n        → Search Index\n```\n\nSee [SPECS.md](SPECS.md) for detailed technical specifications.\n\n## Contributing\n\nWe welcome contributions! Please read [INSTRUCTIONS.md](INSTRUCTIONS.md) for code quality standards and development practices.\n\n### Development Setup\n```bash\ngit clone https://github.com/wiesnerbernard/code-atlas.git\ncd code-atlas\nnpm install\nnpm run dev -- scan ./examples\n```\n\n## License\n\nMIT © Bernard Wiesner\n\n## Credits\n\nBuilt with:\n- [ts-morph](https://github.com/dsherret/ts-morph) — TypeScript AST manipulation\n- [commander](https://github.com/tj/commander.js) — CLI framework\n- [inquirer](https://github.com/SBoudrias/Inquirer.js) — Interactive prompts\n- [chalk](https://github.com/chalk/chalk) — Terminal styling\n- [fast-glob](https://github.com/mrmlnc/fast-glob) — Fast file traversal\n","readmeFilename":"README.md"}