{"_id":"@aminilo/pgi","_rev":"4-ebbe675a410e450d8b4f5da8f59d424a","name":"@aminilo/pgi","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@aminilo/pgi","version":"1.0.0","keywords":["cli","nodejs","typescript","inquirer","yargs","pgi"],"author":{"name":"AmiNilo"},"license":"MIT","_id":"@aminilo/pgi@1.0.0","maintainers":[{"name":"aminilo","email":"aminilo.dev@gmail.com"}],"homepage":"https://github.com/aminilo/pgi#readme","bugs":{"url":"https://github.com/aminilo/pgi/issues"},"bin":{"pgi":"dist/cli.js"},"dist":{"shasum":"d92d4b664e5dd6d2123d4bff5e2faaa875c291a7","tarball":"https://registry.npmjs.org/@aminilo/pgi/-/pgi-1.0.0.tgz","fileCount":20,"integrity":"sha512-P/VzNNeUGow6bYG5hfjS2jCTLuE7iS3a8VfifAplTsrV3JNbF/bASFJtdJwW3X37dhOKK/+QhVij8izR8X08sw==","signatures":[{"sig":"MEQCIHGRr9CAeAyM+DvsSa5jNPZSfNjCzubZ+V+8V2dGN5cXAiAqsuHt02uJOgNPjPsbdo96ngLfb2BRkNASDr7HMGtrjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57809},"main":"dist/cli.js","gitHead":"65d967e183c126a3703deae37472186b6fc09f3e","scripts":{"test":"jest","build":"tsc","serve":"ts-node src/cli.ts","start":"node dist/cli.js"},"_npmUser":{"name":"aminilo","email":"aminilo.dev@gmail.com"},"repository":{"url":"git+https://github.com/aminilo/pgi.git","type":"git"},"_npmVersion":"10.9.2","description":"A simple & interactive CLI tool to bootstrap NodeJS projects with favorite packages","directories":{},"_nodeVersion":"23.10.0","dependencies":{"chalk":"^4.1.2","yargs":"^17.7.2","inquirer":"^12.6.0","clipboardy":"^4.0.0","inquirer-search-checkbox":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/yargs":"^17.0.33"},"_npmOperationalInternal":{"tmp":"tmp/pgi_1.0.0_1745705333919_0.8465195054334433","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aminilo/pgi","version":"1.0.1","keywords":["cli","nodejs","typescript","inquirer","yargs","pgi"],"author":{"name":"AmiNilo"},"license":"MIT","_id":"@aminilo/pgi@1.0.1","maintainers":[{"name":"aminilo","email":"aminilo.dev@gmail.com"}],"homepage":"https://github.com/aminilo/pgi#readme","bugs":{"url":"https://github.com/aminilo/pgi/issues"},"bin":{"pgi":"dist/cli.js"},"dist":{"shasum":"c94d4fc01548af45fbbb950b3c9a42842e9b6e67","tarball":"https://registry.npmjs.org/@aminilo/pgi/-/pgi-1.0.1.tgz","fileCount":20,"integrity":"sha512-p3SVn/YxMZWg+Zo1PSAFhSq8hXjN++cGPlKtBKrgYhQoJyLUNb+feC7y4WBvKz4HBaT80tZ+4+1MchDL86848A==","signatures":[{"sig":"MEUCIC8SQCa90xbai584mEluq0bgQ5PwS1vH8syleJXpgb6yAiEAldZ+D+OTSwzQS7hTiLS2iYmFb3up2t2z66TaBUJdCPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58561},"main":"dist/cli.js","gitHead":"b4d527eebfaf640354b08dd7e715e85709473438","scripts":{"test":"jest","build":"tsc","serve":"ts-node src/cli.ts","start":"node dist/cli.js"},"_npmUser":{"name":"aminilo","email":"aminilo.dev@gmail.com"},"repository":{"url":"git+https://github.com/aminilo/pgi.git","type":"git"},"_npmVersion":"10.9.2","description":"A simple & interactive CLI tool to bootstrap NodeJS projects with favorite packages","directories":{},"_nodeVersion":"23.10.0","dependencies":{"chalk":"^4.1.2","yargs":"^17.7.2","figlet":"^1.8.1","inquirer":"^12.6.0","clipboardy":"^4.0.0","inquirer-search-checkbox":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/yargs":"^17.0.33","@types/figlet":"^1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/pgi_1.0.1_1745720122676_0.5568107763251717","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aminilo/pgi","version":"1.0.2","keywords":["cli","nodejs","typescript","inquirer","yargs","pgi"],"author":{"name":"AmiNilo"},"license":"MIT","_id":"@aminilo/pgi@1.0.2","maintainers":[{"name":"aminilo","email":"aminilo.dev@gmail.com"}],"homepage":"https://github.com/aminilo/pgi#readme","bugs":{"url":"https://github.com/aminilo/pgi/issues"},"bin":{"pgi":"dist/cli.js"},"dist":{"shasum":"faea8ccb7ba8147929a036d995f54c4a91db4fae","tarball":"https://registry.npmjs.org/@aminilo/pgi/-/pgi-1.0.2.tgz","fileCount":20,"integrity":"sha512-KokkBhYQcNYrbB8+PQ9+ZHiy/ZUsmUGFRQVHROqZSe0cPTU+uY8E9ZGbKG6UH6LdMycAva/8IEg3su2qafyuwA==","signatures":[{"sig":"MEUCIDotMrdHKQKi35tlxUZleuGOyl1MGrPTr+Iot0WS4V6jAiEA7V+KZgB0OX/W1ek7XqF/9S/ZsAqQs14+efzz9kpAFX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58614},"main":"dist/cli.js","gitHead":"ec8a8aa4b51463de127316944e7ceda1020b30ea","scripts":{"test":"jest","build":"tsc","serve":"ts-node src/cli.ts","start":"node dist/cli.js"},"_npmUser":{"name":"aminilo","email":"aminilo.dev@gmail.com"},"repository":{"url":"git+https://github.com/aminilo/pgi.git","type":"git"},"_npmVersion":"10.9.2","description":"A simple & interactive CLI tool to bootstrap NodeJS projects with favorite packages","directories":{},"_nodeVersion":"23.10.0","dependencies":{"chalk":"^4.1.2","yargs":"^17.7.2","figlet":"^1.8.1","inquirer":"^12.6.0","clipboardy":"^4.0.0","inquirer-search-checkbox":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/yargs":"^17.0.33","@types/figlet":"^1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/pgi_1.0.2_1745721377069_0.12956933239456236","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aminilo/pgi","version":"1.0.3","main":"dist/cli.js","bin":{"pgi":"dist/cli.js"},"scripts":{"test":"jest","build":"tsc","serve":"ts-node src/cli.ts","start":"node dist/cli.js"},"keywords":["cli","nodejs","typescript","inquirer","yargs","pgi"],"author":{"name":"AmiNilo"},"license":"MIT","description":"A simple & interactive CLI tool to bootstrap NodeJS projects with favorite packages","devDependencies":{"@types/figlet":"^1.7.0","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/yargs":"^17.0.33","jest":"^29.7.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","typescript":"^5.8.3"},"dependencies":{"chalk":"^4.1.2","clipboardy":"^4.0.0","figlet":"^1.8.1","inquirer":"^12.6.0","inquirer-search-checkbox":"^1.0.0","yargs":"^17.7.2"},"repository":{"type":"git","url":"git+https://github.com/aminilo/pgi.git"},"homepage":"https://github.com/aminilo/pgi#readme","bugs":{"url":"https://github.com/aminilo/pgi/issues"},"_id":"@aminilo/pgi@1.0.3","gitHead":"888818880cf5b5a39bde8e1a605746ad087af471","_nodeVersion":"23.10.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-MyQUSPqKtXg/ulDJRMUAELra6xU6N4MbycJA/jzdTXXMRftJTOU5Z2785eXR2shI7woEKR1m41i/7Rdtgz03NA==","shasum":"bc7a98726495756528a56dbac6c8b17ef046d02f","tarball":"https://registry.npmjs.org/@aminilo/pgi/-/pgi-1.0.3.tgz","fileCount":20,"unpackedSize":58614,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA1dyTRfv1+6kPkCm5ZXba86eGHj8uhXMJNqu9eLiHB3AiEAsN0Fchcd2GbPZeiF5/jg3/t0PhhM074dksOXhREyYgE="}]},"_npmUser":{"name":"aminilo","email":"aminilo.dev@gmail.com"},"directories":{},"maintainers":[{"name":"aminilo","email":"aminilo.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pgi_1.0.3_1745721520598_0.8739384866085065"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-26T22:08:53.815Z","modified":"2025-04-27T02:38:41.000Z","1.0.0":"2025-04-26T22:08:54.109Z","1.0.1":"2025-04-27T02:15:22.861Z","1.0.2":"2025-04-27T02:36:17.246Z","1.0.3":"2025-04-27T02:38:40.819Z"},"bugs":{"url":"https://github.com/aminilo/pgi/issues"},"author":{"name":"AmiNilo"},"license":"MIT","homepage":"https://github.com/aminilo/pgi#readme","keywords":["cli","nodejs","typescript","inquirer","yargs","pgi"],"repository":{"type":"git","url":"git+https://github.com/aminilo/pgi.git"},"description":"A simple & interactive CLI tool to bootstrap NodeJS projects with favorite packages","maintainers":[{"name":"aminilo","email":"aminilo.dev@gmail.com"}],"readme":"# 📦 pgi\n\nA simple & interactive CLI tool to **initialize a NodeJS project** and install your favorite packages in seconds.  \nBuilt with **TypeScript**, **Yargs**, and **Inquirer**, it's designed to be fast, simple, and developer-friendly.\n\n---\n\n## 🚀 Features\n\n- 🔍 Fuzzy-searchable package selection UI (powered by `inquirer-search-checkbox`)\n- ⚙️ Auto-installation of selected packages (supports `dependencies` and `devDependencies`)\n- 📌 TypeScript types included automatically (e.g., `@types/express`)\n- 📋 One-liner install command can be copied to clipboard\n- 🦢 Optional Git setup and `.gitignore` generation\n- 🧪 Including CLI tests\n- 💖 Fully written in TypeScript\n\n---\n\n## 🛠 Tech Stack\n\n- **Language**: TypeScript\n- **CLI Engine**: Yargs\n- **Interactive Prompts**: Inquirer + inquirer-search-checkbox\n- **Clipboard Integration**: clipboardy\n- **Terminal Styling**: chalk\n- **Typing Effect**: custom `typer` utility (simulated typing in terminal)\n\n---\n\n## 🤩 Available Packages\n\nThe following categories of packages are available to choose from:\n\n### ⚙️ Dev Tools\n\n- TypeScript (& ts-node, @types/node)\n- Nodemon, ESLint, Prettier\n- Husky, lint-staged, cross-env\n- concurrently, tsconfig-paths\n\n### 🧪 Testing\n\n- Jest, Vitest, Supertest, Superagent\n\n### 🔥 Server\n\n- Express, express-validator, express-rate-limit\n- CORS, Compression, Helmet, HPP, Morgan, cookie-parser\n\n### 🔐 Authentication\n\n- Bcrypt, JSON Web Token (JWT), Passport, Passport JWT\n\n### 📦 Common Libraries\n\n- Yargs, dotenv, uuid, validator, zod, class-validator, dayjs\n\n### 📬 Communication\n\n- Nodemailer\n\n### ⚡ Real-time\n\n- Socket.IO, socket.io-client\n\n### 🗃️ Database / ORM\n\n- MySql, PostgreSQL, Redis\n- Prisma, Mongoose, TypeORM\n\n### 🔗 Networking\n\n- Axios, formidable\n\n### 🧰 Utilities\n\n- fs-extra, Multer, rimraf\n\n### 📚 Documentation\n\n- Swagger (swagger-jsdoc + swagger-ui-express)\n\n---\n\n## 📦 How it Works\n\n1. **Run the CLI:**\n\n```bash\nnpx pgi i\n```\n\n2. **Search & select packages to install**\n\n3. **Choose options:**\n   - `--copy` or `-c`: Copy the command to clipboard\n   - `--git` or `-g`: Setup git & generate `.gitignore`\n\n4. **Let pgi handle the rest!**\n\n---\n\n## 🔢 Example Output\n\n```bash\n? Select packages (type to search): (Press <space> to select, <enter> to submit.)\n ◯ TypeScript\n ◯ Express\n ◯ dotenv\n ◯ Prisma\n(Move up and down to reveal more choices)\n```\n\n```bash\n 📦 Installing 4 packages:\n 1. TypeScript\n 2. Express\n 3. dotenv\n 4. Prisma\n```\n\n```bash\nnpm init -y && npx tsc --init && npm i -D prisma ts-node typescript @types/{dotenv,express,node} && npm i @prisma/client dotenv express\n```\n\n> Tip: Use `--copy` to copy this entire command to clipboard & run it with a single paste.\n\n---\n\n## 🧪 Run CLI Tests\n\nTo test the PackageFactory & CLI handler command logic:\n\n```bash\nnpm test\n```\n\n---\n\n## 📁 Project Structure\n\n```\nsrc/\n├── commands/\n│   └── install.ts\n│   └── installCommandHandler.ts\n├── tests/\n│   └── install.test.ts\n│   └── PackageFactory.test.ts\n├── types/\n│   └── index.d.ts\n│   └── inquirer-search-checkbox.d.ts\n├── utils/\n│   ├── PackageFactory.ts\n│   └── typer.ts\n```\n\n---\n\n## 🚀 Usage Tips\n\n- Run with `--copy` to copy install command.\n- Run with `--git` to set up git + .gitignore in the same command.\n- Combine both for an instant project bootstrap command.\n\n---\n\nMade with 💖 by a fellow developer.\n\n> Still in early development. Feel free to suggest improvements!\n\n---\n","readmeFilename":"README.md"}