{"_id":"@armynante/scaffold-cli","_rev":"4-917632f072ed7fc7da61d12ed62afa4f","name":"@armynante/scaffold-cli","dist-tags":{"latest":"0.5.2"},"versions":{"0.4.3":{"name":"@armynante/scaffold-cli","version":"0.4.3","keywords":["scaffold","cli","project","template","bun","react","hono","fullstack"],"author":{"name":"armynante"},"license":"MIT","_id":"@armynante/scaffold-cli@0.4.3","maintainers":[{"name":"armynante","email":"andrew.armenante@gmail.com"}],"homepage":"https://github.com/armynante/templates#readme","bugs":{"url":"https://github.com/armynante/templates/issues"},"bin":{"scaffold":"dist/cli/index.js"},"dist":{"shasum":"db66ffe0c642daa3e9af68757d7a079b30dd4011","tarball":"https://registry.npmjs.org/@armynante/scaffold-cli/-/scaffold-cli-0.4.3.tgz","fileCount":63,"integrity":"sha512-bcdKqiLfT1uRd+enNcYCgceCO4wxLoBe3SWEu3VOzTix6/h2oxENHAqf1sgy4yBCJaXgpIhzu1o2kR2DQoM+DA==","signatures":[{"sig":"MEYCIQCpEC5p9VGmxK/+AQL12FjoGCkdfL5IVtox18nP4MSzhQIhAPvtJ/Lwz6QpzWd7FaSY1EHXnOdEnOF3m7TlRB2R9im6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150680},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1c2c1ca85de87fd7cd6930acc9e4199b40e8f27d","scripts":{"dev":"bun --hot src/cli/index.ts","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node && bun build ./src/cli/index.ts --outdir ./dist/cli --target node && cp -r ./src/templates ./dist","build:types":"tsc --emitDeclarationOnly --outDir ./dist","prepublishOnly":"bun run build && bun run build:types"},"_npmUser":{"name":"armynante","email":"andrew.armenante@gmail.com"},"repository":{"url":"git+https://github.com/armynante/templates.git","type":"git"},"_npmVersion":"11.6.2","description":"CLI for scaffolding new projects with optional frontend, backend, and storybook","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ejs":"^3.1.10"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/ejs":"^3.1.5","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/scaffold-cli_0.4.3_1766248778549_0.8695958878996342","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@armynante/scaffold-cli","version":"0.5.0","keywords":["scaffold","cli","project","template","bun","react","hono","fullstack"],"author":{"name":"armynante"},"license":"MIT","_id":"@armynante/scaffold-cli@0.5.0","maintainers":[{"name":"armynante","email":"andrew.armenante@gmail.com"}],"homepage":"https://github.com/armynante/templates#readme","bugs":{"url":"https://github.com/armynante/templates/issues"},"bin":{"scaffold":"dist/cli/index.js"},"dist":{"shasum":"df85f756a703ea1f64603e049e39c12fdcf620ef","tarball":"https://registry.npmjs.org/@armynante/scaffold-cli/-/scaffold-cli-0.5.0.tgz","fileCount":67,"integrity":"sha512-6kYnDr3TYOVsZg2w/DmCKdf9cWu8NmtziTyq8huHfS1h9Xh1REnIikbg4sfMK+bygHLlnVsOXC9sQgH8u94Vvg==","signatures":[{"sig":"MEUCIDPkLmcBmBd3OUdPVW0fl4VrRJqdMjiL0ADGG4cHxqhAAiEAi9R2P73vVT6ImgwWtSIkHU1iIRQdYlBQ48mM8ijrn3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181228},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"467ed43c5d85dcd2470bd9b43c14f73a9aad50a9","scripts":{"dev":"bun --hot src/cli/index.ts","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node && bun build ./src/cli/index.ts --outdir ./dist/cli --target node && cp -r ./src/templates ./dist","build:types":"tsc --emitDeclarationOnly --outDir ./dist","prepublishOnly":"bun run build && bun run build:types"},"_npmUser":{"name":"armynante","email":"andrew.armenante@gmail.com"},"repository":{"url":"git+https://github.com/armynante/templates.git","type":"git"},"_npmVersion":"11.6.2","description":"CLI for scaffolding new projects with optional frontend, backend, and storybook","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ejs":"^3.1.10"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/ejs":"^3.1.5","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/scaffold-cli_0.5.0_1767108970351_0.021420532380378443","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@armynante/scaffold-cli","version":"0.5.1","keywords":["scaffold","cli","project","template","bun","react","hono","fullstack"],"author":{"name":"armynante"},"license":"MIT","_id":"@armynante/scaffold-cli@0.5.1","maintainers":[{"name":"armynante","email":"andrew.armenante@gmail.com"}],"homepage":"https://github.com/armynante/templates#readme","bugs":{"url":"https://github.com/armynante/templates/issues"},"bin":{"scaffold":"dist/cli/index.js"},"dist":{"shasum":"2604c518574a1d0eaf59d68b6efff0a7c40fbe48","tarball":"https://registry.npmjs.org/@armynante/scaffold-cli/-/scaffold-cli-0.5.1.tgz","fileCount":67,"integrity":"sha512-0Pu4h91YRHLaYRe/FKx/zcFoE67FbIdCToF5zgaWBlJ9lRp0s5Ci3PlB0WbpndprF1UOB19bOQX+jinDDhWGdw==","signatures":[{"sig":"MEQCIAzXC8SXL/s6M9Io5HYU35JSluoH6d4XGull6RSmPpesAiBL9xyjr5KyY8waaeLYqXgUASwfoOH+5m5wfN6f+0qCzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186452},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"467ed43c5d85dcd2470bd9b43c14f73a9aad50a9","scripts":{"dev":"bun --hot src/cli/index.ts","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node && bun build ./src/cli/index.ts --outdir ./dist/cli --target node && cp -r ./src/templates ./dist","build:types":"tsc --emitDeclarationOnly --outDir ./dist","prepublishOnly":"bun run build && bun run build:types"},"_npmUser":{"name":"armynante","email":"andrew.armenante@gmail.com"},"repository":{"url":"git+https://github.com/armynante/templates.git","type":"git"},"_npmVersion":"11.6.2","description":"CLI for scaffolding new projects with optional frontend, backend, and storybook","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ejs":"^3.1.10"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/ejs":"^3.1.5","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/scaffold-cli_0.5.1_1767110826410_0.8430535467733429","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@armynante/scaffold-cli","version":"0.5.2","description":"CLI for scaffolding new projects with optional frontend, backend, and storybook","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"bin":{"scaffold":"dist/cli/index.js"},"scripts":{"build":"bun build ./src/index.ts --outdir ./dist --target node && bun build ./src/cli/index.ts --outdir ./dist/cli --target node && cp -r ./src/templates ./dist","build:types":"tsc --emitDeclarationOnly --outDir ./dist","test":"bun test","dev":"bun --hot src/cli/index.ts","prepublishOnly":"bun run build && bun run build:types"},"dependencies":{"ejs":"^3.1.10"},"devDependencies":{"@types/bun":"latest","@types/ejs":"^3.1.5","typescript":"^5"},"keywords":["scaffold","cli","project","template","bun","react","hono","fullstack"],"author":{"name":"armynante"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/armynante/templates.git"},"gitHead":"467ed43c5d85dcd2470bd9b43c14f73a9aad50a9","_id":"@armynante/scaffold-cli@0.5.2","bugs":{"url":"https://github.com/armynante/templates/issues"},"homepage":"https://github.com/armynante/templates#readme","_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-wOGb6vTz9e82QjP+ppJK/6bIQcm88mz0G0uVCsA5yNZZ5JTOx2ZQawhtKCACndRLVdWheIPULMtnWgUg8FTKaQ==","shasum":"517ea345da2ecbe433314a47e405d5dc00b508eb","tarball":"https://registry.npmjs.org/@armynante/scaffold-cli/-/scaffold-cli-0.5.2.tgz","fileCount":67,"unpackedSize":186410,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBdNrsT64eSY6MBoOEixH7EoJlUJDdlKvqTxFREp8OAvAiAgkWxQBQs7DKD/75eqMqZbAe/zhIK9Ah2PJBIv56o5cw=="}]},"_npmUser":{"name":"armynante","email":"andrew.armenante@gmail.com"},"directories":{},"maintainers":[{"name":"armynante","email":"andrew.armenante@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/scaffold-cli_0.5.2_1767111870776_0.6340387897522919"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-20T16:39:38.454Z","modified":"2025-12-30T16:24:31.116Z","0.4.3":"2025-12-20T16:39:38.703Z","0.5.0":"2025-12-30T15:36:10.555Z","0.5.1":"2025-12-30T16:07:06.564Z","0.5.2":"2025-12-30T16:24:30.924Z"},"bugs":{"url":"https://github.com/armynante/templates/issues"},"author":{"name":"armynante"},"license":"MIT","homepage":"https://github.com/armynante/templates#readme","keywords":["scaffold","cli","project","template","bun","react","hono","fullstack"],"repository":{"type":"git","url":"git+https://github.com/armynante/templates.git"},"description":"CLI for scaffolding new projects with optional frontend, backend, and storybook","maintainers":[{"name":"armynante","email":"andrew.armenante@gmail.com"}],"readme":"# @armynante/scaffold-cli\n\nCLI tool for scaffolding new full-stack projects with React, Vike, Hono, and more.\n\n## Installation\n\n```bash\n# From npm/CodeArtifact\nbun add -g @armynante/scaffold-cli\n\n# Or use directly with bunx\nbunx @armynante/scaffold-cli init my-app\n```\n\n## Quick Start\n\n```bash\n# Create a full-stack project in current directory\nscaffold init my-app\n\n# Interactive mode (guided setup)\nscaffold init -i\n\n# Full-stack with database and deploy setup\nscaffold init my-app --with-database --with-deploy\n\n# Initialize in existing directory (merge with existing files)\nscaffold init my-app --merge\n```\n\n## Usage\n\n```bash\n# SSR only (no CSR example)\nscaffold init my-app --ssr\n\n# CSR only (client-side rendering)\nscaffold init my-spa --csr\n\n# API only (no frontend)\nscaffold init my-api --no-frontend --no-storybook\n\n# With database setup and initial model\nscaffold init my-app --with-database --initial-model \"User name:string email:string:unique\"\n\n# Specify output directory\nscaffold init my-app -o ./projects/my-app\n```\n\n## Features\n\nBy default, all features are **included**. Use `--no-*` flags to exclude:\n\n| Feature | Description | Exclude Flag |\n|---------|-------------|--------------|\n| Frontend | React 19, Vike (SSR/CSR), Tailwind CSS, Headless UI | `--no-frontend` |\n| Backend | Hono API routes, health checks | `--no-backend` |\n| Storybook | Component library with a11y testing | `--no-storybook` |\n\n## Integrations\n\nscaffold-cli integrates with external CLIs for database and deployment setup:\n\n| Integration | CLI Required | Flag | What it creates |\n|-------------|--------------|------|-----------------|\n| Database | `@armynante/database-cli` | `--with-database` | database.config.ts, migrations, seeds, models |\n| Deploy | `@armynante/deploy-cli` | `--with-deploy` | Dockerfile, deploy.config.json, .env.deploy |\n\nIf the required CLI is not installed, scaffold will prompt to install it globally.\n\n## Options\n\n```\n-i, --interactive    Run interactive mode with prompts\n-n, --name           Project name (alternative to positional)\n-o, --output         Output directory (default: current directory)\n\n--no-frontend        Exclude React/Vike frontend\n--no-backend         Exclude API routes (keep health check only)\n--no-storybook       Exclude Storybook\n\n--ssr                SSR only (server-side rendering)\n--csr                CSR only (client-side rendering)\n\n--port               Server port (default: 3000)\n--storybook-port     Storybook port (default: 6006)\n--hmr-host           HMR host for dev server (default: localhost)\n\n--with-database      Include database-cli setup\n--with-deploy        Run deploy init (creates Dockerfile/deploy.config.json)\n--skip-database      Skip database-cli setup\n--skip-deploy        Skip deploy init\n--database-envs      Database environments (default: dev,test)\n--skip-docker        Skip Docker setup in database-cli\n--initial-model      Generate initial model (e.g., \"User name:string email:string\")\n\n--merge              Merge with existing files in non-empty directory\n--overwrite          Overwrite existing files without prompting\n\n-v, --verbose        Verbose output\n-h, --help           Show help message\n--version            Show version\n```\n\n## Non-Empty Directory Support\n\nscaffold-cli can initialize projects in non-empty directories:\n\n- **`--merge`**: JSON configs (package.json, tsconfig.json) are deep-merged. Other files are overwritten.\n- **`--overwrite`**: All files are overwritten without prompting.\n- **Interactive mode**: Prompts you to choose merge, overwrite, or cancel.\n\n```bash\n# Merge into existing project\ncd existing-project\nscaffold init my-app --merge\n\n# Overwrite existing files\nscaffold init my-app --overwrite\n```\n\n## Development\n\n```bash\n# Install dependencies\nbun install\n\n# Run in development mode\nbun run dev\n\n# Build\nbun run build\n\n# Run tests\nbun test\n\n# Type check\nbun run tsc --noEmit\n```\n\n## Project Structure\n\n```\nscaffold-cli/\n├── src/\n│   ├── cli/\n│   │   ├── index.ts        # CLI entry point\n│   │   ├── commands/       # CLI commands\n│   │   ├── output.ts       # Terminal output utilities\n│   │   └── prompt.ts       # Interactive prompts\n│   ├── services/\n│   │   ├── FileService.ts         # File operations\n│   │   ├── TemplateService.ts     # Template processing\n│   │   ├── FileConflictService.ts # Merge/overwrite handling\n│   │   ├── CLIDetectionService.ts # External CLI detection\n│   │   ├── CLIInstallService.ts   # CLI auto-install/upgrade\n│   │   └── ExternalCLIService.ts  # External CLI execution\n│   ├── templates/\n│   │   └── fullstack/      # Full-stack template\n│   ├── types.ts            # TypeScript types\n│   └── index.ts            # Module exports\n├── dist/                   # Build output\n├── package.json\n└── tsconfig.json\n```\n\n## Publishing\n\nFrom the repository root:\n\n```bash\nbun run publish:scaffold\n```\n\nOr directly:\n\n```bash\n./scripts/codeartifact-publish.sh Modules/scaffold-cli\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}