portfolify 2.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/commands/generate.d.ts +7 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +129 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/portfolio.d.ts +12 -0
- package/dist/commands/portfolio.d.ts.map +1 -0
- package/dist/commands/portfolio.js +292 -0
- package/dist/commands/portfolio.js.map +1 -0
- package/dist/generator/index.d.ts +3 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +572 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/portfolio-generator.d.ts +4 -0
- package/dist/generator/portfolio-generator.d.ts.map +1 -0
- package/dist/generator/portfolio-generator.js +1577 -0
- package/dist/generator/portfolio-generator.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +81 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +330 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/portfolio-prompts.d.ts +60 -0
- package/dist/prompts/portfolio-prompts.d.ts.map +1 -0
- package/dist/prompts/portfolio-prompts.js +635 -0
- package/dist/prompts/portfolio-prompts.js.map +1 -0
- package/dist/themes/index.d.ts +15 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +64 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/utils/file.d.ts +5 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +33 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +22 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/validator.d.ts +27 -0
- package/dist/utils/validator.d.ts.map +1 -0
- package/dist/utils/validator.js +322 -0
- package/dist/utils/validator.js.map +1 -0
- package/package.json +66 -0
- package/templates/index.html +16 -0
- package/templates/package.json +37 -0
- package/templates/postcss.config.js +6 -0
- package/templates/src/App.tsx +56 -0
- package/templates/src/components/Blog.tsx +119 -0
- package/templates/src/components/Footer.tsx +206 -0
- package/templates/src/components/Hero.tsx +182 -0
- package/templates/src/components/Projects.tsx +130 -0
- package/templates/src/components/SEO.tsx +38 -0
- package/templates/src/components/Skills.tsx +107 -0
- package/templates/src/components/ThemeToggle.tsx +39 -0
- package/templates/src/config/portfolio.json +61 -0
- package/templates/src/content/blog/welcome.mdx +29 -0
- package/templates/src/lib/blog.ts +63 -0
- package/templates/src/lib/utils.ts +6 -0
- package/templates/src/main.tsx +13 -0
- package/templates/src/styles/globals.css +123 -0
- package/templates/tailwind.config.js +65 -0
- package/templates/tsconfig.json +37 -0
- package/templates/tsconfig.node.json +12 -0
- package/templates/vite.config.ts +24 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAaA,UAAU,eAAe;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwGxG"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import validateNpmPackageName from 'validate-npm-package-name';
|
|
6
|
+
import { collectUserData, getDefaultUserData, themes } from '../prompts/index.js';
|
|
7
|
+
import { generatePortfolio } from '../generator/index.js';
|
|
8
|
+
import { logger } from '../utils/logger.js';
|
|
9
|
+
import { exec } from 'child_process';
|
|
10
|
+
import { promisify } from 'util';
|
|
11
|
+
const execAsync = promisify(exec);
|
|
12
|
+
export async function generateCommand(projectName, options = {}) {
|
|
13
|
+
try {
|
|
14
|
+
// Get project name
|
|
15
|
+
let finalProjectName = projectName;
|
|
16
|
+
if (!finalProjectName) {
|
|
17
|
+
if (options.yes) {
|
|
18
|
+
finalProjectName = 'my-portfolio';
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const inquirer = (await import('inquirer')).default;
|
|
22
|
+
const { name } = await inquirer.prompt([
|
|
23
|
+
{
|
|
24
|
+
type: 'input',
|
|
25
|
+
name: 'name',
|
|
26
|
+
message: 'What is your project name?',
|
|
27
|
+
default: 'my-portfolio',
|
|
28
|
+
validate: (input) => {
|
|
29
|
+
const validation = validateNpmPackageName(input);
|
|
30
|
+
if (!validation.validForNewPackages) {
|
|
31
|
+
return validation.errors?.[0] || 'Invalid project name';
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
]);
|
|
37
|
+
finalProjectName = name;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (!finalProjectName) {
|
|
41
|
+
throw new Error('Project name is required');
|
|
42
|
+
}
|
|
43
|
+
// Validate project name
|
|
44
|
+
const validation = validateNpmPackageName(finalProjectName);
|
|
45
|
+
if (!validation.validForNewPackages) {
|
|
46
|
+
logger.error(`Invalid project name: ${validation.errors?.[0]}`);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
const targetDir = path.resolve(process.cwd(), finalProjectName);
|
|
50
|
+
// Check if directory exists
|
|
51
|
+
if (await fs.pathExists(targetDir)) {
|
|
52
|
+
logger.error(`Directory "${finalProjectName}" already exists!`);
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
// Display welcome banner
|
|
56
|
+
console.log('\n');
|
|
57
|
+
console.log(chalk.cyan.bold('╔════════════════════════════════════════════════════════════╗'));
|
|
58
|
+
console.log(chalk.cyan.bold('║') + chalk.white.bold(' 🚀 Portfolify - Create Beautiful Portfolios in Seconds ') + chalk.cyan.bold('║'));
|
|
59
|
+
console.log(chalk.cyan.bold('╚════════════════════════════════════════════════════════════╝'));
|
|
60
|
+
console.log('\n');
|
|
61
|
+
// Collect user data
|
|
62
|
+
let userData;
|
|
63
|
+
if (options.yes) {
|
|
64
|
+
// Use defaults with optional theme override
|
|
65
|
+
const themeValue = options.theme || 'developer';
|
|
66
|
+
const selectedTheme = themes.find(t => t.value === themeValue) || themes[0];
|
|
67
|
+
userData = getDefaultUserData(selectedTheme);
|
|
68
|
+
console.log(chalk.green(`✓ Using theme: ${selectedTheme.emoji} ${selectedTheme.name}`));
|
|
69
|
+
console.log(chalk.gray(` Category: ${selectedTheme.category}`));
|
|
70
|
+
console.log(chalk.gray(` Style: ${selectedTheme.layout.heroStyle} hero layout`));
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
userData = await collectUserData();
|
|
74
|
+
}
|
|
75
|
+
// Generate portfolio
|
|
76
|
+
console.log('\n');
|
|
77
|
+
logger.header('🎨 Generating your portfolio...');
|
|
78
|
+
await generatePortfolio(finalProjectName, userData, targetDir);
|
|
79
|
+
// Install dependencies
|
|
80
|
+
logger.header('📦 Installing dependencies...');
|
|
81
|
+
const spinner = ora('Installing packages...').start();
|
|
82
|
+
try {
|
|
83
|
+
await execAsync('npm install', { cwd: targetDir });
|
|
84
|
+
spinner.succeed('Dependencies installed!');
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
spinner.warn('Failed to install dependencies automatically');
|
|
88
|
+
logger.info('You can install them manually by running: npm install');
|
|
89
|
+
}
|
|
90
|
+
// Initialize git
|
|
91
|
+
try {
|
|
92
|
+
await execAsync('git init', { cwd: targetDir });
|
|
93
|
+
await execAsync('git add .', { cwd: targetDir });
|
|
94
|
+
await execAsync('git commit -m "Initial commit from Portfolify"', { cwd: targetDir });
|
|
95
|
+
logger.success('Git repository initialized');
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
// Git init is optional, don't fail if it doesn't work
|
|
99
|
+
}
|
|
100
|
+
// Success message
|
|
101
|
+
printSuccessMessage(finalProjectName, userData.name);
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
logger.error('An error occurred during generation');
|
|
105
|
+
console.error(error);
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function printSuccessMessage(projectName, userName) {
|
|
110
|
+
console.log('\n');
|
|
111
|
+
console.log(chalk.green.bold('🎉 Success! Your portfolio is ready!'));
|
|
112
|
+
console.log('\n');
|
|
113
|
+
console.log(chalk.cyan('Next steps:'));
|
|
114
|
+
console.log(chalk.white(` cd ${projectName}`));
|
|
115
|
+
console.log(chalk.white(' npm run dev'));
|
|
116
|
+
console.log('\n');
|
|
117
|
+
console.log(chalk.cyan('Deploy to:'));
|
|
118
|
+
console.log(chalk.white(' • Vercel: vercel'));
|
|
119
|
+
console.log(chalk.white(' • Netlify: netlify deploy'));
|
|
120
|
+
console.log(chalk.white(' • GitHub Pages: npm run build'));
|
|
121
|
+
console.log('\n');
|
|
122
|
+
console.log(chalk.magenta.bold('📢 Share your portfolio!'));
|
|
123
|
+
console.log(chalk.white(' Tweet about it with #Portfolify'));
|
|
124
|
+
console.log(chalk.white(' Star us on GitHub: https://github.com/halloffame12/portfolify'));
|
|
125
|
+
console.log('\n');
|
|
126
|
+
console.log(chalk.gray('Built with ❤️ using Portfolify'));
|
|
127
|
+
console.log('\n');
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface PortfolioCommandOptions {
|
|
2
|
+
all?: boolean;
|
|
3
|
+
deployReady?: boolean;
|
|
4
|
+
customAssets?: string;
|
|
5
|
+
git?: boolean;
|
|
6
|
+
skipValidation?: boolean;
|
|
7
|
+
autoFix?: boolean;
|
|
8
|
+
yes?: boolean;
|
|
9
|
+
type?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function portfolioCommand(projectName?: string, options?: PortfolioCommandOptions): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=portfolio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../src/commands/portfolio.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,uBAAuB;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HjH"}
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import validateNpmPackageName from 'validate-npm-package-name';
|
|
6
|
+
import { collectPortfolioData, portfolioTypes } from '../prompts/portfolio-prompts.js';
|
|
7
|
+
import { generatePortfolioProject } from '../generator/portfolio-generator.js';
|
|
8
|
+
import { validateProject } from '../utils/validator.js';
|
|
9
|
+
import { logger } from '../utils/logger.js';
|
|
10
|
+
import { exec } from 'child_process';
|
|
11
|
+
import { promisify } from 'util';
|
|
12
|
+
const execAsync = promisify(exec);
|
|
13
|
+
export async function portfolioCommand(projectName, options = {}) {
|
|
14
|
+
try {
|
|
15
|
+
console.log(chalk.bold.magenta('\n🚀 ForgeStack Portfolio Generator\n'));
|
|
16
|
+
console.log(chalk.gray('Create production-ready portfolio websites with validation\n'));
|
|
17
|
+
// Debug: show if using defaults
|
|
18
|
+
if (options.yes) {
|
|
19
|
+
logger.info('Running in non-interactive mode with defaults');
|
|
20
|
+
}
|
|
21
|
+
// Handle --all flag to generate all portfolio types
|
|
22
|
+
if (options.all) {
|
|
23
|
+
await generateAllPortfolios(options);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
// Get project name
|
|
27
|
+
let finalProjectName = projectName;
|
|
28
|
+
if (!finalProjectName) {
|
|
29
|
+
if (options.yes) {
|
|
30
|
+
finalProjectName = 'my-portfolio';
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const inquirer = (await import('inquirer')).default;
|
|
34
|
+
const { name } = await inquirer.prompt([
|
|
35
|
+
{
|
|
36
|
+
type: 'input',
|
|
37
|
+
name: 'name',
|
|
38
|
+
message: 'What is your project name?',
|
|
39
|
+
default: 'my-portfolio',
|
|
40
|
+
validate: (input) => {
|
|
41
|
+
const validation = validateNpmPackageName(input);
|
|
42
|
+
if (!validation.validForNewPackages) {
|
|
43
|
+
return validation.errors?.[0] || 'Invalid project name';
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
]);
|
|
49
|
+
finalProjectName = name;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (!finalProjectName) {
|
|
53
|
+
throw new Error('Project name is required');
|
|
54
|
+
}
|
|
55
|
+
// Validate project name
|
|
56
|
+
const validation = validateNpmPackageName(finalProjectName);
|
|
57
|
+
if (!validation.validForNewPackages) {
|
|
58
|
+
logger.error(`Invalid project name: ${validation.errors?.[0]}`);
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
const targetDir = path.resolve(process.cwd(), finalProjectName);
|
|
62
|
+
// Check if directory exists
|
|
63
|
+
if (await fs.pathExists(targetDir)) {
|
|
64
|
+
logger.error(`Directory "${finalProjectName}" already exists!`);
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
// Collect portfolio configuration
|
|
68
|
+
logger.header('📝 Configure your portfolio');
|
|
69
|
+
let portfolioConfig;
|
|
70
|
+
if (options.yes) {
|
|
71
|
+
portfolioConfig = getDefaultPortfolioConfig(options.type);
|
|
72
|
+
logger.info(`Using default configuration for: ${portfolioConfig.type.name}`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
portfolioConfig = await collectPortfolioData();
|
|
76
|
+
}
|
|
77
|
+
// Generate portfolio
|
|
78
|
+
logger.header('🎨 Generating your portfolio...');
|
|
79
|
+
const spinner = ora('Creating project files...').start();
|
|
80
|
+
try {
|
|
81
|
+
await generatePortfolioProject(finalProjectName, portfolioConfig, targetDir, options);
|
|
82
|
+
spinner.succeed('Project files created!');
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
spinner.fail('Failed to create project files');
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
// Install dependencies
|
|
89
|
+
logger.header('📦 Installing dependencies...');
|
|
90
|
+
const installSpinner = ora('Installing packages...').start();
|
|
91
|
+
try {
|
|
92
|
+
await execAsync('npm install', { cwd: targetDir });
|
|
93
|
+
installSpinner.succeed('Dependencies installed!');
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
installSpinner.warn('Failed to install dependencies automatically');
|
|
97
|
+
logger.info('You can install them manually by running: npm install');
|
|
98
|
+
}
|
|
99
|
+
// Run validation if not skipped
|
|
100
|
+
let validationResult = null;
|
|
101
|
+
if (!options.skipValidation) {
|
|
102
|
+
logger.header('🔍 Validating generated code...');
|
|
103
|
+
validationResult = await validateProject(targetDir, options.autoFix);
|
|
104
|
+
}
|
|
105
|
+
// Initialize git if requested
|
|
106
|
+
if (options.git) {
|
|
107
|
+
try {
|
|
108
|
+
await execAsync('git init', { cwd: targetDir });
|
|
109
|
+
await execAsync('git add .', { cwd: targetDir });
|
|
110
|
+
await execAsync('git commit -m "Initial commit from ForgeStack Portfolio"', { cwd: targetDir });
|
|
111
|
+
logger.success('Git repository initialized');
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
logger.warning('Failed to initialize git repository');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Print summary report
|
|
118
|
+
printSummaryReport(finalProjectName, portfolioConfig, validationResult, options);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
logger.error('An error occurred during generation');
|
|
122
|
+
console.error(error);
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async function generateAllPortfolios(options) {
|
|
127
|
+
logger.header('🎯 Generating all portfolio types for demo/testing');
|
|
128
|
+
const baseDir = path.resolve(process.cwd(), 'forgestack-portfolios');
|
|
129
|
+
if (await fs.pathExists(baseDir)) {
|
|
130
|
+
logger.error(`Directory "forgestack-portfolios" already exists!`);
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
await fs.ensureDir(baseDir);
|
|
134
|
+
const results = [];
|
|
135
|
+
for (const type of portfolioTypes) {
|
|
136
|
+
const projectName = `portfolio-${type.value}`;
|
|
137
|
+
const targetDir = path.join(baseDir, projectName);
|
|
138
|
+
const spinner = ora(`Generating ${type.name}...`).start();
|
|
139
|
+
try {
|
|
140
|
+
const config = getDefaultPortfolioConfig(type.value);
|
|
141
|
+
await generatePortfolioProject(projectName, config, targetDir, options);
|
|
142
|
+
// Install dependencies
|
|
143
|
+
await execAsync('npm install', { cwd: targetDir });
|
|
144
|
+
// Validate if not skipped
|
|
145
|
+
if (!options.skipValidation) {
|
|
146
|
+
await validateProject(targetDir, options.autoFix);
|
|
147
|
+
}
|
|
148
|
+
spinner.succeed(`${type.name} generated successfully`);
|
|
149
|
+
results.push({ name: type.name, success: true });
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
spinner.fail(`Failed to generate ${type.name}`);
|
|
153
|
+
results.push({ name: type.name, success: false, error: String(error) });
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Print summary
|
|
157
|
+
console.log('\n');
|
|
158
|
+
console.log(chalk.bold.cyan('📊 Generation Summary:'));
|
|
159
|
+
console.log(chalk.gray('─'.repeat(50)));
|
|
160
|
+
const successful = results.filter(r => r.success).length;
|
|
161
|
+
const failed = results.filter(r => !r.success).length;
|
|
162
|
+
for (const result of results) {
|
|
163
|
+
if (result.success) {
|
|
164
|
+
console.log(chalk.green(` ✓ ${result.name}`));
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
console.log(chalk.red(` ✗ ${result.name}: ${result.error}`));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
console.log(chalk.gray('─'.repeat(50)));
|
|
171
|
+
console.log(chalk.white(` Total: ${results.length} | `), chalk.green(`Success: ${successful} | `), failed > 0 ? chalk.red(`Failed: ${failed}`) : chalk.gray('Failed: 0'));
|
|
172
|
+
console.log('\n');
|
|
173
|
+
console.log(chalk.cyan(`All portfolios generated in: ${baseDir}`));
|
|
174
|
+
}
|
|
175
|
+
function getDefaultPortfolioConfig(typeValue) {
|
|
176
|
+
const type = portfolioTypes.find(t => t.value === typeValue) || portfolioTypes[0];
|
|
177
|
+
return {
|
|
178
|
+
type,
|
|
179
|
+
colorScheme: {
|
|
180
|
+
name: 'Default',
|
|
181
|
+
value: 'default',
|
|
182
|
+
colors: type.defaultColors
|
|
183
|
+
},
|
|
184
|
+
layout: 'single-page',
|
|
185
|
+
framework: 'react-vite',
|
|
186
|
+
features: {
|
|
187
|
+
contactForm: true,
|
|
188
|
+
gallery: type.category === 'Creative' || type.category === 'Beauty',
|
|
189
|
+
blog: type.category === 'Professional',
|
|
190
|
+
testimonials: type.category === 'Business' || type.category === 'Beauty'
|
|
191
|
+
},
|
|
192
|
+
userData: {
|
|
193
|
+
name: 'John Doe',
|
|
194
|
+
role: type.defaultRole,
|
|
195
|
+
bio: type.defaultBio,
|
|
196
|
+
skills: type.defaultSkills,
|
|
197
|
+
email: 'hello@example.com'
|
|
198
|
+
},
|
|
199
|
+
runValidation: true
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
function printSummaryReport(projectName, config, validation, options) {
|
|
203
|
+
console.log('\n');
|
|
204
|
+
console.log(chalk.bold.green('═'.repeat(60)));
|
|
205
|
+
console.log(chalk.bold.green(' 🎉 Portfolio Generation Complete!'));
|
|
206
|
+
console.log(chalk.bold.green('═'.repeat(60)));
|
|
207
|
+
console.log('\n');
|
|
208
|
+
// Project info
|
|
209
|
+
console.log(chalk.cyan('📁 Project Details:'));
|
|
210
|
+
console.log(chalk.gray('─'.repeat(40)));
|
|
211
|
+
console.log(chalk.white(` Location: ${chalk.bold('./' + projectName)}`));
|
|
212
|
+
console.log(chalk.white(` Type: ${chalk.bold(config.type.name)} ${config.type.emoji}`));
|
|
213
|
+
console.log(chalk.white(` Framework: ${chalk.bold(getFrameworkName(config.framework))}`));
|
|
214
|
+
console.log(chalk.white(` Layout: ${chalk.bold(config.layout === 'single-page' ? 'Single Page' : 'Multi-Page')}`));
|
|
215
|
+
console.log('\n');
|
|
216
|
+
// Features
|
|
217
|
+
console.log(chalk.cyan('✨ Features Enabled:'));
|
|
218
|
+
console.log(chalk.gray('─'.repeat(40)));
|
|
219
|
+
if (config.features.contactForm)
|
|
220
|
+
console.log(chalk.white(' ✓ Contact Form'));
|
|
221
|
+
if (config.features.gallery)
|
|
222
|
+
console.log(chalk.white(' ✓ Gallery/Portfolio'));
|
|
223
|
+
if (config.features.blog)
|
|
224
|
+
console.log(chalk.white(' ✓ Blog'));
|
|
225
|
+
if (config.features.testimonials)
|
|
226
|
+
console.log(chalk.white(' ✓ Testimonials'));
|
|
227
|
+
console.log('\n');
|
|
228
|
+
// Validation results
|
|
229
|
+
if (validation) {
|
|
230
|
+
console.log(chalk.cyan('🔍 Validation Results:'));
|
|
231
|
+
console.log(chalk.gray('─'.repeat(40)));
|
|
232
|
+
if (validation.typescript.success) {
|
|
233
|
+
console.log(chalk.green(' ✅ TypeScript: no errors'));
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
console.log(chalk.red(` ❌ TypeScript: ${validation.typescript.errors.length} error(s)`));
|
|
237
|
+
validation.typescript.errors.slice(0, 3).forEach(err => {
|
|
238
|
+
console.log(chalk.red(` • ${err}`));
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
if (validation.eslint.success) {
|
|
242
|
+
console.log(chalk.green(' ✅ ESLint: clean'));
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
console.log(chalk.yellow(` ⚠️ ESLint: ${validation.eslint.warnings} warning(s), ${validation.eslint.errors.length} error(s)`));
|
|
246
|
+
}
|
|
247
|
+
if (validation.dependencies.success) {
|
|
248
|
+
console.log(chalk.green(' ✅ All dependencies installed'));
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
console.log(chalk.yellow(` ⚠️ Missing dependencies: ${validation.dependencies.missing.join(', ')}`));
|
|
252
|
+
}
|
|
253
|
+
if (validation.files.success) {
|
|
254
|
+
console.log(chalk.green(' ✅ All required files present'));
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
console.log(chalk.yellow(` ⚠️ Missing files: ${validation.files.missing.join(', ')}`));
|
|
258
|
+
}
|
|
259
|
+
if (validation.assets.warnings.length > 0) {
|
|
260
|
+
validation.assets.warnings.forEach(warning => {
|
|
261
|
+
console.log(chalk.yellow(` ⚠️ ${warning}`));
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
console.log('\n');
|
|
265
|
+
}
|
|
266
|
+
// Next steps
|
|
267
|
+
console.log(chalk.cyan('🚀 Next Steps:'));
|
|
268
|
+
console.log(chalk.gray('─'.repeat(40)));
|
|
269
|
+
console.log(chalk.white(` cd ${projectName}`));
|
|
270
|
+
console.log(chalk.white(' npm run dev'));
|
|
271
|
+
console.log('\n');
|
|
272
|
+
// Deploy info
|
|
273
|
+
if (options.deployReady) {
|
|
274
|
+
console.log(chalk.cyan('☁️ Deploy Ready:'));
|
|
275
|
+
console.log(chalk.gray('─'.repeat(40)));
|
|
276
|
+
console.log(chalk.white(' • Vercel: vercel deploy'));
|
|
277
|
+
console.log(chalk.white(' • Netlify: netlify deploy'));
|
|
278
|
+
console.log(chalk.white(' • Build: npm run build'));
|
|
279
|
+
console.log('\n');
|
|
280
|
+
}
|
|
281
|
+
console.log(chalk.gray('Built with ❤️ using ForgeStack Portfolio Generator'));
|
|
282
|
+
console.log('\n');
|
|
283
|
+
}
|
|
284
|
+
function getFrameworkName(framework) {
|
|
285
|
+
const names = {
|
|
286
|
+
'react-vite': 'React + Vite',
|
|
287
|
+
'nextjs': 'Next.js',
|
|
288
|
+
'sveltekit': 'SvelteKit'
|
|
289
|
+
};
|
|
290
|
+
return names[framework] || framework;
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=portfolio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../../src/commands/portfolio.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,wBAAsB,iBAAiB,CACnC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAuHf"}
|