{"_id":"@aikotools/repo-maintenance","_rev":"24-6909dadfb0c101770eadbcb9122168e2","name":"@aikotools/repo-maintenance","dist-tags":{"latest":"1.9.1"},"versions":{"1.0.2":{"name":"@aikotools/repo-maintenance","version":"1.0.2","_id":"@aikotools/repo-maintenance@1.0.2","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"0b608f75aab8c564b3b48537fc0b8df315933fdf","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.0.2.tgz","fileCount":29,"integrity":"sha512-j6dxSXE3Ep559mwJ5uCvxL27zx5Ai1C4PWzdr4KYLALZB9vaBGlSEPDn/ZrFkOLWu294JvyshFL3eI6oLI5Mfg==","signatures":[{"sig":"MEYCIQCGte61s5zhfcfCdnOvXxq9PXB9RmdLT9PW+ZSUDDM7OgIhAOtqObUbu9TWouzdjFG1I41ymGmLXNrv3yZDJEJ59uld","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":764403},"type":"module","gitHead":"d6871ad173e782c161c925242bf46f9edee8435c","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.6.2","description":"Web-basiertes Dashboard zur Verwaltung des `saas-coding-kernel` Multi-Repo Monorepos. Bietet Dependency-Graph, Bulk-Operationen, Cascade-Updates und Git-Management fuer 140+ Packages.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.0.2_1771248577416_0.2428773051958799","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aikotools/repo-maintenance","version":"1.1.0","_id":"@aikotools/repo-maintenance@1.1.0","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"92b0e15ad115b3d6c48c462454e28059df9f57d8","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.1.0.tgz","fileCount":29,"integrity":"sha512-a2ZUQ2BsPjJMEXN0L9lCqI16YLHWCTLonfcOjmcNzWGG9uvjkMHYn1zjD8UHO08LSMswKcGEOKro+F+dgJzYmg==","signatures":[{"sig":"MEYCIQD7J0LWWnKncseRaVEGM+itY6DckRkqbrZ8R0LaBaatRAIhALXGYdbnReZAYnxK68Ees5Y5vQoe5rB9JaTIzkLk3f6w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":764330},"type":"module","gitHead":"72d3d5cd4b99b13ce8c6ee80526dac5e18d8eca9","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.6.2","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.1.0_1771252660725_0.8645136630720704","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@aikotools/repo-maintenance","version":"1.1.1","_id":"@aikotools/repo-maintenance@1.1.1","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"7169ab9cbf42c1164406f108f13fd14ba55aa833","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.1.1.tgz","fileCount":29,"integrity":"sha512-0JSAP5YaJdKzj6c07MPPycNZxIEOChqWKlhbXHBk20F5HZvhAi0AXvaPA1W/ZtZsbpSGMimhSZuNGSQsQpPQyA==","signatures":[{"sig":"MEYCIQCBoZbt2WXUZTBh/jgyLq59R8RMKqrEAc84HXn6ohJ4dAIhAO4TQe7KaLqUDxvop1rym06v9mWZ3kjju0qI9mxUcqji","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":764726},"type":"module","gitHead":"41f29b5bff9dc27fba021c2d87a2ccc8f744a6e6","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.6.2","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.1.1_1771253040946_0.8873129794268932","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@aikotools/repo-maintenance","version":"1.1.2","_id":"@aikotools/repo-maintenance@1.1.2","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"fe2bb38170acfa7ffab29cf8d37241f588ec17f4","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.1.2.tgz","fileCount":29,"integrity":"sha512-m7qyzuBy+HP3XgMx0mos1LLHAJ3qRfYab0HoxEk7/3J0Gd+b9dB/Jdsl+LpX1/LVmDQsqiaTwVuTAfEBkTwZXQ==","signatures":[{"sig":"MEYCIQDh68J3AGUmn9b92mOxuQpZSWtjb9l2XfgD9UUSDt0xQgIhAMQmoaUCMtJaWuzFCE5E1J2gXLfjzln9aURxxWoarVZE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":764759},"type":"module","engines":{"node":">=20"},"gitHead":"d4d567a4f002461e91cdb15797c641bd374e52e6","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.6.2","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.1.2_1771253790328_0.17695187984076655","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@aikotools/repo-maintenance","version":"1.2.0","_id":"@aikotools/repo-maintenance@1.2.0","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"719d933138b2fb6de8a383d07efb595027242288","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.2.0.tgz","fileCount":29,"integrity":"sha512-rfGy5Crj71lY3nC5ISK/rmQ3VbLvBDZgGo64VNoRMH3HWWLaoNvAoG8CC/S8hBPfXiHw/xsEk64umPr6UmeudA==","signatures":[{"sig":"MEQCIBML0z9CFxIy+77ny6GbzGazLg2lQviOamK8U/V+Cq86AiACf786e2NSYLlynARdS+06mwWMPqvenAhUBgG1X6xCSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":765512},"type":"module","engines":{"node":">=20"},"gitHead":"050f4d378c5ffc144635b71f5926dd3341dab9eb","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.6.2","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.2.0_1771254097963_0.033248906092589126","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@aikotools/repo-maintenance","version":"1.2.1","_id":"@aikotools/repo-maintenance@1.2.1","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"385971e12862f74af138f86df8cdbc12d3b8a7a3","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.2.1.tgz","fileCount":29,"integrity":"sha512-qd7GoNvDoYCdv2sQEDsZ3icDqpNaSr/u4fa7MCPov3hm9/Jj0Y6ejrpl2yRnp6pHbOZWv0x0M802Mq1WmT6r4Q==","signatures":[{"sig":"MEUCIFy41HkOE0elTfg15wBhsfaZIYpIqfKRryE4n5Lva5+lAiEA5K60ACIPt0MTGlkd5xucupi3GLX22Fvi2CF0UBzAINQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":765652},"type":"module","engines":{"node":">=20"},"gitHead":"2a70b54987c37ab60fc8d166848ce3f7530cd4b0","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.6.2","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.2.1_1771255456661_0.2729114680554934","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@aikotools/repo-maintenance","version":"1.2.2","_id":"@aikotools/repo-maintenance@1.2.2","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"e8d3c0faa5bfb582f62f612f860c54260c674e57","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.2.2.tgz","fileCount":29,"integrity":"sha512-n9Tmrmgqqp2X4acFXQcz64tIFpNKCRRoCYR2Gl7cfjLvP7d+vXk6XW51bf4GxUU/HGmrVQxl3/mveMA08ChFsQ==","signatures":[{"sig":"MEUCIHPbq/c1SBTxI1DB/QxWJcpbb6QJrItPMpPqkZh8jAM4AiEAo1ykDDVMqaAGLwr83QRjbnNLF/xe10XVKWl30uXh4Ug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":766164},"type":"module","engines":{"node":">=20"},"gitHead":"eca8aaddd27cbb83f1ba62c1068dc250a213e443","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.6.2","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.2.2_1771257230734_0.24285839887053995","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@aikotools/repo-maintenance","version":"1.3.0","_id":"@aikotools/repo-maintenance@1.3.0","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"d35121f475f8e9c97c0f08ce7d3077ce6327d57e","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.3.0.tgz","fileCount":29,"integrity":"sha512-RZ4FzJr4+HESXUJQG4SgFSPEzejg1JZo3D6vHM7QyJfCwteGBNhW1FR48qE39AejNnd22CWsRoEyfZu4NwyBNg==","signatures":[{"sig":"MEUCIEG6e2QJYPHLqpv6g/5N3S+W3O9VON/xwwwGXAq9cSo9AiEAvOcLQKT6DbLVyldwyW5ZQD2kQnZSWmAS0b0O0IuEW9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":772383},"type":"module","engines":{"node":">=20"},"gitHead":"8a88288d4ade3818dde8cf5b84197b1109c9660f","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.6.2","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.3.0_1771274197263_0.4708852681767455","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@aikotools/repo-maintenance","version":"1.3.1","_id":"@aikotools/repo-maintenance@1.3.1","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"142075638e4b1749b5eb54754b0bb0eb53cb7899","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.3.1.tgz","fileCount":29,"integrity":"sha512-dgmkzoDJ3GQAOqvuhZQbENcjsxPLIoFU7M1aiA/l6pd4bv0ytDEn/TavLGQZ/3F8PQuJpMd/tLisi5HpAzBz3g==","signatures":[{"sig":"MEUCIQCnJvKvMEUBmzpT4CCHiXdth+iRvxPe9gvA0SsYlbWmUAIgUQQPOZX1xoWyVqS7G1bj7mKwLB2UobpZimKAjc00tVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778443},"type":"module","engines":{"node":">=20"},"gitHead":"15ac4b790c70b91fb1a159eac054b74b6e3892e8","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.6.2","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.3.1_1771274832268_0.000504574545570291","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@aikotools/repo-maintenance","version":"1.3.2","_id":"@aikotools/repo-maintenance@1.3.2","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"a224f422775e4404a06038f04e7fe92ba57088f4","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.3.2.tgz","fileCount":29,"integrity":"sha512-zviMLJmukrgMMalYDk69Yc8RytVjrpaKVhE1v7tAp0KppbnLrC5PCsS8WJhzTGv/niEGddELIsf8UgFQh/pCCA==","signatures":[{"sig":"MEUCIAnh3PLZoGFco99+EwCwahCH+UvAmkN9Iozuatc5iFkJAiEAoZiXSaYRJzHPa7Rv/hSxDuUe+p+jehRHCjsTw/13b4U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778483},"type":"module","engines":{"node":">=20"},"gitHead":"6f259e3dd93adaccaccbef13ff1d0527075f44b4","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.6.2","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.3.2_1771332336849_0.348194362602527","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@aikotools/repo-maintenance","version":"1.3.3","_id":"@aikotools/repo-maintenance@1.3.3","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"60d7388e31dc45aa5341cac95e8c0a429f4e50b0","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.3.3.tgz","fileCount":29,"integrity":"sha512-n3oNKhqbwrevQqcLOVzBvZ2CbAN3AwRv1tY226a1NDtZ0f6IaknvGaNi//y5fnlaFq3zHYO4BbQ0mqIukDIP0A==","signatures":[{"sig":"MEQCIG90cT4/GgBTq4LSOzAkfFSOqmUijOHF6Zvy9m0XIvurAiBpeKW4Mfet1Kb+IXm6jJgY7nn8othfeK08rOAEw6keJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":779839},"type":"module","engines":{"node":">=20"},"gitHead":"5cd6b622a3908747f61d2312235fd11ffc6bd020","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.6.2","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.3.3_1771333452291_0.37823378603542634","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@aikotools/repo-maintenance","version":"1.3.4","_id":"@aikotools/repo-maintenance@1.3.4","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"de987918d1560ac5e4135f05a01058a59acf2407","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.3.4.tgz","fileCount":29,"integrity":"sha512-bbp6hGNnKovx6yPn7zu3bUoSRSaPraaRf9uizOO2Y53DH8ONGF/MysTKTvUV+EW+1MgxhSPxcayyOzjaatk8sg==","signatures":[{"sig":"MEQCIGCKexx6QwWjTk5bbLYZoLPRp70qr48OY4CBUy+1WDR9AiBifLR5cenPpB/ho14IX5ZYDIEheaHupki8EC9jbVsLrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":779855},"type":"module","engines":{"node":">=20"},"gitHead":"2500d4e68423e095b7a14264384dbbb11e6c9b39","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.8.0","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"4.3.6","hono":"4.11.9","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.27.0","@trpc/client":"11.10.0","@trpc/server":"11.10.0","lucide-react":"0.564.0","@xyflow/react":"12.10.0","@hono/node-server":"1.13.8","@trpc/react-query":"11.10.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.19.0","vite":"7.3.1","eslint":"10.0.0","vitest":"4.0.18","postcss":"8.5.6","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"22.0.0","tailwindcss":"4.1.18","@types/react":"19.2.14","concurrently":"9.0.0","@types/react-dom":"19.2.3","semantic-release":"24.0.0","typescript-eslint":"8.55.0","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"12.0.0","@semantic-release/github":"11.0.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@semantic-release/commit-analyzer":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.3.4_1772200252551_0.7044107100334835","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@aikotools/repo-maintenance","version":"1.4.0","_id":"@aikotools/repo-maintenance@1.4.0","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"0c99a07523a014a7659e869895d696d1f6a1a65d","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.4.0.tgz","fileCount":29,"integrity":"sha512-vyXJTADN5cSi12fNck7LPjdyi1DiF3ibQHffU2cIfgg4x8SZqhu9/HrDB57Zz07oLPXZrw1SAr7WhFXwREGiRw==","signatures":[{"sig":"MEQCIEVbM90LzHibUW5EvV694kB4Ckk9hsVtub3lQ69A7sE+AiBERA1PsXJj7RgOQNCjzVCmXOiWoQwjcuGDA/SDU+dDrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":782622},"type":"module","engines":{"node":">=20"},"gitHead":"22bce69424bb49df7074ffcd5b3f95f0da282d8a","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.8.0","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"4.3.6","hono":"4.12.4","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","@trpc/client":"11.11.0","@trpc/server":"11.11.0","lucide-react":"0.576.0","@xyflow/react":"12.10.1","@hono/node-server":"1.19.10","@trpc/react-query":"11.11.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vite":"7.3.1","eslint":"10.0.2","vitest":"4.0.18","postcss":"8.5.8","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"25.3.3","tailwindcss":"4.2.1","@types/react":"19.2.14","concurrently":"9.2.1","@types/react-dom":"19.2.3","semantic-release":"25.0.3","typescript-eslint":"8.56.1","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.2.1","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.6","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","@semantic-release/commit-analyzer":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.4.0_1772564659460_0.18325006001378052","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@aikotools/repo-maintenance","version":"1.4.1","_id":"@aikotools/repo-maintenance@1.4.1","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"4d844c5b56692212dd7d9147bb1c1117aa48d4b6","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.4.1.tgz","fileCount":29,"integrity":"sha512-6H0Bp7ojfi+eOd8gloq4M5hc0msDifH2IQjhAmYP7xs3BBXWRwN8qd5RI+ayk3E+EQ5AnkKn4ak3GbZxXFSHNg==","signatures":[{"sig":"MEUCIEmPPmqK2YJH7KPO84+vLmdLDodYi3c0MHOTlvw9LWyhAiEA9WkIk4ZD5dRUyqxa9LkAqr4bThc7peo/1wFfYyaewFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":782622},"type":"module","engines":{"node":">=20"},"gitHead":"213de642b17e6247da9e7ff53b704403f22dc602","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.8.0","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"4.3.6","hono":"4.12.4","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","@trpc/client":"11.11.0","@trpc/server":"11.11.0","lucide-react":"0.576.0","@xyflow/react":"12.10.1","@hono/node-server":"1.19.10","@trpc/react-query":"11.11.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vite":"7.3.1","eslint":"10.0.2","vitest":"4.0.18","postcss":"8.5.8","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"25.3.3","tailwindcss":"4.2.1","@types/react":"19.2.14","concurrently":"9.2.1","@types/react-dom":"19.2.3","semantic-release":"25.0.3","typescript-eslint":"8.56.1","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.2.1","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.6","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","@semantic-release/commit-analyzer":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.4.1_1772565207296_0.42013971276681916","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@aikotools/repo-maintenance","version":"1.5.0","_id":"@aikotools/repo-maintenance@1.5.0","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"5be4d4ce5a471561a1b6f94876267ab495819457","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.5.0.tgz","fileCount":29,"integrity":"sha512-CvzZKEHaMod3YSnK8ExgTxhy7DP3OO8lENCbvUzBue72BDGOtGEyMFq6YzQNA+AbmVBi581P3MbkwMiJvXn8WQ==","signatures":[{"sig":"MEYCIQDABE2+Plj9frAGuvmgr3ilj3y9lcXhSVVCPWsc8xZE/wIhANe69U0X2IrHqwQ4Rk3KphJSLsHhOVwx2DqagytRVvB3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":784225},"type":"module","engines":{"node":">=20"},"gitHead":"5a7ee12571e9eb2e579a85a24597ea5a9fb86103","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"_npmVersion":"11.8.0","description":"Web-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"4.3.6","hono":"4.12.4","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","@trpc/client":"11.11.0","@trpc/server":"11.11.0","lucide-react":"0.576.0","@xyflow/react":"12.10.1","@hono/node-server":"1.19.10","@trpc/react-query":"11.11.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vite":"7.3.1","eslint":"10.0.2","vitest":"4.0.18","postcss":"8.5.8","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"25.3.3","tailwindcss":"4.2.1","@types/react":"19.2.14","concurrently":"9.2.1","@types/react-dom":"19.2.3","semantic-release":"25.0.3","typescript-eslint":"8.56.1","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.2.1","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.6","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","@semantic-release/commit-analyzer":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.5.0_1772567937027_0.4623591283848283","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@aikotools/repo-maintenance","version":"1.5.1","keywords":["monorepo","dependency-graph","cascade-update","multi-repo","repository-management","git","npm","dashboard","bulk-operations","dependency-management","devtools","cli","react-flow","trpc","hono"],"license":"MIT","_id":"@aikotools/repo-maintenance@1.5.1","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"homepage":"https://github.com/aikotools/repo-maintenance#readme","bugs":{"url":"https://github.com/aikotools/repo-maintenance/issues"},"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"43f328280c7afbbf703aed8c706ac23ce6628e8a","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.5.1.tgz","fileCount":29,"integrity":"sha512-EIlWdk/tppAejdNhlQS7G3049Fejo+GAM5+y+YHjuhCe72i3Iq4EkKalXzcILzALIMMPNG/n7dAgcItwiEfCaQ==","signatures":[{"sig":"MEUCIQD6IAVbR9eVl66kcFxwW7cMUahSJPUKFn4S9T4bb4AEbQIgcZpUPcv+tu+Gjh+bJmBcBzz+IohHX+3ri5aZPDdS7Q0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":784978},"type":"module","engines":{"node":">=20"},"gitHead":"8fdf19cc7d046124e7971da65a421287a1ef3fd7","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"repository":{"url":"git+https://github.com/aikotools/repo-maintenance.git","type":"git"},"_npmVersion":"11.9.0","description":"Web-based dashboard for managing multi-repo monorepos. Dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"4.3.6","hono":"4.12.4","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","@trpc/client":"11.11.0","@trpc/server":"11.11.0","lucide-react":"0.576.0","@xyflow/react":"12.10.1","@hono/node-server":"1.19.10","@trpc/react-query":"11.11.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vite":"7.3.1","eslint":"10.0.2","vitest":"4.0.18","postcss":"8.5.8","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"25.3.3","tailwindcss":"4.2.1","@types/react":"19.2.14","concurrently":"9.2.1","@types/react-dom":"19.2.3","semantic-release":"25.0.3","typescript-eslint":"8.56.1","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.2.1","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.6","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","@semantic-release/commit-analyzer":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.5.1_1773655221944_0.8449398126497445","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@aikotools/repo-maintenance","version":"1.6.0","keywords":["monorepo","dependency-graph","cascade-update","multi-repo","repository-management","git","npm","dashboard","bulk-operations","dependency-management","devtools","cli","react-flow","trpc","hono"],"license":"MIT","_id":"@aikotools/repo-maintenance@1.6.0","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"homepage":"https://github.com/aikotools/repo-maintenance#readme","bugs":{"url":"https://github.com/aikotools/repo-maintenance/issues"},"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"6c7325438f84783612bcbc8325758712ac7cdb29","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.6.0.tgz","fileCount":30,"integrity":"sha512-suEE9n0jaymlzTIWXTGWaefWKajrnubyEBELd1MleGQKn7hlsJ7yt6Ja0qXoWf0Xztl+7ZPw1WesShWb7pFJWA==","signatures":[{"sig":"MEUCIDYLGlECyRxG9EXM6ZXFCKSr5xA62Wz+YMizP2qCkIfKAiEA0IkUnAy7fg57ruxgPrWzqg1k7sJeJAieL0TciGTEbLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":800245},"type":"module","engines":{"node":">=20"},"gitHead":"a89327f536a0297732c790a70f0682d73eb8806f","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"repository":{"url":"git+https://github.com/aikotools/repo-maintenance.git","type":"git"},"_npmVersion":"11.9.0","description":"Web-based dashboard for managing multi-repo monorepos. Dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"4.3.6","hono":"4.12.4","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","@trpc/client":"11.11.0","@trpc/server":"11.11.0","lucide-react":"0.576.0","@xyflow/react":"12.10.1","@hono/node-server":"1.19.10","@trpc/react-query":"11.11.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vite":"7.3.1","eslint":"10.0.2","vitest":"4.0.18","postcss":"8.5.8","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"25.3.3","tailwindcss":"4.2.1","@types/react":"19.2.14","concurrently":"9.2.1","@types/react-dom":"19.2.3","semantic-release":"25.0.3","typescript-eslint":"8.56.1","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.2.1","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.6","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","@semantic-release/commit-analyzer":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.6.0_1773663503569_0.6698844342358121","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@aikotools/repo-maintenance","version":"1.7.0","keywords":["monorepo","dependency-graph","cascade-update","multi-repo","repository-management","git","npm","dashboard","bulk-operations","dependency-management","devtools","cli","react-flow","trpc","hono"],"license":"MIT","_id":"@aikotools/repo-maintenance@1.7.0","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"homepage":"https://github.com/aikotools/repo-maintenance#readme","bugs":{"url":"https://github.com/aikotools/repo-maintenance/issues"},"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"a7a84b3e78d20fa6e0f9ce4a252c2273af2d687e","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.7.0.tgz","fileCount":30,"integrity":"sha512-Oe8pvXRE3PjWYkP+7C5Nw0LIm9oUASdyj8kBDt24ZzefuW1EsuE9b9rPX0pO7c7HCOoveHCwjY0HU/4aI+cGuQ==","signatures":[{"sig":"MEUCIQDQMxiizWx2L8XyFFlP7FWW6qfRPu9hHRnVf+/AJoxBnQIgDROHOgWTL6cc9B4sGO2z9QrUTc/0Q7uGafcqQEXBpMI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":803747},"type":"module","engines":{"node":">=20"},"gitHead":"67c7c849e1395adcec0dc01893f6429151a227ab","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"repository":{"url":"git+https://github.com/aikotools/repo-maintenance.git","type":"git"},"_npmVersion":"11.9.0","description":"Web-based dashboard for managing multi-repo monorepos. Dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"4.3.6","hono":"4.12.4","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","@trpc/client":"11.11.0","@trpc/server":"11.11.0","lucide-react":"0.576.0","@xyflow/react":"12.10.1","@hono/node-server":"1.19.10","@trpc/react-query":"11.11.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vite":"7.3.1","eslint":"10.0.2","vitest":"4.0.18","postcss":"8.5.8","depcheck":"1.4.7","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"25.3.3","tailwindcss":"4.2.1","@types/react":"19.2.14","concurrently":"9.2.1","@types/react-dom":"19.2.3","semantic-release":"25.0.3","typescript-eslint":"8.56.1","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.2.1","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.6","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","@semantic-release/commit-analyzer":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.7.0_1773664778368_0.7282399054844124","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@aikotools/repo-maintenance","version":"1.8.0","keywords":["monorepo","dependency-graph","cascade-update","multi-repo","repository-management","git","npm","dashboard","bulk-operations","dependency-management","devtools","cli","react-flow","trpc","hono"],"author":{"name":"aikotools"},"license":"MIT","_id":"@aikotools/repo-maintenance@1.8.0","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"homepage":"https://github.com/aikotools/repo-maintenance#readme","bugs":{"url":"https://github.com/aikotools/repo-maintenance/issues"},"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"ebe2af5605644220d264c0b8e35b019d2661ea38","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.8.0.tgz","fileCount":33,"integrity":"sha512-y94nEV7HwXDA1x95P0tr+rO1eJ8ehziORIm7WlIVoM6ea/8DFw/aXFiJtxe6zs/Er2PxlsmnxGiJAa7Lnfo8tw==","signatures":[{"sig":"MEUCIC4y9SLjbxOeN2ixdFnPhp2WVbLivoxaw6zeW2yHQbgDAiEA+6e7799DMCVJqtHHXwyJrjGDf5SDuxuD74oFdN6TpbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":844005},"type":"module","build":{"mac":{"target":"dmg","category":"public.app-category.developer-tools"},"win":{"target":"nsis"},"asar":false,"appId":"com.aikotools.repohub","files":["desktop/**/*","dist/**/*","bin/**/*","package.json"],"linux":{"target":"AppImage"},"directories":{"output":"release"},"productName":"RepoHub","extraMetadata":{"main":"desktop/main.cjs"}},"engines":{"node":">=20"},"gitHead":"fa8606fd6e06efd79a882df3869087121e2740b2","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","desktop":"pnpm build && electron desktop/main.cjs","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit","desktop:build":"pnpm build && electron-builder -p never"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"repository":{"url":"git+https://github.com/aikotools/repo-maintenance.git","type":"git"},"_npmVersion":"11.13.0","description":"Web-based dashboard for managing multi-repo monorepos. Dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"4.3.6","hono":"4.12.4","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","@trpc/client":"11.11.0","@trpc/server":"11.11.0","lucide-react":"0.576.0","@xyflow/react":"12.10.1","@hono/node-server":"1.19.10","@trpc/react-query":"11.11.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vite":"7.3.1","eslint":"10.0.2","vitest":"4.0.18","postcss":"8.5.8","depcheck":"1.4.7","electron":"33.4.11","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"25.3.3","tailwindcss":"4.2.1","@types/react":"19.2.14","concurrently":"9.2.1","@types/react-dom":"19.2.3","electron-builder":"25.1.8","semantic-release":"25.0.3","typescript-eslint":"8.56.1","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.2.1","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.6","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","@semantic-release/commit-analyzer":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.8.0_1782733613905_0.4341138721709574","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"@aikotools/repo-maintenance","version":"1.8.1","keywords":["monorepo","dependency-graph","cascade-update","multi-repo","repository-management","git","npm","dashboard","bulk-operations","dependency-management","devtools","cli","react-flow","trpc","hono"],"author":{"name":"aikotools"},"license":"MIT","_id":"@aikotools/repo-maintenance@1.8.1","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"homepage":"https://github.com/aikotools/repo-maintenance#readme","bugs":{"url":"https://github.com/aikotools/repo-maintenance/issues"},"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"57db3d3b083d6d6a98e4559275f3db430a9a6a9a","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.8.1.tgz","fileCount":33,"integrity":"sha512-zz/+DxGSGjWj/Z4RDtGuYoZ4wPFfuFaBKiDYIG4hmT74a2x4IQhczqFfIY12Z8hIbi1M+50IBxHz64Al1ygm5w==","signatures":[{"sig":"MEUCIC2bqEarWzAiIdFb04+iFOaEFLMmvybpSxNlozWnzOC3AiEAsKBOKVqeNhrG2yJSPGxVSmcTLvMRU5mvSe4j+tskGhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":843090},"type":"module","build":{"mac":{"target":"dmg","category":"public.app-category.developer-tools"},"win":{"target":"nsis"},"asar":false,"appId":"com.aikotools.repohub","files":["desktop/**/*","dist/**/*","bin/**/*","package.json"],"linux":{"target":"AppImage"},"directories":{"output":"release"},"productName":"RepoHub","extraMetadata":{"main":"desktop/main.cjs"}},"engines":{"node":">=20"},"gitHead":"f5f8e71c9685c99345897e85d680420038f77bfd","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","desktop":"pnpm build && electron desktop/main.cjs","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit","desktop:build":"pnpm build && electron-builder -p never"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"repository":{"url":"git+https://github.com/aikotools/repo-maintenance.git","type":"git"},"_npmVersion":"11.13.0","description":"Web-based dashboard for managing multi-repo monorepos. Dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"4.3.6","hono":"4.12.4","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","@trpc/client":"11.11.0","@trpc/server":"11.11.0","lucide-react":"0.576.0","@xyflow/react":"12.10.1","@hono/node-server":"1.19.10","@trpc/react-query":"11.11.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vite":"7.3.1","eslint":"10.0.2","vitest":"4.0.18","postcss":"8.5.8","depcheck":"1.4.7","electron":"33.4.11","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"25.3.3","tailwindcss":"4.2.1","@types/react":"19.2.14","concurrently":"9.2.1","@types/react-dom":"19.2.3","electron-builder":"25.1.8","semantic-release":"25.0.3","typescript-eslint":"8.56.1","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.2.1","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.6","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","@semantic-release/commit-analyzer":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.8.1_1782735334857_0.515100885526349","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"@aikotools/repo-maintenance","version":"1.8.2","keywords":["monorepo","dependency-graph","cascade-update","multi-repo","repository-management","git","npm","dashboard","bulk-operations","dependency-management","devtools","cli","react-flow","trpc","hono"],"author":{"name":"aikotools"},"license":"MIT","_id":"@aikotools/repo-maintenance@1.8.2","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"homepage":"https://github.com/aikotools/repo-maintenance#readme","bugs":{"url":"https://github.com/aikotools/repo-maintenance/issues"},"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"f9322bb582008525c40f4e091f9dada1fd5109ea","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.8.2.tgz","fileCount":33,"integrity":"sha512-bo1Alxsqvto7Eizm8n1yJmBFZIVJZYQJ85B1JvGEn0t5hWUNBFBRGpLJPZKoGsKt2VAhFO2mrJRoc6gydBO2RA==","signatures":[{"sig":"MEQCHxWgX9COr13j6UBJmsbC4vM0977Aq+BmUbAxijAVv0QCIQDXms9ZmltfXl/mfQTVU/IdEMQVIlRFHpgcg2KPkB2Pbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":843094},"type":"module","build":{"mac":{"target":"dmg","category":"public.app-category.developer-tools"},"win":{"target":"nsis"},"asar":false,"appId":"com.aikotools.repohub","files":["desktop/**/*","dist/**/*","bin/**/*","package.json"],"linux":{"target":"AppImage"},"directories":{"output":"release"},"productName":"RepoHub","extraMetadata":{"main":"desktop/main.cjs"}},"engines":{"node":">=20"},"gitHead":"e1f960a18147f117b3457589ceb0b3124702e795","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","desktop":"pnpm build && electron desktop/main.cjs","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit","desktop:build":"pnpm build && electron-builder -p never"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"repository":{"url":"git+https://github.com/aikotools/repo-maintenance.git","type":"git"},"_npmVersion":"11.13.0","description":"Web-based dashboard for managing multi-repo monorepos. Dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"4.3.6","hono":"4.12.4","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","@trpc/client":"11.11.0","@trpc/server":"11.11.0","lucide-react":"0.576.0","@xyflow/react":"12.10.1","@hono/node-server":"1.19.10","@trpc/react-query":"11.11.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vite":"7.3.1","eslint":"10.0.2","vitest":"4.0.18","postcss":"8.5.8","depcheck":"1.4.7","electron":"33.4.11","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"25.3.3","tailwindcss":"4.2.1","@types/react":"19.2.14","concurrently":"9.2.1","@types/react-dom":"19.2.3","electron-builder":"25.1.8","semantic-release":"25.0.3","typescript-eslint":"8.56.1","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.2.1","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.6","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","@semantic-release/commit-analyzer":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.8.2_1782736643317_0.8056502465211295","host":"s3://npm-registry-packages-npm-production"}},"1.8.3":{"name":"@aikotools/repo-maintenance","version":"1.8.3","keywords":["monorepo","dependency-graph","cascade-update","multi-repo","repository-management","git","npm","dashboard","bulk-operations","dependency-management","devtools","cli","react-flow","trpc","hono"],"author":{"name":"aikotools"},"license":"MIT","_id":"@aikotools/repo-maintenance@1.8.3","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"homepage":"https://github.com/aikotools/repo-maintenance#readme","bugs":{"url":"https://github.com/aikotools/repo-maintenance/issues"},"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"d51ae329747448bb5aac91533ac79e694ba2c37f","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.8.3.tgz","fileCount":33,"integrity":"sha512-9CTVcepppeV8KiOYricUXs9Fc4h9n5E1AAgIlFSmnQaJyJ0bf2mtG4dFx0TWYRS82y8RN9olGqlHrhCppNGh6w==","signatures":[{"sig":"MEYCIQCjapfUUPYkci2rKkiPHLGXec9Y6vUALN3U0N4Ek3FY0wIhAPy1HjUXOzq7rQo4YjNV8Jp40Cw7mYUji+3KupwNmh4+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":843329},"type":"module","build":{"mac":{"target":"dmg","category":"public.app-category.developer-tools"},"win":{"target":"nsis"},"asar":false,"appId":"com.aikotools.repohub","files":["desktop/**/*","dist/**/*","bin/**/*","package.json"],"linux":{"target":"AppImage"},"directories":{"output":"release"},"productName":"RepoHub","extraMetadata":{"main":"desktop/main.cjs"}},"engines":{"node":">=20"},"gitHead":"79a38d4963509171830ffea88644c454ecb1114b","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","desktop":"pnpm build && electron desktop/main.cjs","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit","desktop:build":"pnpm build && electron-builder -p never"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"repository":{"url":"git+https://github.com/aikotools/repo-maintenance.git","type":"git"},"_npmVersion":"11.13.0","description":"Web-based dashboard for managing multi-repo monorepos. Dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"4.3.6","hono":"4.12.4","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","@trpc/client":"11.11.0","@trpc/server":"11.11.0","lucide-react":"0.576.0","@xyflow/react":"12.10.1","@hono/node-server":"1.19.10","@trpc/react-query":"11.11.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vite":"7.3.1","eslint":"10.0.2","vitest":"4.0.18","postcss":"8.5.8","depcheck":"1.4.7","electron":"33.4.11","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"25.3.3","tailwindcss":"4.2.1","@types/react":"19.2.14","concurrently":"9.2.1","@types/react-dom":"19.2.3","electron-builder":"25.1.8","semantic-release":"25.0.3","typescript-eslint":"8.56.1","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.2.1","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.6","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","@semantic-release/commit-analyzer":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.8.3_1782736950947_0.3497672189060237","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@aikotools/repo-maintenance","version":"1.9.0","keywords":["monorepo","dependency-graph","cascade-update","multi-repo","repository-management","git","npm","dashboard","bulk-operations","dependency-management","devtools","cli","react-flow","trpc","hono"],"author":{"name":"aikotools"},"license":"MIT","_id":"@aikotools/repo-maintenance@1.9.0","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"homepage":"https://github.com/aikotools/repo-maintenance#readme","bugs":{"url":"https://github.com/aikotools/repo-maintenance/issues"},"bin":{"repohub":"bin/repohub.js"},"dist":{"shasum":"f78cef5bca40b65eaf963090ce9f4f9456b9f7c6","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.9.0.tgz","fileCount":33,"integrity":"sha512-Q3le19az7AP7S4CiS1Cd22xgs/LSf2hcoWAblm0l3nlvSPNKwWYQRWCXR48AweEj4ZcZ04R5QNmLsKJsUH3OyQ==","signatures":[{"sig":"MEQCICxUsKzzvTqfZXHfCRe6PTHe0019ideRwVS6IeBxUQIGAiAtGbVbzORDWYxiN1Gzm1XiugRZxgu2J275RDvnmN7wtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":844068},"type":"module","build":{"mac":{"target":"dmg","category":"public.app-category.developer-tools"},"win":{"target":"nsis"},"asar":false,"appId":"com.aikotools.repohub","files":["desktop/**/*","dist/**/*","bin/**/*","package.json"],"linux":{"target":"AppImage"},"directories":{"output":"release"},"productName":"RepoHub","extraMetadata":{"main":"desktop/main.cjs"}},"engines":{"node":">=20"},"gitHead":"442803ea7a35441f46e3b91eeb5cb191bc2d73ec","private":false,"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","build":"tsc -p tsconfig.server.json && vite build","start":"node bin/repohub.js","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","desktop":"pnpm build && electron desktop/main.cjs","depcheck":"depcheck","dev:client":"vite","dev:server":"npx tsx --watch src/server/index.ts","build:check":"tsc --noEmit","desktop:build":"pnpm build && electron-builder -p never"},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"repository":{"url":"git+https://github.com/aikotools/repo-maintenance.git","type":"git"},"_npmVersion":"11.13.0","description":"Web-based dashboard for managing multi-repo monorepos. Dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"4.3.6","hono":"4.12.4","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","@trpc/client":"11.11.0","@trpc/server":"11.11.0","lucide-react":"0.576.0","@xyflow/react":"12.10.1","@hono/node-server":"1.19.10","@trpc/react-query":"11.11.0","@tanstack/react-query":"5.90.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vite":"7.3.1","eslint":"10.0.2","vitest":"4.0.18","postcss":"8.5.8","depcheck":"1.4.7","electron":"33.4.11","prettier":"3.8.1","@eslint/js":"10.0.1","typescript":"5.9.3","@types/node":"25.3.3","tailwindcss":"4.2.1","@types/react":"19.2.14","concurrently":"9.2.1","@types/react-dom":"19.2.3","electron-builder":"25.1.8","semantic-release":"25.0.3","typescript-eslint":"8.56.1","@vitest/coverage-v8":"4.0.18","@tailwindcss/postcss":"4.2.1","@vitejs/plugin-react":"5.1.4","@semantic-release/npm":"13.1.5","@semantic-release/github":"12.0.6","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","@semantic-release/commit-analyzer":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repo-maintenance_1.9.0_1782805762730_0.25921898991006986","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"@aikotools/repo-maintenance","version":"1.9.1","private":false,"type":"module","publishConfig":{"access":"public"},"description":"Web-based dashboard for managing multi-repo monorepos. Dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","keywords":["monorepo","dependency-graph","cascade-update","multi-repo","repository-management","git","npm","dashboard","bulk-operations","dependency-management","devtools","cli","react-flow","trpc","hono"],"repository":{"type":"git","url":"git+https://github.com/aikotools/repo-maintenance.git"},"homepage":"https://github.com/aikotools/repo-maintenance#readme","bugs":{"url":"https://github.com/aikotools/repo-maintenance/issues"},"license":"MIT","author":{"name":"aikotools"},"engines":{"node":">=20"},"bin":{"repohub":"bin/repohub.js"},"scripts":{"dev":"concurrently \"pnpm run dev:server\" \"pnpm run dev:client\"","dev:server":"npx tsx --watch src/server/index.ts","dev:client":"vite","build":"tsc -p tsconfig.server.json && vite build","build:check":"tsc --noEmit","format":"prettier --write \"{src,tests}/**/*.{ts,tsx,css,json}\"","lint":"eslint \"{src,tests}/**/*.{ts,tsx}\"","test":"pnpm lint && pnpm build && pnpm depcheck && vitest --run --coverage","depcheck":"depcheck","start":"node bin/repohub.js","desktop":"pnpm build && electron desktop/main.cjs","desktop:build":"pnpm build && electron-builder -p never"},"build":{"appId":"com.aikotools.repohub","productName":"RepoHub","asar":false,"extraMetadata":{"main":"desktop/main.cjs"},"files":["desktop/**/*","dist/**/*","bin/**/*","package.json"],"directories":{"output":"release"},"mac":{"target":"dmg","category":"public.app-category.developer-tools"},"win":{"target":"nsis"},"linux":{"target":"AppImage"}},"dependencies":{"@hono/node-server":"1.19.10","@tanstack/react-query":"5.90.21","@trpc/client":"11.11.0","@trpc/react-query":"11.11.0","@trpc/server":"11.11.0","@xyflow/react":"12.10.1","hono":"4.12.4","lucide-react":"0.576.0","react":"19.2.4","react-dom":"19.2.4","simple-git":"3.32.3","zod":"4.3.6"},"devDependencies":{"@eslint/js":"10.0.1","@semantic-release/commit-analyzer":"13.0.1","@semantic-release/github":"12.0.6","@semantic-release/npm":"13.1.5","@tailwindcss/postcss":"4.2.1","@types/node":"25.3.3","@types/react":"19.2.14","@types/react-dom":"19.2.3","@vitejs/plugin-react":"5.1.4","@vitest/coverage-v8":"4.0.18","concurrently":"9.2.1","depcheck":"1.4.7","electron":"33.4.11","electron-builder":"25.1.8","eslint":"10.0.2","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.2","postcss":"8.5.8","prettier":"3.8.1","semantic-release":"25.0.3","tailwindcss":"4.2.1","tsx":"4.21.0","typescript":"5.9.3","typescript-eslint":"8.56.1","vite":"7.3.1","vitest":"4.0.18"},"gitHead":"db505cb59c7526d4dca5d04717d191d4c7971385","_id":"@aikotools/repo-maintenance@1.9.1","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-YJmKCJOgvrHsWZVKaj+yLBxJSHWXOAfaTHp0Ln2LLbFZ351vzes5Ol8n+TmK5M3jeswMWPpKBVvSjtskpYF48g==","shasum":"4b3b53e4e802568003f36e15054004343d388be9","tarball":"https://registry.npmjs.org/@aikotools/repo-maintenance/-/repo-maintenance-1.9.1.tgz","fileCount":33,"unpackedSize":844546,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCgp/qn8g6BNPx/pV5eRRT977wySg4VdQrjCrKXI1ZtcgIhAJhfKTgUJJhyhY/gYapUMctrI/HM6acEvbJPh5Gex/uF"}]},"_npmUser":{"name":"darlenya","email":"torstenlink@gmx.de"},"directories":{},"maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/repo-maintenance_1.9.1_1784066371022_0.6587716792357639"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-16T13:29:37.323Z","modified":"2026-07-14T21:59:31.292Z","1.0.2":"2026-02-16T13:29:37.645Z","1.1.0":"2026-02-16T14:37:40.936Z","1.1.1":"2026-02-16T14:44:01.153Z","1.1.2":"2026-02-16T14:56:30.465Z","1.2.0":"2026-02-16T15:01:38.193Z","1.2.1":"2026-02-16T15:24:16.879Z","1.2.2":"2026-02-16T15:53:50.956Z","1.3.0":"2026-02-16T20:36:37.440Z","1.3.1":"2026-02-16T20:47:12.479Z","1.3.2":"2026-02-17T12:45:37.027Z","1.3.3":"2026-02-17T13:04:12.465Z","1.3.4":"2026-02-27T13:50:52.743Z","1.4.0":"2026-03-03T19:04:19.709Z","1.4.1":"2026-03-03T19:13:27.550Z","1.5.0":"2026-03-03T19:58:57.277Z","1.5.1":"2026-03-16T10:00:22.174Z","1.6.0":"2026-03-16T12:18:23.725Z","1.7.0":"2026-03-16T12:39:38.553Z","1.8.0":"2026-06-29T11:46:54.079Z","1.8.1":"2026-06-29T12:15:35.063Z","1.8.2":"2026-06-29T12:37:23.471Z","1.8.3":"2026-06-29T12:42:31.109Z","1.9.0":"2026-06-30T07:49:22.921Z","1.9.1":"2026-07-14T21:59:31.166Z"},"bugs":{"url":"https://github.com/aikotools/repo-maintenance/issues"},"author":{"name":"aikotools"},"license":"MIT","homepage":"https://github.com/aikotools/repo-maintenance#readme","keywords":["monorepo","dependency-graph","cascade-update","multi-repo","repository-management","git","npm","dashboard","bulk-operations","dependency-management","devtools","cli","react-flow","trpc","hono"],"repository":{"type":"git","url":"git+https://github.com/aikotools/repo-maintenance.git"},"description":"Web-based dashboard for managing multi-repo monorepos. Dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.","maintainers":[{"name":"darlenya","email":"torstenlink@gmx.de"}],"readme":"# RepoHub\n\nWeb-based dashboard for managing multi-repo monorepos. Provides dependency graph visualization, cascade updates, bulk operations, and Git management across all your packages.\n\n![Domain Overview](https://raw.githubusercontent.com/aikotools/repo-maintenance/main/docs/screenshots/dashboard.png)\n\n## Features\n\n- **Desktop app** — native window (Electron) that bundles the backend; prebuilt installers on GitHub Releases\n- **`workspace.repos` manifest** — drive repo layout, git URL and branch from a single [vcstool](https://github.com/dirk-thomas/vcstool) file as the source of truth\n- **Dashboard** with repo statistics and domain overview\n- **Interactive dependency graph** visualization with domain filtering\n- **Cascade updates** — propagate dependency changes through the entire chain\n- **Pull All** — clone/pull all repos from GitHub in parallel\n- **Bulk operations** — run shell commands across multiple repos\n- **Repository detail** with diff viewer, dependencies, commit & push\n- **File-URL dependency management** — switch between `file:` and npm versions\n- **Persistent operation history** for cascade and pull-all runs\n\n## Installation\n\n### Desktop app (recommended)\n\nDownload a prebuilt installer from the **[GitHub Releases page](https://github.com/aikotools/repo-maintenance/releases)**. CI builds them for every `desktop-v*` tag and attaches them to the release:\n\n| File | Platform |\n|------|----------|\n| `RepoHub-*-universal.dmg` | macOS (Intel + Apple Silicon) |\n| `RepoHub.Setup.*.exe` | Windows |\n| `RepoHub-*.AppImage` | Linux |\n\nThe app bundles its own backend — no separate Node.js install needed. Builds are currently **unsigned**: on macOS right-click → **Open** once (or `xattr -dr com.apple.quarantine RepoHub.app`); on Windows pick **\"Run anyway\"** in SmartScreen. `git` must be installed on the machine.\n\n### CLI (npm)\n\n```bash\nnpm install -g @aikotools/repo-maintenance\nrepohub   # serves the dashboard at http://localhost:3100\n```\n\n## Quick Start\n\n1. Launch the desktop app (or run `repohub` and open http://localhost:3100)\n2. Click the gear icon (Settings) and choose **one** of:\n\n   **A) Point at a `workspace.repos` (recommended)** — set the **workspace.repos** field to your [vcstool](https://github.com/dirk-thomas/vcstool) manifest. Root folder, GitHub org, ignore list and per-repo branch are then **derived from the file** — no manual mapping. Use **Regenerate** to rewrite the manifest from the current on-disk state.\n\n   **B) Configure manually:**\n   - **Project Name** — a label for your monorepo\n   - **Root Folder** — path to the directory containing all your repos\n   - **npm Organizations** — scoped packages to detect as internal deps (e.g. `@myorg`)\n   - **GitHub Organizations** *(required)* — for Pull All operations (e.g. `myorg`)\n   - **Parallel Tasks** (1–20, default: 6) · **Default Branch** (e.g. `main`)\n3. Click **\"Refresh repo structure\"** to scan your repos\n\n**Multiple projects:** Use the project switcher in the sidebar header to create and switch between projects. To delete a project, first switch to a different one — then hover over the project to delete and click the trash icon.\n\n![Settings](https://raw.githubusercontent.com/aikotools/repo-maintenance/main/docs/screenshots/settings.png)\n\n## Prerequisites\n\n| Tool | Version | Purpose |\n|------|---------|---------|\n| **Node.js** | 24+ | Runtime (CLI only — the desktop app bundles it) |\n| **Git** | — | Repository operations |\n| **GitHub CLI (`gh`)** | — | Pull All *only in manual GitHub-org mode* (not needed with `workspace.repos`) |\n\nWhen using `workspace.repos`, Pull All clones each repo's URL directly — no `gh` required. In manual GitHub-org mode, `gh` must be authenticated (`gh auth login`).\n\n## Feature Details\n\n### Repository Detail\n\nClick on any repo in the sidebar to open the detail view:\n\n- **Changes tab** — modified files with diff viewer. Untracked files can be added to `.gitignore` with one click.\n- **Dependencies tab** — internal dependencies with links to the respective repo.\n- **Dependents tab** — repos that depend on this repo.\n- **Actions** — Refresh, Pull, Start Cascade.\n- **Recent Commits** — last commits for the repo.\n\n![Repository Detail](https://raw.githubusercontent.com/aikotools/repo-maintenance/main/docs/screenshots/repo-detail.png)\n\n### Dependency Graph\n\nInteractive visualization of all internal dependencies as a node-edge graph (React Flow). Filter by domain, toggle between full graph and affected-only views. Click on a node to navigate to the repo detail.\n\n![Dependency Graph](https://raw.githubusercontent.com/aikotools/repo-maintenance/main/docs/screenshots/dependency-graph.png)\n\n### Pull All\n\nSynchronizes all repos. Two modes:\n\n- **With `workspace.repos`** — clones each missing repo from its manifest **URL at the listed branch**; pulls existing ones. No GitHub API/`gh` needed.\n- **Manual GitHub-org mode** — fetches repos via `gh repo list` and clones them into the mapped domain folder.\n\nIn both cases: **clones** missing repos, **pulls** existing ones (skipping repos with uncommitted changes), and shows live per-repo progress.\n\n**Status types:**\n\n| Status | Meaning |\n|--------|---------|\n| Updated | Successfully pulled |\n| Already up-to-date | No changes |\n| Cloned | Newly cloned from GitHub |\n| Skipped | In ignore list |\n| Unmapped | No domain mapping configured |\n| Has changes | Skipped due to uncommitted changes |\n| Failed | Error during pull/clone |\n\n**Repo mapping:** With a `workspace.repos` this is **derived from the manifest** (and the Repo Mapping editor is hidden). In manual GitHub-org mode, edit it via Settings > Repo Mapping > Edit to assign repos to domains or ignore them.\n\n### Cascade Updates\n\nPropagates dependency updates automatically through the entire dependency chain.\n\n**Example:** `lib-core` is updated. Cascade automatically updates all dependent packages in the correct order (topologically sorted, layer by layer).\n\n**Workflow:**\n\n1. Select source repo (e.g. `lib-core`)\n2. Tool calculates all affected repos in topological order\n3. Configure options:\n   - **Wait for CI** — wait between layers for CI/CD to publish\n   - **Run Tests** — run tests before committing\n   - **Commit Prefix** — e.g. `deps: ` or `chore: `\n4. Review the plan and start\n\n![Cascade Update](https://raw.githubusercontent.com/aikotools/repo-maintenance/main/docs/screenshots/cascade.png)\n\n**Per repo, the cascade executes:**\n\n1. Update `package.json` dependencies\n2. `npm install`\n3. Run tests (optional)\n4. Commit + Push\n5. Wait for CI (optional) + resolve published version\n\n**Controls during execution:** Pause, Resume, Abort, Skip Failed, manually set version.\n\n### Bulk Operations\n\nRun arbitrary shell commands across multiple repos in parallel:\n\n1. Filter repos by domain, type, or search term\n2. Enter a command (e.g. `npm run build`, `git status`, `npm test`)\n3. Choose concurrency (1–20)\n4. Start — live output per repo with exit code and duration\n\n![Bulk Operations](https://raw.githubusercontent.com/aikotools/repo-maintenance/main/docs/screenshots/bulk-operations.png)\n\n### Packages (File-URL Management)\n\nShows repos with `file:` dependencies in `package.json`. Enables batch switching between local `file:` paths (development) and npm versions (production).\n\n### History\n\nPersistent history of all Cascade and Pull All operations with status, affected repos, and duration.\n\n## Configuration\n\n### Environment (.env)\n\n```bash\nPORT=3100                                # Backend port\nVITE_PORT=3101                           # Vite dev server port\nNPM_REGISTRY=https://npm.pkg.github.com # npm registry (for Cascade version resolution)\n```\n\n### Project Settings\n\nConfigured via the Settings dialog (gear icon) in the UI. Persisted in `.repoMaintenance/project.json`.\n\n| Setting | Description | Default |\n|---------|-------------|---------|\n| **Project Name** | Label for your monorepo | — |\n| **workspace.repos** | Path to a vcstool manifest; when set, the source of truth for layout/URL/branch (derives the fields below) | — |\n| **Root Folder** | Path containing all repos *(derived from workspace.repos when set)* | — |\n| **Parallel Tasks** | Concurrency for bulk/pull operations (1–20) | `6` |\n| **Default Branch** | Branch used for pull fallback | `main` |\n| **npm Organizations** | Scoped packages detected as internal deps | — |\n| **GitHub Organizations** *(required)* | Used by Pull All to list/clone repos | — |\n| **npm Registry URL** | Registry for version resolution | `https://npm.pkg.github.com` |\n| **Git Clone Protocol** | Protocol for cloning repos: `ssh` or `https` | `ssh` |\n| **Quick Actions** | Configurable commands for bulk operations | `pnpm install`, `pnpm test`, `pnpm build`, `git pull` |\n| **Repo Mapping** | Assigns GitHub repos to local domain folders | Auto-generated on refresh |\n\n#### workspace.repos (single source of truth)\n\nPoint the **workspace.repos** setting at a [vcstool](https://github.com/dirk-thomas/vcstool) manifest and it becomes the one place that defines your repos:\n\n```yaml\nrepositories:\n  repo/backend/core-backend:\n    type: git\n    url: git@github.com:myorg/core-backend.git\n    version: main\n  repo/integrations/landing:\n    type: git\n    url: git@github.com:myorg/landing.git\n    version: feature/new-pages   # per-repo branch is respected\n```\n\nWhen set, RepoHub:\n\n- **derives** root folder, GitHub org, npm org, ignore list and per-repo branch from the file (these are no longer stored separately in `project.json`);\n- **surfaces not-yet-cloned repos** from the manifest as `missing` (Pull All can clone them at the listed branch);\n- can **regenerate** the manifest from the current on-disk state via the **Regenerate** button (handy after adding/moving repos).\n\n#### Directory Structure\n\nThe scanner supports two directory layouts:\n\n**Hierarchical** (domain folders containing repos):\n\n```\nrootFolder/\n├── core/\n│   ├── kernel/          ← repo with package.json\n│   └── kernel-plugin/   ← repo with package.json\n├── invoice/\n│   ├── lib-invoice-common/\n│   └── outbound/        ← known sub-group\n│       └── lib-invoice-outbound-de/\n└── apps/\n    └── invoice/\n        └── saas-invoice-backend/\n```\n\n**Flat** (repos directly in root folder):\n\n```\nrootFolder/\n├── lib-accounting-export-abacus/   ← repo with package.json\n├── lib-accounting-export-bexio/    ← repo with package.json\n└── lib-accounting-export-bmd/      ← repo with package.json\n```\n\nBoth layouts are auto-detected. A directory is recognized as a repo if it contains a `package.json` with a `name` field. The repo mapping is auto-generated on refresh — flat repos map to `\".\"` (root), hierarchical repos map to their domain folder.\n\n#### Git Clone Protocol\n\nControls how new repos are cloned during **Pull All**:\n\n- **SSH** (default): `git@github.com:org/repo.git` — requires SSH key configured with GitHub\n- **HTTPS**: `https://github.com/org/repo.git` — requires a credential helper (e.g. `gh auth setup-git`)\n\n### Data Storage\n\n```\n.repoMaintenance/\n├── project.json          # Project config (app prefs only when workspace.repos drives layout)\n├── cached-repos.json     # Repo cache (for fast startup)\n├── cached-graph.json     # Dependency graph cache\n├── cascade-history/      # Cascade execution logs\n└── pull-history/         # Pull All execution logs\n```\n\n## Development\n\nFor contributors working on RepoHub itself:\n\n```bash\ngit clone <repo-url>\ncd repo-maintenance\npnpm install\ncp .env.example .env     # Adjust if needed\npnpm dev                 # Backend (3100) + Frontend (3101) concurrently\n```\n\n| Script | Description |\n|--------|-------------|\n| `pnpm dev` | Development (backend + frontend) |\n| `pnpm build` | TypeScript + Vite build |\n| `pnpm start` | Start production server |\n| `pnpm desktop` | Run the Electron desktop app locally |\n| `pnpm desktop:build` | Build desktop installers (`.dmg`/`.exe`/`.AppImage`) into `release/` |\n\n**Cutting a desktop release:** push a `desktop-v*` tag (e.g. `git tag desktop-v1.0.0 && git push --tags`) or run the **Desktop Build** workflow from the Actions tab. CI builds macOS (universal) / Windows / Linux installers and attaches them to a GitHub Release. Artifacts are unsigned (add code-signing secrets to enable signing/notarization).\n| `pnpm test` | Lint + build + depcheck + tests with coverage |\n| `pnpm lint` | ESLint |\n| `pnpm format` | Prettier |\n| `pnpm depcheck` | Check for unused dependencies |\n\n## Tech Stack\n\n| Component | Technology |\n|-----------|------------|\n| Backend | Node.js + Hono + tRPC |\n| Frontend | React 19 + Vite + Tailwind CSS 4 |\n| State | TanStack Query (polling for live updates) |\n| Graph | React Flow (@xyflow/react) |\n| Git | simple-git |\n| Icons | Lucide React |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}