{"_id":"@alihussein/express-cli","name":"@alihussein/express-cli","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@alihussein/express-cli","version":"1.0.0","description":"A CLI to scaffold Express.js applications.","main":"index.js","type":"module","bin":{"create-express-app":"bin/create-express-app"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["express","cli","scaffold"],"author":{"name":"ali.hussein@live.com"},"license":"ISC","dependencies":{"ansi-escapes":"^4.3.2","ansi-regex":"^5.0.1","ansi-styles":"^4.3.0","chalk":"^5.4.1","chardet":"^0.7.0","cli-width":"^4.1.0","color-convert":"^2.0.1","color-name":"^1.1.4","commander":"^14.0.0","emoji-regex":"^8.0.0","external-editor":"^3.1.0","iconv-lite":"^0.4.24","inquirer":"^12.9.0","is-fullwidth-code-point":"^3.0.0","mute-stream":"^2.0.0","os-tmpdir":"^1.0.2","run-async":"^4.0.5"},"devDependencies":{},"_id":"@alihussein/express-cli@1.0.0","gitHead":"f7668f0df75a586464032d84e6be1e3d7bc5a554","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-KBVf8cSJR8UH1NGZDUhqIEEe9LTXq+E18dk7DD7tJhQR9LoycBIPUjgmPOZpN9UlL1mdUlL2QmqGPK2SB8qV9w==","shasum":"213f0fe4d17bdc399d1d37bd887c3af3cf3ac3fa","tarball":"https://registry.npmjs.org/@alihussein/express-cli/-/express-cli-1.0.0.tgz","fileCount":11,"unpackedSize":20448,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD+mH1fL0ANO6ANOsHhNXKKwPuW1dIS4CKWgIWXITt0NwIhAMNMyzfbZ9ILWFPox4AdfzNOGMnMtfnsEMqJRnt3uqgc"}]},"_npmUser":{"name":"alihussein","email":"ali.hussein@live.com"},"directories":{},"maintainers":[{"name":"alihussein","email":"ali.hussein@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/express-cli_1.0.0_1754053750662_0.2074008183519307"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-01T13:09:10.565Z","1.0.0":"2025-08-01T13:09:10.818Z","modified":"2025-08-01T13:09:11.126Z"},"maintainers":[{"name":"alihussein","email":"ali.hussein@live.com"}],"description":"A CLI to scaffold Express.js applications.","keywords":["express","cli","scaffold"],"author":{"name":"ali.hussein@live.com"},"license":"ISC","readme":"\n# Express App Generator CLI\n\nA powerful and interactive Command Line Interface (CLI) for scaffolding modern Express.js applications. This tool allows you to quickly generate a new project with a robust, scalable, and maintainable structure, complete with your choice of database, boilerplate resources, and common middleware.\n\n## Features\n\n-   **Interactive Setup**: An easy-to-use interactive prompt guides you through the setup process.\n    \n-   **Database Integration**: Choose from popular databases:\n    \n    -   MongoDB (with Mongoose)\n        \n    -   PostgreSQL (with pg)\n        \n    -   MySQL (with mysql2)\n        \n-   **Boilerplate Resources**: Optionally include a pre-built `User` resource with a model, controller, and service layer.\n    \n-   **Common Middleware**: Automatically include and configure essential middleware:\n    \n    -   Authentication with JSON Web Tokens (JWT)\n        \n    -   Request logging with Morgan\n        \n    -   Centralized error handling\n        \n-   **Modern JavaScript**: Uses ES Modules (`import`/`export`) syntax.\n    \n-   **Scalable Architecture**: Generates a clean, layered project structure (routes, controllers, services, models).\n    \n\n## Installation\n\nTo use the Express App Generator, you need to install it globally on your machine using npm.\n\n```\nnpm install -g .\n\n```\n\n_(Note: Run this command from within the `express-cli` project directory. If you were to publish this to npm, the command would be `npm install -g express-cli`)_\n\n## Usage\n\nOnce installed, you can create a new application by running the `create-express-app` command followed by your desired project name.\n\n```\ncreate-express-app my-new-api\n\n```\n\nThis will launch the interactive setup process, which will ask you the following questions:\n\n1.  Which database would you like to use?\n    \n2.  Would you like to include a boilerplate User resource?\n    \n3.  Which common middleware would you like to include?\n    \n\nAfter you answer the prompts, the CLI will create a new directory with your project name, scaffold the entire application structure, and install all the necessary dependencies.\n\n## Generated Project Structure\n\nThe CLI generates the following project structure:\n\n```\nmy-new-api/\n├── .env\n├── .gitignore\n├── package.json\n└── public/\n└── src/\n    ├── app.js\n    ├── index.js\n    ├── config/\n    │   └── db.js\n    ├── constants.js\n    ├── controllers/\n    │   └── user.controller.js\n    ├── middlewares/\n    │   ├── auth.middleware.js\n    │   └── error.middleware.js\n    ├── models/\n    │   └── user.model.js\n    ├── routes/\n    │   └── user.routes.js\n    ├── services/\n    │   └── user.service.js\n    └── utils/\n        ├── ApiError.js\n        ├── ApiResponse.js\n        └── asyncHandler.js\n\n```\n\n## Development\n\nTo contribute to the development of this CLI tool:\n\n1.  **Clone the repository:**\n    \n    ```\n    git clone <your-repo-url>\n    cd express-cli\n    \n    ```\n    \n2.  **Install dependencies:**\n    \n    ```\n    npm install\n    \n    ```\n    \n3.  Link the package:\n    \n    Use npm link to create a symbolic link. This allows you to run the create-express-app command globally while testing your local changes without having to reinstall it every time.\n    \n    ```\n    npm link\n    \n    ```\n    \n\n## License\n\nThis project is licensed under the MIT License.","readmeFilename":"README.md","_rev":"1-6c547bd45938932884a52ad6e7bca4eb"}