create-next-pro-cli 0.1.0

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.
Files changed (106) hide show
  1. package/.vscode/settings.json +3 -0
  2. package/CODE_OF_CONDUCT.md +33 -0
  3. package/CONTRIBUTING.md +44 -0
  4. package/FONCTIONALITY.md +25 -0
  5. package/README.md +292 -0
  6. package/bin.ts +2 -0
  7. package/bun.lock +27 -0
  8. package/create-next-pro-completion.sh +36 -0
  9. package/install.sh +18 -0
  10. package/package.json +32 -0
  11. package/public/logo.svg +76 -0
  12. package/src/index.ts +511 -0
  13. package/src/scaffold-dev.ts +89 -0
  14. package/src/scaffold.ts +70 -0
  15. package/templates/Component/Component.tsx +13 -0
  16. package/templates/Component/component.json +4 -0
  17. package/templates/Page/default.tsx +0 -0
  18. package/templates/Page/error.tsx +38 -0
  19. package/templates/Page/global-error.tsx +0 -0
  20. package/templates/Page/layout.tsx +0 -0
  21. package/templates/Page/loading.tsx +17 -0
  22. package/templates/Page/not-found.tsx +0 -0
  23. package/templates/Page/page-ui.tsx +22 -0
  24. package/templates/Page/page.json +4 -0
  25. package/templates/Page/page.tsx +24 -0
  26. package/templates/Page/route.ts +0 -0
  27. package/templates/Page/template.tsx +0 -0
  28. package/templates/Projects/default/README.md +36 -0
  29. package/templates/Projects/default/eslint.config.mjs +16 -0
  30. package/templates/Projects/default/messages/en/_global_ui.json +30 -0
  31. package/templates/Projects/default/messages/en/_home.json +4 -0
  32. package/templates/Projects/default/messages/en/dashboard.json +14 -0
  33. package/templates/Projects/default/messages/en/login.json +7 -0
  34. package/templates/Projects/default/messages/en/register.json +7 -0
  35. package/templates/Projects/default/messages/en/settings.json +4 -0
  36. package/templates/Projects/default/messages/en/user_info.json +4 -0
  37. package/templates/Projects/default/messages/en.ts +4 -0
  38. package/templates/Projects/default/messages/fr/_global_ui.json +30 -0
  39. package/templates/Projects/default/messages/fr/_home.json +4 -0
  40. package/templates/Projects/default/messages/fr/dashboard.json +14 -0
  41. package/templates/Projects/default/messages/fr/login.json +7 -0
  42. package/templates/Projects/default/messages/fr/register.json +7 -0
  43. package/templates/Projects/default/messages/fr/settings.json +4 -0
  44. package/templates/Projects/default/messages/fr/user_info.json +4 -0
  45. package/templates/Projects/default/messages/fr.ts +4 -0
  46. package/templates/Projects/default/messages/getMergedMessages.ts +31 -0
  47. package/templates/Projects/default/middleware.ts +11 -0
  48. package/templates/Projects/default/next.config.ts +12 -0
  49. package/templates/Projects/default/package.json +32 -0
  50. package/templates/Projects/default/postcss.config.mjs +5 -0
  51. package/templates/Projects/default/public/cnp-logo.ico +0 -0
  52. package/templates/Projects/default/public/cnp-logo.png +0 -0
  53. package/templates/Projects/default/public/cnp-logo.svg +76 -0
  54. package/templates/Projects/default/public/file.svg +1 -0
  55. package/templates/Projects/default/public/globe.svg +1 -0
  56. package/templates/Projects/default/public/next.svg +1 -0
  57. package/templates/Projects/default/public/vercel.svg +1 -0
  58. package/templates/Projects/default/public/window.svg +1 -0
  59. package/templates/Projects/default/src/app/[locale]/(public)/_home/loading.tsx +1 -0
  60. package/templates/Projects/default/src/app/[locale]/(public)/_home/page.tsx +16 -0
  61. package/templates/Projects/default/src/app/[locale]/(public)/layout.tsx +11 -0
  62. package/templates/Projects/default/src/app/[locale]/(public)/login/page.tsx +19 -0
  63. package/templates/Projects/default/src/app/[locale]/(public)/register/page.tsx +23 -0
  64. package/templates/Projects/default/src/app/[locale]/(user)/dashboard/error.tsx +38 -0
  65. package/templates/Projects/default/src/app/[locale]/(user)/dashboard/loading.tsx +17 -0
  66. package/templates/Projects/default/src/app/[locale]/(user)/dashboard/page.tsx +12 -0
  67. package/templates/Projects/default/src/app/[locale]/(user)/layout.tsx +12 -0
  68. package/templates/Projects/default/src/app/[locale]/(user)/settings/loading.tsx +17 -0
  69. package/templates/Projects/default/src/app/[locale]/(user)/settings/page.tsx +12 -0
  70. package/templates/Projects/default/src/app/[locale]/(user)/user_info/loading.tsx +17 -0
  71. package/templates/Projects/default/src/app/[locale]/(user)/user_info/page.tsx +12 -0
  72. package/templates/Projects/default/src/app/[locale]/layout.tsx +32 -0
  73. package/templates/Projects/default/src/app/[locale]/loading.tsx +17 -0
  74. package/templates/Projects/default/src/app/[locale]/not-found.tsx +22 -0
  75. package/templates/Projects/default/src/app/[locale]/page.tsx +116 -0
  76. package/templates/Projects/default/src/app/api/auth/[...nextauth]/route.ts +81 -0
  77. package/templates/Projects/default/src/app/api/auth/[...nextauth].ts +0 -0
  78. package/templates/Projects/default/src/app/api/auth/post-login/route.ts +27 -0
  79. package/templates/Projects/default/src/app/api/me/route.ts +15 -0
  80. package/templates/Projects/default/src/app/favicon.ico +0 -0
  81. package/templates/Projects/default/src/app/layout.tsx +11 -0
  82. package/templates/Projects/default/src/app/not-found.tsx +17 -0
  83. package/templates/Projects/default/src/app/page.tsx +6 -0
  84. package/templates/Projects/default/src/app/sitemap.ts +27 -0
  85. package/templates/Projects/default/src/app/styles/globals.css +26 -0
  86. package/templates/Projects/default/src/app/ui/dashboard/MainDashboard.tsx +21 -0
  87. package/templates/Projects/default/src/app/ui/dashboard/StatsCard.tsx +14 -0
  88. package/templates/Projects/default/src/app/ui/dashboard/WelcomeCard.tsx +10 -0
  89. package/templates/Projects/default/src/auth.config.ts +0 -0
  90. package/templates/Projects/default/src/config.ts +4 -0
  91. package/templates/Projects/default/src/lib/auth/isConnected.ts +16 -0
  92. package/templates/Projects/default/src/lib/i18n/navigation.ts +19 -0
  93. package/templates/Projects/default/src/lib/i18n/request.ts +31 -0
  94. package/templates/Projects/default/src/lib/i18n/routing.ts +20 -0
  95. package/templates/Projects/default/src/ui/_global/BackButton.tsx +15 -0
  96. package/templates/Projects/default/src/ui/_global/GlobalHeader.tsx +34 -0
  97. package/templates/Projects/default/src/ui/_global/GlobalMain.tsx +15 -0
  98. package/templates/Projects/default/src/ui/_global/LocaleSwitcher.tsx +38 -0
  99. package/templates/Projects/default/src/ui/_global/PublicNav.tsx +30 -0
  100. package/templates/Projects/default/src/ui/_global/UserNav.tsx +32 -0
  101. package/templates/Projects/default/src/ui/dashboard/StatsCard.tsx +14 -0
  102. package/templates/Projects/default/src/ui/dashboard/WelcomeCard.tsx +10 -0
  103. package/templates/Projects/default/src/ui/dashboard/page.tsx +22 -0
  104. package/templates/Projects/default/tailwind.config.ts +1 -0
  105. package/templates/Projects/default/tsconfig.json +34 -0
  106. package/tsconfig.json +27 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ "typescript.tsdk": "node_modules/typescript/lib"
3
+ }
@@ -0,0 +1,33 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ## Our Standards
8
+
9
+ Examples of behavior that contributes to a positive environment for our community include:
10
+
11
+ - Using welcoming and inclusive language
12
+ - Being respectful of differing viewpoints and experiences
13
+ - Gracefully accepting constructive criticism
14
+ - Focusing on what is best for the community
15
+ - Showing empathy towards other community members
16
+
17
+ Examples of unacceptable behavior include:
18
+
19
+ - The use of sexualized language or imagery and unwelcome sexual attention or advances
20
+ - Trolling, insulting/derogatory comments, and personal or political attacks
21
+ - Public or private harassment
22
+ - Publishing others' private information, such as a physical or electronic address, without explicit permission
23
+ - Other conduct which could reasonably be considered inappropriate in a professional setting
24
+
25
+ ## Enforcement
26
+
27
+ Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
28
+
29
+ Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
30
+
31
+ ## Attribution
32
+
33
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1.
@@ -0,0 +1,44 @@
1
+ # Contributing to create-next-pro-cli
2
+
3
+ Thank you for considering contributing! Here’s how to get started:
4
+
5
+ ## Branches
6
+
7
+ - `master`: Stable releases only.
8
+ - `dev`: All new features and fixes are merged here first.
9
+ - Create your feature/fix branch from `dev`:
10
+ - `feature/your-feature-name`
11
+ - `fix/your-bug-description`
12
+
13
+ ## Workflow
14
+
15
+ 1. Fork the repository.
16
+ 2. Create your branch from `dev`.
17
+ 3. Commit your changes with clear messages.
18
+ 4. Open a Pull Request (PR) to `dev`.
19
+ 5. Describe your changes and reference any related issues.
20
+
21
+ ## Code Style
22
+
23
+ - Use TypeScript and follow existing formatting.
24
+ - Document your code with comments.
25
+ - Run `bun lint` and `bun test` before submitting.
26
+
27
+ ## Issues
28
+
29
+ - Search for existing issues before opening a new one.
30
+ - Be clear and provide context, steps to reproduce, and screenshots if possible.
31
+
32
+ ## Review & Merge
33
+
34
+ - All PRs are reviewed by maintainers or the community.
35
+ - Once approved, PRs are merged into `dev`, then into `master` for releases.
36
+
37
+ ## Community
38
+
39
+ - Be respectful and constructive.
40
+ - Use GitHub Discussions for questions and ideas.
41
+
42
+ ---
43
+
44
+ Happy coding! 🚀
@@ -0,0 +1,25 @@
1
+ # Features of the create-next-pro binary
2
+
3
+ - Advanced Next.js project creation with options (TypeScript, ESLint, Tailwind, src/, Turbopack, i18n, import alias)
4
+ - `addpage` command:
5
+ - Add a page with templates (layout, page, loading, etc.)
6
+ - Automatically create folders/files in `src/app/[locale]` and `src/ui`
7
+ - Add translation files in `messages/<locale>`
8
+ - Supports nested pages (e.g. `PageParent.PageChild`)
9
+ - Creates in the parent folder
10
+ - Appends JSON to the parent object
11
+ - `addcomponent` command:
12
+ - Add a component to a page or globally
13
+ - Create the TSX file in `src/ui/<Page>/` or `src/ui/_global/`
14
+ - Add the component to the page or global translation JSON
15
+ - `rmpage` command:
16
+ - Remove a page and all its associated files
17
+ - Folders/files in `src/ui`, `src/app/[locale]`, and `messages/<locale>`
18
+ - Bash autocompletion:
19
+ - Suggests commands and existing pages
20
+ - Supports nested pages for completion
21
+ - Installation script proposed at first launch
22
+ - Fast CLI mode (non-interactive) and interactive mode (prompts)
23
+ - File generation from customizable templates
24
+ - Name handling (respects user input casing)
25
+ - Optional addition of the autocompletion script to `.bashrc` via prompt
package/README.md ADDED
@@ -0,0 +1,292 @@
1
+ ![create-next-pro logo](./public/logo.svg)
2
+
3
+ > ⚠️ This project is under active development and currently in beta testing. Not all features are implemented yet, and contributions are welcome!
4
+
5
+ Initially, changes will be accepted or rejected by the creator, but in a few weeks, contributions will be submitted to a community vote.
6
+
7
+ # create-next-pro-cli
8
+
9
+ > 🚀 An advanced CLI scaffolder to create professional Next.js projects instantly.
10
+
11
+ ---
12
+
13
+ ## 🎯 Purpose
14
+
15
+ Create an enhanced alternative to `bun create next-app` with an interactive interface to generate Next.js projects tailored to real-world professional needs.
16
+
17
+ This open-source, community-driven project aims to gather and share best practices to help standardize Next.js project structures. It includes many other features to facilitate modern development workflows and encourage collaboration.
18
+
19
+ The CLI also enables you to instantly create pages and components, automatically placing them in the correct location within your project’s architecture for seamless organization and scalability.
20
+
21
+ You can also customize the templates used for pages and components to fit your own needs.
22
+
23
+ ---
24
+
25
+ ## 🛠️ Commands & Examples
26
+
27
+ ### Create a new project
28
+
29
+ ```bash
30
+ create-next-pro MyProjectName
31
+ ```
32
+
33
+ > ⚠️ The interactive prompt for features and customization is not yet implemented, but will be available very soon!
34
+
35
+ ### Create a page
36
+
37
+ ```bash
38
+ create-next-pro addpage MyPage
39
+ ```
40
+
41
+ ### Create a nested page
42
+
43
+ ```bash
44
+ create-next-pro addpage ParentPage.ChildPage
45
+ ```
46
+
47
+ ### Create a component (global)
48
+
49
+ ```bash
50
+ create-next-pro addcomponent MyComponent
51
+ ```
52
+
53
+ ### Create a component in a page
54
+
55
+ ```bash
56
+ create-next-pro addcomponent MyComponent -P MyPage
57
+ ```
58
+
59
+ ### Create a component in a nested page
60
+
61
+ ```bash
62
+ create-next-pro addcomponent MyComponent -P ParentPage.ChildPage
63
+ ```
64
+
65
+ ### Remove a page
66
+
67
+ ```bash
68
+ create-next-pro rmpage MyPage
69
+ ```
70
+
71
+ ### Remove a nested page
72
+
73
+ ```bash
74
+ create-next-pro rmpage ParentPage.ChildPage
75
+ ```
76
+
77
+ ---
78
+
79
+ ## 📁 Expected Structure of a Generated Project
80
+
81
+ ```plaintext
82
+ my-next-app/
83
+ ├── eslint.config.mjs
84
+ ├── messages
85
+ │ ├── en
86
+ │ │ ├── dashboard.json
87
+ │ │ ├── _global_ui.json
88
+ │ │ ├── _home.json
89
+ │ │ ├── login.json
90
+ │ │ ├── register.json
91
+ │ │ ├── settings.json
92
+ │ │ └── user_info.json
93
+ │ ├── en.ts
94
+ │ ├── fr
95
+ │ │ ├── dashboard.json
96
+ │ │ ├── _global_ui.json
97
+ │ │ ├── _home.json
98
+ │ │ ├── login.json
99
+ │ │ ├── register.json
100
+ │ │ ├── settings.json
101
+ │ │ └── user_info.json
102
+ │ ├── fr.ts
103
+ │ └── getMergedMessages.ts
104
+ ├── middleware.ts
105
+ ├── next.config.ts
106
+ ├── next-env.d.ts
107
+ ├── package.json
108
+ ├── postcss.config.mjs
109
+ ├── public
110
+ │ ├── cnp-logo.ico
111
+ │ ├── cnp-logo.png
112
+ │ ├── cnp-logo.svg
113
+ │ ├── file.svg
114
+ │ ├── globe.svg
115
+ │ ├── next.svg
116
+ │ ├── vercel.svg
117
+ │ └── window.svg
118
+ ├── README.md
119
+ ├── src
120
+ │ ├── app
121
+ │ │ ├── api
122
+ │ │ │ ├── auth
123
+ │ │ │ │ ├── [...nextauth]
124
+ │ │ │ │ │ └── route.ts
125
+ │ │ │ │ ├── [...nextauth].ts
126
+ │ │ │ │ └── post-login
127
+ │ │ │ │ └── route.ts
128
+ │ │ │ └── me
129
+ │ │ │ └── route.ts
130
+ │ │ ├── favicon.ico
131
+ │ │ ├── layout.tsx
132
+ │ │ ├── [locale]
133
+ │ │ │ ├── layout.tsx
134
+ │ │ │ ├── loading.tsx
135
+ │ │ │ ├── not-found.tsx
136
+ │ │ │ ├── page.tsx
137
+ │ │ │ ├── (public)
138
+ │ │ │ │ ├── _home
139
+ │ │ │ │ │ ├── loading.tsx
140
+ │ │ │ │ │ └── page.tsx
141
+ │ │ │ │ ├── layout.tsx
142
+ │ │ │ │ ├── login
143
+ │ │ │ │ │ └── page.tsx
144
+ │ │ │ │ └── register
145
+ │ │ │ │ └── page.tsx
146
+ │ │ │ └── (user)
147
+ │ │ │ ├── dashboard
148
+ │ │ │ │ ├── error.tsx
149
+ │ │ │ │ ├── loading.tsx
150
+ │ │ │ │ └── page.tsx
151
+ │ │ │ ├── layout.tsx
152
+ │ │ │ ├── settings
153
+ │ │ │ │ ├── loading.tsx
154
+ │ │ │ │ └── page.tsx
155
+ │ │ │ └── user_info
156
+ │ │ │ ├── loading.tsx
157
+ │ │ │ └── page.tsx
158
+ │ │ ├── not-found.tsx
159
+ │ │ ├── page.tsx
160
+ │ │ ├── sitemap.ts
161
+ │ │ ├── styles
162
+ │ │ │ └── globals.css
163
+ │ │ └── ui
164
+ │ │ └── dashboard
165
+ │ │ ├── MainDashboard.tsx
166
+ │ │ ├── StatsCard.tsx
167
+ │ │ └── WelcomeCard.tsx
168
+ │ ├── auth.config.ts
169
+ │ ├── config.ts
170
+ │ ├── lib
171
+ │ │ ├── auth
172
+ │ │ │ └── isConnected.ts
173
+ │ │ └── i18n
174
+ │ │ ├── navigation.ts
175
+ │ │ ├── request.ts
176
+ │ │ └── routing.ts
177
+ │ └── ui
178
+ │ ├── dashboard
179
+ │ │ ├── page.tsx
180
+ │ │ ├── StatsCard.tsx
181
+ │ │ └── WelcomeCard.tsx
182
+ │ ├── _global
183
+ │ │ ├── BackButton.tsx
184
+ │ │ ├── GlobalHeader.tsx
185
+ │ │ ├── GlobalMain.tsx
186
+ │ │ ├── LocaleSwitcher.tsx
187
+ │ │ ├── PublicNav.tsx
188
+ │ │ └── UserNav.tsx
189
+ │ └── _home
190
+ ├── tailwind.config.ts
191
+ └── tsconfig.json
192
+ ```
193
+
194
+ ---
195
+
196
+ ## ✅ Main Features
197
+
198
+ - Interactive CLI via `bun` or `bunx`
199
+ - Supports:
200
+ - TypeScript
201
+ - ESLint
202
+ - Tailwind CSS
203
+ - App Router (with or without `src/`)
204
+ - i18n (`next-intl`)
205
+ - Turbopack / Webpack
206
+ - Custom aliases (`@/*`, `@core/*`, etc.)
207
+ - Automatic generation:
208
+ - Folders
209
+ - Base pages: `page.tsx`, `layout.tsx`, `loading.tsx`, `not-found.tsx`, `error.tsx`
210
+ - `.env`, `.env.local`, `.env.production`, etc.
211
+ - Clean i18n structure: `/messages/en/*.json`, `/lib/i18n/`
212
+
213
+ ---
214
+
215
+ ## 📁 CLI Structure
216
+
217
+ ```plaintext
218
+ create-next-pro/
219
+ .
220
+ ├── bin.ts # CLI entry point (#!/usr/bin/env bun)
221
+ ├── bun.lock
222
+ ├── create-next-pro-completion.sh # Auto completion for source
223
+ ├── FONCTIONALITY.md
224
+ ├── install.sh
225
+ ├── package.json # Binary declaration
226
+ ├── README.md
227
+ ├── src
228
+ │ ├── index.ts # Interactive logic (prompts, generation)
229
+ │ ├── logo.svg
230
+ │ ├── scaffold-dev.ts
231
+ │ └── scaffold.ts
232
+ └── tsconfig.json # Bun/TypeScript config
233
+
234
+ ```
235
+
236
+ ---
237
+
238
+ ## 🚀 Usage
239
+
240
+ ### Local (dev)
241
+
242
+ ```bash
243
+ bun install
244
+ bun dev
245
+ ```
246
+
247
+ ### Global (on your machine)
248
+
249
+ ```bash
250
+ bun link
251
+ create-next-pro-cli
252
+ ```
253
+
254
+ ### From another PC (via bunx or global install)
255
+
256
+ ```bash
257
+ bunx create-next-pro-cli
258
+ # or
259
+ bun install -g create-next-pro-cli
260
+ ```
261
+
262
+ ---
263
+
264
+ ## 🛣️ Roadmap
265
+
266
+ - [x] Bun config + `tsconfig.json`
267
+ - [x] `bin.ts` CLI entry point
268
+ - [x] CLI project structure `src/index.ts`
269
+ - [x] Implementation of interactive prompts
270
+ - [x] Basic Next.js project scaffolding
271
+ - [x] CLI file/page generation
272
+ - [x] Custom alias support
273
+ - [x] Full `next-intl` support with `lib/i18n/` and `messages/`
274
+ - [ ] Generation of `.env.*`
275
+ - [ ] Multi-platform testing (`bunx`, `link`, `npm`, etc.)
276
+ - [x] Publish to npm or Bun registry
277
+
278
+ ---
279
+
280
+ ## ✨ Coming Soon
281
+
282
+ - Option `--force` to create without prompts
283
+ - Additional templates (admin panel, landing page, etc.)
284
+ - Prettier / Husky / Commitlint integration
285
+ - Auto deployment to Vercel
286
+
287
+ ---
288
+
289
+ ## 👨‍💻 Author
290
+
291
+ MrRise@RisingCorporation
292
+ Made with ❤️ and Bun 🐇
package/bin.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { main } from "./src/index";
2
+ main();
package/bun.lock ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "lockfileVersion": 1,
3
+ "workspaces": {
4
+ "": {
5
+ "name": "create-next-pro",
6
+ "dependencies": {
7
+ "prompts": "^2.4.2",
8
+ },
9
+ "devDependencies": {
10
+ "@types/prompts": "^2.4.9",
11
+ },
12
+ },
13
+ },
14
+ "packages": {
15
+ "@types/node": ["@types/node@24.1.0", "", { "dependencies": { "undici-types": "~7.8.0" } }, "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w=="],
16
+
17
+ "@types/prompts": ["@types/prompts@2.4.9", "", { "dependencies": { "@types/node": "*", "kleur": "^3.0.3" } }, "sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA=="],
18
+
19
+ "kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="],
20
+
21
+ "prompts": ["prompts@2.4.2", "", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="],
22
+
23
+ "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="],
24
+
25
+ "undici-types": ["undici-types@7.8.0", "", {}, "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw=="],
26
+ }
27
+ }
@@ -0,0 +1,36 @@
1
+ # Bash completion for create-next-pro
2
+ _create_next_pro_complete() {
3
+ local cur prev opts
4
+ COMPREPLY=()
5
+ cur="${COMP_WORDS[COMP_CWORD]}"
6
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
7
+ opts="addpage addcomponent rmpage"
8
+
9
+ # Autocomplete commands
10
+ if [[ ${COMP_CWORD} == 1 ]]; then
11
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
12
+ return 0
13
+ fi
14
+
15
+ # Autocomplete page/component names for addpage/addcomponent
16
+ if [[ ${COMP_CWORD} == 2 && ( ${prev} == "addpage" || ${prev} == "addcomponent" ) ]]; then
17
+ # List all nested page/component paths under src/ui
18
+ local IFS=$'\n'
19
+ local items=( $(find src/ui -type d | sed 's|src/ui/||; /^$/d' | grep -v '^$' | grep -v '^\.$' | grep -v '^src/ui$') )
20
+ # Retire explicitement src/ui
21
+ items=( "${items[@]}" )
22
+ COMPREPLY=( $(compgen -W "${items[*]}" -- ${cur}) )
23
+ return 0
24
+ fi
25
+
26
+ # Autocomplete nested children after dot for addpage
27
+ if [[ ${COMP_CWORD} == 2 && ${prev} == "addpage" && "${cur}" == *.* ]]; then
28
+ local parent=${cur%%.*}
29
+ local prefix=${cur#*.}
30
+ local IFS=$'\n'
31
+ local children=( $(find src/ui/${parent} -mindepth 1 -type d | sed "s|src/ui/${parent}/||") )
32
+ COMPREPLY=( $(compgen -W "${children[*]}" -- ${prefix}) )
33
+ return 0
34
+ fi
35
+ }
36
+ complete -F _create_next_pro_complete create-next-pro
package/install.sh ADDED
@@ -0,0 +1,18 @@
1
+ #!/bin/bash
2
+ # Script d'installation pour create-next-pro
3
+
4
+ COMPLETION_SCRIPT="$(pwd)/create-next-pro-completion.sh"
5
+ BASHRC="$HOME/.bashrc"
6
+
7
+ read -p "Voulez-vous ajouter l'autocomplétion create-next-pro à votre .bashrc ? [O/n] " yn
8
+ case $yn in
9
+ [Nn]*) echo "ℹ️ Autocomplétion non ajoutée"; exit;;
10
+ *)
11
+ if ! grep -q "$COMPLETION_SCRIPT" "$BASHRC"; then
12
+ echo "source $COMPLETION_SCRIPT" >> "$BASHRC"
13
+ echo "✅ Script d'autocomplétion ajouté à .bashrc"
14
+ else
15
+ echo "ℹ️ Script déjà présent dans .bashrc"
16
+ fi
17
+ ;;
18
+ esac
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "create-next-pro-cli",
3
+ "version": "0.1.0",
4
+ "description": "Advanced Next.js project scaffolder with i18n, Tailwind, App Router and more.",
5
+ "bin": {
6
+ "create-next-pro": "./bin.ts"
7
+ },
8
+ "author": "MrRise",
9
+ "license": "MIT",
10
+ "type": "module",
11
+ "scripts": {
12
+ "dev": "bun run bin.ts",
13
+ "scaffold-dev": "bun run src/scaffold-dev.ts",
14
+ "postinstall": "bash install.sh"
15
+ },
16
+ "keywords": [
17
+ "nextjs",
18
+ "scaffold",
19
+ "bun",
20
+ "cli",
21
+ "tailwind",
22
+ "i18n",
23
+ "typescript",
24
+ "next-intl"
25
+ ],
26
+ "dependencies": {
27
+ "prompts": "^2.4.2"
28
+ },
29
+ "devDependencies": {
30
+ "@types/prompts": "^2.4.9"
31
+ }
32
+ }
@@ -0,0 +1,76 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ width="112.24746mm"
6
+ height="112.24745mm"
7
+ viewBox="0 0 112.24746 112.24745"
8
+ version="1.1"
9
+ id="svg1484"
10
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
11
+ sodipodi:docname="dessin.svg"
12
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ xmlns:svg="http://www.w3.org/2000/svg">
16
+ <sodipodi:namedview
17
+ id="namedview1486"
18
+ pagecolor="#ffffff"
19
+ bordercolor="#000000"
20
+ borderopacity="0.25"
21
+ inkscape:showpageshadow="2"
22
+ inkscape:pageopacity="0.0"
23
+ inkscape:pagecheckerboard="0"
24
+ inkscape:deskcolor="#d1d1d1"
25
+ inkscape:document-units="mm"
26
+ showgrid="false"
27
+ inkscape:zoom="0.76078844"
28
+ inkscape:cx="-1.3144259"
29
+ inkscape:cy="251.71255"
30
+ inkscape:window-width="1920"
31
+ inkscape:window-height="1007"
32
+ inkscape:window-x="0"
33
+ inkscape:window-y="0"
34
+ inkscape:window-maximized="1"
35
+ inkscape:current-layer="layer1" />
36
+ <defs
37
+ id="defs1481" />
38
+ <g
39
+ inkscape:label="Calque 1"
40
+ inkscape:groupmode="layer"
41
+ id="layer1"
42
+ transform="translate(-53.773225,-81.94302)">
43
+ <g
44
+ id="g1385"
45
+ transform="matrix(0.26458333,0,0,0.26458333,201.36845,241.5967)">
46
+ <rect
47
+ style="fill:#ffffff;stroke-width:0.895961;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000"
48
+ id="rect1073"
49
+ width="300"
50
+ height="300"
51
+ x="370.79443"
52
+ y="-112.50255"
53
+ transform="rotate(-135.57968)" />
54
+ <path
55
+ d="m -241.8353,-300.88743 c -5.48362,-4.07465 -6.9802,-9.81191 -3.75252,-15.21916 2.06433,-3.38583 29.76875,-38.02867 42.69319,-53.38544 4.01322,-4.7685 7.29676,-8.931 7.29676,-9.25 0,-0.31901 -25.8382,-0.58001 -57.41821,-0.58001 -31.58002,0 -58.14666,-0.27953 -59.03699,-0.62118 -2.78999,-1.07062 -4.5448,-5.96651 -4.5448,-12.67994 0,-7.31726 1.38538,-12.16578 3.81988,-13.36871 0.92406,-0.45659 27.66212,-1.05517 59.41789,-1.33017 l 57.73777,-0.5 -7.19511,-8.5 -43.49499,-51.42428 c -3.1585,-5.39795 -0.32305,-12.74756 6.03088,-15.63234 8.80205,-3.99626 14.69126,-1.00858 23.00814,7.93888 l 83.67554,81.9993 -90.55578,92.40693 c -6.7551,6.89319 -14.20625,2.03185 -17.68165,0.14612 z"
56
+ style="fill:#000000"
57
+ id="path953-7"
58
+ sodipodi:nodetypes="ccssssssscccscccc" />
59
+ <path
60
+ d="m -288.79372,-297.36779 c -4.25765,-0.76506 -7.12135,-3.46831 -8.18755,-7.72897 -0.3601,-1.43864 -0.3179,-4.81015 0.079,-6.29963 0.6803,-2.55472 2.4806,-5.04059 4.5128,-6.23159 2.15975,-1.26571 5.72415,-1.74707 8.38285,-1.13211 3.5277,0.81595 6.2231,3.55787 7.2258,7.35053 0.4254,1.60884 0.4281,5.09577 0.01,6.68671 -0.9115,3.42883 -3.2396,5.93976 -6.427,6.9318 -1.4874,0.46292 -4.2192,0.66974 -5.5909,0.42326 z m 3.8337,-4.14317 c 1.4069,-0.41781 2.5839,-1.4751 3.2279,-2.89977 0.4382,-0.96936 0.5015,-1.43023 0.5015,-3.65334 0,-2.45698 -0.024,-2.59322 -0.7074,-3.98098 -1.124,-2.28309 -2.9392,-3.28336 -5.5317,-3.04827 -1.573,0.14263 -2.8367,0.82406 -3.7489,2.02149 -1.05265,1.38201 -1.39555,2.844 -1.29315,5.51422 0.073,1.9093 0.1696,2.40913 0.6377,3.30738 0.73805,1.41634 1.60785,2.20002 2.96035,2.66715 1.3874,0.47922 2.5137,0.49977 3.9537,0.0721 z m -136.05385,-6.65448 v -10.58162 h 2.286 2.2859 l 3.9436,5.8728 c 2.1689,3.23004 4.283,6.34867 4.6979,6.93029 l 0.7543,1.05749 v -6.93029 -6.93029 h 2.2222 2.2221 v 10.58162 10.58163 h -2.2801 -2.2802 l -4.1808,-6.08443 c -2.2994,-3.34644 -4.3663,-6.32253 -4.5932,-6.61352 -0.4113,-0.52767 -0.4124,-0.51145 -0.4171,6.08443 v 6.61352 h -2.328 -2.328 z m 22.4329,0 v -10.58162 h 6.7723 6.7722 v 2.01051 2.01051 h -4.5501 -4.5501 v 2.32795 2.32796 h 4.2327 4.2326 v 1.90022 1.90022 l -4.1796,0.0574 -4.1799,0.0574 v 2.29095 2.29094 l 4.5606,-0.0231 c 2.5083,-0.0127 4.6036,0.0194 4.6559,0.0713 0.053,0.0519 0.065,0.95989 0.027,2.01769 l -0.068,1.92328 h -6.863 -6.8631 z m 19.5992,5.26832 c 1.9233,-2.92232 3.4485,-5.43915 3.3896,-5.59296 -0.059,-0.15381 -1.5239,-2.40551 -3.2552,-5.00378 -1.7311,-2.59826 -3.2185,-4.84316 -3.3053,-4.98866 -0.1225,-0.20595 0.4308,-0.26454 2.4989,-0.26454 h 2.6563 l 2.1481,3.29335 2.148,3.29335 2.1391,-3.29249 2.139,-3.29249 2.4867,-8.5e-4 c 1.3676,-4.2e-4 2.4867,0.0491 2.4867,0.11016 0,0.061 -1.4505,2.32288 -3.2232,5.02627 -1.7727,2.70339 -3.2222,5.10572 -3.2211,5.33852 0,0.2328 1.5478,2.73271 3.4369,5.55535 l 3.435,5.13209 h -2.7219 -2.7219 l -2.2034,-3.3799 -2.2033,-3.3799 -2.2012,3.3799 -2.201,3.37989 h -2.6018 -2.6018 z m 23.9971,-3.25781 v -8.57111 h -3.2803 -3.2802 v -2.01051 -2.01051 h 8.677 8.6769 v 2.01051 2.01051 h -3.0688 -3.0685 v 8.57111 8.57112 h -2.328 -2.328 z m 20.3168,-2.03448 V -318.795 l 5.1321,0.095 c 5.9104,0.10938 6.7248,0.29611 8.5851,1.96861 1.5199,1.3665 2.0456,2.67293 2.0476,5.08907 0,1.72046 -0.064,2.04934 -0.6369,3.16845 -0.4285,0.83803 -0.9759,1.50374 -1.6645,2.02413 -1.5734,1.1892 -2.7676,1.50525 -6.1186,1.61948 l -2.9193,0.0995 0.062,3.57374 0.062,3.57375 -2.2752,-2.1e-4 -2.2749,-4.2e-4 z m 9.6753,-0.75271 c 1.0348,-0.49111 1.5394,-1.4045 1.5404,-2.78842 8e-4,-1.3177 -0.4053,-2.13039 -1.3506,-2.70146 -0.539,-0.32561 -1.0835,-0.39836 -2.9871,-0.39904 l -2.3279,-8.4e-4 -0.059,3.12158 -0.059,3.12158 h 2.2488 c 1.6621,0 2.4429,-0.0922 2.9935,-0.35342 z m 9.16,0.75556 v -10.60275 l 5.3438,0.088 c 6.0045,0.0988 6.8325,0.26882 8.575,1.76031 2.4332,2.08271 2.8625,6.44999 0.9003,9.15869 -0.5808,0.80172 -2.0013,2.01077 -2.5951,2.20871 -0.185,0.0616 2.3709,4.59169 4.2392,7.51366 l 0.3045,0.47617 h -2.6225 -2.6225 l -2.0049,-3.69722 -2.0048,-3.69722 -1.4285,-0.006 -1.4285,-0.006 v 3.70357 3.70356 h -2.328 -2.3279 v -10.60274 z m 9.9395,-0.98446 c 1.8999,-0.95844 2.0652,-4.11636 0.2768,-5.28849 -0.4401,-0.28841 -1.1309,-0.3893 -3.0643,-0.44755 l -2.4961,-0.0752 v 3.09096 3.09097 l 2.275,-4.3e-4 c 1.7447,-2.1e-4 2.4461,-0.0866 3.0086,-0.37035 z m -95.2273,-16.00809 c -4.6939,-1.04536 -7.4827,-5.11056 -7.4928,-10.92182 -0.01,-3.48792 0.7494,-5.81708 2.5284,-7.79577 2.9162,-3.24352 7.9231,-4.25831 12.5254,-2.53866 2.2651,0.8464 4.6574,3.8232 5.0511,6.28563 l 0.1398,0.87431 h -2.4508 -2.4511 l -0.4434,-1.00262 c -0.563,-1.27276 -1.1557,-1.91473 -2.2217,-2.40677 -1.0217,-0.4715 -3.3988,-0.53345 -4.3982,-0.11462 -2.8229,1.18296 -4.1612,5.0386 -3.2063,9.23707 0.5698,2.50541 2.0726,4.07677 4.2939,4.48988 2.5024,0.46538 4.6363,-0.44074 5.5449,-2.35455 l 0.511,-1.07615 h 2.3724 2.3724 l -0.3221,1.11107 c -0.678,2.33853 -2.5193,4.61258 -4.4301,5.47118 -2.2462,1.00933 -5.3971,1.30435 -7.9228,0.74182 z m 16.0839,-10.72245 v -10.80552 l 5.8728,0.0652 c 6.5826,0.073 6.909,0.13835 8.6776,1.73615 2.9123,2.63116 2.4256,8.46271 -0.8896,10.65865 -0.551,0.3649 -1.0955,0.69472 -1.21,0.73293 -0.1148,0.0382 0.7324,1.59079 1.8824,3.45018 1.1502,1.8594 2.3079,3.73785 2.5731,4.17434 l 0.4821,0.79362 h -2.7395 -2.7396 l -2.1982,-3.86229 -2.1981,-3.8623 h -1.4276 -1.4276 v 3.8623 3.86229 h -2.328 -2.328 z m 10.0239,-1.12607 c 1.167,-0.48764 1.616,-1.25901 1.616,-2.77687 0,-1.03212 -0.1001,-1.44523 -0.4589,-1.9018 -0.7358,-0.93542 -1.5879,-1.16687 -4.2961,-1.16687 h -2.4406 v 3.06867 3.06867 h 2.4406 c 1.5953,0 2.6824,-0.10106 3.139,-0.2918 z m 10.5045,1.03252 v -10.89908 h 7.0897 7.0897 v 2.00646 2.00646 l -4.7089,0.057 -4.7088,0.057 -0.06,2.38086 -0.06,2.38087 h 4.4512 4.4514 v 2.01051 2.01051 h -4.4443 -4.4444 v 2.32405 2.32406 l 4.9204,0.0568 4.9206,0.0568 0.061,2.06341 0.061,2.06342 h -7.3089 -7.3089 z m 17.1423,10.82775 c 0,-0.0466 1.3203,-3.64474 2.9341,-7.99584 1.6138,-4.3511 3.4011,-9.1791 3.9717,-10.72888 l 1.0374,-2.81778 h 2.8489 c 2.171,0 2.8687,0.0662 2.9315,0.27819 0.08,0.26867 7.4611,20.20771 7.764,20.97199 0.1391,0.35115 -0.029,0.37297 -2.4424,0.31745 l -2.5917,-0.0596 -0.7929,-2.22215 -0.7928,-2.22214 -4.2124,-0.0571 -4.2122,-0.0571 -0.7487,2.27928 -0.7488,2.27929 -2.4728,0.0596 c -1.3602,0.0328 -2.4729,0.0215 -2.4729,-0.0251 z m 12.1875,-12.57372 c -0.7291,-2.18246 -1.3729,-4.11096 -1.4306,-4.28556 -0.058,-0.1746 -0.7061,1.49201 -1.4411,3.70357 -0.7349,2.21156 -1.3799,4.14006 -1.4334,4.28556 -0.075,0.20339 0.5646,0.26454 2.7667,0.26454 h 2.864 z m 14.4782,3.75648 v -8.88857 h -3.2804 -3.2803 v -1.90469 -1.9047 h 8.8887 8.8885 v 1.89918 1.89919 l -3.2274,0.0584 -3.2274,0.0584 -0.055,8.83565 -0.055,8.83566 h -2.3256 -2.3257 z m 14.6027,-2.01051 v -10.89908 h 7.0896 7.0897 l 2e-4,2.06342 2e-4,2.06342 -4.7619,-0.0606 -4.7619,-0.0606 v 2.4415 2.4415 h 4.4443 4.4442 v 2.01051 2.01051 h -4.4442 -4.4443 v 2.32795 2.32796 h 4.9733 4.97335 v 2.11633 2.11632 h -7.30125 -7.3013 z"
61
+ style="fill:#000000;stroke-width:0.211633"
62
+ id="path996-5" />
63
+ <path
64
+ d="m -417.80895,-456.2471 c -2.6521,-2.65213 -3.143,-6.39063 -1.2929,-9.84753 0.6389,-1.19383 6.6372,-8.25175 13.3295,-15.68426 l 12.1679,-13.51366 -10.9444,-12 c -6.0194,-6.6 -11.7911,-13.35 -12.8258,-15 -2.2909,-3.65298 -2.4091,-7.31218 -0.3322,-10.27749 1.3695,-1.95515 2.4442,-2.22251 8.9338,-2.22251 h 7.3771 l 16.2884,17.48448 c 8.9586,9.61647 16.6336,18.41754 17.0554,19.55794 0.4614,1.24714 0.2016,3.34558 -0.6517,5.26552 -1.8905,4.25322 -30.9394,35.8639 -34.3663,37.39696 -1.4814,0.66269 -4.8513,1.22519 -7.4888,1.25 -3.7949,0.0357 -5.3076,-0.46707 -7.25,-2.40945 z m 69.78419,-38.2591 0.26125,-40.78635 h 9.64368 9.64368 l 15.85632,25.70167 c 8.72098,14.13592 16.20765,25.72342 16.63706,25.75 0.42941,0.0266 0.73782,-11.46302 0.68537,-25.53245 l -0.0954,-25.58078 9.06462,-0.34229 9.06463,-0.34229 v 40.95805 40.95806 l -10.12982,-0.28499 -10.12978,-0.28498 -15.12018,-23.18428 c -8.3161,-12.75136 -15.4728,-23.52897 -15.90377,-23.95026 -0.43097,-0.42128 -0.73612,10.01164 -0.67811,23.18428 l 0.10548,23.95026 -9.58314,0.28635 -9.58314,0.28635 z"
65
+ style="fill:#000000"
66
+ id="path1243" />
67
+ <rect
68
+ style="fill:#000000;stroke-width:0.797604;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000"
69
+ id="rect1326"
70
+ width="159.32465"
71
+ height="11.760501"
72
+ x="-508.67618"
73
+ y="-398.26614" />
74
+ </g>
75
+ </g>
76
+ </svg>