@vue-skuilder/cli 0.1.3 → 0.1.5
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/cli.js +7 -11
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +41 -11
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/pack.d.ts +3 -0
- package/dist/commands/pack.d.ts.map +1 -0
- package/dist/commands/pack.js +124 -0
- package/dist/commands/pack.js.map +1 -0
- package/dist/types.d.ts +24 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +192 -16
- package/dist/types.js.map +1 -1
- package/dist/utils/prompts.d.ts +5 -2
- package/dist/utils/prompts.d.ts.map +1 -1
- package/dist/utils/prompts.js +67 -52
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/template.d.ts +10 -0
- package/dist/utils/template.d.ts.map +1 -1
- package/dist/utils/template.js +239 -8
- package/dist/utils/template.js.map +1 -1
- package/package.json +5 -3
- package/src/cli.ts +8 -12
- package/src/commands/init.ts +71 -21
- package/src/commands/pack.ts +163 -0
- package/src/types.ts +224 -18
- package/src/utils/prompts.ts +81 -54
- package/src/utils/template.ts +275 -37
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,8 @@ import { Command } from 'commander';
|
|
|
3
3
|
import { readFileSync } from 'fs';
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
5
|
import { dirname, join } from 'path';
|
|
6
|
-
import {
|
|
6
|
+
import { createInitCommand } from './commands/init.js';
|
|
7
|
+
import { createPackCommand } from './commands/pack.js';
|
|
7
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
8
9
|
const __dirname = dirname(__filename);
|
|
9
10
|
// Read package.json to get version
|
|
@@ -14,22 +15,17 @@ program
|
|
|
14
15
|
.name('skuilder')
|
|
15
16
|
.description('CLI tool for scaffolding Skuilder course applications')
|
|
16
17
|
.version(packageJson.version);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
.description('create a new Skuilder course application')
|
|
21
|
-
.option('--data-layer <type>', 'data layer type (static|dynamic)', 'dynamic')
|
|
22
|
-
.option('--theme <name>', 'theme name (default|medical|educational|corporate)', 'default')
|
|
23
|
-
.option('--no-interactive', 'skip interactive prompts')
|
|
24
|
-
.option('--couchdb-url <url>', 'CouchDB server URL (for dynamic data layer)')
|
|
25
|
-
.option('--course-id <id>', 'course ID to import (for dynamic data layer)')
|
|
26
|
-
.action(initCommand);
|
|
18
|
+
// Add commands
|
|
19
|
+
program.addCommand(createInitCommand());
|
|
20
|
+
program.addCommand(createPackCommand());
|
|
27
21
|
program.on('--help', () => {
|
|
28
22
|
console.log('');
|
|
29
23
|
console.log('Examples:');
|
|
30
24
|
console.log(' $ skuilder init my-anatomy-course');
|
|
31
25
|
console.log(' $ skuilder init biology-101 --data-layer=static --theme=medical');
|
|
32
26
|
console.log(' $ skuilder init physics --no-interactive --data-layer=dynamic');
|
|
27
|
+
console.log(' $ skuilder pack sample-course-id');
|
|
28
|
+
console.log(' $ skuilder pack biology-101 --server http://localhost:5984 --username admin');
|
|
33
29
|
});
|
|
34
30
|
program.parse();
|
|
35
31
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,mCAAmC;AACnC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,uDAAuD,CAAC;KACpE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAExC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;AAC/F,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
export declare function createInitCommand(): Command;
|
|
3
3
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,iBAAiB,IAAI,OAAO,CAU3C"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,14 +1,24 @@
|
|
|
1
|
-
import { existsSync } from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
1
|
import chalk from 'chalk';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { existsSync, readFileSync } from 'fs';
|
|
4
|
+
import path, { dirname, join } from 'path';
|
|
7
5
|
import { fileURLToPath } from 'url';
|
|
8
|
-
import {
|
|
6
|
+
import { confirmProjectCreation, displayThemePreview, gatherProjectConfig, } from '../utils/prompts.js';
|
|
7
|
+
import { processTemplate } from '../utils/template.js';
|
|
9
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
9
|
const __dirname = dirname(__filename);
|
|
11
|
-
export
|
|
10
|
+
export function createInitCommand() {
|
|
11
|
+
return new Command('init')
|
|
12
|
+
.argument('<project-name>', 'name of the project to create')
|
|
13
|
+
.description('create a new Skuilder course application')
|
|
14
|
+
.option('--data-layer <type>', 'data layer type (static|dynamic)', 'dynamic')
|
|
15
|
+
.option('--theme <name>', 'theme name (default|medical|educational|corporate)', 'default')
|
|
16
|
+
.option('--no-interactive', 'skip interactive prompts')
|
|
17
|
+
.option('--couchdb-url <url>', 'CouchDB server URL (for dynamic data layer)')
|
|
18
|
+
.option('--course-id <id>', 'course ID to import (for dynamic data layer)')
|
|
19
|
+
.action(initCommand);
|
|
20
|
+
}
|
|
21
|
+
async function initCommand(projectName, options) {
|
|
12
22
|
try {
|
|
13
23
|
// Validate project name
|
|
14
24
|
if (!isValidProjectName(projectName)) {
|
|
@@ -25,10 +35,18 @@ export async function initCommand(projectName, options) {
|
|
|
25
35
|
const packagePath = join(__dirname, '..', '..', 'package.json');
|
|
26
36
|
const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
27
37
|
const cliVersion = packageJson.version;
|
|
38
|
+
// Convert options to CliOptions format
|
|
39
|
+
const cliOptions = {
|
|
40
|
+
dataLayer: options.dataLayer,
|
|
41
|
+
theme: options.theme,
|
|
42
|
+
interactive: options.interactive,
|
|
43
|
+
couchdbUrl: options.couchdbUrl,
|
|
44
|
+
courseId: options.courseId,
|
|
45
|
+
};
|
|
28
46
|
// Gather project configuration
|
|
29
|
-
const config = await gatherProjectConfig(projectName,
|
|
47
|
+
const config = await gatherProjectConfig(projectName, cliOptions);
|
|
30
48
|
// Confirm project creation (only in interactive mode)
|
|
31
|
-
if (
|
|
49
|
+
if (cliOptions.interactive) {
|
|
32
50
|
const confirmed = await confirmProjectCreation(config, projectPath);
|
|
33
51
|
if (!confirmed) {
|
|
34
52
|
console.log(chalk.yellow('Project creation cancelled.'));
|
|
@@ -40,7 +58,9 @@ export async function initCommand(projectName, options) {
|
|
|
40
58
|
await processTemplate(projectPath, config, cliVersion);
|
|
41
59
|
// Success message
|
|
42
60
|
console.log(chalk.green('\n🎉 Project created successfully!\n'));
|
|
43
|
-
|
|
61
|
+
// Show theme preview
|
|
62
|
+
displayThemePreview(config.theme.name);
|
|
63
|
+
console.log(chalk.cyan('\nNext steps:'));
|
|
44
64
|
console.log(` ${chalk.white('cd')} ${projectName}`);
|
|
45
65
|
console.log(` ${chalk.white('npm install')}`);
|
|
46
66
|
console.log(` ${chalk.white('npm run dev')}`);
|
|
@@ -57,7 +77,17 @@ export async function initCommand(projectName, options) {
|
|
|
57
77
|
}
|
|
58
78
|
catch (error) {
|
|
59
79
|
console.error(chalk.red('\n❌ Failed to create project:'));
|
|
60
|
-
|
|
80
|
+
let errorMessage = 'Unknown error';
|
|
81
|
+
if (error instanceof Error) {
|
|
82
|
+
errorMessage = error.message;
|
|
83
|
+
}
|
|
84
|
+
else if (typeof error === 'string') {
|
|
85
|
+
errorMessage = error;
|
|
86
|
+
}
|
|
87
|
+
else if (error && typeof error === 'object' && 'message' in error) {
|
|
88
|
+
errorMessage = String(error.message);
|
|
89
|
+
}
|
|
90
|
+
console.error(chalk.red(errorMessage));
|
|
61
91
|
process.exit(1);
|
|
62
92
|
}
|
|
63
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/commands/pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,iBAAiB,IAAI,OAAO,CAW3C"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import PouchDB from 'pouchdb';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { CouchDBToStaticPacker } from '@vue-skuilder/db/packer';
|
|
7
|
+
export function createPackCommand() {
|
|
8
|
+
return new Command('pack')
|
|
9
|
+
.description('Pack a CouchDB course into static files')
|
|
10
|
+
.argument('<courseId>', 'Course ID to pack')
|
|
11
|
+
.option('-s, --server <url>', 'CouchDB server URL', 'http://localhost:5984')
|
|
12
|
+
.option('-u, --username <username>', 'CouchDB username')
|
|
13
|
+
.option('-p, --password <password>', 'CouchDB password')
|
|
14
|
+
.option('-o, --output <dir>', 'Output directory', './static-courses')
|
|
15
|
+
.option('-c, --chunk-size <size>', 'Documents per chunk', '1000')
|
|
16
|
+
.option('--no-attachments', 'Exclude attachments')
|
|
17
|
+
.action(packCourse);
|
|
18
|
+
}
|
|
19
|
+
async function packCourse(courseId, options) {
|
|
20
|
+
try {
|
|
21
|
+
console.log(chalk.cyan(`🔧 Packing course: ${courseId}`));
|
|
22
|
+
// Validate courseId
|
|
23
|
+
if (!courseId || courseId.trim() === '') {
|
|
24
|
+
throw new Error('Course ID is required');
|
|
25
|
+
}
|
|
26
|
+
// Connect to CouchDB
|
|
27
|
+
const dbUrl = `${options.server}/coursedb-${courseId}`;
|
|
28
|
+
const dbOptions = {};
|
|
29
|
+
if (options.username && options.password) {
|
|
30
|
+
dbOptions.auth = {
|
|
31
|
+
username: options.username,
|
|
32
|
+
password: options.password,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
console.log(chalk.gray(`📡 Connecting to: ${dbUrl}`));
|
|
36
|
+
const sourceDB = new PouchDB(dbUrl, dbOptions);
|
|
37
|
+
// Test connection
|
|
38
|
+
try {
|
|
39
|
+
await sourceDB.info();
|
|
40
|
+
console.log(chalk.green('✅ Connected to database'));
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
let errorMessage = 'Unknown error';
|
|
44
|
+
if (error instanceof Error) {
|
|
45
|
+
errorMessage = error.message;
|
|
46
|
+
}
|
|
47
|
+
else if (typeof error === 'string') {
|
|
48
|
+
errorMessage = error;
|
|
49
|
+
}
|
|
50
|
+
else if (error && typeof error === 'object' && 'message' in error) {
|
|
51
|
+
errorMessage = String(error.message);
|
|
52
|
+
}
|
|
53
|
+
throw new Error(`Failed to connect to database: ${errorMessage}`);
|
|
54
|
+
}
|
|
55
|
+
// Configure packer (data transformation only)
|
|
56
|
+
const packerConfig = {
|
|
57
|
+
chunkSize: parseInt(options.chunkSize),
|
|
58
|
+
includeAttachments: !options.noAttachments,
|
|
59
|
+
};
|
|
60
|
+
console.log(chalk.gray(`📦 Chunk size: ${packerConfig.chunkSize} documents`));
|
|
61
|
+
console.log(chalk.gray(`📎 Include attachments: ${packerConfig.includeAttachments}`));
|
|
62
|
+
// Pack the course (data transformation)
|
|
63
|
+
console.log(chalk.cyan('🔄 Processing course data...'));
|
|
64
|
+
const packer = new CouchDBToStaticPacker(packerConfig);
|
|
65
|
+
const packedData = await packer.packCourse(sourceDB, courseId);
|
|
66
|
+
// Create output directory
|
|
67
|
+
const outputDir = path.resolve(options.output, courseId);
|
|
68
|
+
await fs.ensureDir(outputDir);
|
|
69
|
+
console.log(chalk.gray(`📁 Output directory: ${outputDir}`));
|
|
70
|
+
// Write files
|
|
71
|
+
await writePackedData(packedData, outputDir);
|
|
72
|
+
// Success summary
|
|
73
|
+
console.log(chalk.green('\n✅ Successfully packed course!'));
|
|
74
|
+
console.log(chalk.white(`📊 Course: ${packedData.manifest.courseName}`));
|
|
75
|
+
console.log(chalk.white(`📄 Documents: ${packedData.manifest.documentCount}`));
|
|
76
|
+
console.log(chalk.white(`🗂️ Chunks: ${packedData.manifest.chunks.length}`));
|
|
77
|
+
console.log(chalk.white(`🗃️ Indices: ${packedData.manifest.indices.length}`));
|
|
78
|
+
console.log(chalk.white(`📁 Location: ${outputDir}`));
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
console.error(chalk.red('\n❌ Packing failed:'));
|
|
82
|
+
let errorMessage = 'Unknown error';
|
|
83
|
+
if (error instanceof Error) {
|
|
84
|
+
errorMessage = error.message;
|
|
85
|
+
}
|
|
86
|
+
else if (typeof error === 'string') {
|
|
87
|
+
errorMessage = error;
|
|
88
|
+
}
|
|
89
|
+
else if (error && typeof error === 'object' && 'message' in error) {
|
|
90
|
+
errorMessage = String(error.message);
|
|
91
|
+
}
|
|
92
|
+
console.error(chalk.red(errorMessage));
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async function writePackedData(packedData, outputDir) {
|
|
97
|
+
console.log(chalk.cyan('💾 Writing files...'));
|
|
98
|
+
// Write manifest
|
|
99
|
+
const manifestPath = path.join(outputDir, 'manifest.json');
|
|
100
|
+
await fs.writeJson(manifestPath, packedData.manifest, { spaces: 2 });
|
|
101
|
+
console.log(chalk.gray(`📋 Wrote manifest: ${manifestPath}`));
|
|
102
|
+
// Create directories
|
|
103
|
+
const chunksDir = path.join(outputDir, 'chunks');
|
|
104
|
+
const indicesDir = path.join(outputDir, 'indices');
|
|
105
|
+
await fs.ensureDir(chunksDir);
|
|
106
|
+
await fs.ensureDir(indicesDir);
|
|
107
|
+
// Write chunks
|
|
108
|
+
let chunkCount = 0;
|
|
109
|
+
for (const [chunkId, chunkData] of packedData.chunks) {
|
|
110
|
+
const chunkPath = path.join(chunksDir, `${chunkId}.json`);
|
|
111
|
+
await fs.writeJson(chunkPath, chunkData);
|
|
112
|
+
chunkCount++;
|
|
113
|
+
}
|
|
114
|
+
console.log(chalk.gray(`📦 Wrote ${chunkCount} chunks`));
|
|
115
|
+
// Write indices
|
|
116
|
+
let indexCount = 0;
|
|
117
|
+
for (const [indexName, indexData] of packedData.indices) {
|
|
118
|
+
const indexPath = path.join(indicesDir, `${indexName}.json`);
|
|
119
|
+
await fs.writeJson(indexPath, indexData, { spaces: 2 });
|
|
120
|
+
indexCount++;
|
|
121
|
+
}
|
|
122
|
+
console.log(chalk.gray(`🗃️ Wrote ${indexCount} indices`));
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=pack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/commands/pack.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -13,14 +13,36 @@ export interface ProjectConfig {
|
|
|
13
13
|
couchdbUrl?: string;
|
|
14
14
|
theme: ThemeConfig;
|
|
15
15
|
}
|
|
16
|
-
export interface
|
|
17
|
-
|
|
16
|
+
export interface VuetifyThemeDefinition {
|
|
17
|
+
dark: boolean;
|
|
18
18
|
colors: {
|
|
19
19
|
primary: string;
|
|
20
20
|
secondary: string;
|
|
21
21
|
accent: string;
|
|
22
|
+
error: string;
|
|
23
|
+
info: string;
|
|
24
|
+
success: string;
|
|
25
|
+
warning: string;
|
|
26
|
+
background: string;
|
|
27
|
+
surface: string;
|
|
28
|
+
'surface-bright': string;
|
|
29
|
+
'surface-light': string;
|
|
30
|
+
'surface-variant': string;
|
|
31
|
+
'on-surface-variant': string;
|
|
32
|
+
'primary-darken-1': string;
|
|
33
|
+
'secondary-darken-1': string;
|
|
34
|
+
'on-primary': string;
|
|
35
|
+
'on-secondary': string;
|
|
36
|
+
'on-background': string;
|
|
37
|
+
'on-surface': string;
|
|
22
38
|
};
|
|
23
39
|
}
|
|
40
|
+
export interface ThemeConfig {
|
|
41
|
+
name: string;
|
|
42
|
+
light: VuetifyThemeDefinition;
|
|
43
|
+
dark: VuetifyThemeDefinition;
|
|
44
|
+
defaultMode: 'light' | 'dark';
|
|
45
|
+
}
|
|
24
46
|
export interface SkuilderConfig {
|
|
25
47
|
title: string;
|
|
26
48
|
course?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAC3D,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,QAAQ,GAAG,OAAO,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAC3D,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,QAAQ,GAAG,OAAO,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QAEN,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAGhB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,oBAAoB,EAAE,MAAM,CAAC;QAG7B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,oBAAoB,EAAE,MAAM,CAAC;QAG7B,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,sBAAsB,CAAC;IAC9B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,QAAQ,GAAG,OAAO,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAiNzD,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,34 +1,210 @@
|
|
|
1
1
|
export const PREDEFINED_THEMES = {
|
|
2
2
|
default: {
|
|
3
3
|
name: 'default',
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
defaultMode: 'light',
|
|
5
|
+
light: {
|
|
6
|
+
dark: false,
|
|
7
|
+
colors: {
|
|
8
|
+
primary: '#1976D2',
|
|
9
|
+
secondary: '#424242',
|
|
10
|
+
accent: '#82B1FF',
|
|
11
|
+
error: '#F44336',
|
|
12
|
+
info: '#2196F3',
|
|
13
|
+
success: '#4CAF50',
|
|
14
|
+
warning: '#FF9800',
|
|
15
|
+
background: '#FFFFFF',
|
|
16
|
+
surface: '#FFFFFF',
|
|
17
|
+
'surface-bright': '#FFFFFF',
|
|
18
|
+
'surface-light': '#EEEEEE',
|
|
19
|
+
'surface-variant': '#E3F2FD',
|
|
20
|
+
'on-surface-variant': '#1976D2',
|
|
21
|
+
'primary-darken-1': '#1565C0',
|
|
22
|
+
'secondary-darken-1': '#212121',
|
|
23
|
+
'on-primary': '#FFFFFF',
|
|
24
|
+
'on-secondary': '#FFFFFF',
|
|
25
|
+
'on-background': '#212121',
|
|
26
|
+
'on-surface': '#212121',
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
dark: {
|
|
30
|
+
dark: true,
|
|
31
|
+
colors: {
|
|
32
|
+
primary: '#2196F3',
|
|
33
|
+
secondary: '#90A4AE',
|
|
34
|
+
accent: '#82B1FF',
|
|
35
|
+
error: '#FF5252',
|
|
36
|
+
info: '#2196F3',
|
|
37
|
+
success: '#4CAF50',
|
|
38
|
+
warning: '#FFC107',
|
|
39
|
+
background: '#121212',
|
|
40
|
+
surface: '#1E1E1E',
|
|
41
|
+
'surface-bright': '#2C2C2C',
|
|
42
|
+
'surface-light': '#2C2C2C',
|
|
43
|
+
'surface-variant': '#1A237E',
|
|
44
|
+
'on-surface-variant': '#82B1FF',
|
|
45
|
+
'primary-darken-1': '#1976D2',
|
|
46
|
+
'secondary-darken-1': '#546E7A',
|
|
47
|
+
'on-primary': '#000000',
|
|
48
|
+
'on-secondary': '#000000',
|
|
49
|
+
'on-background': '#FFFFFF',
|
|
50
|
+
'on-surface': '#FFFFFF',
|
|
51
|
+
}
|
|
8
52
|
}
|
|
9
53
|
},
|
|
10
54
|
medical: {
|
|
11
55
|
name: 'medical',
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
56
|
+
defaultMode: 'light',
|
|
57
|
+
light: {
|
|
58
|
+
dark: false,
|
|
59
|
+
colors: {
|
|
60
|
+
primary: '#2E7D32',
|
|
61
|
+
secondary: '#558B2F',
|
|
62
|
+
accent: '#66BB6A',
|
|
63
|
+
error: '#D32F2F',
|
|
64
|
+
info: '#1976D2',
|
|
65
|
+
success: '#388E3C',
|
|
66
|
+
warning: '#F57C00',
|
|
67
|
+
background: '#FAFAFA',
|
|
68
|
+
surface: '#FFFFFF',
|
|
69
|
+
'surface-bright': '#FFFFFF',
|
|
70
|
+
'surface-light': '#F5F5F5',
|
|
71
|
+
'surface-variant': '#E8F5E8',
|
|
72
|
+
'on-surface-variant': '#2E7D32',
|
|
73
|
+
'primary-darken-1': '#1B5E20',
|
|
74
|
+
'secondary-darken-1': '#33691E',
|
|
75
|
+
'on-primary': '#FFFFFF',
|
|
76
|
+
'on-secondary': '#FFFFFF',
|
|
77
|
+
'on-background': '#212121',
|
|
78
|
+
'on-surface': '#212121',
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
dark: {
|
|
82
|
+
dark: true,
|
|
83
|
+
colors: {
|
|
84
|
+
primary: '#4CAF50',
|
|
85
|
+
secondary: '#8BC34A',
|
|
86
|
+
accent: '#81C784',
|
|
87
|
+
error: '#F44336',
|
|
88
|
+
info: '#2196F3',
|
|
89
|
+
success: '#4CAF50',
|
|
90
|
+
warning: '#FF9800',
|
|
91
|
+
background: '#121212',
|
|
92
|
+
surface: '#1E1E1E',
|
|
93
|
+
'surface-bright': '#2C2C2C',
|
|
94
|
+
'surface-light': '#2C2C2C',
|
|
95
|
+
'surface-variant': '#1B2E1B',
|
|
96
|
+
'on-surface-variant': '#81C784',
|
|
97
|
+
'primary-darken-1': '#388E3C',
|
|
98
|
+
'secondary-darken-1': '#689F38',
|
|
99
|
+
'on-primary': '#000000',
|
|
100
|
+
'on-secondary': '#000000',
|
|
101
|
+
'on-background': '#FFFFFF',
|
|
102
|
+
'on-surface': '#FFFFFF',
|
|
103
|
+
}
|
|
16
104
|
}
|
|
17
105
|
},
|
|
18
106
|
educational: {
|
|
19
107
|
name: 'educational',
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
108
|
+
defaultMode: 'light',
|
|
109
|
+
light: {
|
|
110
|
+
dark: false,
|
|
111
|
+
colors: {
|
|
112
|
+
primary: '#F57C00',
|
|
113
|
+
secondary: '#FF9800',
|
|
114
|
+
accent: '#FFB74D',
|
|
115
|
+
error: '#F44336',
|
|
116
|
+
info: '#2196F3',
|
|
117
|
+
success: '#4CAF50',
|
|
118
|
+
warning: '#FF9800',
|
|
119
|
+
background: '#FFFEF7',
|
|
120
|
+
surface: '#FFFFFF',
|
|
121
|
+
'surface-bright': '#FFFFFF',
|
|
122
|
+
'surface-light': '#FFF8E1',
|
|
123
|
+
'surface-variant': '#FFF3E0',
|
|
124
|
+
'on-surface-variant': '#F57C00',
|
|
125
|
+
'primary-darken-1': '#E65100',
|
|
126
|
+
'secondary-darken-1': '#F57C00',
|
|
127
|
+
'on-primary': '#FFFFFF',
|
|
128
|
+
'on-secondary': '#000000',
|
|
129
|
+
'on-background': '#212121',
|
|
130
|
+
'on-surface': '#212121',
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
dark: {
|
|
134
|
+
dark: true,
|
|
135
|
+
colors: {
|
|
136
|
+
primary: '#FF9800',
|
|
137
|
+
secondary: '#FFB74D',
|
|
138
|
+
accent: '#FFCC02',
|
|
139
|
+
error: '#FF5252',
|
|
140
|
+
info: '#2196F3',
|
|
141
|
+
success: '#4CAF50',
|
|
142
|
+
warning: '#FF9800',
|
|
143
|
+
background: '#121212',
|
|
144
|
+
surface: '#1E1E1E',
|
|
145
|
+
'surface-bright': '#2C2C2C',
|
|
146
|
+
'surface-light': '#2C2C2C',
|
|
147
|
+
'surface-variant': '#2E1A00',
|
|
148
|
+
'on-surface-variant': '#FFCC02',
|
|
149
|
+
'primary-darken-1': '#F57C00',
|
|
150
|
+
'secondary-darken-1': '#FF9800',
|
|
151
|
+
'on-primary': '#000000',
|
|
152
|
+
'on-secondary': '#000000',
|
|
153
|
+
'on-background': '#FFFFFF',
|
|
154
|
+
'on-surface': '#FFFFFF',
|
|
155
|
+
}
|
|
24
156
|
}
|
|
25
157
|
},
|
|
26
158
|
corporate: {
|
|
27
159
|
name: 'corporate',
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
160
|
+
defaultMode: 'light',
|
|
161
|
+
light: {
|
|
162
|
+
dark: false,
|
|
163
|
+
colors: {
|
|
164
|
+
primary: '#37474F',
|
|
165
|
+
secondary: '#546E7A',
|
|
166
|
+
accent: '#78909C',
|
|
167
|
+
error: '#F44336',
|
|
168
|
+
info: '#2196F3',
|
|
169
|
+
success: '#4CAF50',
|
|
170
|
+
warning: '#FF9800',
|
|
171
|
+
background: '#FAFAFA',
|
|
172
|
+
surface: '#FFFFFF',
|
|
173
|
+
'surface-bright': '#FFFFFF',
|
|
174
|
+
'surface-light': '#F5F5F5',
|
|
175
|
+
'surface-variant': '#ECEFF1',
|
|
176
|
+
'on-surface-variant': '#37474F',
|
|
177
|
+
'primary-darken-1': '#263238',
|
|
178
|
+
'secondary-darken-1': '#455A64',
|
|
179
|
+
'on-primary': '#FFFFFF',
|
|
180
|
+
'on-secondary': '#FFFFFF',
|
|
181
|
+
'on-background': '#212121',
|
|
182
|
+
'on-surface': '#212121',
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
dark: {
|
|
186
|
+
dark: true,
|
|
187
|
+
colors: {
|
|
188
|
+
primary: '#607D8B',
|
|
189
|
+
secondary: '#78909C',
|
|
190
|
+
accent: '#90A4AE',
|
|
191
|
+
error: '#FF5252',
|
|
192
|
+
info: '#2196F3',
|
|
193
|
+
success: '#4CAF50',
|
|
194
|
+
warning: '#FFC107',
|
|
195
|
+
background: '#121212',
|
|
196
|
+
surface: '#1E1E1E',
|
|
197
|
+
'surface-bright': '#2C2C2C',
|
|
198
|
+
'surface-light': '#2C2C2C',
|
|
199
|
+
'surface-variant': '#1C2429',
|
|
200
|
+
'on-surface-variant': '#90A4AE',
|
|
201
|
+
'primary-darken-1': '#455A64',
|
|
202
|
+
'secondary-darken-1': '#546E7A',
|
|
203
|
+
'on-primary': '#FFFFFF',
|
|
204
|
+
'on-secondary': '#FFFFFF',
|
|
205
|
+
'on-background': '#FFFFFF',
|
|
206
|
+
'on-surface': '#FFFFFF',
|
|
207
|
+
}
|
|
32
208
|
}
|
|
33
209
|
}
|
|
34
210
|
};
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/prompts.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { CliOptions, ProjectConfig
|
|
1
|
+
import { CliOptions, ProjectConfig } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Display comprehensive theme preview after selection
|
|
4
|
+
*/
|
|
5
|
+
export declare function displayThemePreview(themeName: string): void;
|
|
2
6
|
export declare function gatherProjectConfig(projectName: string, options: CliOptions): Promise<ProjectConfig>;
|
|
3
7
|
export declare function confirmProjectCreation(config: ProjectConfig, projectPath: string): Promise<boolean>;
|
|
4
|
-
export declare function promptForCustomTheme(): Promise<ThemeConfig>;
|
|
5
8
|
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAqB,
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;AA0C3E;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CA2B3D;AAED,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,aAAa,CAAC,CA6GxB;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CA2BlB"}
|