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.
- package/.vscode/settings.json +3 -0
- package/CODE_OF_CONDUCT.md +33 -0
- package/CONTRIBUTING.md +44 -0
- package/FONCTIONALITY.md +25 -0
- package/README.md +292 -0
- package/bin.ts +2 -0
- package/bun.lock +27 -0
- package/create-next-pro-completion.sh +36 -0
- package/install.sh +18 -0
- package/package.json +32 -0
- package/public/logo.svg +76 -0
- package/src/index.ts +511 -0
- package/src/scaffold-dev.ts +89 -0
- package/src/scaffold.ts +70 -0
- package/templates/Component/Component.tsx +13 -0
- package/templates/Component/component.json +4 -0
- package/templates/Page/default.tsx +0 -0
- package/templates/Page/error.tsx +38 -0
- package/templates/Page/global-error.tsx +0 -0
- package/templates/Page/layout.tsx +0 -0
- package/templates/Page/loading.tsx +17 -0
- package/templates/Page/not-found.tsx +0 -0
- package/templates/Page/page-ui.tsx +22 -0
- package/templates/Page/page.json +4 -0
- package/templates/Page/page.tsx +24 -0
- package/templates/Page/route.ts +0 -0
- package/templates/Page/template.tsx +0 -0
- package/templates/Projects/default/README.md +36 -0
- package/templates/Projects/default/eslint.config.mjs +16 -0
- package/templates/Projects/default/messages/en/_global_ui.json +30 -0
- package/templates/Projects/default/messages/en/_home.json +4 -0
- package/templates/Projects/default/messages/en/dashboard.json +14 -0
- package/templates/Projects/default/messages/en/login.json +7 -0
- package/templates/Projects/default/messages/en/register.json +7 -0
- package/templates/Projects/default/messages/en/settings.json +4 -0
- package/templates/Projects/default/messages/en/user_info.json +4 -0
- package/templates/Projects/default/messages/en.ts +4 -0
- package/templates/Projects/default/messages/fr/_global_ui.json +30 -0
- package/templates/Projects/default/messages/fr/_home.json +4 -0
- package/templates/Projects/default/messages/fr/dashboard.json +14 -0
- package/templates/Projects/default/messages/fr/login.json +7 -0
- package/templates/Projects/default/messages/fr/register.json +7 -0
- package/templates/Projects/default/messages/fr/settings.json +4 -0
- package/templates/Projects/default/messages/fr/user_info.json +4 -0
- package/templates/Projects/default/messages/fr.ts +4 -0
- package/templates/Projects/default/messages/getMergedMessages.ts +31 -0
- package/templates/Projects/default/middleware.ts +11 -0
- package/templates/Projects/default/next.config.ts +12 -0
- package/templates/Projects/default/package.json +32 -0
- package/templates/Projects/default/postcss.config.mjs +5 -0
- package/templates/Projects/default/public/cnp-logo.ico +0 -0
- package/templates/Projects/default/public/cnp-logo.png +0 -0
- package/templates/Projects/default/public/cnp-logo.svg +76 -0
- package/templates/Projects/default/public/file.svg +1 -0
- package/templates/Projects/default/public/globe.svg +1 -0
- package/templates/Projects/default/public/next.svg +1 -0
- package/templates/Projects/default/public/vercel.svg +1 -0
- package/templates/Projects/default/public/window.svg +1 -0
- package/templates/Projects/default/src/app/[locale]/(public)/_home/loading.tsx +1 -0
- package/templates/Projects/default/src/app/[locale]/(public)/_home/page.tsx +16 -0
- package/templates/Projects/default/src/app/[locale]/(public)/layout.tsx +11 -0
- package/templates/Projects/default/src/app/[locale]/(public)/login/page.tsx +19 -0
- package/templates/Projects/default/src/app/[locale]/(public)/register/page.tsx +23 -0
- package/templates/Projects/default/src/app/[locale]/(user)/dashboard/error.tsx +38 -0
- package/templates/Projects/default/src/app/[locale]/(user)/dashboard/loading.tsx +17 -0
- package/templates/Projects/default/src/app/[locale]/(user)/dashboard/page.tsx +12 -0
- package/templates/Projects/default/src/app/[locale]/(user)/layout.tsx +12 -0
- package/templates/Projects/default/src/app/[locale]/(user)/settings/loading.tsx +17 -0
- package/templates/Projects/default/src/app/[locale]/(user)/settings/page.tsx +12 -0
- package/templates/Projects/default/src/app/[locale]/(user)/user_info/loading.tsx +17 -0
- package/templates/Projects/default/src/app/[locale]/(user)/user_info/page.tsx +12 -0
- package/templates/Projects/default/src/app/[locale]/layout.tsx +32 -0
- package/templates/Projects/default/src/app/[locale]/loading.tsx +17 -0
- package/templates/Projects/default/src/app/[locale]/not-found.tsx +22 -0
- package/templates/Projects/default/src/app/[locale]/page.tsx +116 -0
- package/templates/Projects/default/src/app/api/auth/[...nextauth]/route.ts +81 -0
- package/templates/Projects/default/src/app/api/auth/[...nextauth].ts +0 -0
- package/templates/Projects/default/src/app/api/auth/post-login/route.ts +27 -0
- package/templates/Projects/default/src/app/api/me/route.ts +15 -0
- package/templates/Projects/default/src/app/favicon.ico +0 -0
- package/templates/Projects/default/src/app/layout.tsx +11 -0
- package/templates/Projects/default/src/app/not-found.tsx +17 -0
- package/templates/Projects/default/src/app/page.tsx +6 -0
- package/templates/Projects/default/src/app/sitemap.ts +27 -0
- package/templates/Projects/default/src/app/styles/globals.css +26 -0
- package/templates/Projects/default/src/app/ui/dashboard/MainDashboard.tsx +21 -0
- package/templates/Projects/default/src/app/ui/dashboard/StatsCard.tsx +14 -0
- package/templates/Projects/default/src/app/ui/dashboard/WelcomeCard.tsx +10 -0
- package/templates/Projects/default/src/auth.config.ts +0 -0
- package/templates/Projects/default/src/config.ts +4 -0
- package/templates/Projects/default/src/lib/auth/isConnected.ts +16 -0
- package/templates/Projects/default/src/lib/i18n/navigation.ts +19 -0
- package/templates/Projects/default/src/lib/i18n/request.ts +31 -0
- package/templates/Projects/default/src/lib/i18n/routing.ts +20 -0
- package/templates/Projects/default/src/ui/_global/BackButton.tsx +15 -0
- package/templates/Projects/default/src/ui/_global/GlobalHeader.tsx +34 -0
- package/templates/Projects/default/src/ui/_global/GlobalMain.tsx +15 -0
- package/templates/Projects/default/src/ui/_global/LocaleSwitcher.tsx +38 -0
- package/templates/Projects/default/src/ui/_global/PublicNav.tsx +30 -0
- package/templates/Projects/default/src/ui/_global/UserNav.tsx +32 -0
- package/templates/Projects/default/src/ui/dashboard/StatsCard.tsx +14 -0
- package/templates/Projects/default/src/ui/dashboard/WelcomeCard.tsx +10 -0
- package/templates/Projects/default/src/ui/dashboard/page.tsx +22 -0
- package/templates/Projects/default/tailwind.config.ts +1 -0
- package/templates/Projects/default/tsconfig.json +34 -0
- package/tsconfig.json +27 -0
|
@@ -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.
|
package/CONTRIBUTING.md
ADDED
|
@@ -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! 🚀
|
package/FONCTIONALITY.md
ADDED
|
@@ -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
|
+

|
|
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
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
|
+
}
|
package/public/logo.svg
ADDED
|
@@ -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>
|