create-reverso 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/README.md ADDED
@@ -0,0 +1,61 @@
1
+ # create-reverso
2
+
3
+ CLI installer for Reverso CMS - The front-to-back CMS.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ # npm
9
+ npx create-reverso my-project
10
+
11
+ # pnpm
12
+ pnpm create reverso my-project
13
+
14
+ # yarn
15
+ yarn create reverso my-project
16
+
17
+ # bun
18
+ bun create reverso my-project
19
+ ```
20
+
21
+ ## Interactive Wizard
22
+
23
+ The wizard will prompt you for:
24
+
25
+ 1. **Project name** - Name of your project
26
+ 2. **Framework** - Next.js, Vite, or Astro
27
+ 3. **Database** - SQLite (local) or PostgreSQL
28
+ 4. **TypeScript** - Enable/disable TypeScript
29
+ 5. **Package manager** - npm, pnpm, yarn, or bun
30
+ 6. **Git** - Initialize git repository
31
+
32
+ ## What's Created
33
+
34
+ ```
35
+ my-project/
36
+ ├── src/
37
+ │ └── components/
38
+ │ └── Hero.tsx # Example component with markers
39
+ ├── reverso.config.ts # CMS configuration
40
+ ├── package.json
41
+ ├── tsconfig.json
42
+ └── README.md
43
+ ```
44
+
45
+ ## Quick Start
46
+
47
+ ```bash
48
+ npx create-reverso my-project
49
+ cd my-project
50
+ npm run dev
51
+ ```
52
+
53
+ Then open http://localhost:4000/admin to access the admin panel.
54
+
55
+ ## Documentation
56
+
57
+ See [https://reverso.dev/docs/packages/create-reverso](https://reverso.dev/docs/packages/create-reverso)
58
+
59
+ ## License
60
+
61
+ MIT
package/dist/bin.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * create-reverso CLI entry point.
4
+ * Run with: npx create-reverso
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=bin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;GAGG"}
package/dist/bin.js ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * create-reverso CLI entry point.
4
+ * Run with: npx create-reverso
5
+ */
6
+ import { createReverso } from './index.js';
7
+ createReverso().catch((error) => {
8
+ console.error(error);
9
+ process.exit(1);
10
+ });
11
+ //# sourceMappingURL=bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * create-reverso
3
+ *
4
+ * CLI installer for Reverso CMS - The front-to-back CMS.
5
+ * Run with: npx create-reverso@latest
6
+ */
7
+ export declare const VERSION = "0.0.0";
8
+ /**
9
+ * Main entry point for the create-reverso CLI.
10
+ */
11
+ export declare function createReverso(): Promise<void>;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,eAAO,MAAM,OAAO,UAAU,CAAC;AAY/B;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBnD"}
package/dist/index.js ADDED
@@ -0,0 +1,668 @@
1
+ /**
2
+ * create-reverso
3
+ *
4
+ * CLI installer for Reverso CMS - The front-to-back CMS.
5
+ * Run with: npx create-reverso@latest
6
+ */
7
+ import { execSync } from 'node:child_process';
8
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
9
+ import { join, resolve } from 'node:path';
10
+ import chalk from 'chalk';
11
+ import ora from 'ora';
12
+ import prompts from 'prompts';
13
+ export const VERSION = '0.0.0';
14
+ /**
15
+ * Main entry point for the create-reverso CLI.
16
+ */
17
+ export async function createReverso() {
18
+ console.log();
19
+ console.log(chalk.bold.blue(' ╭─────────────────────────────────────╮'));
20
+ console.log(chalk.bold.blue(' │ │'));
21
+ console.log(chalk.bold.blue(' │ ') + chalk.bold.white('Reverso CMS') + chalk.bold.blue(' │'));
22
+ console.log(chalk.bold.blue(' │ ') + chalk.gray('The front-to-back headless CMS') + chalk.bold.blue(' │'));
23
+ console.log(chalk.bold.blue(' │ │'));
24
+ console.log(chalk.bold.blue(' ╰─────────────────────────────────────╯'));
25
+ console.log();
26
+ // Get project configuration from user
27
+ const config = await promptConfig();
28
+ if (!config) {
29
+ console.log(chalk.gray('Setup cancelled.'));
30
+ return;
31
+ }
32
+ // Create the project
33
+ await createProject(config);
34
+ // Print success message
35
+ printSuccessMessage(config);
36
+ }
37
+ /**
38
+ * Prompt user for project configuration.
39
+ */
40
+ async function promptConfig() {
41
+ const response = await prompts([
42
+ {
43
+ type: 'text',
44
+ name: 'projectName',
45
+ message: 'Project name:',
46
+ initial: 'my-reverso-app',
47
+ validate: (value) => {
48
+ if (!value)
49
+ return 'Project name is required';
50
+ if (!/^[a-z0-9-]+$/.test(value)) {
51
+ return 'Project name can only contain lowercase letters, numbers, and hyphens';
52
+ }
53
+ return true;
54
+ },
55
+ },
56
+ {
57
+ type: 'select',
58
+ name: 'framework',
59
+ message: 'Framework:',
60
+ choices: [
61
+ { title: 'Next.js', value: 'nextjs', description: 'React framework with SSR/SSG' },
62
+ { title: 'Vite + React', value: 'vite', description: 'Fast build tool with React' },
63
+ { title: 'Astro', value: 'astro', description: 'Content-focused static site builder' },
64
+ ],
65
+ initial: 0,
66
+ },
67
+ {
68
+ type: 'select',
69
+ name: 'database',
70
+ message: 'Database:',
71
+ choices: [
72
+ { title: 'SQLite', value: 'sqlite', description: 'Simple file-based database (great for development)' },
73
+ { title: 'PostgreSQL', value: 'postgres', description: 'Production-ready relational database' },
74
+ ],
75
+ initial: 0,
76
+ },
77
+ {
78
+ type: 'select',
79
+ name: 'packageManager',
80
+ message: 'Package manager:',
81
+ choices: [
82
+ { title: 'pnpm', value: 'pnpm', description: 'Fast, disk space efficient' },
83
+ { title: 'npm', value: 'npm', description: 'Default Node.js package manager' },
84
+ { title: 'yarn', value: 'yarn', description: 'Classic Yarn' },
85
+ { title: 'bun', value: 'bun', description: 'Fast all-in-one JavaScript runtime' },
86
+ ],
87
+ initial: 0,
88
+ },
89
+ {
90
+ type: 'confirm',
91
+ name: 'typescript',
92
+ message: 'Use TypeScript?',
93
+ initial: true,
94
+ },
95
+ {
96
+ type: 'confirm',
97
+ name: 'git',
98
+ message: 'Initialize git repository?',
99
+ initial: true,
100
+ },
101
+ {
102
+ type: 'confirm',
103
+ name: 'install',
104
+ message: 'Install dependencies?',
105
+ initial: true,
106
+ },
107
+ ], {
108
+ onCancel: () => {
109
+ return false;
110
+ },
111
+ });
112
+ // Check if user cancelled
113
+ if (!response.projectName) {
114
+ return null;
115
+ }
116
+ return response;
117
+ }
118
+ /**
119
+ * Create the project with the given configuration.
120
+ */
121
+ async function createProject(config) {
122
+ const spinner = ora();
123
+ const projectPath = resolve(config.projectName);
124
+ // Check if directory already exists
125
+ if (existsSync(projectPath)) {
126
+ console.log(chalk.red(`Error: Directory "${config.projectName}" already exists.`));
127
+ process.exit(1);
128
+ }
129
+ // Create project directory
130
+ spinner.start('Creating project directory...');
131
+ mkdirSync(projectPath, { recursive: true });
132
+ mkdirSync(join(projectPath, 'src'), { recursive: true });
133
+ mkdirSync(join(projectPath, 'src', 'components'), { recursive: true });
134
+ mkdirSync(join(projectPath, '.reverso'), { recursive: true });
135
+ spinner.succeed('Project directory created');
136
+ // Generate files
137
+ spinner.start('Generating project files...');
138
+ // package.json
139
+ writeFileSync(join(projectPath, 'package.json'), generatePackageJson(config));
140
+ // TypeScript config
141
+ if (config.typescript) {
142
+ writeFileSync(join(projectPath, 'tsconfig.json'), generateTsConfig(config));
143
+ }
144
+ // Reverso config
145
+ writeFileSync(join(projectPath, `reverso.config.${config.typescript ? 'ts' : 'js'}`), generateReversoConfig(config));
146
+ // .gitignore
147
+ writeFileSync(join(projectPath, '.gitignore'), generateGitignore());
148
+ // Example components
149
+ writeFileSync(join(projectPath, 'src', 'components', `Hero.${config.typescript ? 'tsx' : 'jsx'}`), generateHeroComponent(config));
150
+ writeFileSync(join(projectPath, 'src', 'components', `Features.${config.typescript ? 'tsx' : 'jsx'}`), generateFeaturesComponent(config));
151
+ writeFileSync(join(projectPath, 'src', 'components', `About.${config.typescript ? 'tsx' : 'jsx'}`), generateAboutComponent(config));
152
+ // Framework-specific files
153
+ if (config.framework === 'nextjs') {
154
+ generateNextJsFiles(projectPath, config);
155
+ }
156
+ else if (config.framework === 'vite') {
157
+ generateViteFiles(projectPath, config);
158
+ }
159
+ else if (config.framework === 'astro') {
160
+ generateAstroFiles(projectPath, config);
161
+ }
162
+ spinner.succeed('Project files generated');
163
+ // Initialize git
164
+ if (config.git) {
165
+ spinner.start('Initializing git repository...');
166
+ try {
167
+ execSync('git init', { cwd: projectPath, stdio: 'ignore' });
168
+ spinner.succeed('Git repository initialized');
169
+ }
170
+ catch {
171
+ spinner.warn('Failed to initialize git repository');
172
+ }
173
+ }
174
+ // Install dependencies
175
+ if (config.install) {
176
+ spinner.start(`Installing dependencies with ${config.packageManager}...`);
177
+ try {
178
+ const installCmd = getInstallCommand(config.packageManager);
179
+ execSync(installCmd, { cwd: projectPath, stdio: 'ignore' });
180
+ spinner.succeed('Dependencies installed');
181
+ }
182
+ catch {
183
+ spinner.warn('Failed to install dependencies. Run install manually.');
184
+ }
185
+ }
186
+ }
187
+ /**
188
+ * Generate package.json content.
189
+ */
190
+ function generatePackageJson(config) {
191
+ const deps = {
192
+ '@reverso/cli': '^0.0.0',
193
+ react: '^18.3.1',
194
+ 'react-dom': '^18.3.1',
195
+ };
196
+ const devDeps = {};
197
+ if (config.typescript) {
198
+ devDeps.typescript = '^5.4.0';
199
+ devDeps['@types/react'] = '^18.3.0';
200
+ devDeps['@types/react-dom'] = '^18.3.0';
201
+ }
202
+ // Framework-specific dependencies
203
+ if (config.framework === 'nextjs') {
204
+ deps.next = '^14.2.0';
205
+ }
206
+ else if (config.framework === 'vite') {
207
+ devDeps.vite = '^5.4.0';
208
+ devDeps['@vitejs/plugin-react'] = '^4.3.0';
209
+ }
210
+ else if (config.framework === 'astro') {
211
+ deps.astro = '^4.12.0';
212
+ deps['@astrojs/react'] = '^3.6.0';
213
+ }
214
+ const packageJson = {
215
+ name: config.projectName,
216
+ version: '0.1.0',
217
+ private: true,
218
+ scripts: {
219
+ dev: 'reverso dev',
220
+ build: config.framework === 'nextjs' ? 'next build' : config.framework === 'vite' ? 'vite build' : 'astro build',
221
+ start: config.framework === 'nextjs' ? 'next start' : config.framework === 'vite' ? 'vite preview' : 'astro preview',
222
+ scan: 'reverso scan',
223
+ migrate: 'reverso migrate',
224
+ },
225
+ dependencies: deps,
226
+ devDependencies: devDeps,
227
+ };
228
+ return JSON.stringify(packageJson, null, 2);
229
+ }
230
+ /**
231
+ * Generate TypeScript config.
232
+ */
233
+ function generateTsConfig(config) {
234
+ const compilerOptions = {
235
+ target: 'ES2020',
236
+ useDefineForClassFields: true,
237
+ lib: ['ES2020', 'DOM', 'DOM.Iterable'],
238
+ module: 'ESNext',
239
+ skipLibCheck: true,
240
+ moduleResolution: 'bundler',
241
+ allowImportingTsExtensions: true,
242
+ resolveJsonModule: true,
243
+ isolatedModules: true,
244
+ noEmit: true,
245
+ jsx: 'react-jsx',
246
+ strict: true,
247
+ noUnusedLocals: true,
248
+ noUnusedParameters: true,
249
+ noFallthroughCasesInSwitch: true,
250
+ };
251
+ if (config.framework === 'nextjs') {
252
+ compilerOptions.plugins = [{ name: 'next' }];
253
+ compilerOptions.paths = { '@/*': ['./src/*'] };
254
+ }
255
+ const tsConfig = {
256
+ compilerOptions,
257
+ include: ['src'],
258
+ exclude: ['node_modules'],
259
+ };
260
+ return JSON.stringify(tsConfig, null, 2);
261
+ }
262
+ /**
263
+ * Generate Reverso config file.
264
+ */
265
+ function generateReversoConfig(config) {
266
+ const ext = config.typescript ? 'ts' : 'js';
267
+ const exportType = config.typescript ? 'export default' : 'module.exports =';
268
+ const typeAnnotation = config.typescript ? ': ReversoConfig' : '';
269
+ const typeImport = config.typescript ? "import type { ReversoConfig } from '@reverso/core';\n\n" : '';
270
+ return `${typeImport}${exportType} {
271
+ // Source directory to scan for data-reverso markers
272
+ srcDir: './src',
273
+
274
+ // Output directory for generated schema
275
+ outputDir: '.reverso',
276
+
277
+ // Database configuration
278
+ database: {
279
+ type: '${config.database}',
280
+ ${config.database === 'sqlite' ? "url: '.reverso/dev.db'" : "url: process.env.DATABASE_URL || 'postgres://localhost:5432/reverso'"},
281
+ },
282
+
283
+ // API server configuration
284
+ api: {
285
+ port: 3001,
286
+ cors: true,
287
+ },
288
+
289
+ // Admin panel configuration
290
+ admin: {
291
+ title: '${config.projectName}',
292
+ },
293
+ }${typeAnnotation};
294
+ `;
295
+ }
296
+ /**
297
+ * Generate .gitignore content.
298
+ */
299
+ function generateGitignore() {
300
+ return `# Dependencies
301
+ node_modules/
302
+
303
+ # Build output
304
+ dist/
305
+ .next/
306
+ .astro/
307
+
308
+ # Reverso
309
+ .reverso/dev.db
310
+ .reverso/dev.db-shm
311
+ .reverso/dev.db-wal
312
+ .reverso/uploads/
313
+
314
+ # Environment
315
+ .env
316
+ .env.local
317
+ .env.*.local
318
+
319
+ # IDE
320
+ .vscode/
321
+ .idea/
322
+
323
+ # OS
324
+ .DS_Store
325
+ Thumbs.db
326
+
327
+ # Logs
328
+ *.log
329
+ npm-debug.log*
330
+ `;
331
+ }
332
+ /**
333
+ * Generate Hero component with Reverso markers.
334
+ */
335
+ function generateHeroComponent(config) {
336
+ const props = config.typescript ? ': { className?: string }' : '';
337
+ return `/**
338
+ * Hero component with Reverso CMS markers.
339
+ *
340
+ * The data-reverso attribute follows the pattern: page.section.field
341
+ * Example: home.hero.title = page "home", section "hero", field "title"
342
+ */
343
+
344
+ export function Hero({ className }${props}) {
345
+ return (
346
+ <section className={className}>
347
+ <h1 data-reverso="home.hero.title" data-reverso-type="text">
348
+ Welcome to Your Site
349
+ </h1>
350
+
351
+ <p data-reverso="home.hero.subtitle" data-reverso-type="textarea">
352
+ This is an example component with Reverso CMS markers.
353
+ Edit this content in the admin panel.
354
+ </p>
355
+
356
+ <img
357
+ data-reverso="home.hero.image"
358
+ data-reverso-type="image"
359
+ src="/placeholder.jpg"
360
+ alt="Hero image"
361
+ />
362
+
363
+ <a
364
+ data-reverso="home.hero.ctaText"
365
+ data-reverso-type="text"
366
+ href="#"
367
+ >
368
+ Get Started
369
+ </a>
370
+ </section>
371
+ );
372
+ }
373
+ `;
374
+ }
375
+ /**
376
+ * Generate Features component with repeater pattern.
377
+ */
378
+ function generateFeaturesComponent(config) {
379
+ const props = config.typescript ? ': { className?: string }' : '';
380
+ const featureType = config.typescript ? ': { icon: string; title: string; description: string }' : '';
381
+ return `/**
382
+ * Features component demonstrating repeater pattern.
383
+ *
384
+ * The $ symbol in the path indicates a repeater item:
385
+ * home.features.$.title = each item in the "features" repeater has a "title"
386
+ */
387
+
388
+ export function Features({ className }${props}) {
389
+ // Example features - content comes from CMS
390
+ const features${config.typescript ? ': Array<{ icon: string; title: string; description: string }>' : ''} = [
391
+ { icon: '🚀', title: 'Fast', description: 'Lightning fast performance' },
392
+ { icon: '🔒', title: 'Secure', description: 'Enterprise-grade security' },
393
+ { icon: '🎨', title: 'Beautiful', description: 'Modern, responsive design' },
394
+ ];
395
+
396
+ return (
397
+ <section className={className}>
398
+ <h2 data-reverso="home.features.heading" data-reverso-type="text">
399
+ Why Choose Us
400
+ </h2>
401
+ <p data-reverso="home.features.subheading" data-reverso-type="textarea">
402
+ Everything you need to build amazing websites.
403
+ </p>
404
+
405
+ <div className="grid">
406
+ {features.map((feature, index) => (
407
+ <div key={index} className="feature-card">
408
+ <span
409
+ data-reverso="home.features.$.icon"
410
+ data-reverso-type="icon"
411
+ >
412
+ {feature.icon}
413
+ </span>
414
+ <h3
415
+ data-reverso="home.features.$.title"
416
+ data-reverso-type="text"
417
+ >
418
+ {feature.title}
419
+ </h3>
420
+ <p
421
+ data-reverso="home.features.$.description"
422
+ data-reverso-type="textarea"
423
+ >
424
+ {feature.description}
425
+ </p>
426
+ </div>
427
+ ))}
428
+ </div>
429
+ </section>
430
+ );
431
+ }
432
+ `;
433
+ }
434
+ /**
435
+ * Generate About component with various field types.
436
+ */
437
+ function generateAboutComponent(config) {
438
+ const props = config.typescript ? ': { className?: string }' : '';
439
+ return `/**
440
+ * About component demonstrating various field types.
441
+ */
442
+
443
+ export function About({ className }${props}) {
444
+ return (
445
+ <section className={className}>
446
+ <h2 data-reverso="about.intro.title" data-reverso-type="text">
447
+ About Us
448
+ </h2>
449
+
450
+ <div
451
+ data-reverso="about.intro.content"
452
+ data-reverso-type="wysiwyg"
453
+ data-reverso-label="About Content"
454
+ >
455
+ <p>We are a passionate team dedicated to building great products.</p>
456
+ <p>Our mission is to make content management simple and intuitive.</p>
457
+ </div>
458
+
459
+ <div className="stats">
460
+ <div>
461
+ <span
462
+ data-reverso="about.stats.years"
463
+ data-reverso-type="number"
464
+ data-reverso-label="Years in Business"
465
+ >
466
+ 10
467
+ </span>
468
+ <span>Years</span>
469
+ </div>
470
+ <div>
471
+ <span
472
+ data-reverso="about.stats.clients"
473
+ data-reverso-type="number"
474
+ data-reverso-label="Happy Clients"
475
+ >
476
+ 500
477
+ </span>
478
+ <span>Clients</span>
479
+ </div>
480
+ <div>
481
+ <span
482
+ data-reverso="about.stats.projects"
483
+ data-reverso-type="number"
484
+ data-reverso-label="Completed Projects"
485
+ >
486
+ 1000
487
+ </span>
488
+ <span>Projects</span>
489
+ </div>
490
+ </div>
491
+
492
+ <img
493
+ data-reverso="about.team.photo"
494
+ data-reverso-type="image"
495
+ data-reverso-label="Team Photo"
496
+ src="/team.jpg"
497
+ alt="Our team"
498
+ />
499
+ </section>
500
+ );
501
+ }
502
+ `;
503
+ }
504
+ /**
505
+ * Generate Next.js specific files.
506
+ */
507
+ function generateNextJsFiles(projectPath, config) {
508
+ const ext = config.typescript ? 'tsx' : 'jsx';
509
+ // Create app directory
510
+ mkdirSync(join(projectPath, 'src', 'app'), { recursive: true });
511
+ // Layout
512
+ writeFileSync(join(projectPath, 'src', 'app', `layout.${ext}`), `export default function RootLayout({ children }${config.typescript ? ': { children: React.ReactNode }' : ''}) {
513
+ return (
514
+ <html lang="en">
515
+ <body>{children}</body>
516
+ </html>
517
+ );
518
+ }
519
+ `);
520
+ // Page
521
+ writeFileSync(join(projectPath, 'src', 'app', `page.${ext}`), `import { Hero } from '@/components/Hero';
522
+ import { Features } from '@/components/Features';
523
+ import { About } from '@/components/About';
524
+
525
+ export default function HomePage() {
526
+ return (
527
+ <main>
528
+ <Hero />
529
+ <Features />
530
+ <About />
531
+ </main>
532
+ );
533
+ }
534
+ `);
535
+ // next.config.js
536
+ writeFileSync(join(projectPath, 'next.config.js'), `/** @type {import('next').NextConfig} */
537
+ const nextConfig = {
538
+ // Enable React strict mode
539
+ reactStrictMode: true,
540
+ };
541
+
542
+ module.exports = nextConfig;
543
+ `);
544
+ }
545
+ /**
546
+ * Generate Vite specific files.
547
+ */
548
+ function generateViteFiles(projectPath, config) {
549
+ const ext = config.typescript ? 'tsx' : 'jsx';
550
+ // vite.config
551
+ writeFileSync(join(projectPath, `vite.config.${config.typescript ? 'ts' : 'js'}`), `import { defineConfig } from 'vite';
552
+ import react from '@vitejs/plugin-react';
553
+
554
+ export default defineConfig({
555
+ plugins: [react()],
556
+ });
557
+ `);
558
+ // index.html
559
+ writeFileSync(join(projectPath, 'index.html'), `<!DOCTYPE html>
560
+ <html lang="en">
561
+ <head>
562
+ <meta charset="UTF-8" />
563
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
564
+ <title>${config.projectName}</title>
565
+ </head>
566
+ <body>
567
+ <div id="root"></div>
568
+ <script type="module" src="/src/main.${ext}"></script>
569
+ </body>
570
+ </html>
571
+ `);
572
+ // main.tsx
573
+ writeFileSync(join(projectPath, 'src', `main.${ext}`), `import React from 'react';
574
+ import ReactDOM from 'react-dom/client';
575
+ import { Hero } from './components/Hero';
576
+ import { Features } from './components/Features';
577
+ import { About } from './components/About';
578
+
579
+ ReactDOM.createRoot(document.getElementById('root')${config.typescript ? '!' : ''}).render(
580
+ <React.StrictMode>
581
+ <main>
582
+ <Hero />
583
+ <Features />
584
+ <About />
585
+ </main>
586
+ </React.StrictMode>
587
+ );
588
+ `);
589
+ }
590
+ /**
591
+ * Generate Astro specific files.
592
+ */
593
+ function generateAstroFiles(projectPath, config) {
594
+ // Create pages directory
595
+ mkdirSync(join(projectPath, 'src', 'pages'), { recursive: true });
596
+ // astro.config.mjs
597
+ writeFileSync(join(projectPath, 'astro.config.mjs'), `import { defineConfig } from 'astro/config';
598
+ import react from '@astrojs/react';
599
+
600
+ export default defineConfig({
601
+ integrations: [react()],
602
+ });
603
+ `);
604
+ // Index page
605
+ writeFileSync(join(projectPath, 'src', 'pages', 'index.astro'), `---
606
+ import { Hero } from '../components/Hero';
607
+ import { Features } from '../components/Features';
608
+ import { About } from '../components/About';
609
+ ---
610
+
611
+ <html lang="en">
612
+ <head>
613
+ <meta charset="utf-8" />
614
+ <meta name="viewport" content="width=device-width" />
615
+ <title>${config.projectName}</title>
616
+ </head>
617
+ <body>
618
+ <main>
619
+ <Hero client:load />
620
+ <Features client:load />
621
+ <About client:load />
622
+ </main>
623
+ </body>
624
+ </html>
625
+ `);
626
+ }
627
+ /**
628
+ * Get the install command for the package manager.
629
+ */
630
+ function getInstallCommand(packageManager) {
631
+ switch (packageManager) {
632
+ case 'npm':
633
+ return 'npm install';
634
+ case 'pnpm':
635
+ return 'pnpm install';
636
+ case 'yarn':
637
+ return 'yarn';
638
+ case 'bun':
639
+ return 'bun install';
640
+ }
641
+ }
642
+ /**
643
+ * Print success message with next steps.
644
+ */
645
+ function printSuccessMessage(config) {
646
+ console.log();
647
+ console.log(chalk.green.bold('✓ Project created successfully!'));
648
+ console.log();
649
+ console.log(chalk.bold('Next steps:'));
650
+ console.log();
651
+ console.log(chalk.gray(' 1. ') + chalk.white(`cd ${config.projectName}`));
652
+ if (!config.install) {
653
+ console.log(chalk.gray(' 2. ') + chalk.white(`${config.packageManager} install`));
654
+ console.log(chalk.gray(' 3. ') + chalk.white(`${config.packageManager} run dev`));
655
+ }
656
+ else {
657
+ console.log(chalk.gray(' 2. ') + chalk.white(`${config.packageManager} run dev`));
658
+ }
659
+ console.log();
660
+ console.log(chalk.gray('This will:'));
661
+ console.log(chalk.gray(' • Scan your components for data-reverso markers'));
662
+ console.log(chalk.gray(' • Start the API server'));
663
+ console.log(chalk.gray(' • Open the admin panel'));
664
+ console.log();
665
+ console.log(chalk.bold('Documentation: ') + chalk.blue('https://reverso.dev/docs'));
666
+ console.log();
667
+ }
668
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "create-reverso",
3
+ "version": "0.1.0",
4
+ "description": "CLI installer for Reverso CMS - The front-to-back CMS",
5
+ "homepage": "https://reverso.dev/docs/packages/create-reverso",
6
+ "bugs": {
7
+ "url": "https://github.com/hogrid/reverso/issues"
8
+ },
9
+ "engines": {
10
+ "node": ">=20.0.0"
11
+ },
12
+ "type": "module",
13
+ "main": "./dist/index.js",
14
+ "types": "./dist/index.d.ts",
15
+ "bin": {
16
+ "create-reverso": "./dist/bin.js"
17
+ },
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js"
22
+ }
23
+ },
24
+ "files": [
25
+ "dist",
26
+ "templates",
27
+ "README.md"
28
+ ],
29
+ "scripts": {
30
+ "build": "tsc -p tsconfig.build.json",
31
+ "dev": "tsc -p tsconfig.build.json --watch",
32
+ "typecheck": "tsc --noEmit",
33
+ "lint": "biome check src/",
34
+ "test": "vitest run --passWithNoTests",
35
+ "test:watch": "vitest",
36
+ "clean": "rm -rf dist .turbo"
37
+ },
38
+ "dependencies": {
39
+ "@reverso/cli": "workspace:*",
40
+ "commander": "^14.0.2",
41
+ "chalk": "^5.4.1",
42
+ "ora": "^9.1.0",
43
+ "prompts": "^2.4.2",
44
+ "validate-npm-package-name": "^7.0.2",
45
+ "fs-extra": "^11.2.0"
46
+ },
47
+ "devDependencies": {
48
+ "@types/fs-extra": "^11.0.4",
49
+ "@types/node": "^22.10.7",
50
+ "@types/prompts": "^2.4.9",
51
+ "@types/validate-npm-package-name": "^4.0.2",
52
+ "typescript": "^5.7.3",
53
+ "vitest": "^2.1.8"
54
+ },
55
+ "publishConfig": {
56
+ "access": "public"
57
+ },
58
+ "repository": {
59
+ "type": "git",
60
+ "url": "https://github.com/hogrid/reverso.git",
61
+ "directory": "packages/create-reverso"
62
+ },
63
+ "keywords": [
64
+ "reverso",
65
+ "cms",
66
+ "create",
67
+ "installer",
68
+ "cli"
69
+ ],
70
+ "author": "Emerson Nunes <emerson@hogrid.com>",
71
+ "license": "MIT"
72
+ }