@zylaris/cli 1.0.3 → 1.0.5
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 +21 -0
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +595 -17
- package/dist/commands/create.js.map +1 -1
- package/package.json +24 -15
package/README.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# @zylaris/cli
|
|
2
|
+
|
|
3
|
+
> CLI for Zylaris Framework
|
|
4
|
+
|
|
5
|
+
Part of the [Zylaris Framework](https://github.com/zylarisjs/zylaris).
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @zylaris/cli
|
|
11
|
+
# or use via npx
|
|
12
|
+
npx zylaris create my-app
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Documentation
|
|
16
|
+
|
|
17
|
+
Please refer to the [main documentation](https://github.com/zylarisjs/zylaris#readme) for more details.
|
|
18
|
+
|
|
19
|
+
## License
|
|
20
|
+
|
|
21
|
+
MIT © [zylaris.js](https://github.com/zylarisjs/)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAQA,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAQA,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2FvF"}
|
package/dist/commands/create.js
CHANGED
|
@@ -45,15 +45,33 @@ export async function createProject(name, options) {
|
|
|
45
45
|
await createSourceFiles(targetDir, template);
|
|
46
46
|
// Create public folder
|
|
47
47
|
await fs.ensureDir(join(targetDir, 'public'));
|
|
48
|
+
// Create README
|
|
49
|
+
await createReadme(targetDir, name);
|
|
48
50
|
// Install dependencies
|
|
49
51
|
if (!options.skipInstall) {
|
|
50
52
|
spinner.text = 'Installing dependencies...';
|
|
51
|
-
|
|
53
|
+
try {
|
|
54
|
+
const { execSync } = await import('child_process');
|
|
55
|
+
execSync('npm install', { cwd: targetDir, stdio: 'ignore' });
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Ignore install errors, user can install manually
|
|
59
|
+
}
|
|
52
60
|
}
|
|
53
61
|
spinner.succeed(chalk.green(`Project ${name} created successfully!`));
|
|
54
|
-
|
|
62
|
+
// Print next steps
|
|
63
|
+
console.log('\n' + chalk.bold('🚀 Next steps:'));
|
|
55
64
|
console.log(chalk.cyan(` cd ${name}`));
|
|
65
|
+
console.log(chalk.cyan(' npm install'));
|
|
56
66
|
console.log(chalk.cyan(' npm run dev'));
|
|
67
|
+
console.log('\n' + chalk.bold('📁 Project Structure:'));
|
|
68
|
+
console.log(chalk.gray(' src/'));
|
|
69
|
+
console.log(chalk.gray(' app/'));
|
|
70
|
+
console.log(chalk.gray(' ├── layout.tsx # Root layout (auto-entry)'));
|
|
71
|
+
console.log(chalk.gray(' ├── page.tsx # Home page (auto-entry)'));
|
|
72
|
+
console.log(chalk.gray(' ├── loading.tsx # Loading state'));
|
|
73
|
+
console.log(chalk.gray(' ├── error.tsx # Error boundary'));
|
|
74
|
+
console.log(chalk.gray(' └── global.css # Global styles'));
|
|
57
75
|
}
|
|
58
76
|
catch (error) {
|
|
59
77
|
spinner.fail(chalk.red('Failed to create project'));
|
|
@@ -71,6 +89,7 @@ async function createPackageJson(targetDir, name, _template) {
|
|
|
71
89
|
dev: 'zylaris dev',
|
|
72
90
|
build: 'zylaris build',
|
|
73
91
|
start: 'node .zylaris/server.js',
|
|
92
|
+
preview: 'zylaris preview',
|
|
74
93
|
test: 'zylaris test',
|
|
75
94
|
lint: 'zylaris lint',
|
|
76
95
|
typecheck: 'zylaris typecheck',
|
|
@@ -122,24 +141,42 @@ async function createTsConfig(targetDir) {
|
|
|
122
141
|
async function createConfig(targetDir, _template) {
|
|
123
142
|
const config = `import { defineConfig } from 'zylaris';
|
|
124
143
|
|
|
144
|
+
/**
|
|
145
|
+
* Zylaris Configuration
|
|
146
|
+
* @see https://zylaris.dev/docs/config
|
|
147
|
+
*/
|
|
125
148
|
export default defineConfig({
|
|
149
|
+
// Runtime target
|
|
126
150
|
runtime: 'node',
|
|
151
|
+
|
|
152
|
+
// Rendering mode
|
|
127
153
|
rendering: {
|
|
128
154
|
default: 'ssr',
|
|
129
155
|
},
|
|
156
|
+
|
|
157
|
+
// Islands Architecture - Partial hydration
|
|
130
158
|
islands: {
|
|
131
|
-
mode: 'auto',
|
|
159
|
+
mode: 'auto', // 'auto' | 'full' | 'none'
|
|
132
160
|
},
|
|
161
|
+
|
|
162
|
+
// Compiler options
|
|
133
163
|
compiler: {
|
|
134
164
|
target: 'es2022',
|
|
135
165
|
minify: true,
|
|
136
166
|
},
|
|
167
|
+
|
|
168
|
+
// Development server
|
|
137
169
|
server: {
|
|
138
|
-
port:
|
|
170
|
+
port: 2727,
|
|
139
171
|
},
|
|
172
|
+
|
|
173
|
+
// Styling
|
|
140
174
|
styling: {
|
|
141
|
-
tailwind:
|
|
175
|
+
tailwind: false,
|
|
176
|
+
cssModules: true,
|
|
142
177
|
},
|
|
178
|
+
|
|
179
|
+
// TypeScript
|
|
143
180
|
typescript: {
|
|
144
181
|
strict: true,
|
|
145
182
|
},
|
|
@@ -151,14 +188,35 @@ async function createSourceFiles(targetDir, _template) {
|
|
|
151
188
|
const srcDir = join(targetDir, 'src');
|
|
152
189
|
const appDir = join(srcDir, 'app');
|
|
153
190
|
await fs.ensureDir(appDir);
|
|
154
|
-
// Create layout.tsx
|
|
155
|
-
const layout =
|
|
191
|
+
// Create layout.tsx with comments
|
|
192
|
+
const layout = `/**
|
|
193
|
+
* Root Layout
|
|
194
|
+
*
|
|
195
|
+
* This is the root layout that wraps all pages.
|
|
196
|
+
* It auto-generates the client entry point - no need for entry-client.tsx!
|
|
197
|
+
*
|
|
198
|
+
* Features:
|
|
199
|
+
* - Auto-hydrated on client
|
|
200
|
+
* - Error boundary included
|
|
201
|
+
* - CSS auto-imported
|
|
202
|
+
*/
|
|
203
|
+
|
|
204
|
+
export const metadata = {
|
|
205
|
+
title: 'Zylaris App',
|
|
206
|
+
description: 'Built with Zylaris Framework',
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
export default function RootLayout({
|
|
156
210
|
children,
|
|
157
211
|
}: {
|
|
158
212
|
children: React.ReactNode;
|
|
159
213
|
}) {
|
|
160
214
|
return (
|
|
161
215
|
<html lang="en">
|
|
216
|
+
<head>
|
|
217
|
+
<meta charSet="utf-8" />
|
|
218
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
219
|
+
</head>
|
|
162
220
|
<body>
|
|
163
221
|
{children}
|
|
164
222
|
</body>
|
|
@@ -167,27 +225,547 @@ async function createSourceFiles(targetDir, _template) {
|
|
|
167
225
|
}
|
|
168
226
|
`;
|
|
169
227
|
await fs.writeFile(join(appDir, 'layout.tsx'), layout);
|
|
170
|
-
// Create page.tsx
|
|
171
|
-
const page =
|
|
228
|
+
// Create page.tsx with interactive example
|
|
229
|
+
const page = `/**
|
|
230
|
+
* Home Page
|
|
231
|
+
*
|
|
232
|
+
* This is the home page component.
|
|
233
|
+
* It automatically becomes the entry point for the root route (/).
|
|
234
|
+
*/
|
|
235
|
+
|
|
236
|
+
import { signal, computed } from 'zylaris';
|
|
237
|
+
|
|
238
|
+
export default function HomePage() {
|
|
239
|
+
// Signals for fine-grained reactivity
|
|
240
|
+
const count = signal(0);
|
|
241
|
+
const doubled = computed(() => count() * 2);
|
|
242
|
+
|
|
172
243
|
return (
|
|
173
|
-
<main>
|
|
174
|
-
<
|
|
175
|
-
|
|
244
|
+
<main style={styles.main}>
|
|
245
|
+
<div style={styles.container}>
|
|
246
|
+
<h1 style={styles.title}>
|
|
247
|
+
🚀 Welcome to Zylaris!
|
|
248
|
+
</h1>
|
|
249
|
+
|
|
250
|
+
<p style={styles.description}>
|
|
251
|
+
Zero-config, auto-generated entry points. No need for entry-client.tsx!
|
|
252
|
+
</p>
|
|
253
|
+
|
|
254
|
+
{/* Interactive counter example */}
|
|
255
|
+
<div style={styles.card}>
|
|
256
|
+
<h2 style={styles.cardTitle}>Interactive Counter</h2>
|
|
257
|
+
<div style={styles.counter}>
|
|
258
|
+
<span style={styles.count}>{count()}</span>
|
|
259
|
+
<span style={styles.multiplier}>× 2 = {doubled()}</span>
|
|
260
|
+
</div>
|
|
261
|
+
<div style={styles.buttons}>
|
|
262
|
+
<button
|
|
263
|
+
onClick={() => count.update(c => c - 1)}
|
|
264
|
+
style={styles.button}
|
|
265
|
+
>
|
|
266
|
+
−
|
|
267
|
+
</button>
|
|
268
|
+
<button
|
|
269
|
+
onClick={() => count.update(c => c + 1)}
|
|
270
|
+
style={{ ...styles.button, ...styles.primaryButton }}
|
|
271
|
+
>
|
|
272
|
+
+
|
|
273
|
+
</button>
|
|
274
|
+
</div>
|
|
275
|
+
</div>
|
|
276
|
+
|
|
277
|
+
<div style={styles.features}>
|
|
278
|
+
<Feature
|
|
279
|
+
emoji="⚡"
|
|
280
|
+
title="Zero Entry"
|
|
281
|
+
description="No entry-client.tsx needed"
|
|
282
|
+
/>
|
|
283
|
+
<Feature
|
|
284
|
+
emoji="🏝️"
|
|
285
|
+
title="Islands"
|
|
286
|
+
description="Partial hydration support"
|
|
287
|
+
/>
|
|
288
|
+
<Feature
|
|
289
|
+
emoji="🛣️"
|
|
290
|
+
title="File Routing"
|
|
291
|
+
description="App directory based routing"
|
|
292
|
+
/>
|
|
293
|
+
<Feature
|
|
294
|
+
emoji="🎨"
|
|
295
|
+
title="CSS Auto"
|
|
296
|
+
description="Styles auto-imported"
|
|
297
|
+
/>
|
|
298
|
+
</div>
|
|
299
|
+
|
|
300
|
+
<footer style={styles.footer}>
|
|
301
|
+
<p>
|
|
302
|
+
Edit <code style={styles.code}>src/app/page.tsx</code> to get started
|
|
303
|
+
</p>
|
|
304
|
+
</footer>
|
|
305
|
+
</div>
|
|
176
306
|
</main>
|
|
177
307
|
);
|
|
178
308
|
}
|
|
309
|
+
|
|
310
|
+
// Sub-component
|
|
311
|
+
function Feature({
|
|
312
|
+
emoji,
|
|
313
|
+
title,
|
|
314
|
+
description
|
|
315
|
+
}: {
|
|
316
|
+
emoji: string;
|
|
317
|
+
title: string;
|
|
318
|
+
description: string;
|
|
319
|
+
}) {
|
|
320
|
+
return (
|
|
321
|
+
<div style={styles.feature}>
|
|
322
|
+
<span style={styles.featureEmoji}>{emoji}</span>
|
|
323
|
+
<h3 style={styles.featureTitle}>{title}</h3>
|
|
324
|
+
<p style={styles.featureDesc}>{description}</p>
|
|
325
|
+
</div>
|
|
326
|
+
);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// Inline styles for simplicity (you can use CSS modules or Tailwind)
|
|
330
|
+
const styles: Record<string, React.CSSProperties> = {
|
|
331
|
+
main: {
|
|
332
|
+
minHeight: '100vh',
|
|
333
|
+
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
|
|
334
|
+
padding: '2rem',
|
|
335
|
+
fontFamily: 'system-ui, -apple-system, sans-serif',
|
|
336
|
+
},
|
|
337
|
+
container: {
|
|
338
|
+
maxWidth: '800px',
|
|
339
|
+
margin: '0 auto',
|
|
340
|
+
},
|
|
341
|
+
title: {
|
|
342
|
+
fontSize: '3rem',
|
|
343
|
+
fontWeight: 'bold',
|
|
344
|
+
color: 'white',
|
|
345
|
+
textAlign: 'center',
|
|
346
|
+
margin: '0 0 1rem',
|
|
347
|
+
textShadow: '0 2px 10px rgba(0,0,0,0.3)',
|
|
348
|
+
},
|
|
349
|
+
description: {
|
|
350
|
+
fontSize: '1.25rem',
|
|
351
|
+
color: 'rgba(255,255,255,0.9)',
|
|
352
|
+
textAlign: 'center',
|
|
353
|
+
marginBottom: '3rem',
|
|
354
|
+
},
|
|
355
|
+
card: {
|
|
356
|
+
background: 'white',
|
|
357
|
+
borderRadius: '16px',
|
|
358
|
+
padding: '2rem',
|
|
359
|
+
marginBottom: '2rem',
|
|
360
|
+
boxShadow: '0 10px 40px rgba(0,0,0,0.2)',
|
|
361
|
+
},
|
|
362
|
+
cardTitle: {
|
|
363
|
+
fontSize: '1.5rem',
|
|
364
|
+
margin: '0 0 1rem',
|
|
365
|
+
color: '#1e293b',
|
|
366
|
+
},
|
|
367
|
+
counter: {
|
|
368
|
+
display: 'flex',
|
|
369
|
+
alignItems: 'center',
|
|
370
|
+
justifyContent: 'center',
|
|
371
|
+
gap: '1rem',
|
|
372
|
+
fontSize: '2rem',
|
|
373
|
+
marginBottom: '1rem',
|
|
374
|
+
},
|
|
375
|
+
count: {
|
|
376
|
+
fontWeight: 'bold',
|
|
377
|
+
color: '#3b82f6',
|
|
378
|
+
},
|
|
379
|
+
multiplier: {
|
|
380
|
+
color: '#64748b',
|
|
381
|
+
},
|
|
382
|
+
buttons: {
|
|
383
|
+
display: 'flex',
|
|
384
|
+
justifyContent: 'center',
|
|
385
|
+
gap: '0.5rem',
|
|
386
|
+
},
|
|
387
|
+
button: {
|
|
388
|
+
width: '48px',
|
|
389
|
+
height: '48px',
|
|
390
|
+
fontSize: '1.5rem',
|
|
391
|
+
border: 'none',
|
|
392
|
+
borderRadius: '8px',
|
|
393
|
+
cursor: 'pointer',
|
|
394
|
+
background: '#e2e8f0',
|
|
395
|
+
transition: 'all 0.2s',
|
|
396
|
+
},
|
|
397
|
+
primaryButton: {
|
|
398
|
+
background: '#3b82f6',
|
|
399
|
+
color: 'white',
|
|
400
|
+
},
|
|
401
|
+
features: {
|
|
402
|
+
display: 'grid',
|
|
403
|
+
gridTemplateColumns: 'repeat(auto-fit, minmax(150px, 1fr))',
|
|
404
|
+
gap: '1rem',
|
|
405
|
+
marginBottom: '2rem',
|
|
406
|
+
},
|
|
407
|
+
feature: {
|
|
408
|
+
background: 'rgba(255,255,255,0.95)',
|
|
409
|
+
padding: '1.5rem',
|
|
410
|
+
borderRadius: '12px',
|
|
411
|
+
textAlign: 'center',
|
|
412
|
+
},
|
|
413
|
+
featureEmoji: {
|
|
414
|
+
fontSize: '2rem',
|
|
415
|
+
display: 'block',
|
|
416
|
+
marginBottom: '0.5rem',
|
|
417
|
+
},
|
|
418
|
+
featureTitle: {
|
|
419
|
+
fontSize: '1rem',
|
|
420
|
+
fontWeight: '600',
|
|
421
|
+
margin: '0 0 0.25rem',
|
|
422
|
+
color: '#1e293b',
|
|
423
|
+
},
|
|
424
|
+
featureDesc: {
|
|
425
|
+
fontSize: '0.875rem',
|
|
426
|
+
color: '#64748b',
|
|
427
|
+
margin: 0,
|
|
428
|
+
},
|
|
429
|
+
footer: {
|
|
430
|
+
textAlign: 'center',
|
|
431
|
+
color: 'rgba(255,255,255,0.8)',
|
|
432
|
+
},
|
|
433
|
+
code: {
|
|
434
|
+
background: 'rgba(255,255,255,0.2)',
|
|
435
|
+
padding: '0.2em 0.4em',
|
|
436
|
+
borderRadius: '4px',
|
|
437
|
+
fontFamily: 'monospace',
|
|
438
|
+
},
|
|
439
|
+
};
|
|
179
440
|
`;
|
|
180
441
|
await fs.writeFile(join(appDir, 'page.tsx'), page);
|
|
442
|
+
// Create loading.tsx
|
|
443
|
+
const loading = `/**
|
|
444
|
+
* Loading State
|
|
445
|
+
*
|
|
446
|
+
* Shown while the page is loading.
|
|
447
|
+
* Zylaris automatically shows this during data fetching.
|
|
448
|
+
*/
|
|
449
|
+
|
|
450
|
+
export default function Loading() {
|
|
451
|
+
return (
|
|
452
|
+
<div style={{
|
|
453
|
+
minHeight: '100vh',
|
|
454
|
+
display: 'flex',
|
|
455
|
+
alignItems: 'center',
|
|
456
|
+
justifyContent: 'center',
|
|
457
|
+
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
|
|
458
|
+
}}>
|
|
459
|
+
<div style={{
|
|
460
|
+
display: 'flex',
|
|
461
|
+
flexDirection: 'column',
|
|
462
|
+
alignItems: 'center',
|
|
463
|
+
gap: '1rem',
|
|
464
|
+
}}>
|
|
465
|
+
<div style={{
|
|
466
|
+
width: '48px',
|
|
467
|
+
height: '48px',
|
|
468
|
+
border: '4px solid rgba(255,255,255,0.3)',
|
|
469
|
+
borderTopColor: 'white',
|
|
470
|
+
borderRadius: '50%',
|
|
471
|
+
animation: 'spin 1s linear infinite',
|
|
472
|
+
}} />
|
|
473
|
+
<p style={{ color: 'white', fontSize: '1.125rem' }}>Loading...</p>
|
|
474
|
+
</div>
|
|
475
|
+
<style>{\`
|
|
476
|
+
@keyframes spin {
|
|
477
|
+
to { transform: rotate(360deg); }
|
|
478
|
+
}
|
|
479
|
+
\`}</style>
|
|
480
|
+
</div>
|
|
481
|
+
);
|
|
482
|
+
}
|
|
483
|
+
`;
|
|
484
|
+
await fs.writeFile(join(appDir, 'loading.tsx'), loading);
|
|
485
|
+
// Create error.tsx
|
|
486
|
+
const error = `/**
|
|
487
|
+
* Error Boundary
|
|
488
|
+
*
|
|
489
|
+
* Catches and displays runtime errors gracefully.
|
|
490
|
+
* Includes a reload button to recover.
|
|
491
|
+
*/
|
|
492
|
+
|
|
493
|
+
'use client'; // Mark as client component for error handling
|
|
494
|
+
|
|
495
|
+
import { useEffect } from 'react';
|
|
496
|
+
|
|
497
|
+
interface ErrorProps {
|
|
498
|
+
error: Error & { digest?: string };
|
|
499
|
+
reset: () => void;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
export default function ErrorBoundary({ error, reset }: ErrorProps) {
|
|
503
|
+
useEffect(() => {
|
|
504
|
+
// Log to error reporting service
|
|
505
|
+
console.error('[Zylaris Error]', error);
|
|
506
|
+
}, [error]);
|
|
507
|
+
|
|
508
|
+
return (
|
|
509
|
+
<div style={{
|
|
510
|
+
minHeight: '100vh',
|
|
511
|
+
display: 'flex',
|
|
512
|
+
alignItems: 'center',
|
|
513
|
+
justifyContent: 'center',
|
|
514
|
+
fontFamily: 'system-ui, sans-serif',
|
|
515
|
+
background: '#0f172a',
|
|
516
|
+
color: '#e2e8f0',
|
|
517
|
+
padding: '2rem',
|
|
518
|
+
}}>
|
|
519
|
+
<div style={{ textAlign: 'center', maxWidth: '500px' }}>
|
|
520
|
+
<div style={{ fontSize: '4rem', marginBottom: '1rem' }}>💥</div>
|
|
521
|
+
<h1 style={{
|
|
522
|
+
fontSize: '2rem',
|
|
523
|
+
margin: '0 0 1rem',
|
|
524
|
+
color: '#ef4444',
|
|
525
|
+
}}>
|
|
526
|
+
Something went wrong
|
|
527
|
+
</h1>
|
|
528
|
+
<p style={{
|
|
529
|
+
color: '#94a3b8',
|
|
530
|
+
marginBottom: '1.5rem',
|
|
531
|
+
}}>
|
|
532
|
+
{error.message || 'An unexpected error occurred'}
|
|
533
|
+
</p>
|
|
534
|
+
{error.digest && (
|
|
535
|
+
<p style={{
|
|
536
|
+
fontSize: '0.875rem',
|
|
537
|
+
color: '#64748b',
|
|
538
|
+
marginBottom: '1.5rem',
|
|
539
|
+
}}>
|
|
540
|
+
Error ID: {error.digest}
|
|
541
|
+
</p>
|
|
542
|
+
)}
|
|
543
|
+
<div style={{ display: 'flex', gap: '0.75rem', justifyContent: 'center' }}>
|
|
544
|
+
<button
|
|
545
|
+
onClick={reset}
|
|
546
|
+
style={{
|
|
547
|
+
padding: '0.75rem 1.5rem',
|
|
548
|
+
background: '#3b82f6',
|
|
549
|
+
color: 'white',
|
|
550
|
+
border: 'none',
|
|
551
|
+
borderRadius: '8px',
|
|
552
|
+
cursor: 'pointer',
|
|
553
|
+
fontSize: '1rem',
|
|
554
|
+
fontWeight: '500',
|
|
555
|
+
}}
|
|
556
|
+
>
|
|
557
|
+
Try Again
|
|
558
|
+
</button>
|
|
559
|
+
<button
|
|
560
|
+
onClick={() => window.location.reload()}
|
|
561
|
+
style={{
|
|
562
|
+
padding: '0.75rem 1.5rem',
|
|
563
|
+
background: 'transparent',
|
|
564
|
+
color: '#94a3b8',
|
|
565
|
+
border: '1px solid #334155',
|
|
566
|
+
borderRadius: '8px',
|
|
567
|
+
cursor: 'pointer',
|
|
568
|
+
fontSize: '1rem',
|
|
569
|
+
}}
|
|
570
|
+
>
|
|
571
|
+
Reload Page
|
|
572
|
+
</button>
|
|
573
|
+
</div>
|
|
574
|
+
</div>
|
|
575
|
+
</div>
|
|
576
|
+
);
|
|
577
|
+
}
|
|
578
|
+
`;
|
|
579
|
+
await fs.writeFile(join(appDir, 'error.tsx'), error);
|
|
181
580
|
// Create global.css
|
|
182
|
-
const globalCss =
|
|
183
|
-
|
|
184
|
-
|
|
581
|
+
const globalCss = `/**
|
|
582
|
+
* Global Styles
|
|
583
|
+
*
|
|
584
|
+
* Automatically imported into the client bundle.
|
|
585
|
+
* No need to import manually!
|
|
586
|
+
*/
|
|
587
|
+
|
|
588
|
+
/* CSS Reset & Base */
|
|
589
|
+
*, *::before, *::after {
|
|
590
|
+
box-sizing: border-box;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
* {
|
|
594
|
+
margin: 0;
|
|
595
|
+
padding: 0;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
html {
|
|
599
|
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
|
600
|
+
'Helvetica Neue', Arial, sans-serif;
|
|
601
|
+
-webkit-font-smoothing: antialiased;
|
|
602
|
+
-moz-osx-font-smoothing: grayscale;
|
|
603
|
+
}
|
|
185
604
|
|
|
186
605
|
body {
|
|
187
|
-
|
|
606
|
+
line-height: 1.5;
|
|
607
|
+
color: #1e293b;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
/* Smooth scrolling */
|
|
611
|
+
html {
|
|
612
|
+
scroll-behavior: smooth;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
/* Focus styles */
|
|
616
|
+
:focus-visible {
|
|
617
|
+
outline: 2px solid #3b82f6;
|
|
618
|
+
outline-offset: 2px;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
/* Selection */
|
|
622
|
+
::selection {
|
|
623
|
+
background: rgba(59, 130, 246, 0.3);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
/* Scrollbar */
|
|
627
|
+
::-webkit-scrollbar {
|
|
628
|
+
width: 8px;
|
|
629
|
+
height: 8px;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
::-webkit-scrollbar-track {
|
|
633
|
+
background: transparent;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
::-webkit-scrollbar-thumb {
|
|
637
|
+
background: #94a3b8;
|
|
638
|
+
border-radius: 4px;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
::-webkit-scrollbar-thumb:hover {
|
|
642
|
+
background: #64748b;
|
|
188
643
|
}
|
|
189
644
|
`;
|
|
190
645
|
await fs.writeFile(join(appDir, 'global.css'), globalCss);
|
|
191
|
-
|
|
646
|
+
// Create about page as example
|
|
647
|
+
const aboutDir = join(appDir, 'about');
|
|
648
|
+
await fs.ensureDir(aboutDir);
|
|
649
|
+
const aboutPage = `/**
|
|
650
|
+
* About Page
|
|
651
|
+
*
|
|
652
|
+
* Route: /about
|
|
653
|
+
*
|
|
654
|
+
* This demonstrates file-system routing.
|
|
655
|
+
* Create a folder with page.tsx to add a new route!
|
|
656
|
+
*/
|
|
657
|
+
|
|
658
|
+
export default function AboutPage() {
|
|
659
|
+
return (
|
|
660
|
+
<main style={{
|
|
661
|
+
minHeight: '100vh',
|
|
662
|
+
padding: '4rem 2rem',
|
|
663
|
+
fontFamily: 'system-ui, sans-serif',
|
|
664
|
+
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
|
|
665
|
+
}}>
|
|
666
|
+
<div style={{
|
|
667
|
+
maxWidth: '700px',
|
|
668
|
+
margin: '0 auto',
|
|
669
|
+
background: 'white',
|
|
670
|
+
padding: '3rem',
|
|
671
|
+
borderRadius: '16px',
|
|
672
|
+
boxShadow: '0 20px 60px rgba(0,0,0,0.3)',
|
|
673
|
+
}}>
|
|
674
|
+
<h1 style={{ fontSize: '2.5rem', marginBottom: '1rem' }}>
|
|
675
|
+
About Zylaris
|
|
676
|
+
</h1>
|
|
677
|
+
<p style={{ fontSize: '1.125rem', color: '#64748b', lineHeight: 1.7 }}>
|
|
678
|
+
Zylaris is a next-generation web framework featuring:
|
|
679
|
+
</p>
|
|
680
|
+
<ul style={{
|
|
681
|
+
marginTop: '1.5rem',
|
|
682
|
+
paddingLeft: '1.5rem',
|
|
683
|
+
color: '#334155',
|
|
684
|
+
lineHeight: 2,
|
|
685
|
+
}}>
|
|
686
|
+
<li>⚡ <strong>Zero Virtual DOM</strong> - Direct DOM operations</li>
|
|
687
|
+
<li>🎯 <strong>Fine-grained Reactivity</strong> - Signal-based</li>
|
|
688
|
+
<li>🏝️ <strong>Islands Architecture</strong> - Partial hydration</li>
|
|
689
|
+
<li>🚀 <strong>Universal Deployment</strong> - Deploy anywhere</li>
|
|
690
|
+
<li>🔌 <strong>Any Library</strong> - Use any JS library</li>
|
|
691
|
+
</ul>
|
|
692
|
+
<a
|
|
693
|
+
href="/"
|
|
694
|
+
style={{
|
|
695
|
+
display: 'inline-block',
|
|
696
|
+
marginTop: '2rem',
|
|
697
|
+
padding: '0.75rem 1.5rem',
|
|
698
|
+
background: '#3b82f6',
|
|
699
|
+
color: 'white',
|
|
700
|
+
textDecoration: 'none',
|
|
701
|
+
borderRadius: '8px',
|
|
702
|
+
fontWeight: 500,
|
|
703
|
+
}}
|
|
704
|
+
>
|
|
705
|
+
← Back Home
|
|
706
|
+
</a>
|
|
707
|
+
</div>
|
|
708
|
+
</main>
|
|
709
|
+
);
|
|
710
|
+
}
|
|
711
|
+
`;
|
|
712
|
+
await fs.writeFile(join(aboutDir, 'page.tsx'), aboutPage);
|
|
713
|
+
}
|
|
714
|
+
async function createReadme(targetDir, name) {
|
|
715
|
+
const readme = `# ${name}
|
|
716
|
+
|
|
717
|
+
Built with [Zylaris](https://zylaris.dev) - The Universal Web Framework
|
|
718
|
+
|
|
719
|
+
## 🚀 Getting Started
|
|
720
|
+
|
|
721
|
+
\`\`\`bash
|
|
722
|
+
npm install
|
|
723
|
+
npm run dev
|
|
724
|
+
\`\`\`
|
|
725
|
+
|
|
726
|
+
Open [http://localhost:2727](http://localhost:2727)
|
|
727
|
+
|
|
728
|
+
## 📁 Project Structure
|
|
729
|
+
|
|
730
|
+
\`\`\`
|
|
731
|
+
src/
|
|
732
|
+
app/ # File-system routing
|
|
733
|
+
├── layout.tsx # Root layout (auto-entry)
|
|
734
|
+
├── page.tsx # Home page (/)
|
|
735
|
+
├── loading.tsx # Loading state
|
|
736
|
+
├── error.tsx # Error boundary
|
|
737
|
+
├── global.css # Global styles (auto-imported)
|
|
738
|
+
└── about/
|
|
739
|
+
└── page.tsx # About page (/about)
|
|
740
|
+
\`\`\`
|
|
741
|
+
|
|
742
|
+
> 💡 **No entry files needed!** Zylaris auto-generates entry-client.tsx and entry-server.tsx
|
|
743
|
+
|
|
744
|
+
## 🛠️ Scripts
|
|
745
|
+
|
|
746
|
+
- \`npm run dev\` - Start dev server with HMR
|
|
747
|
+
- \`npm run build\` - Build for production
|
|
748
|
+
- \`npm run preview\` - Preview production build
|
|
749
|
+
|
|
750
|
+
## 🏝️ Islands Architecture
|
|
751
|
+
|
|
752
|
+
Mark components for partial hydration:
|
|
753
|
+
|
|
754
|
+
\`\`\`tsx
|
|
755
|
+
'use client' // or 'use island'
|
|
756
|
+
|
|
757
|
+
export default function InteractiveComponent() {
|
|
758
|
+
// This component is hydrated on client
|
|
759
|
+
// while the rest of the page stays static
|
|
760
|
+
}
|
|
761
|
+
\`\`\`
|
|
762
|
+
|
|
763
|
+
## 📖 Learn More
|
|
764
|
+
|
|
765
|
+
- [Documentation](https://zylaris.dev/docs)
|
|
766
|
+
- [Examples](https://zylaris.dev/examples)
|
|
767
|
+
- [GitHub](https://github.com/zylarisjs/zylaris)
|
|
768
|
+
`;
|
|
769
|
+
await fs.writeFile(join(targetDir, 'README.md'), readme);
|
|
192
770
|
}
|
|
193
771
|
//# sourceMappingURL=create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAOlE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,OAAsB;IACtE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAE/C,4BAA4B;IAC5B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,aAAa,IAAI,6BAA6B;gBACvD,OAAO,EAAE,KAAK;aACf,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,oBAAoB;IACpB,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC7C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,oBAAoB;gBAC7B,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC,CAAC;QACJ,QAAQ,GAAG,gBAAgB,CAAC;IAC9B,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEnD,IAAI,CAAC;QACH,6BAA6B;QAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE9B,sBAAsB;QACtB,MAAM,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEnD,uBAAuB;QACvB,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;QAEhC,2BAA2B;QAC3B,MAAM,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAExC,sBAAsB;QACtB,MAAM,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,uBAAuB;QACvB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE9C,uBAAuB;QACvB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,GAAG,4BAA4B,CAAC;YAC5C
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zylaris/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "CLI for Zylaris Framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,26 +18,35 @@
|
|
|
18
18
|
"clean": "rm -rf dist"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@zylaris/adapter": "^0.1.
|
|
22
|
-
"@zylaris/compiler": "^1.0.
|
|
23
|
-
"@zylaris/dev-server": "^1.0.
|
|
24
|
-
"commander": "^
|
|
25
|
-
"chalk": "^5.
|
|
26
|
-
"inquirer": "^
|
|
27
|
-
"ora": "^
|
|
28
|
-
"fs-extra": "^11.
|
|
29
|
-
"glob": "^
|
|
30
|
-
"chokidar": "^
|
|
21
|
+
"@zylaris/adapter": "^0.1.3",
|
|
22
|
+
"@zylaris/compiler": "^1.0.2",
|
|
23
|
+
"@zylaris/dev-server": "^1.0.3",
|
|
24
|
+
"commander": "^14.0.3",
|
|
25
|
+
"chalk": "^5.6.2",
|
|
26
|
+
"inquirer": "^13.2.4",
|
|
27
|
+
"ora": "^9.3.0",
|
|
28
|
+
"fs-extra": "^11.3.3",
|
|
29
|
+
"glob": "^13.0.3",
|
|
30
|
+
"chokidar": "^5.0.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/fs-extra": "^11.0.4",
|
|
34
|
-
"@types/inquirer": "^9.0.
|
|
35
|
-
"@types/node": "^
|
|
36
|
-
"typescript": "^5.
|
|
34
|
+
"@types/inquirer": "^9.0.9",
|
|
35
|
+
"@types/node": "^25.2.3",
|
|
36
|
+
"typescript": "^5.9.3"
|
|
37
37
|
},
|
|
38
38
|
"keywords": [
|
|
39
39
|
"cli",
|
|
40
40
|
"zylaris"
|
|
41
41
|
],
|
|
42
|
-
"license": "MIT"
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"repository": {
|
|
44
|
+
"type": "git",
|
|
45
|
+
"url": "https://github.com/zylarisjs/zylaris.git"
|
|
46
|
+
},
|
|
47
|
+
"homepage": "https://github.com/zylarisjs/zylaris#readme",
|
|
48
|
+
"bugs": {
|
|
49
|
+
"url": "https://github.com/zylarisjs/zylaris/issues"
|
|
50
|
+
},
|
|
51
|
+
"author": "zylaris.js"
|
|
43
52
|
}
|