@zylaris/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/dist/bin.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=bin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
package/dist/bin.js ADDED
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/env node
2
+ import { program } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { createProject } from './commands/create.js';
5
+ import { devServer } from './commands/dev.js';
6
+ import { buildProject } from './commands/build.js';
7
+ import { deployProject } from './commands/deploy.js';
8
+ const version = '1.0.0';
9
+ program
10
+ .name('zylaris')
11
+ .description('Zylaris Framework CLI')
12
+ .version(version);
13
+ // Create command
14
+ program
15
+ .command('create <name>')
16
+ .description('Create a new Zylaris project')
17
+ .option('-t, --template <template>', 'Project template', 'default')
18
+ .option('--skip-install', 'Skip package installation')
19
+ .action(async (name, options) => {
20
+ console.log(chalk.blue(`Creating Zylaris project: ${name}`));
21
+ await createProject(name, options);
22
+ });
23
+ // Dev command
24
+ program
25
+ .command('dev')
26
+ .description('Start development server')
27
+ .option('-p, --port <port>', 'Port number', '2727')
28
+ .option('-h, --host <host>', 'Host address', 'localhost')
29
+ .option('--turbo', 'Enable turbo mode')
30
+ .action(async (options) => {
31
+ console.log(chalk.blue('Starting development server...'));
32
+ await devServer(options);
33
+ });
34
+ // Build command
35
+ program
36
+ .command('build')
37
+ .description('Build for production')
38
+ .option('-a, --adapter <adapter>', 'Deployment adapter (static, node, vercel, netlify, cloudflare, deno, bun)', 'static')
39
+ .option('--analyze', 'Analyze bundle size')
40
+ .option('--static', 'Static export (pre-render pages)')
41
+ .option('--edge', 'Use Edge runtime (for vercel, netlify, cloudflare)')
42
+ .option('--outDir <dir>', 'Output directory', 'dist')
43
+ .option('--memory <mb>', 'Serverless memory (MB)', '1024')
44
+ .option('--timeout <seconds>', 'Function timeout (seconds)', '10')
45
+ .option('--regions <regions>', 'Deployment regions (comma-separated)')
46
+ .action(async (options) => {
47
+ console.log(chalk.blue(`Building for production with ${options.adapter} adapter...`));
48
+ await buildProject(options);
49
+ });
50
+ // Adapters command
51
+ program
52
+ .command('adapters')
53
+ .description('List available deployment adapters')
54
+ .action(async () => {
55
+ const { printAdapters } = await import('./commands/build.js');
56
+ printAdapters();
57
+ });
58
+ // Deploy command
59
+ program
60
+ .command('deploy')
61
+ .description('Deploy project')
62
+ .option('--vercel', 'Deploy to Vercel')
63
+ .option('--netlify', 'Deploy to Netlify')
64
+ .option('--cloudflare', 'Deploy to Cloudflare Pages')
65
+ .action(async (options) => {
66
+ console.log(chalk.blue('Deploying...'));
67
+ await deployProject(options);
68
+ });
69
+ // Test command
70
+ program
71
+ .command('test')
72
+ .description('Run tests')
73
+ .option('--watch', 'Watch mode')
74
+ .option('--coverage', 'Generate coverage report')
75
+ .action(async () => {
76
+ console.log(chalk.blue('Running tests...'));
77
+ // Delegate to test runner
78
+ });
79
+ // Lint command
80
+ program
81
+ .command('lint')
82
+ .description('Run ESLint')
83
+ .action(async () => {
84
+ console.log(chalk.blue('Linting...'));
85
+ // Delegate to ESLint
86
+ });
87
+ // Type check command
88
+ program
89
+ .command('typecheck')
90
+ .description('Run TypeScript type checking')
91
+ .action(async () => {
92
+ console.log(chalk.blue('Type checking...'));
93
+ // Delegate to TypeScript
94
+ });
95
+ program.parse();
96
+ //# sourceMappingURL=bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { DeploymentTarget } from '@zylaris/adapter';
2
+ interface BuildOptions {
3
+ analyze?: boolean;
4
+ static?: boolean;
5
+ adapter?: DeploymentTarget;
6
+ outDir?: string;
7
+ edge?: boolean;
8
+ memory?: number;
9
+ timeout?: number;
10
+ regions?: string;
11
+ }
12
+ export declare function buildProject(options: BuildOptions): Promise<void>;
13
+ /** List available adapters */
14
+ export declare function printAdapters(): void;
15
+ export {};
16
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGxE,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4GvE;AA4DD,8BAA8B;AAC9B,wBAAgB,aAAa,IAAI,IAAI,CASpC"}
@@ -0,0 +1,165 @@
1
+ import { resolve } from 'path';
2
+ import fs from 'fs-extra';
3
+ import chalk from 'chalk';
4
+ import ora from 'ora';
5
+ import { getAdapter, listAdapters } from '@zylaris/adapter';
6
+ export async function buildProject(options) {
7
+ const spinner = ora('Building for production...').start();
8
+ const startTime = Date.now();
9
+ try {
10
+ const cwd = process.cwd();
11
+ // Determine adapter/target
12
+ const target = options.adapter || 'static';
13
+ const adapter = getAdapter(target);
14
+ spinner.text = `Building with ${adapter.name} adapter...`;
15
+ // Load config if exists
16
+ const configPath = resolve(cwd, 'zylaris.config.ts');
17
+ let userConfig = {};
18
+ if (await fs.pathExists(configPath)) {
19
+ try {
20
+ const configModule = await import(configPath);
21
+ userConfig = configModule.default || configModule;
22
+ }
23
+ catch {
24
+ // Config is optional
25
+ }
26
+ }
27
+ // Build adapter config
28
+ const config = {
29
+ target,
30
+ outDir: options.outDir || userConfig.outDir || 'dist',
31
+ static: options.static || userConfig.static ? {
32
+ routes: ['/', '/about', '/contact'], // Auto-detect in real implementation
33
+ ...userConfig.static,
34
+ } : undefined,
35
+ function: {
36
+ edge: options.edge ?? userConfig.function?.edge ?? false,
37
+ memory: options.memory ?? userConfig.function?.memory ?? 1024,
38
+ timeout: options.timeout ?? userConfig.function?.timeout ?? 10,
39
+ regions: options.regions?.split(',') ?? userConfig.function?.regions ?? ['iad1'],
40
+ ...userConfig.function,
41
+ },
42
+ esbuild: userConfig.esbuild,
43
+ env: userConfig.env,
44
+ headers: {
45
+ '/*': 'X-Frame-Options: DENY\n X-Content-Type-Options: nosniff',
46
+ ...userConfig.headers,
47
+ },
48
+ redirects: userConfig.redirects,
49
+ rewrites: userConfig.rewrites,
50
+ trailingSlash: userConfig.trailingSlash ?? 'ignore',
51
+ cleanUrls: userConfig.cleanUrls ?? true,
52
+ };
53
+ // Run build
54
+ const result = await adapter.build(config);
55
+ const duration = ((Date.now() - startTime) / 1000).toFixed(2);
56
+ if (!result.success) {
57
+ spinner.fail(chalk.red('Build failed'));
58
+ for (const error of result.errors) {
59
+ console.error(chalk.red(` ✗ ${error}`));
60
+ }
61
+ process.exit(1);
62
+ }
63
+ spinner.succeed(chalk.green(`Build completed in ${duration}s`));
64
+ // Print summary
65
+ console.log('\n' + chalk.bold('Output:'));
66
+ console.log(chalk.cyan(` ${result.outDir}/`));
67
+ if (result.files.length > 0) {
68
+ console.log(chalk.gray(` (${result.files.length} files generated)`));
69
+ }
70
+ // Print bundle analysis
71
+ if (result.analysis && options.analyze) {
72
+ console.log('\n' + chalk.bold('Bundle Analysis:'));
73
+ console.log(` Total: ${formatSize(result.analysis.totalSize)}`);
74
+ console.log(` Client: ${formatSize(result.analysis.clientSize)}`);
75
+ if (result.analysis.serverSize) {
76
+ console.log(` Server: ${formatSize(result.analysis.serverSize)}`);
77
+ }
78
+ console.log('\n Top Assets:');
79
+ for (const asset of result.analysis.assets.slice(0, 5)) {
80
+ console.log(` ${asset.file}`);
81
+ console.log(` Size: ${formatSize(asset.size)} | Gzipped: ${formatSize(asset.gzip)}`);
82
+ }
83
+ }
84
+ // Print deployment info
85
+ console.log('\n' + chalk.bold('Deploy:'));
86
+ printDeployInstructions(target, result.outDir);
87
+ if (result.warnings.length > 0) {
88
+ console.log('\n' + chalk.yellow('Warnings:'));
89
+ for (const warning of result.warnings) {
90
+ console.log(chalk.yellow(` ⚠ ${warning}`));
91
+ }
92
+ }
93
+ }
94
+ catch (error) {
95
+ spinner.fail(chalk.red('Build failed'));
96
+ console.error(error);
97
+ process.exit(1);
98
+ }
99
+ }
100
+ /** Print deployment instructions */
101
+ function printDeployInstructions(target, outDir) {
102
+ const instructions = {
103
+ static: [
104
+ ' Upload to any static hosting:',
105
+ chalk.gray(` - GitHub Pages: push to gh-pages branch`),
106
+ chalk.gray(` - Netlify: npx netlify deploy --prod --dir=${outDir}`),
107
+ chalk.gray(` - Vercel: npx vercel --prod`),
108
+ chalk.gray(` - Cloudflare Pages: npx wrangler pages deploy ${outDir}`),
109
+ ],
110
+ node: [
111
+ ' Run the server:',
112
+ chalk.gray(` cd ${outDir}`),
113
+ chalk.gray(` npm install`),
114
+ chalk.gray(` npm start`),
115
+ '',
116
+ ' Or with Docker:',
117
+ chalk.gray(` docker build -t zylaris-app .`),
118
+ chalk.gray(` docker run -p 3000:3000 zylaris-app`),
119
+ ],
120
+ vercel: [
121
+ ' Deploy to Vercel:',
122
+ chalk.gray(` npx vercel --prod`),
123
+ ],
124
+ netlify: [
125
+ ' Deploy to Netlify:',
126
+ chalk.gray(` npx netlify deploy --prod`),
127
+ ],
128
+ cloudflare: [
129
+ ' Deploy to Cloudflare:',
130
+ chalk.gray(` npx wrangler pages deploy ${outDir}`),
131
+ chalk.gray(` # or for Workers:`),
132
+ chalk.gray(` npx wrangler deploy`),
133
+ ],
134
+ deno: [
135
+ ' Deploy to Deno Deploy:',
136
+ chalk.gray(` npx deployctl deploy --project=zylaris-app ${outDir}/server.ts`),
137
+ ],
138
+ bun: [
139
+ ' Run with Bun:',
140
+ chalk.gray(` bun ${outDir}/server.js`),
141
+ '',
142
+ ' Or use Docker for deployment',
143
+ ],
144
+ };
145
+ console.log(instructions[target].join('\n'));
146
+ }
147
+ /** Format bytes to human readable */
148
+ function formatSize(bytes) {
149
+ if (bytes === 0)
150
+ return '0 B';
151
+ const k = 1024;
152
+ const sizes = ['B', 'KB', 'MB', 'GB'];
153
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
154
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
155
+ }
156
+ /** List available adapters */
157
+ export function printAdapters() {
158
+ console.log(chalk.bold('\nAvailable Adapters:\n'));
159
+ for (const { target, name, description } of listAdapters()) {
160
+ console.log(` ${chalk.cyan(target.padEnd(12))} ${chalk.bold(name)}`);
161
+ console.log(` ${''.padEnd(12)} ${chalk.gray(description)}\n`);
162
+ }
163
+ console.log(`Usage: ${chalk.yellow('zylaris build --adapter <target>')}\n`);
164
+ }
165
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface CreateOptions {
2
+ template?: string;
3
+ skipInstall?: boolean;
4
+ }
5
+ export declare function createProject(name: string, options: CreateOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +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,CAqEvF"}
@@ -0,0 +1,192 @@
1
+ import { resolve, join } from 'path';
2
+ import fs from 'fs-extra';
3
+ import chalk from 'chalk';
4
+ import ora from 'ora';
5
+ import inquirer from 'inquirer';
6
+ const TEMPLATES = ['default', 'api', 'docs', 'blog', 'ecommerce'];
7
+ export async function createProject(name, options) {
8
+ const targetDir = resolve(process.cwd(), name);
9
+ // Check if directory exists
10
+ if (await fs.pathExists(targetDir)) {
11
+ const { overwrite } = await inquirer.prompt([{
12
+ type: 'confirm',
13
+ name: 'overwrite',
14
+ message: `Directory ${name} already exists. Overwrite?`,
15
+ default: false,
16
+ }]);
17
+ if (!overwrite) {
18
+ console.log(chalk.yellow('Cancelled.'));
19
+ return;
20
+ }
21
+ await fs.remove(targetDir);
22
+ }
23
+ // Validate template
24
+ let template = options.template || 'default';
25
+ if (!TEMPLATES.includes(template)) {
26
+ const { selectedTemplate } = await inquirer.prompt([{
27
+ type: 'list',
28
+ name: 'selectedTemplate',
29
+ message: 'Select a template:',
30
+ choices: TEMPLATES,
31
+ }]);
32
+ template = selectedTemplate;
33
+ }
34
+ const spinner = ora('Creating project...').start();
35
+ try {
36
+ // Create directory structure
37
+ await fs.ensureDir(targetDir);
38
+ // Create package.json
39
+ await createPackageJson(targetDir, name, template);
40
+ // Create tsconfig.json
41
+ await createTsConfig(targetDir);
42
+ // Create zylaris.config.ts
43
+ await createConfig(targetDir, template);
44
+ // Create source files
45
+ await createSourceFiles(targetDir, template);
46
+ // Create public folder
47
+ await fs.ensureDir(join(targetDir, 'public'));
48
+ // Install dependencies
49
+ if (!options.skipInstall) {
50
+ spinner.text = 'Installing dependencies...';
51
+ // In real implementation, run npm/pnpm install
52
+ }
53
+ spinner.succeed(chalk.green(`Project ${name} created successfully!`));
54
+ console.log('\nNext steps:');
55
+ console.log(chalk.cyan(` cd ${name}`));
56
+ console.log(chalk.cyan(' npm run dev'));
57
+ }
58
+ catch (error) {
59
+ spinner.fail(chalk.red('Failed to create project'));
60
+ console.error(error);
61
+ process.exit(1);
62
+ }
63
+ }
64
+ async function createPackageJson(targetDir, name, _template) {
65
+ const packageJson = {
66
+ name,
67
+ version: '0.1.0',
68
+ private: true,
69
+ type: 'module',
70
+ scripts: {
71
+ dev: 'zylaris dev',
72
+ build: 'zylaris build',
73
+ start: 'node .zylaris/server.js',
74
+ test: 'zylaris test',
75
+ lint: 'zylaris lint',
76
+ typecheck: 'zylaris typecheck',
77
+ },
78
+ dependencies: {
79
+ zylaris: '^1.0.0',
80
+ react: '^18.2.0',
81
+ 'react-dom': '^18.2.0',
82
+ },
83
+ devDependencies: {
84
+ '@types/react': '^18.2.0',
85
+ '@types/react-dom': '^18.2.0',
86
+ typescript: '^5.3.3',
87
+ },
88
+ };
89
+ await fs.writeJson(join(targetDir, 'package.json'), packageJson, { spaces: 2 });
90
+ }
91
+ async function createTsConfig(targetDir) {
92
+ const tsConfig = {
93
+ compilerOptions: {
94
+ target: 'ES2022',
95
+ lib: ['ES2022', 'DOM', 'DOM.Iterable'],
96
+ module: 'ESNext',
97
+ moduleResolution: 'bundler',
98
+ resolveJsonModule: true,
99
+ allowJs: true,
100
+ checkJs: false,
101
+ declaration: true,
102
+ sourceMap: true,
103
+ strict: true,
104
+ noUnusedLocals: true,
105
+ noUnusedParameters: true,
106
+ noFallthroughCasesInSwitch: true,
107
+ esModuleInterop: true,
108
+ skipLibCheck: true,
109
+ forceConsistentCasingInFileNames: true,
110
+ jsx: 'react-jsx',
111
+ jsxImportSource: 'zylaris',
112
+ baseUrl: '.',
113
+ paths: {
114
+ '@/*': ['./src/*'],
115
+ },
116
+ },
117
+ include: ['src/**/*'],
118
+ exclude: ['node_modules', 'dist', '.zylaris'],
119
+ };
120
+ await fs.writeJson(join(targetDir, 'tsconfig.json'), tsConfig, { spaces: 2 });
121
+ }
122
+ async function createConfig(targetDir, _template) {
123
+ const config = `import { defineConfig } from 'zylaris';
124
+
125
+ export default defineConfig({
126
+ runtime: 'node',
127
+ rendering: {
128
+ default: 'ssr',
129
+ },
130
+ islands: {
131
+ mode: 'auto',
132
+ },
133
+ compiler: {
134
+ target: 'es2022',
135
+ minify: true,
136
+ },
137
+ server: {
138
+ port: 3000,
139
+ },
140
+ styling: {
141
+ tailwind: true,
142
+ },
143
+ typescript: {
144
+ strict: true,
145
+ },
146
+ });
147
+ `;
148
+ await fs.writeFile(join(targetDir, 'zylaris.config.ts'), config);
149
+ }
150
+ async function createSourceFiles(targetDir, _template) {
151
+ const srcDir = join(targetDir, 'src');
152
+ const appDir = join(srcDir, 'app');
153
+ await fs.ensureDir(appDir);
154
+ // Create layout.tsx
155
+ const layout = `export default function RootLayout({
156
+ children,
157
+ }: {
158
+ children: React.ReactNode;
159
+ }) {
160
+ return (
161
+ <html lang="en">
162
+ <body>
163
+ {children}
164
+ </body>
165
+ </html>
166
+ );
167
+ }
168
+ `;
169
+ await fs.writeFile(join(appDir, 'layout.tsx'), layout);
170
+ // Create page.tsx
171
+ const page = `export default function HomePage() {
172
+ return (
173
+ <main>
174
+ <h1>Welcome to Zylaris!</h1>
175
+ <p>Get started by editing src/app/page.tsx</p>
176
+ </main>
177
+ );
178
+ }
179
+ `;
180
+ await fs.writeFile(join(appDir, 'page.tsx'), page);
181
+ // Create global.css
182
+ const globalCss = `@tailwind base;
183
+ @tailwind components;
184
+ @tailwind utilities;
185
+
186
+ body {
187
+ font-family: system-ui, -apple-system, sans-serif;
188
+ }
189
+ `;
190
+ await fs.writeFile(join(appDir, 'global.css'), globalCss);
191
+ }
192
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ interface DeployOptions {
2
+ vercel?: boolean;
3
+ netlify?: boolean;
4
+ cloudflare?: boolean;
5
+ }
6
+ export declare function deployProject(options: DeployOptions): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCzE"}
@@ -0,0 +1,80 @@
1
+ import { resolve } from 'path';
2
+ import fs from 'fs-extra';
3
+ import chalk from 'chalk';
4
+ import ora from 'ora';
5
+ // import { execa } from 'execa';
6
+ async function execa(_cmd, _args, _options) {
7
+ throw new Error('execa not implemented');
8
+ }
9
+ export async function deployProject(options) {
10
+ const spinner = ora('Deploying...').start();
11
+ try {
12
+ const cwd = process.cwd();
13
+ // Check if build exists
14
+ const distPath = resolve(cwd, 'dist');
15
+ if (!(await fs.pathExists(distPath))) {
16
+ spinner.text = 'Building first...';
17
+ // await buildProject({});
18
+ }
19
+ if (options.vercel) {
20
+ spinner.text = 'Deploying to Vercel...';
21
+ await deployToVercel(cwd);
22
+ }
23
+ else if (options.netlify) {
24
+ spinner.text = 'Deploying to Netlify...';
25
+ await deployToNetlify(cwd);
26
+ }
27
+ else if (options.cloudflare) {
28
+ spinner.text = 'Deploying to Cloudflare Pages...';
29
+ await deployToCloudflare(cwd);
30
+ }
31
+ else {
32
+ // Default: Zylaris Cloud
33
+ spinner.text = 'Deploying to Zylaris Cloud...';
34
+ await deployToZylarisCloud(cwd);
35
+ }
36
+ spinner.succeed(chalk.green('Deployment complete!'));
37
+ }
38
+ catch (error) {
39
+ spinner.fail(chalk.red('Deployment failed'));
40
+ console.error(error);
41
+ process.exit(1);
42
+ }
43
+ }
44
+ async function deployToVercel(cwd) {
45
+ // Check if vercel CLI is installed
46
+ try {
47
+ await execa('vercel', ['--version'], { cwd });
48
+ }
49
+ catch {
50
+ console.log(chalk.yellow('Vercel CLI not found. Installing...'));
51
+ await execa('npm', ['install', '-g', 'vercel'], { cwd });
52
+ }
53
+ await execa('vercel', ['--prod'], { cwd, stdio: 'inherit' });
54
+ }
55
+ async function deployToNetlify(cwd) {
56
+ try {
57
+ await execa('netlify', ['--version'], { cwd });
58
+ }
59
+ catch {
60
+ console.log(chalk.yellow('Netlify CLI not found. Installing...'));
61
+ await execa('npm', ['install', '-g', 'netlify-cli'], { cwd });
62
+ }
63
+ await execa('netlify', ['deploy', '--prod', '--dir=dist'], { cwd, stdio: 'inherit' });
64
+ }
65
+ async function deployToCloudflare(cwd) {
66
+ try {
67
+ await execa('wrangler', ['--version'], { cwd });
68
+ }
69
+ catch {
70
+ console.log(chalk.yellow('Wrangler not found. Installing...'));
71
+ await execa('npm', ['install', '-g', 'wrangler'], { cwd });
72
+ }
73
+ await execa('wrangler', ['pages', 'deploy', 'dist'], { cwd, stdio: 'inherit' });
74
+ }
75
+ async function deployToZylarisCloud(_cwd) {
76
+ // In real implementation, deploy to Zylaris Cloud
77
+ console.log(chalk.blue('Deploying to Zylaris Cloud...'));
78
+ console.log(chalk.yellow('Coming soon!'));
79
+ }
80
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ interface DevOptions {
2
+ port?: string;
3
+ host?: string;
4
+ turbo?: boolean;
5
+ }
6
+ export declare function devServer(options: DevOptions): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA4CD,wBAAsB,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDlE"}
@@ -0,0 +1,89 @@
1
+ import { createServer } from '@zylaris/dev-server';
2
+ import chalk from 'chalk';
3
+ import net from 'net';
4
+ // Check if port is available
5
+ function isPortAvailable(port, host) {
6
+ return new Promise((resolve) => {
7
+ const server = net.createServer();
8
+ server.once('error', () => {
9
+ resolve(false);
10
+ });
11
+ server.once('listening', () => {
12
+ server.close();
13
+ resolve(true);
14
+ });
15
+ server.listen(port, host);
16
+ });
17
+ }
18
+ // Find available port starting from preferred port
19
+ async function findAvailablePort(preferredPort, host) {
20
+ let port = preferredPort;
21
+ while (port < preferredPort + 10) {
22
+ if (await isPortAvailable(port, host)) {
23
+ return port;
24
+ }
25
+ port++;
26
+ }
27
+ throw new Error(`No available port found between ${preferredPort} and ${preferredPort + 10}`);
28
+ }
29
+ // Print banner
30
+ function printBanner(port, host, wsPort) {
31
+ const box = `
32
+ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
33
+ ┃ ┃
34
+ ┃ 🚀 ${chalk.bold('Zylaris Dev Server')} ┃
35
+ ┃ ┃
36
+ ┃ ${chalk.cyan('➜')} Local: ${chalk.cyan(`http://${host}:${port}`)} ┃
37
+ ┃ ${chalk.magenta('➜')} WebSocket: ${chalk.magenta(`ws://${host}:${wsPort}`)} ┃
38
+ ┃ ┃
39
+ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
40
+ `;
41
+ console.log(box);
42
+ }
43
+ export async function devServer(options) {
44
+ const preferredPort = parseInt(options.port || '2727');
45
+ const host = options.host || 'localhost';
46
+ // Clear console for clean output
47
+ console.clear();
48
+ console.log(chalk.gray('Starting development server...\n'));
49
+ try {
50
+ // Find available port
51
+ const port = await findAvailablePort(preferredPort, host);
52
+ if (port !== preferredPort) {
53
+ console.log(chalk.yellow(`⚠ Port ${preferredPort} is in use, using port ${port} instead\n`));
54
+ }
55
+ const server = await createServer({
56
+ port,
57
+ host,
58
+ turbo: options.turbo,
59
+ });
60
+ // Print prominent banner
61
+ const wsPort = port + 1;
62
+ printBanner(port, host, wsPort);
63
+ // Handle graceful shutdown
64
+ const shutdown = () => {
65
+ console.log(chalk.yellow('\n🛑 Shutting down server...'));
66
+ server.close(() => {
67
+ console.log(chalk.green('✓ Server closed'));
68
+ process.exit(0);
69
+ });
70
+ // Force exit after 3 seconds
71
+ setTimeout(() => {
72
+ console.log(chalk.red('Force exit after timeout'));
73
+ process.exit(1);
74
+ }, 3000);
75
+ };
76
+ process.on('SIGINT', shutdown);
77
+ process.on('SIGTERM', shutdown);
78
+ // Handle uncaught errors
79
+ process.on('uncaughtException', (err) => {
80
+ console.error(chalk.red('\n✗ Uncaught exception:'), err);
81
+ shutdown();
82
+ });
83
+ }
84
+ catch (error) {
85
+ console.error(chalk.red('\n✗ Failed to start dev server:'), error);
86
+ process.exit(1);
87
+ }
88
+ }
89
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { createProject } from './commands/create.js';
2
+ export { devServer } from './commands/dev.js';
3
+ export { buildProject } from './commands/build.js';
4
+ export { deployProject } from './commands/deploy.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ // Zylaris CLI
2
+ export { createProject } from './commands/create.js';
3
+ export { devServer } from './commands/dev.js';
4
+ export { buildProject } from './commands/build.js';
5
+ export { deployProject } from './commands/deploy.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@zylaris/cli",
3
+ "version": "1.0.0",
4
+ "description": "CLI for Zylaris Framework",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "bin": {
8
+ "zylaris": "./dist/bin.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "templates"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "dev": "tsc --watch",
17
+ "typecheck": "tsc --noEmit",
18
+ "clean": "rm -rf dist"
19
+ },
20
+ "dependencies": {
21
+ "@zylaris/adapter": "workspace:*",
22
+ "@zylaris/compiler": "workspace:*",
23
+ "@zylaris/dev-server": "workspace:*",
24
+ "commander": "^11.1.0",
25
+ "chalk": "^5.3.0",
26
+ "inquirer": "^9.2.12",
27
+ "ora": "^8.0.1",
28
+ "fs-extra": "^11.2.0",
29
+ "glob": "^10.3.10",
30
+ "chokidar": "^3.5.3"
31
+ },
32
+ "devDependencies": {
33
+ "@types/fs-extra": "^11.0.4",
34
+ "@types/inquirer": "^9.0.7",
35
+ "@types/node": "^20.0.0",
36
+ "typescript": "^5.3.3"
37
+ },
38
+ "keywords": [
39
+ "cli",
40
+ "zylaris"
41
+ ],
42
+ "license": "MIT"
43
+ }