create-awesome-node-app 0.6.7 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,294 +1,321 @@
1
1
  <!--lint disable double-link awesome-heading awesome-git-repo-age awesome-toc-->
2
2
 
3
3
  <div align="center">
4
- <h1>🌟 Create Awesome Node App 🚀</h1>
5
4
 
6
- <!-- NPM Preview: Keep this block ultra concise (first ~5 lines shown on npm) -->
5
+ <h1>🌟 Create Awesome Node App</h1>
7
6
 
8
- <strong>Bootstrap production‑grade Node / Web / Full‑Stack / Monorepo / Extension apps in minutes.</strong><br/>
9
- <em>Pick a template Add addons Ship faster.</em>
7
+ <p><strong>The scaffolding CLI that gets out of your way.</strong><br/>
8
+ Pick a production-grade template, layer powerful addons, and ship a fully wired project in under a minute.</p>
10
9
 
11
10
  [![npm][npmversion]][npmurl]
12
11
  [![Downloads][npmdownloads]][npmurl]
12
+ [![Stars][starsbadge]][starsurl]
13
13
  [![Commit Activity][commitactivitybadge]][commitactivityurl]
14
14
  [![Bundle Size][bundlesizebadge]][bundlesizeurl]
15
15
  [![Awesome](https://awesome.re/mentioned-badge.svg)](https://github.com/vitejs/awesome-vite#get-started)
16
16
  [![License: MIT][licensebadge]][licenseurl]
17
17
 
18
- <!-- Extended badges (not all needed in npm fold) -->
19
-
20
18
  [![Tests][testsbadge]][testsurl]
21
19
  [![Lint][lintbadge]][linturl]
22
20
  [![Typecheck][typecheckbadge]][typecheckurl]
23
21
  [![Shellcheck][shellcheckbadge]][shellcheckurl]
24
22
  [![Markdown][markdownlintbadge]][markdownlinturl]
23
+
25
24
  <br />
26
- <a href="https://create-awesome-node-app.vercel.app" target="_blank"><b>Official Site</b></a> ·
27
- <a href="https://create-awesome-node-app.vercel.app/templates" target="_blank">Templates</a> ·
28
- <a href="https://create-awesome-node-app.vercel.app/extensions" target="_blank">Extensions</a> ·
29
- <a href="https://create-awesome-node-app.vercel.app/docs" target="_blank">Docs</a>
25
+
26
+ **[🌐 Official Site](https://create-awesome-node-app.vercel.app)** · [Templates](https://create-awesome-node-app.vercel.app/templates) · [Extensions](https://create-awesome-node-app.vercel.app/extensions) · [Docs](https://create-awesome-node-app.vercel.app/docs) · [GitHub](https://github.com/Create-Node-App/create-node-app)
30
27
 
31
28
  </div>
32
29
 
33
- > Build. Extend. Ship. Pick a production‑grade template, layer powerful addons, and get a project that follows modern conventions, automation, and DX best practices out of the box.
30
+ ---
34
31
 
35
- <details>
36
- <summary><strong>TL;DR (60s)</strong></summary>
32
+ ## ⚡ Get started in 30 seconds
37
33
 
38
34
  ```bash
39
- # Interactive (recommended)
40
- npm create awesome-node-app@latest my-app -- --interactive
41
-
42
- # Direct + addons
43
- npx create-awesome-node-app my-app \
44
- --template react-vite-boilerplate \
45
- --addons material-ui github-setup
35
+ npm create awesome-node-app@latest my-app
46
36
  ```
47
37
 
48
- What you get: Modern structure, linting, TS, testing, optional AI `AGENTS.md`, extensible addons, monorepo & full‑stack ready.
38
+ That's it. The interactive wizard walks you through picking a template, addons, and package manager you're done before your coffee gets cold.
49
39
 
50
- </details>
40
+ > **Want to go fully non-interactive?** Specify everything up front:
41
+ >
42
+ > ```bash
43
+ > npx create-awesome-node-app my-app \
44
+ > --template react-vite-boilerplate \
45
+ > --addons material-ui github-setup \
46
+ > --no-interactive
47
+ > ```
51
48
 
52
49
  ---
53
50
 
54
51
  ## ✨ Why Create Awesome Node App?
55
52
 
56
- `create-awesome-node-app` (CNA) is a batteries‑included scaffolding CLI that lets you:
53
+ Most scaffolding tools lock you into a single opinionated stack. **CNA is different** — it's a _composable_ scaffolding engine built around the idea that your stack should be yours.
57
54
 
58
- - 🔌 Mix & match **templates + addons** (React, Next.js, NestJS, Turborepo, Web Extensions, UAT, Monorepos, and more)
59
- - 🧩 Add **extensions** (UI libraries, GitHub setup, auth, testing, tooling) at creation time
60
- - 🧪 Ship with **testing & linting** pre‑wired (ESLint, TypeScript, formatting, markdown lint, shellcheck, etc.)
61
- - 🧭 Use **interactive mode** to discover categories, templates, and compatible addons
62
- - 🚀 Start fast with **production‑ready structure** and opinionated defaults
63
- - 🤖 Get an automatic **`AGENTS.md` contract** in supported templates for AI assistant alignment
64
- - 🌐 Pull **remote templates / extensions by URL** – bring your own blueprints
65
- - 🧵 Keep everything **Node 22 ready** and future‑proof
55
+ | | CNA | Traditional scaffolders |
56
+ | ----------------------------- | --- | ----------------------- |
57
+ | Mix templates + addons | ✅ | ❌ |
58
+ | Bring your own template URL | ✅ | ❌ |
59
+ | Interactive _and_ CI-friendly | ✅ | Partial |
60
+ | AGENTS.md for AI assistants | ✅ | ❌ |
61
+ | Extension ecosystem | ✅ | ❌ |
62
+ | Node 22 native | ✅ | Varies |
66
63
 
67
- > On the Awesome List? ✅ Yes – we proudly display the [Awesome Vite Mention](https://github.com/vitejs/awesome-vite#get-started).
64
+ **One CLI. Any stack.**
68
65
 
69
66
  ---
70
67
 
71
- ## 🔗 Official Site
68
+ ## 🚀 What you get out of the box
72
69
 
73
- Explore visually: **[create-awesome-node-app.vercel.app](https://create-awesome-node-app.vercel.app)**
70
+ Every project bootstrapped with CNA includes:
74
71
 
75
- - Browse all templates & categories
76
- - Filter by stack type (frontend, backend, full‑stack, monorepo, web extension, UAT, etc.)
77
- - Discover extensions to enrich your base
78
- - Learn how the generation pipeline works
72
+ - 🧱 **Production-ready structure** no empty folders or placeholder files
73
+ - 🔷 **TypeScript** strict mode, ready to go
74
+ - 🧹 **ESLint + Prettier** framework-specific rules pre-configured
75
+ - 🧪 **Testing setup** vitest, jest, playwright, or cypress (depends on template)
76
+ - 🤖 **`AGENTS.md`** — a contract file so your AI coding assistant understands your project conventions
77
+ - 🔄 **GitHub Actions workflows** — CI, linting, and releases via addons
78
+ - 📦 **Your choice of package manager** — npm, yarn, or pnpm
79
79
 
80
80
  ---
81
81
 
82
- ## 🚀 Quick Start
82
+ ## 🌐 Explore the Catalog
83
83
 
84
- Use via one‑shot runner (recommended always latest):
84
+ Visit **[create-awesome-node-app.vercel.app](https://create-awesome-node-app.vercel.app)** to visually browse the full ecosystem:
85
85
 
86
- ```bash
87
- npm create awesome-node-app@latest my-app -- --interactive
88
- # or
89
- pnpm create awesome-node-app my-app --interactive
90
- # or
91
- yarn create awesome-node-app my-app --interactive
92
- ```
86
+ - 🗂 Templates organized by category (Frontend, Backend, Full Stack, Monorepo, Web Extension, UAT)
87
+ - 🧩 Extensions filterable by compatibility
88
+ - 📖 Guides on how the generation pipeline works
93
89
 
94
- Global install (optional):
90
+ Or discover everything from your terminal:
95
91
 
96
92
  ```bash
97
- npm install -g create-awesome-node-app
98
- create-awesome-node-app my-app --template react-vite-boilerplate --addons material-ui github-setup
99
- ```
100
-
101
- Minimal non‑interactive example:
93
+ # List all available templates
94
+ create-awesome-node-app --list-templates
102
95
 
103
- ```bash
104
- npx create-awesome-node-app my-api \
105
- --template nestjs-boilerplate \
106
- --addons github-setup commitlint prettier
96
+ # List addons compatible with a specific template
97
+ create-awesome-node-app --template react-vite-boilerplate --list-addons
107
98
  ```
108
99
 
109
100
  ---
110
101
 
111
- ## 🧪 Interactive Mode Walkthrough
112
-
113
- Launch with `--interactive` to:
102
+ ## 🧱 Template Ecosystem
114
103
 
115
- 1. Pick a category (Frontend, Backend, Full Stack, Monorepo, Web Extension, UAT...)
116
- 2. Select a template with description & keywords
117
- 3. Choose compatible extensions grouped by purpose
118
- 4. Optionally extend with custom URLs
104
+ | Category | Example Templates |
105
+ | ---------------- | ----------------------------------------------------------------- |
106
+ | 🖥 Frontend | `react-vite-boilerplate` React 18 + Vite + TS + ESLint + Vitest |
107
+ | 🔧 Backend | `nestjs-boilerplate` NestJS + TS + ESLint + Jest |
108
+ | 🌐 Full Stack | `nextjs-starter` — Next.js + SSR + TS + Prettier |
109
+ | 🗂 Monorepo | `turborepo-boilerplate` — Turborepo + Changesets + TS |
110
+ | 🧩 Web Extension | `web-extension-react-boilerplate` — Cross-browser + React |
111
+ | 🧪 UAT / Testing | `webdriverio-boilerplate` — E2E automation scaffold |
119
112
 
120
- The CLI builds a tailored `templatesOrExtensions` pipeline and generates the workspace accordingly.
113
+ Full catalog at **[create-awesome-node-app.vercel.app/templates](https://create-awesome-node-app.vercel.app/templates)**
121
114
 
122
115
  ---
123
116
 
124
- ## 🧱 Template Ecosystem (Highlights)
117
+ ## 🧩 Addons / Extensions
125
118
 
126
- | Category | Example Templates |
127
- | ------------- | ------------------------------------------------- |
128
- | Frontend | React Vite Boilerplate, Vue (via community), etc. |
129
- | Backend | NestJS Boilerplate, Express variants |
130
- | Full Stack | NextJS Starter (SSR + TS + ESLint + Prettier) |
131
- | Monorepo | Turborepo Boilerplate (TypeScript + Changesets) |
132
- | Web Extension | Cross‑browser modern extension bases |
133
- | UAT / Testing | Playwright / Cypress ready setups |
119
+ Think of addons as _lego bricks_ — snap them onto any template to add exactly what you need:
134
120
 
135
- Full catalog: <https://create-awesome-node-app.vercel.app/templates>
121
+ | Category | Examples |
122
+ | --------------- | -------------------------------------------------------- |
123
+ | 🎨 UI Libraries | Material UI, Tailwind CSS, component libraries |
124
+ | 📊 State & Data | Jotai, tRPC, React Query, Zustand |
125
+ | 🔧 Tooling | GitHub Actions workflows, changesets, release automation |
126
+ | ✅ Code Quality | ESLint configs, Prettier, TypeScript strictness |
127
+ | 🧪 Testing | Playwright, Cypress, Vitest setups |
128
+ | 🛠 DX | Commit linting, conventional commits, environment setup |
136
129
 
137
- ---
130
+ Add any extension by slug or URL:
138
131
 
139
- ## 🧩 Addons / Extensions
132
+ ```bash
133
+ npx create-awesome-node-app my-app \
134
+ --template react-vite-boilerplate \
135
+ --addons material-ui github-setup commitlint \
136
+ --extend https://github.com/your-org/your-custom-extension
137
+ ```
140
138
 
141
- Enhance your template with modular capabilities (examples):
139
+ ---
142
140
 
143
- - UI: Material UI, Tailwind, component libraries
144
- - State / Data: jotai, tRPC, React Query
145
- - Tooling: GitHub workflows, commit linting, changesets, release automation
146
- - Quality: ESLint configs, Prettier, TypeScript strictness
147
- - Testing: Playwright / Cypress scaffolds, vitest
148
- - DX: Environment setup, conventional commits, docs helpers
141
+ ## 🤖 AI-Ready with `AGENTS.md`
149
142
 
150
- List what’s available:
143
+ CNA generates an **`AGENTS.md`** file in supported templates — a structured document that tells AI coding assistants (GitHub Copilot, Cursor, Claude, etc.) about:
151
144
 
152
- ```bash
153
- create-awesome-node-app --list-templates
154
- create-awesome-node-app --list-addons
155
- # Filter addons compatible with a template
156
- create-awesome-node-app --template react-vite-boilerplate --list-addons
157
- ```
145
+ - Project purpose and conventions
146
+ - Directory layout and naming rules
147
+ - Scripts and how to use them
148
+ - Testing strategy and linting rules
158
149
 
159
- Add any extra extension by URL:
150
+ This dramatically improves AI suggestion quality and speeds up onboarding for hybrid human+AI teams.
160
151
 
161
- ```bash
162
- create-awesome-node-app my-app \
163
- --template react-vite-boilerplate \
164
- --addons material-ui github-setup \
165
- --extend https://github.com/your-org/your-extension
166
- ```
152
+ → Learn more at **[create-awesome-node-app.vercel.app/docs/agents-md](https://create-awesome-node-app.vercel.app/docs/agents-md)**
167
153
 
168
154
  ---
169
155
 
170
- ## 🤖 AGENTS.md: Built-in AI Assistant Contract
156
+ ## 🧪 Interactive Mode Walkthrough
157
+
158
+ When you run CNA without flags (or with `--interactive`), the wizard guides you through:
171
159
 
172
- Many templates ship with an auto‑generated `AGENTS.md` a structured guide for AI coding assistants to understand project intent, conventions, and constraints. This improves code suggestion relevance and onboarding speed for hybrid human+AI teams.
160
+ 1. **Project name** set or confirm your app's name
161
+ 2. **Package manager** — npm, yarn, or pnpm
162
+ 3. **Category** — Frontend, Backend, Full Stack, Monorepo, Web Extension, UAT, or Custom
163
+ 4. **Template** — pick from curated options with descriptions and keywords
164
+ 5. **Extensions** — multi-select compatible addons grouped by purpose
165
+ 6. **Custom extensions** — optionally extend with any additional URLs
173
166
 
174
- Learn more: <https://create-awesome-node-app.vercel.app/docs/agents-md>
167
+ The CLI composes a `templatesOrExtensions` pipeline and generates your workspace in one shot.
175
168
 
176
169
  ---
177
170
 
178
171
  ## ⚙️ Requirements
179
172
 
180
- - **Node.js 22** (enforced via engine check)
181
- - Any of: npm / yarn / pnpm
173
+ - **Node.js >= 22** (enforced at startup — no silent failures)
174
+ - npm >= 7, yarn, or pnpm
182
175
 
183
- We recommend fast version switching with [`fnm`](https://github.com/Schniz/fnm):
176
+ We recommend [`fnm`](https://github.com/Schniz/fnm) for fast Node version switching:
184
177
 
185
178
  ```bash
186
179
  fnm use 22
180
+ npm create awesome-node-app@latest my-app
187
181
  ```
188
182
 
189
183
  ---
190
184
 
191
- ## 🔍 CLI Options (Core)
192
-
193
- | Flag | Description |
194
- | --------------------------- | ---------------------------------------------- |
195
- | `--interactive` | Guided selection flow (templates + addons) |
196
- | `--template <slug\|url>` | Use a known template slug or remote URL |
197
- | `--addons [list...]` | Space‑separated addon slugs or URLs |
198
- | `--extend [list...]` | Extra extension URLs (advanced) |
199
- | `--no-install` | Skip dependency installation |
200
- | `--use-yarn` / `--use-pnpm` | Force package manager |
201
- | `--list-templates` | Print templates grouped by category |
202
- | `--list-addons` | Print addons (optionally filtered by template) |
203
- | `--verbose` | Output resolved generation config |
204
- | `--info` | Print environment diagnostics |
185
+ ## 🔍 CLI Reference
186
+
187
+ ```
188
+ Usage: create-awesome-node-app [project-directory] [options]
189
+ ```
190
+
191
+ | Flag | Description |
192
+ | ---------------------------- | -------------------------------------------------- |
193
+ | `--interactive` | Force interactive wizard (default outside CI) |
194
+ | `--no-interactive` | Disable wizard use flags only |
195
+ | `-t, --template <slug\|url>` | Template slug from catalog or remote GitHub URL |
196
+ | `--addons [slugs...]` | Space-separated addon slugs or URLs |
197
+ | `--extend [urls...]` | Extra extension URLs to layer on top |
198
+ | `--no-install` | Generate files without installing dependencies |
199
+ | `--use-yarn` | Use yarn instead of npm |
200
+ | `--use-pnpm` | Use pnpm instead of npm |
201
+ | `--list-templates` | Print all templates grouped by category |
202
+ | `--list-addons` | Print addons (optionally filtered by `--template`) |
203
+ | `-v, --verbose` | Output resolved generation config as JSON |
204
+ | `-i, --info` | Print Node, npm, OS environment diagnostics |
205
+ | `-V, --version` | Print CLI version |
206
+ | `-h, --help` | Show help |
205
207
 
206
208
  ---
207
209
 
208
- ## 🛠 Programmatic Usage (Experimental)
210
+ ## 🛠 Programmatic Usage
209
211
 
210
- You can import helpers from the core package for custom tooling:
212
+ Need to integrate CNA into your own tooling? The core is importable:
211
213
 
212
214
  ```ts
213
215
  import { createNodeApp, getTemplateDirPath } from "@create-node-app/core";
214
216
  ```
215
217
 
218
+ > Note: The programmatic API is experimental and subject to change. Prefer the CLI for stable usage.
219
+
216
220
  ---
217
221
 
218
- ## 🧪 Quality & Toolchain
222
+ ## FAQ
219
223
 
220
- Every generated project leans on modern, maintainable defaults:
224
+ <details>
225
+ <summary><strong>Why another scaffolder?</strong></summary>
221
226
 
222
- - TypeScript strict mode
223
- - ESLint (framework‑specific presets + consistency rules)
224
- - Prettier formatting (where applicable)
225
- - Testing support (varies by template: vitest, jest, e2e tooling)
226
- - GitHub Actions friendly
227
- - Conventional structure for CI/CD & release automation
227
+ Because most CLIs lock you into one stack. CNA lets you _compose_ your stack: pick a curated template, add modular extensions, and bring your own blueprints via URL. No vendor lock-in.
228
228
 
229
- ---
229
+ </details>
230
230
 
231
- ## ❓ FAQ
231
+ <details>
232
+ <summary><strong>Can I use my own template?</strong></summary>
232
233
 
233
- **Why another scaffolder?**
234
- Because most CLIs lock you into one stack. CNA lets you compose _your_ stack from curated templates + pluggable extensions.
234
+ Yes. Pass a GitHub URL (with optional subdirectory path) via `--template`:
235
235
 
236
- **Can I bring my own template?**
237
- Yes pass a GitHub (or any) URL pointing to a repository (optionally with subdirectory path) via `--template`.
236
+ ```bash
237
+ npx create-awesome-node-app my-app \
238
+ --template https://github.com/your-org/your-repo/tree/main/template
239
+ ```
238
240
 
239
- **Are addons order‑sensitive?**
240
- They’re applied sequentially; conflicting changes should be resolved by your VCS if you customize heavily.
241
+ </details>
241
242
 
242
- **Does it support monorepos?**
243
- Yes. The Turborepo boilerplate + addons give you multi‑package orchestration fast.
243
+ <details>
244
+ <summary><strong>Are addons order-sensitive?</strong></summary>
244
245
 
245
- **What about AI integration?**
246
- `AGENTS.md` provides a structured spec for AI tools to align with your conventions.
246
+ They're applied sequentially in the order you specify. If two addons touch the same file, later ones win — just like a git merge.
247
247
 
248
- **Is Node 22 required?**
249
- Yes – we target the latest stable modern runtime for performance & language features.
248
+ </details>
249
+
250
+ <details>
251
+ <summary><strong>Does it support monorepos?</strong></summary>
252
+
253
+ Yes. Use the `turborepo-boilerplate` template for a multi-package workspace with Turborepo, Changesets, and shared TypeScript/ESLint configs ready to go.
254
+
255
+ </details>
256
+
257
+ <details>
258
+ <summary><strong>What about CI environments?</strong></summary>
259
+
260
+ CNA auto-detects CI and disables interactive mode. All options can be passed via flags for fully scripted generation — perfect for bootstrapping in automation pipelines.
261
+
262
+ </details>
263
+
264
+ <details>
265
+ <summary><strong>Is Node 22 really required?</strong></summary>
266
+
267
+ Yes — we target the latest LTS runtime for native ESM support, performance, and modern language features. Use `fnm` or `nvm` to switch quickly if needed.
268
+
269
+ </details>
250
270
 
251
271
  ---
252
272
 
253
- ## 🤝 Contributing
273
+ ## 🗺 Roadmap
254
274
 
255
- We welcome templates, addons, fixes, and ideas! See the root repository guidelines: <https://github.com/Create-Node-App/create-node-app/blob/main/CONTRIBUTING.md>
275
+ - Remix and SvelteKit template variants
276
+ - Additional testing packs (contract, performance, load testing)
277
+ - Template version pinning and diff-based upgrade paths
278
+ - Rich template analytics and usage metrics
256
279
 
257
- For template & extension data visit: <https://github.com/Create-Node-App/cna-templates>
280
+ Track progress in [Issues](https://github.com/Create-Node-App/create-node-app/issues) and [Discussions](https://github.com/Create-Node-App/create-node-app/discussions).
258
281
 
259
282
  ---
260
283
 
261
- ## Roadmap (Short List)
284
+ ## 🤝 Contributing
262
285
 
263
- - More framework integrations (Remix, SvelteKit variants)
264
- - Additional testing packs (contract / performance harnesses)
265
- - Rich analytics for generation metrics
266
- - Template version pinning & diff upgrade paths
286
+ Contributions are what make CNA better — templates, addons, bug fixes, docs, ideas. All welcome!
267
287
 
268
- Follow progress in Issues & Discussions.
288
+ - **Main repo:** [github.com/Create-Node-App/create-node-app](https://github.com/Create-Node-App/create-node-app)
289
+ - **Template & extension data:** [github.com/Create-Node-App/cna-templates](https://github.com/Create-Node-App/cna-templates)
290
+ - **Contributing guide:** [CONTRIBUTING.md](https://github.com/Create-Node-App/create-node-app/blob/main/CONTRIBUTING.md)
269
291
 
270
292
  ---
271
293
 
272
294
  ## 📜 License
273
295
 
274
- MIT © Create Node App Contributors – see [LICENSE][licenseurl]
296
+ MIT © [Create Node App Contributors](https://github.com/Create-Node-App/create-node-app/graphs/contributors)
275
297
 
276
298
  ---
277
299
 
278
300
  <div align="center">
279
- <sub>Built with ♥ for developers who value velocity + clarity.</sub>
280
- <br />
281
- <sub><em>Spanish translation coming soon – ¿lo querés antes? Abrí un issue.</em></sub>
301
+
302
+ **[🌐 create-awesome-node-app.vercel.app](https://create-awesome-node-app.vercel.app)**
303
+
304
+ _Built with ♥ for developers who value speed, clarity, and composability._
305
+
282
306
  </div>
283
307
 
308
+ <!-- Reference links -->
309
+
284
310
  [testsbadge]: https://github.com/Create-Node-App/create-node-app/actions/workflows/test.yml/badge.svg
285
311
  [lintbadge]: https://github.com/Create-Node-App/create-node-app/actions/workflows/lint.yml/badge.svg
286
312
  [typecheckbadge]: https://github.com/Create-Node-App/create-node-app/actions/workflows/type-check.yml/badge.svg
287
313
  [shellcheckbadge]: https://github.com/Create-Node-App/create-node-app/actions/workflows/shellcheck.yml/badge.svg
288
314
  [markdownlintbadge]: https://github.com/Create-Node-App/create-node-app/actions/workflows/markdownlint.yml/badge.svg
289
- [npmversion]: https://img.shields.io/npm/v/create-awesome-node-app.svg?maxAge=2592000?style=plastic
290
- [npmdownloads]: https://img.shields.io/npm/dm/create-awesome-node-app.svg?maxAge=2592000?style=plastic
291
- [licensebadge]: https://img.shields.io/badge/License-MIT-blue.svg
315
+ [npmversion]: https://img.shields.io/npm/v/create-awesome-node-app.svg?style=flat-square&color=cb3837
316
+ [npmdownloads]: https://img.shields.io/npm/dm/create-awesome-node-app.svg?style=flat-square&color=cb3837
317
+ [starsbadge]: https://img.shields.io/github/stars/Create-Node-App/create-node-app?style=flat-square&color=yellow
318
+ [licensebadge]: https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square
292
319
  [testsurl]: https://github.com/Create-Node-App/create-node-app/actions/workflows/test.yml
293
320
  [linturl]: https://github.com/Create-Node-App/create-node-app/actions/workflows/lint.yml
294
321
  [typecheckurl]: https://github.com/Create-Node-App/create-node-app/actions/workflows/type-check.yml
@@ -296,7 +323,8 @@ MIT © Create Node App Contributors – see [LICENSE][licenseurl]
296
323
  [markdownlinturl]: https://github.com/Create-Node-App/create-node-app/actions/workflows/markdownlint.yml
297
324
  [npmurl]: https://www.npmjs.com/package/create-awesome-node-app
298
325
  [licenseurl]: https://github.com/Create-Node-App/create-node-app/blob/main/LICENSE
299
- [commitactivitybadge]: https://img.shields.io/github/commit-activity/m/Create-Node-App/create-node-app?logo=github&label=commits
326
+ [starsurl]: https://github.com/Create-Node-App/create-node-app/stargazers
327
+ [commitactivitybadge]: https://img.shields.io/github/commit-activity/m/Create-Node-App/create-node-app?style=flat-square&logo=github&label=commits
300
328
  [commitactivityurl]: https://github.com/Create-Node-App/create-node-app/pulse
301
- [bundlesizebadge]: https://img.shields.io/bundlephobia/minzip/create-awesome-node-app?label=bundlephobia
329
+ [bundlesizebadge]: https://img.shields.io/bundlephobia/minzip/create-awesome-node-app?style=flat-square&label=size
302
330
  [bundlesizeurl]: https://bundlephobia.com/package/create-awesome-node-app
package/dist/index.cjs CHANGED
@@ -1681,7 +1681,9 @@ var getExtensionsGroupedByCategory = async (type, cliArgs) => {
1681
1681
  };
1682
1682
 
1683
1683
  // src/options.ts
1684
- import_prompts.default.override((0, import_yargs.default)(process.argv.slice(2)).argv);
1684
+ import_prompts.default.override(
1685
+ (0, import_yargs.default)(process.argv.slice(2)).help(false).version(false).argv
1686
+ );
1685
1687
  var PACKAGE_MANAGERS = ["npm", "yarn", "pnpm"];
1686
1688
  var isValidUrl = (url) => {
1687
1689
  try {
@@ -1925,19 +1927,24 @@ var processInteractiveOptions = async (options) => {
1925
1927
  }
1926
1928
  return nextOptions;
1927
1929
  };
1930
+ var resolveInteractiveMode = (options, ci = import_ci_info.isCI) => {
1931
+ const explicit = options.interactive;
1932
+ if (explicit === true) return true;
1933
+ if (explicit === false) return false;
1934
+ return !ci;
1935
+ };
1928
1936
  var getCnaOptions = async (options) => {
1929
- const shouldUseInteractiveMode = !import_ci_info.isCI && options.interactive;
1937
+ const shouldUseInteractiveMode = resolveInteractiveMode(options);
1930
1938
  if (shouldUseInteractiveMode) {
1931
- return processInteractiveOptions(options);
1932
- } else {
1933
- return processNonInteractiveOptions(options);
1939
+ return processInteractiveOptions({ ...options, interactive: true });
1934
1940
  }
1941
+ return processNonInteractiveOptions(options);
1935
1942
  };
1936
1943
 
1937
1944
  // package.json
1938
1945
  var package_default = {
1939
1946
  name: "create-awesome-node-app",
1940
- version: "0.6.7",
1947
+ version: "0.7.1",
1941
1948
  type: "module",
1942
1949
  description: "Command line tool to create Node apps with a lot of different templates and extensions.",
1943
1950
  license: "MIT",
@@ -1991,8 +1998,8 @@ var package_default = {
1991
1998
  "test:src": "npm run test"
1992
1999
  },
1993
2000
  dependencies: {
1994
- "@create-node-app/core": "^0.5.6",
1995
- axios: "^1.12.2",
2001
+ "@create-node-app/core": "^0.5.7",
2002
+ axios: "^1.13.6",
1996
2003
  "ci-info": "^4.3.0",
1997
2004
  commander: "^14.0.1",
1998
2005
  prompts: "^2.4.2",
@@ -2000,16 +2007,17 @@ var package_default = {
2000
2007
  yargs: "^18.0.0"
2001
2008
  },
2002
2009
  devDependencies: {
2010
+ "@create-node-app/core": "^0.5.7",
2003
2011
  "@create-node-app/eslint-config-ts": "*",
2004
2012
  "@types/node": "^24.5.2",
2005
2013
  "@types/prompts": "^2.4.9",
2006
- "@types/yargs": "^17.0.33",
2007
2014
  "@types/semver": "^7.5.8",
2008
- nock: "^13.5.4",
2015
+ "@types/yargs": "^17.0.33",
2009
2016
  eslint: "^9.35.0",
2010
2017
  "eslint-config-turbo": "^2.5.6",
2011
- tsup: "^8.5.0",
2012
2018
  "eslint-plugin-turbo": "^2.5.6",
2019
+ nock: "^13.5.4",
2020
+ tsup: "^8.5.0",
2013
2021
  tsx: "^4.19.0"
2014
2022
  }
2015
2023
  };
@@ -2103,7 +2111,14 @@ var main = async () => {
2103
2111
  ).option(
2104
2112
  "--addons [extensions...]",
2105
2113
  "specify extensions to apply for the boilerplate generation"
2106
- ).option("--use-yarn", "use yarn instead of npm or pnpm").option("--use-pnpm", "use pnpm instead of yarn or npm").option("--interactive", "run in interactive mode to select options", false).option("--list-templates", "list all available templates").option("--list-addons", "list all available addons").action((providedProjectName) => {
2114
+ ).option("--use-yarn", "use yarn instead of npm or pnpm").option("--use-pnpm", "use pnpm instead of yarn or npm").option(
2115
+ "--interactive",
2116
+ "force interactive mode (default outside CI unless --no-interactive)",
2117
+ void 0
2118
+ ).option(
2119
+ "--no-interactive",
2120
+ "disable interactive mode (use only flags / non-interactive flow)"
2121
+ ).option("--list-templates", "list all available templates").option("--list-addons", "list all available addons").action((providedProjectName) => {
2107
2122
  projectName = providedProjectName || projectName;
2108
2123
  });
2109
2124
  program.parse(process.argv);