@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.
- package/README.md +145 -0
- package/dist/create.js +549 -0
- package/dist/create.js.map +1 -0
- package/dist/database.js +131 -0
- package/dist/database.js.map +1 -0
- package/dist/index.js +72 -0
- package/dist/index.js.map +1 -0
- package/dist/template-downloader.js +231 -0
- package/dist/template-downloader.js.map +1 -0
- package/dist/template.js +160 -0
- package/dist/template.js.map +1 -0
- package/dist/test.js +359 -0
- package/dist/test.js.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.js +100 -0
- package/dist/utils.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
|
package/dist/database.js
ADDED
|
@@ -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":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;KACjD,MAAM,CAAC,2BAA2B,EAAE,kCAAkC,EAAE,MAAM,CAAC;KAC/E,MAAM,CAAC,iCAAiC,EAAE,qBAAqB,CAAC;KAChE,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;KAC9D,MAAM,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;KAC/D,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC;KACtD,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC;KAC7C,MAAM,CAAC,YAAY,EAAE,mCAAmC,CAAC;KACzD,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC;KACxC,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC;KACrD,MAAM,CAAC,kBAAkB,EAAE,sCAAsC,CAAC;KAClE,MAAM,CAAC,SAAS,EAAE,4CAA4C,CAAC;KAC/D,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,OAAY,EAAE,EAAE;IAClD,IAAI,CAAC;QACH,0CAA0C;QAC1C,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAA;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,sCAAsC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA,CAAC,gCAAgC;QAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA,CAAC,2BAA2B;QAEjE,kCAAkC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAEjC,0BAA0B;QAC1B,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QAClD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;QAEhD,kDAAkD;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAA;QAC9D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;QAEpC,oCAAoC;QACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACjC,MAAM,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAEzC,0CAA0C;QAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0BAA0B;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACjC,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,YAAY,CAAC,CAAA;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,0BAA0B;IAC1B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,CAAC,cAAc;IAClD,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,CAAC,cAAc;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEJ,mBAAmB;AACnB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,UAAU,GAAG,IAAI,kBAAkB,EAAE,CAAA;IAC3C,UAAU,CAAC,aAAa,EAAE,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEJ,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
|
@@ -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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"}
|