@exilonstudios/cli 1.0.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 ExilonStudios
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,342 @@
1
+ # ExilonCLI
2
+
3
+ <div align="center">
4
+
5
+ ![ExilonCMS Banner](https://via.placeholder.com/800x200/1a1a2e/16213e?text=ExilonCLI+Developer+Tools)
6
+
7
+ **Official CLI for ExilonCMS plugin and theme development**
8
+
9
+ [![npm version](https://badge.fury.io/js/%40exiloncms%2Fcli.svg)](https://www.npmjs.com/package/@exiloncms/cli)
10
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+ [![Node.js Version](https://img.shields.io/node/v/%40exiloncms%2Fcli.svg)](https://nodejs.org)
12
+
13
+ </div>
14
+
15
+ ## Features
16
+
17
+ - 🔌 **Create Plugins** - Scaffold new plugins with interactive prompts
18
+ - 🎨 **Create Themes** - Build beautiful themes from templates
19
+ - 📦 **Package Manager** - Install plugins/themes from marketplace
20
+ - 🔄 **Updates** - Update CMS core and installed packages
21
+ - 🔨 **Build Tools** - Package plugins/themes for distribution
22
+ - ✨ **Beautiful UI** - Modern CLI with colors and animations
23
+
24
+ ## Installation
25
+
26
+ ### Global Installation (Recommended)
27
+
28
+ ```bash
29
+ npm install -g @exiloncms/cli
30
+ ```
31
+
32
+ ### Local Installation
33
+
34
+ ```bash
35
+ npm install -D @exiloncms/cli
36
+ ```
37
+
38
+ ### Using with npx (No Installation)
39
+
40
+ ```bash
41
+ npx @exiloncms/cli new plugin
42
+ ```
43
+
44
+ ## Quick Start
45
+
46
+ ### Create a New Plugin
47
+
48
+ ```bash
49
+ exiloncms new plugin
50
+ ```
51
+
52
+ You'll be prompted for:
53
+ - Plugin name
54
+ - Description
55
+ - Author name
56
+ - PHP namespace
57
+ - Starter template (optional)
58
+ - Features to include
59
+
60
+ ### Create a New Theme
61
+
62
+ ```bash
63
+ exiloncms new theme
64
+ ```
65
+
66
+ ### Install from Marketplace
67
+
68
+ ```bash
69
+ exiloncms install blog
70
+ ```
71
+
72
+ ### Update CMS
73
+
74
+ ```bash
75
+ # Update everything
76
+ exiloncms update
77
+
78
+ # Update core only
79
+ exiloncms update --core
80
+
81
+ # Update packages only
82
+ exiloncms update --packages
83
+ ```
84
+
85
+ ### List Installed Packages
86
+
87
+ ```bash
88
+ exiloncms list
89
+ ```
90
+
91
+ ### Build for Distribution
92
+
93
+ ```bash
94
+ exiloncms build --format zip
95
+ ```
96
+
97
+ ## Commands
98
+
99
+ ### `exiloncms new [type]`
100
+
101
+ Create a new plugin or theme.
102
+
103
+ ```bash
104
+ exiloncms new plugin # Create a new plugin
105
+ exiloncms new theme # Create a new theme
106
+ exiloncms new # Choose interactively
107
+ ```
108
+
109
+ **Plugin Starters:**
110
+ - 📦 **Basic** - Minimal plugin structure
111
+ - 📝 **Blog Extension** - Extend blog functionality
112
+ - 🛒 **Shop Integration** - E-commerce features
113
+ - 📊 **Analytics Provider** - Custom analytics
114
+ - 🔔 **Notification Channel** - Notification integrations
115
+
116
+ **Theme Starters:**
117
+ - 🎨 **Minimal** - Clean, minimal design
118
+ - 📰 **Blog** - Content-focused theme
119
+ - 🎮 **Gaming** - Gaming server theme
120
+ - 💼 **Portfolio** - Personal portfolio
121
+
122
+ **Plugin Features:**
123
+ - 🔧 Admin Panel
124
+ - 🌐 Public Pages
125
+ - 🔌 API Routes
126
+ - 📊 Database Models
127
+ - 🛡️ Middleware
128
+ - ⌨️ Artisan Commands
129
+ - ⚛️ React Components
130
+ - ⚙️ Settings Page
131
+
132
+ ### `exiloncms install [name]`
133
+
134
+ Install a plugin or theme from the marketplace.
135
+
136
+ ```bash
137
+ exiloncms install # Search interactively
138
+ exiloncms install blog # Install specific package
139
+ ```
140
+
141
+ ### `exiloncms update`
142
+
143
+ Update ExilonCMS and installed packages.
144
+
145
+ ```bash
146
+ exiloncms update # Update everything
147
+ exiloncms update --core # Update CMS core only
148
+ exiloncms update --packages # Update packages only
149
+ ```
150
+
151
+ ### `exiloncms list`
152
+
153
+ List all installed plugins and themes.
154
+
155
+ ```bash
156
+ exiloncms list
157
+ ```
158
+
159
+ ### `exiloncms build`
160
+
161
+ Build a plugin or theme for distribution.
162
+
163
+ ```bash
164
+ exiloncms build # Build as ZIP
165
+ exiloncms build --format zip # Build as ZIP
166
+ exiloncms build --format tar # Build as TAR
167
+ ```
168
+
169
+ ## Examples
170
+
171
+ ### Creating a Plugin with React Admin
172
+
173
+ ```bash
174
+ $ exiloncms new plugin
175
+
176
+ ? What do you want to create? 🔌 Plugin
177
+ ? Project name: my-awesome-plugin
178
+ ? Description: An awesome plugin for ExilonCMS
179
+ ? Author name: John Doe
180
+ ? PHP Namespace: ExilonCMS\Plugins\MyAwesomePlugin
181
+ ? Use a starter plugin? Yes
182
+ ? Choose a plugin starter: 📦 Basic Plugin
183
+ ? Select features:
184
+ ✓ 🔧 Admin Panel
185
+ ✓ ⚛️ React Components
186
+ ✓ 📊 Database Models
187
+
188
+ ✓ Creating project structure
189
+ ✓ Generating configuration files
190
+ ✓ Creating source files
191
+ ✓ Installing dependencies
192
+ ✓ Initializing git repository
193
+ ```
194
+
195
+ ### Project Structure
196
+
197
+ ```
198
+ my-awesome-plugin/
199
+ ├── src/
200
+ │ ├── Models/ # Database models
201
+ │ ├── Http/
202
+ │ │ ├── Controllers/ # HTTP controllers
203
+ │ │ ├── Middleware/ # Middleware classes
204
+ │ │ └── Requests/ # Form requests
205
+ │ └── MyAwesomePluginServiceProvider.php
206
+ ├── database/migrations/ # Database migrations
207
+ ├── routes/
208
+ │ ├── web.php # Public routes
209
+ │ └── admin.php # Admin routes
210
+ ├── resources/
211
+ │ ├── views/ # Blade templates
212
+ │ ├── js/ # React components
213
+ │ └── css/ # Stylesheets
214
+ ├── config/ # Configuration files
215
+ ├── tests/ # Tests
216
+ ├── composer.json # PHP dependencies
217
+ ├── package.json # JS dependencies
218
+ ├── plugin.json # Plugin manifest
219
+ └── README.md
220
+ ```
221
+
222
+ ## Configuration
223
+
224
+ ### Plugin Manifest (`plugin.json`)
225
+
226
+ ```json
227
+ {
228
+ "name": "my-plugin",
229
+ "version": "1.0.0",
230
+ "description": "My awesome plugin",
231
+ "author": "Your Name",
232
+ "license": "MIT",
233
+ "type": "plugin",
234
+ "namespace": "ExilonCMS\\Plugins\\MyPlugin",
235
+ "service_provider": "ExilonCMS\\Plugins\\MyPlugin\\MyPluginServiceProvider",
236
+ "autoload": {
237
+ "psr-4": {
238
+ "ExilonCMS\\Plugins\\MyPlugin\\": "src/"
239
+ }
240
+ }
241
+ }
242
+ ```
243
+
244
+ ### Theme Manifest (`theme.json`)
245
+
246
+ ```json
247
+ {
248
+ "name": "my-theme",
249
+ "version": "1.0.0",
250
+ "description": "My awesome theme",
251
+ "author": "Your Name",
252
+ "license": "MIT",
253
+ "type": "theme",
254
+ "screenshot": "screenshot.png",
255
+ "supports": {
256
+ "exiloncms": "^1.0.0"
257
+ }
258
+ }
259
+ ```
260
+
261
+ ## Development
262
+
263
+ ### Building the CLI
264
+
265
+ ```bash
266
+ # Clone repository
267
+ git clone https://github.com/ExilonStudios/ExilonCLI.git
268
+ cd ExilonCLI
269
+
270
+ # Install dependencies
271
+ npm install
272
+
273
+ # Build
274
+ npm run build
275
+
276
+ # Link globally
277
+ npm link
278
+ ```
279
+
280
+ ### Running in Development
281
+
282
+ ```bash
283
+ npm run dev
284
+ ```
285
+
286
+ ### Testing
287
+
288
+ ```bash
289
+ # Run tests
290
+ npm test
291
+
292
+ # Lint
293
+ npm run lint
294
+
295
+ # Type check
296
+ npm run typecheck
297
+ ```
298
+
299
+ ## Roadmap
300
+
301
+ - [ ] Plugin hot-reload
302
+ - [ ] Theme preview server
303
+ - [ ] Package validation
304
+ - [ ] Automated testing
305
+ - [ ] CI/CD integration
306
+ - [ ] Package signing
307
+ - [ ] Marketplace publishing from CLI
308
+ - [ ] Version management
309
+ - [ ] Dependency management
310
+
311
+ ## Contributing
312
+
313
+ Contributions are welcome! Please feel free to submit a Pull Request.
314
+
315
+ 1. Fork the repository
316
+ 2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
317
+ 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
318
+ 4. Push to the branch (`git push origin feature/AmazingFeature`)
319
+ 5. Open a Pull Request
320
+
321
+ ## License
322
+
323
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
324
+
325
+ ## Support
326
+
327
+ - 📖 [Documentation](https://docs.exiloncms.fr)
328
+ - 💬 [Discord](https://discord.gg/exiloncms)
329
+ - 🐦 [Twitter](https://twitter.com/exiloncms)
330
+ - 📧 Email: support@exiloncms.fr
331
+
332
+ ## Acknowledgments
333
+
334
+ Built with:
335
+ - [Commander.js](https://commander.js.org/) - CLI framework
336
+ - [Clack](https://github.com/natemoo-re/clack) - Interactive prompts
337
+ - [Chalk](https://chalk.js.org/) - Terminal styling
338
+ - [Listr2](https://listr2.kilic.dev/) - Task lists
339
+
340
+ ---
341
+
342
+ Made with ❤️ by [ExilonStudios](https://exiloncms.fr)
package/dist/cli.js ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import './index.js';
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node