@mvp-kit/create 0.0.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ import { execSync } from 'child_process';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import path from 'path';
5
+ import fs from 'fs-extra';
6
+ function detectPackageManager(dir) {
7
+ // Check how CLI was invoked (highest priority)
8
+ const invocation = detectInvocationMethod();
9
+ if (invocation) {
10
+ return invocation;
11
+ }
12
+ // Check for lock files in priority order
13
+ if (fs.existsSync(path.join(dir, 'bun.lockb')))
14
+ return 'bun';
15
+ if (fs.existsSync(path.join(dir, 'pnpm-lock.yaml')))
16
+ return 'pnpm';
17
+ // Default to pnpm
18
+ return 'pnpm';
19
+ }
20
+ function detectInvocationMethod() {
21
+ // Check process.execArgv and process.argv to see how we were invoked
22
+ const execPath = process.execPath;
23
+ const argv = process.argv;
24
+ const userAgent = process.env.npm_config_user_agent || '';
25
+ // Check if invoked via bunx
26
+ if (execPath.includes('bun') || userAgent.startsWith('bun')) {
27
+ return 'bun';
28
+ }
29
+ // Check argv for package manager indicators
30
+ const commandLine = argv.join(' ');
31
+ if (commandLine.includes('bunx') || commandLine.includes('bun run')) {
32
+ return 'bun';
33
+ }
34
+ if (commandLine.includes('pnpm') || commandLine.includes('pnpx')) {
35
+ return 'pnpm';
36
+ }
37
+ if (commandLine.includes('yarn') || commandLine.includes('yarn create') || commandLine.includes('npx') || commandLine.includes('npm create')) {
38
+ return 'pnpm';
39
+ }
40
+ // Check user agent string
41
+ if (userAgent.startsWith('pnpm'))
42
+ return 'pnpm';
43
+ if (userAgent.startsWith('bun'))
44
+ return 'bun';
45
+ if (userAgent.startsWith('yarn') || userAgent.startsWith('npm'))
46
+ return 'pnpm';
47
+ return null;
48
+ }
49
+ function getPackageManagerCommand(pm) {
50
+ const commands = {
51
+ npm: 'npm',
52
+ yarn: 'yarn',
53
+ pnpm: 'pnpm',
54
+ bun: 'bun'
55
+ };
56
+ return commands[pm];
57
+ }
58
+ export async function setupDatabase(projectPath, variables, seedDb = false) {
59
+ const spinner = ora('Setting up database...').start();
60
+ try {
61
+ // Check if wrangler is available
62
+ try {
63
+ execSync('wrangler --version', { stdio: 'ignore' });
64
+ }
65
+ catch {
66
+ spinner.warn('Wrangler not found - skipping database setup');
67
+ console.log(chalk.yellow('💡 Install wrangler globally: npm install -g wrangler'));
68
+ console.log(chalk.yellow('💡 Then run: cd apps/backend && npm run db:init'));
69
+ return false;
70
+ }
71
+ const backendPath = path.join(projectPath, 'apps', 'backend');
72
+ const packageManager = detectPackageManager(projectPath);
73
+ const pmCommand = getPackageManagerCommand(packageManager);
74
+ // Initialize local database directory structure
75
+ spinner.text = 'Initializing local database...';
76
+ execSync(`${pmCommand} run db:init`, { cwd: backendPath, stdio: 'ignore' });
77
+ // Generate fresh migrations
78
+ spinner.text = 'Generating database migrations...';
79
+ execSync(`${pmCommand} run db:generate`, { cwd: backendPath, stdio: 'ignore' });
80
+ // Set up local database by running migrations
81
+ spinner.text = 'Setting up local database...';
82
+ execSync(`${pmCommand} run db:migrate:local`, { cwd: backendPath, stdio: 'ignore' });
83
+ // Seed database if requested
84
+ if (seedDb) {
85
+ spinner.text = 'Seeding database...';
86
+ execSync(`${pmCommand} run db:seed:local`, { cwd: backendPath, stdio: 'ignore' });
87
+ }
88
+ spinner.succeed('Database setup completed!');
89
+ return true;
90
+ }
91
+ catch (error) {
92
+ spinner.fail('Database setup failed');
93
+ console.log(chalk.yellow('⚠️ Set up the database manually:'));
94
+ console.log(chalk.gray(' cd apps/backend'));
95
+ console.log(chalk.gray(' npm run db:init'));
96
+ console.log(chalk.gray(' npm run db:generate'));
97
+ console.log(chalk.gray(' npm run db:migrate:local'));
98
+ if (seedDb) {
99
+ console.log(chalk.gray(' npm run db:seed:local'));
100
+ }
101
+ return false;
102
+ }
103
+ }
104
+ async function updateWranglerConfig(backendPath, databaseName, databaseId) {
105
+ const wranglerPath = path.join(backendPath, 'wrangler.toml');
106
+ let content = await fs.readFile(wranglerPath, 'utf8');
107
+ // Update production database ID
108
+ content = content.replace(/database_id = "{{databaseId}}"/g, `database_id = "${databaseId}"`);
109
+ await fs.writeFile(wranglerPath, content);
110
+ }
111
+ export function checkDatabaseRequirements() {
112
+ const errors = [];
113
+ let hasWrangler = false;
114
+ let hasNode = false;
115
+ try {
116
+ execSync('node --version', { stdio: 'ignore' });
117
+ hasNode = true;
118
+ }
119
+ catch {
120
+ errors.push('Node.js is required but not found');
121
+ }
122
+ try {
123
+ execSync('wrangler --version', { stdio: 'ignore' });
124
+ hasWrangler = true;
125
+ }
126
+ catch {
127
+ errors.push('Wrangler CLI is required for database setup');
128
+ }
129
+ return { hasWrangler, hasNode, errors };
130
+ }
131
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { createProject } from './create.js';
5
+ import { TemplateDownloader } from './template-downloader.js';
6
+ const program = new Command();
7
+ program
8
+ .name('create-mvpkit')
9
+ .description('Create a new MVPKit application')
10
+ .version('1.0.0')
11
+ .argument('<project-name>', 'name of the project')
12
+ .option('-t, --template <template>', 'template to use (core, saas, ai)', 'core')
13
+ .option('-d, --description <description>', 'project description')
14
+ .option('--domain <domain>', 'domain name for the application')
15
+ .option('--license <license>', 'license key for paid templates')
16
+ .option('--no-install', 'skip dependency installation')
17
+ .option('--no-git', 'skip git initialization')
18
+ .option('--setup-db', 'setup database and run migrations')
19
+ .option('--no-db', 'skip database setup')
20
+ .option('--seed-db', 'seed database with sample data')
21
+ .option('--no-interactive', 'skip interactive mode (use defaults)')
22
+ .option('--local', 'use local template files (for development)')
23
+ .action(async (projectName, options) => {
24
+ try {
25
+ // Validate project name before proceeding
26
+ if (!projectName || typeof projectName !== 'string') {
27
+ console.error(chalk.red('❌ Project name is required'));
28
+ process.exit(1);
29
+ }
30
+ // Clear screen and take over terminal
31
+ process.stdout.write('\x1Bc'); // Clear screen and reset cursor
32
+ process.stdout.write('\x1B[2J\x1B[H'); // Alternative clear method
33
+ // Hide cursor during presentation
34
+ process.stdout.write('\x1B[?25l');
35
+ // Get terminal dimensions
36
+ const terminalWidth = process.stdout.columns || 80;
37
+ const terminalHeight = process.stdout.rows || 24;
38
+ // Center the header vertically (but not too high)
39
+ const topPadding = Math.max(1, Math.floor(terminalHeight / 6));
40
+ console.log('\n'.repeat(topPadding));
41
+ // Show cursor for interactive parts
42
+ process.stdout.write('\x1B[?25h');
43
+ await createProject(projectName, options);
44
+ // Ensure cursor is restored on completion
45
+ process.stdout.write('\x1B[?25h');
46
+ }
47
+ catch (error) {
48
+ // Restore cursor on error
49
+ process.stdout.write('\x1B[?25h');
50
+ const errorMessage = error instanceof Error ? error.message : String(error);
51
+ console.error(chalk.red('❌ Error creating project:'), errorMessage);
52
+ process.exit(1);
53
+ }
54
+ // Cleanup on process exit
55
+ process.on('exit', () => {
56
+ process.stdout.write('\x1B[?25h'); // Show cursor
57
+ });
58
+ process.on('SIGINT', () => {
59
+ process.stdout.write('\x1B[?25h'); // Show cursor
60
+ process.exit(0);
61
+ });
62
+ });
63
+ // Add list command
64
+ program
65
+ .command('list')
66
+ .description('List available templates')
67
+ .action(() => {
68
+ const downloader = new TemplateDownloader();
69
+ downloader.listTemplates();
70
+ });
71
+ program.parse();
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ import fetch from 'node-fetch';
2
+ import fs from 'fs-extra';
3
+ import path from 'path';
4
+ import yauzl from 'yauzl';
5
+ import tmp from 'tmp';
6
+ import { pipeline } from 'stream/promises';
7
+ import chalk from 'chalk';
8
+ import ora from 'ora';
9
+ // Template registry for different kits
10
+ export const TEMPLATE_REGISTRY = {
11
+ core: {
12
+ name: 'core',
13
+ displayName: 'MVPKit Core',
14
+ description: 'Free Cloudflare-native starter with React 19, tRPC, and Drizzle ORM',
15
+ source: {
16
+ // Default to GitHub (production), use --local flag for development
17
+ type: 'github-zip',
18
+ url: 'https://github.com/mvpkit/core/archive/refs/heads/main.zip',
19
+ cacheable: true
20
+ },
21
+ features: ['React 19', 'Cloudflare Workers', 'tRPC', 'Drizzle ORM', 'Better Auth'],
22
+ license: 'free'
23
+ },
24
+ saas: {
25
+ name: 'saas',
26
+ displayName: 'MVPKit SaaS',
27
+ description: 'Production SaaS kit with payments, subscriptions, and multi-tenancy',
28
+ source: {
29
+ type: 'protected-url',
30
+ url: 'https://api.mvpkit.dev/templates/saas/latest.zip',
31
+ auth: { type: 'jwt' },
32
+ cacheable: false
33
+ },
34
+ features: ['Everything in Core', 'Stripe Integration', 'Multi-tenancy', 'Admin Dashboard'],
35
+ license: 'paid'
36
+ },
37
+ ai: {
38
+ name: 'ai',
39
+ displayName: 'MVPKit AI',
40
+ description: 'AI-powered applications with LLM integrations and vector databases',
41
+ source: {
42
+ type: 'protected-url',
43
+ url: 'https://api.mvpkit.dev/templates/ai/latest.zip',
44
+ auth: { type: 'jwt' },
45
+ cacheable: false
46
+ },
47
+ features: ['Everything in Core', 'OpenAI Integration', 'Vector DB', 'AI Components'],
48
+ license: 'paid'
49
+ }
50
+ };
51
+ export class TemplateDownloader {
52
+ cacheDir;
53
+ constructor() {
54
+ // Create cache directory in user's home
55
+ this.cacheDir = path.join(process.env.HOME || process.env.USERPROFILE || '/tmp', '.mvpkit', 'cache');
56
+ fs.ensureDirSync(this.cacheDir);
57
+ }
58
+ async downloadTemplate(templateName, licenseKey, useLocal = false) {
59
+ const config = TEMPLATE_REGISTRY[templateName];
60
+ if (!config) {
61
+ throw new Error(`Unknown template: ${templateName}. Available templates: ${Object.keys(TEMPLATE_REGISTRY).join(', ')}`);
62
+ }
63
+ // Validate license for paid templates
64
+ if (config.license === 'paid' && !licenseKey) {
65
+ throw new Error(`Template '${templateName}' requires a license key. Use --license YOUR_LICENSE_KEY`);
66
+ }
67
+ const spinner = ora(`Downloading ${config.displayName} template...`).start();
68
+ try {
69
+ // Override source type if --local flag is used
70
+ const source = useLocal && config.name === 'core'
71
+ ? { ...config.source, type: 'local' }
72
+ : config.source;
73
+ const templatePath = await this.downloadFromSource(source, licenseKey);
74
+ spinner.succeed(`Template downloaded: ${config.displayName}`);
75
+ return templatePath;
76
+ }
77
+ catch (error) {
78
+ spinner.fail('Failed to download template');
79
+ throw error;
80
+ }
81
+ }
82
+ async downloadFromSource(source, licenseKey) {
83
+ switch (source.type) {
84
+ case 'local':
85
+ return this.getLocalTemplate();
86
+ case 'github-zip':
87
+ return this.downloadZip(source.url, {}, source.cacheable);
88
+ case 'protected-url':
89
+ if (!licenseKey) {
90
+ throw new Error('License key required for protected template');
91
+ }
92
+ // For now, simulate license validation
93
+ // In production, this would validate with mvpkit.dev API
94
+ const token = await this.validateLicense(licenseKey);
95
+ return this.downloadZip(source.url, {
96
+ 'Authorization': `Bearer ${token}`
97
+ }, false);
98
+ default:
99
+ throw new Error(`Unsupported template source type: ${source.type}`);
100
+ }
101
+ }
102
+ async getLocalTemplate() {
103
+ // Use existing local path resolution for development
104
+ const { getCoreRepositoryPath } = await import('./utils.js');
105
+ return getCoreRepositoryPath();
106
+ }
107
+ async downloadZip(url, headers = {}, cacheable = false) {
108
+ // Check cache first if cacheable
109
+ if (cacheable) {
110
+ const cacheKey = this.getCacheKey(url);
111
+ const cachedPath = path.join(this.cacheDir, cacheKey);
112
+ if (fs.existsSync(cachedPath)) {
113
+ return cachedPath;
114
+ }
115
+ }
116
+ // Download ZIP file
117
+ const response = await fetch(url, { headers });
118
+ if (!response.ok) {
119
+ throw new Error(`Failed to download template: ${response.status} ${response.statusText}`);
120
+ }
121
+ // Create temporary file for ZIP
122
+ const tempZip = tmp.fileSync({ postfix: '.zip' });
123
+ try {
124
+ // Download to temporary file
125
+ await pipeline(response.body, fs.createWriteStream(tempZip.name));
126
+ // Extract ZIP to temporary directory
127
+ const extractDir = tmp.dirSync({ unsafeCleanup: true });
128
+ await this.extractZip(tempZip.name, extractDir.name);
129
+ // Find the actual template directory (usually core-main/ from GitHub)
130
+ const extractedContents = fs.readdirSync(extractDir.name);
131
+ const templateDir = extractedContents.find(item => {
132
+ const itemPath = path.join(extractDir.name, item);
133
+ return fs.statSync(itemPath).isDirectory();
134
+ });
135
+ if (!templateDir) {
136
+ throw new Error('No template directory found in downloaded ZIP');
137
+ }
138
+ const finalTemplatePath = path.join(extractDir.name, templateDir);
139
+ // Cache if requested
140
+ if (cacheable) {
141
+ const cacheKey = this.getCacheKey(url);
142
+ const cachedPath = path.join(this.cacheDir, cacheKey);
143
+ await fs.copy(finalTemplatePath, cachedPath);
144
+ return cachedPath;
145
+ }
146
+ return finalTemplatePath;
147
+ }
148
+ finally {
149
+ // Cleanup temporary ZIP file
150
+ tempZip.removeCallback();
151
+ }
152
+ }
153
+ async extractZip(zipPath, extractTo) {
154
+ return new Promise((resolve, reject) => {
155
+ yauzl.open(zipPath, { lazyEntries: true }, (err, zipfile) => {
156
+ if (err)
157
+ return reject(err);
158
+ zipfile.readEntry();
159
+ zipfile.on('entry', (entry) => {
160
+ if (/\/$/.test(entry.fileName)) {
161
+ // Directory entry
162
+ zipfile.readEntry();
163
+ }
164
+ else {
165
+ // File entry
166
+ const outputPath = path.join(extractTo, entry.fileName);
167
+ fs.ensureDirSync(path.dirname(outputPath));
168
+ zipfile.openReadStream(entry, (err, readStream) => {
169
+ if (err)
170
+ return reject(err);
171
+ const writeStream = fs.createWriteStream(outputPath);
172
+ readStream.pipe(writeStream);
173
+ writeStream.on('close', () => zipfile.readEntry());
174
+ writeStream.on('error', reject);
175
+ });
176
+ }
177
+ });
178
+ zipfile.on('end', resolve);
179
+ zipfile.on('error', reject);
180
+ });
181
+ });
182
+ }
183
+ getCacheKey(url) {
184
+ // Simple cache key from URL
185
+ return url.replace(/[^a-zA-Z0-9]/g, '_');
186
+ }
187
+ async validateLicense(licenseKey) {
188
+ // TODO: Implement proper license validation with mvpkit.dev API
189
+ // For now, use demo validation until API is ready
190
+ if (licenseKey === 'demo') {
191
+ console.log(chalk.yellow('⚠️ Using demo license for testing'));
192
+ return 'mock-jwt-token';
193
+ }
194
+ // In production, validate with API
195
+ try {
196
+ const response = await fetch('https://api.mvpkit.dev/validate-license', {
197
+ method: 'POST',
198
+ headers: { 'Content-Type': 'application/json' },
199
+ body: JSON.stringify({ licenseKey })
200
+ });
201
+ if (!response.ok) {
202
+ throw new Error(`License validation failed: ${response.status}`);
203
+ }
204
+ const result = await response.json();
205
+ return result.token;
206
+ }
207
+ catch (error) {
208
+ throw new Error(`Invalid or expired license key. Visit https://mvpkit.dev to get a license.`);
209
+ }
210
+ }
211
+ listTemplates() {
212
+ const CLI_WIDTH = 50;
213
+ console.log();
214
+ const templatesPadding = CLI_WIDTH - 4 - 'Available Templates'.length;
215
+ console.log(chalk.cyan('┌─ ') + chalk.bold.white('Available Templates') + chalk.cyan(' ─'.repeat(templatesPadding)));
216
+ console.log(chalk.cyan('│'));
217
+ Object.values(TEMPLATE_REGISTRY).forEach(template => {
218
+ const licenseIcon = template.license === 'free' ? '🆓' : '💰';
219
+ console.log(chalk.cyan('│ ') + chalk.bold.white(`${licenseIcon} ${template.name} `) + chalk.gray(`(${template.license})`));
220
+ console.log(chalk.cyan('│ ') + chalk.bold.blue(template.displayName));
221
+ console.log(chalk.cyan('│ ') + chalk.gray(template.description));
222
+ console.log(chalk.cyan('│ ') + chalk.green('Features: ') + chalk.white(template.features.join(' • ')));
223
+ console.log(chalk.cyan('│'));
224
+ });
225
+ console.log(chalk.cyan('└' + '─'.repeat(CLI_WIDTH - 2)));
226
+ console.log();
227
+ console.log(chalk.yellow('💡 Usage: ') + chalk.cyan('npx create-mvpkit my-app --template <name>'));
228
+ console.log();
229
+ }
230
+ }
231
+ //# sourceMappingURL=template-downloader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-downloader.js","sourceRoot":"","sources":["../src/template-downloader.ts"],"names":[],"mappings":"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"}