@diagramers/cli 1.1.41 → 1.1.43
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/admin.d.ts +3 -0
- package/dist/commands/admin.d.ts.map +1 -1
- package/dist/commands/admin.js +136 -100
- package/dist/commands/admin.js.map +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuEpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,OA0J5C"}
|
package/dist/commands/admin.js
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
"use strict";
|
2
|
+
// Admin CLI commands have been removed. Start your new admin CLI implementation here.
|
2
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
5
|
};
|
@@ -6,10 +7,76 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
7
|
exports.adminCommand = adminCommand;
|
7
8
|
const chalk_1 = __importDefault(require("chalk"));
|
8
9
|
const child_process_1 = require("child_process");
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
11
|
+
const path_1 = __importDefault(require("path"));
|
12
|
+
const glob_1 = __importDefault(require("glob"));
|
13
|
+
// Utility to read .templateignore and filter files
|
14
|
+
function getTemplateFiles(templateDir) {
|
15
|
+
const ignorePath = path_1.default.join(templateDir, '.templateignore');
|
16
|
+
let ignorePatterns = [];
|
17
|
+
if (fs_1.default.existsSync(ignorePath)) {
|
18
|
+
ignorePatterns = fs_1.default.readFileSync(ignorePath, 'utf8')
|
19
|
+
.split('\n')
|
20
|
+
.map(line => line.trim())
|
21
|
+
.filter(line => line && !line.startsWith('#'));
|
22
|
+
}
|
23
|
+
// Get all files, then filter out ignored
|
24
|
+
const allFiles = glob_1.default.sync('**/*', { cwd: templateDir, dot: true, nodir: true });
|
25
|
+
if (ignorePatterns.length === 0)
|
26
|
+
return allFiles;
|
27
|
+
// Use glob to filter
|
28
|
+
const ignored = new Set(ignorePatterns.flatMap(pattern => glob_1.default.sync(pattern, { cwd: templateDir, dot: true, nodir: true })));
|
29
|
+
return allFiles.filter(f => !ignored.has(f));
|
30
|
+
}
|
31
|
+
// Example usage in a stub for processAdminTemplate
|
32
|
+
async function processAdminTemplate(projectName) {
|
33
|
+
const templateDir = path_1.default.resolve(__dirname, '../../../diagramers-admin');
|
34
|
+
const destDir = path_1.default.resolve(process.cwd(), projectName);
|
35
|
+
if (!fs_1.default.existsSync(destDir))
|
36
|
+
fs_1.default.mkdirSync(destDir, { recursive: true });
|
37
|
+
const files = getTemplateFiles(templateDir);
|
38
|
+
for (const relPath of files) {
|
39
|
+
const srcPath = path_1.default.join(templateDir, relPath);
|
40
|
+
const destPath = path_1.default.join(destDir, relPath);
|
41
|
+
const destFolder = path_1.default.dirname(destPath);
|
42
|
+
if (!fs_1.default.existsSync(destFolder))
|
43
|
+
fs_1.default.mkdirSync(destFolder, { recursive: true });
|
44
|
+
fs_1.default.copyFileSync(srcPath, destPath);
|
45
|
+
}
|
46
|
+
console.log(chalk_1.default.green(`✅ Admin template processed for '${projectName}' (ignored files excluded)`));
|
47
|
+
}
|
48
|
+
// Add this function for admin project initialization
|
49
|
+
async function initAdminProject(projectName, options) {
|
50
|
+
try {
|
51
|
+
const version = options.version || 'latest';
|
52
|
+
let command = `npx @diagramers/admin@${version} init ${projectName}`;
|
53
|
+
if (options.framework) {
|
54
|
+
command += ` --framework ${options.framework}`;
|
55
|
+
}
|
56
|
+
if (options.apiUrl) {
|
57
|
+
command += ` --api-url ${options.apiUrl}`;
|
58
|
+
}
|
59
|
+
if (options.port) {
|
60
|
+
command += ` --port ${options.port}`;
|
61
|
+
}
|
62
|
+
if (options.yes) {
|
63
|
+
command += ` --yes`;
|
64
|
+
}
|
65
|
+
console.log(chalk_1.default.gray(`Executing: ${command}`));
|
66
|
+
(0, child_process_1.execSync)(command, { stdio: 'inherit' });
|
67
|
+
console.log(chalk_1.default.green(`✅ Admin application '${projectName}' initialized successfully!`));
|
68
|
+
console.log(chalk_1.default.blue(`📁 Project created at: ${process.cwd()}/${projectName}`));
|
69
|
+
console.log(chalk_1.default.blue(`🚀 To start development: cd ${projectName} && npm start`));
|
70
|
+
}
|
71
|
+
catch (error) {
|
72
|
+
console.error(chalk_1.default.red(`❌ Failed to initialize admin project: ${error.message}`));
|
73
|
+
process.exit(1);
|
74
|
+
}
|
75
|
+
}
|
9
76
|
function adminCommand(program) {
|
10
77
|
const admin = program
|
11
78
|
.command('admin')
|
12
|
-
.description('Admin-specific commands for
|
79
|
+
.description('Admin-specific commands for Diagramers projects');
|
13
80
|
// Version command
|
14
81
|
admin
|
15
82
|
.command('version')
|
@@ -22,17 +89,16 @@ function adminCommand(program) {
|
|
22
89
|
try {
|
23
90
|
const versionInfo = (0, child_process_1.execSync)(`npm view @diagramers/admin@${options.check} version`, {
|
24
91
|
encoding: 'utf8',
|
25
|
-
timeout: 5000
|
92
|
+
timeout: 5000,
|
26
93
|
}).trim();
|
27
94
|
console.log(chalk_1.default.green(`✅ Version ${options.check} exists: ${versionInfo}`));
|
28
95
|
}
|
29
96
|
catch (error) {
|
30
97
|
console.log(chalk_1.default.red(`❌ Version ${options.check} not found`));
|
31
|
-
// Show available versions
|
32
98
|
try {
|
33
99
|
const versionsOutput = (0, child_process_1.execSync)('npm view @diagramers/admin versions --json', {
|
34
100
|
encoding: 'utf8',
|
35
|
-
timeout: 10000
|
101
|
+
timeout: 10000,
|
36
102
|
});
|
37
103
|
const versions = JSON.parse(versionsOutput);
|
38
104
|
const recentVersions = Array.isArray(versions) ? versions.slice(-5) : [versions];
|
@@ -47,23 +113,21 @@ function adminCommand(program) {
|
|
47
113
|
}
|
48
114
|
}
|
49
115
|
else {
|
50
|
-
// Show current version info
|
51
116
|
console.log(chalk_1.default.blue('📦 @diagramers/admin version information:'));
|
52
117
|
try {
|
53
118
|
const latestVersion = (0, child_process_1.execSync)('npm view @diagramers/admin version', {
|
54
119
|
encoding: 'utf8',
|
55
|
-
timeout: 5000
|
120
|
+
timeout: 5000,
|
56
121
|
}).trim();
|
57
122
|
console.log(chalk_1.default.green(`Latest: ${latestVersion}`));
|
58
123
|
}
|
59
124
|
catch (error) {
|
60
125
|
console.log(chalk_1.default.red('Could not fetch latest version'));
|
61
126
|
}
|
62
|
-
// Check local version if in a project
|
63
127
|
try {
|
64
128
|
const localVersion = (0, child_process_1.execSync)('npm list @diagramers/admin --depth=0', {
|
65
129
|
encoding: 'utf8',
|
66
|
-
timeout: 5000
|
130
|
+
timeout: 5000,
|
67
131
|
});
|
68
132
|
console.log(chalk_1.default.blue('Local project version:'));
|
69
133
|
console.log(localVersion);
|
@@ -78,121 +142,93 @@ function adminCommand(program) {
|
|
78
142
|
process.exit(1);
|
79
143
|
}
|
80
144
|
});
|
81
|
-
//
|
145
|
+
// Generate admin module
|
82
146
|
admin
|
83
|
-
.command('
|
84
|
-
.description('
|
85
|
-
.
|
86
|
-
.option('-v, --version <version>', 'Specific version to use')
|
87
|
-
.action(async (projectName, options) => {
|
147
|
+
.command('generate:module <name>')
|
148
|
+
.description('Generate a new admin module (feature folder/component/page)')
|
149
|
+
.action(async (name) => {
|
88
150
|
try {
|
89
|
-
console.log(chalk_1.default.blue(`🚀
|
90
|
-
|
91
|
-
|
92
|
-
command += `@${options.version}`;
|
93
|
-
}
|
94
|
-
command += ` init ${projectName}`;
|
95
|
-
if (options.port) {
|
96
|
-
command += ` --port ${options.port}`;
|
97
|
-
}
|
98
|
-
console.log(chalk_1.default.gray(`Executing: ${command}`));
|
99
|
-
(0, child_process_1.execSync)(command, { stdio: 'inherit' });
|
100
|
-
console.log(chalk_1.default.green(`✅ React admin application '${projectName}' initialized successfully!`));
|
101
|
-
console.log(chalk_1.default.blue(`📁 Project created at: ${process.cwd()}/${projectName}`));
|
102
|
-
console.log(chalk_1.default.blue(`🚀 To start development: cd ${projectName} && npm start`));
|
151
|
+
console.log(chalk_1.default.blue(`🚀 Generating admin module: ${name}`));
|
152
|
+
await generateAdminModule(name);
|
153
|
+
console.log(chalk_1.default.green(`✅ Admin module '${name}' generated successfully!`));
|
103
154
|
}
|
104
155
|
catch (error) {
|
105
|
-
console.error(chalk_1.default.red(`❌
|
156
|
+
console.error(chalk_1.default.red(`❌ Error generating admin module: ${error.message}`));
|
106
157
|
process.exit(1);
|
107
158
|
}
|
108
159
|
});
|
109
|
-
//
|
160
|
+
// Generate admin page
|
110
161
|
admin
|
111
|
-
.command('
|
112
|
-
.description('
|
113
|
-
.
|
114
|
-
.action(async (feature, options) => {
|
162
|
+
.command('generate:page <name>')
|
163
|
+
.description('Generate a new page in the admin dashboard')
|
164
|
+
.action(async (name) => {
|
115
165
|
try {
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
process.exit(1);
|
120
|
-
}
|
121
|
-
console.log(chalk_1.default.blue(`🔧 Extending project with ${feature} feature`));
|
122
|
-
let command = `npx @diagramers/admin extend ${feature}`;
|
123
|
-
if (options.project) {
|
124
|
-
// Change to project directory
|
125
|
-
process.chdir(options.project);
|
126
|
-
}
|
127
|
-
console.log(chalk_1.default.gray(`Executing: ${command}`));
|
128
|
-
(0, child_process_1.execSync)(command, { stdio: 'inherit' });
|
129
|
-
console.log(chalk_1.default.green(`✅ ${feature} feature added successfully!`));
|
166
|
+
console.log(chalk_1.default.blue(`🚀 Generating admin page: ${name}`));
|
167
|
+
await generateAdminPage(name);
|
168
|
+
console.log(chalk_1.default.green(`✅ Admin page '${name}' generated successfully!`));
|
130
169
|
}
|
131
170
|
catch (error) {
|
132
|
-
console.error(chalk_1.default.red(`❌
|
171
|
+
console.error(chalk_1.default.red(`❌ Error generating admin page: ${error.message}`));
|
133
172
|
process.exit(1);
|
134
173
|
}
|
135
174
|
});
|
136
|
-
//
|
175
|
+
// Generate admin component
|
137
176
|
admin
|
138
|
-
.command('
|
139
|
-
.description('
|
140
|
-
.action(() => {
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
console.log(chalk_1.default.yellow('\n📊 dashboard'));
|
151
|
-
console.log(chalk_1.default.gray(' - Analytics dashboard components'));
|
152
|
-
console.log(chalk_1.default.gray(' - Charts and statistics'));
|
153
|
-
console.log(chalk_1.default.gray(' - Redux dashboard slice for data management'));
|
154
|
-
console.log(chalk_1.default.blue('\n📝 Usage:'));
|
155
|
-
console.log(chalk_1.default.gray(' diagramers admin extend auth'));
|
156
|
-
console.log(chalk_1.default.gray(' diagramers admin extend users'));
|
157
|
-
console.log(chalk_1.default.gray(' diagramers admin extend dashboard'));
|
177
|
+
.command('generate:component <name>')
|
178
|
+
.description('Generate a new reusable component in the admin project')
|
179
|
+
.action(async (name) => {
|
180
|
+
try {
|
181
|
+
console.log(chalk_1.default.blue(`🚀 Generating admin component: ${name}`));
|
182
|
+
await generateAdminComponent(name);
|
183
|
+
console.log(chalk_1.default.green(`✅ Admin component '${name}' generated successfully!`));
|
184
|
+
}
|
185
|
+
catch (error) {
|
186
|
+
console.error(chalk_1.default.red(`❌ Error generating admin component: ${error.message}`));
|
187
|
+
process.exit(1);
|
188
|
+
}
|
158
189
|
});
|
159
|
-
//
|
190
|
+
// Generate admin service
|
160
191
|
admin
|
161
|
-
.command('
|
162
|
-
.description('
|
163
|
-
.
|
164
|
-
.option('-p, --project <path>', 'Project path (defaults to current directory)')
|
165
|
-
.action(async (options) => {
|
192
|
+
.command('generate:service <name>')
|
193
|
+
.description('Generate a new service (API integration or business logic) in the admin project')
|
194
|
+
.action(async (name) => {
|
166
195
|
try {
|
167
|
-
console.log(chalk_1.default.blue(
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
}
|
183
|
-
|
184
|
-
|
185
|
-
updateCommand = `npm install @diagramers/admin@${options.version}`;
|
186
|
-
}
|
187
|
-
console.log(chalk_1.default.gray(`Executing: ${updateCommand}`));
|
188
|
-
(0, child_process_1.execSync)(updateCommand, { stdio: 'inherit' });
|
189
|
-
console.log(chalk_1.default.green('✅ Admin project updated successfully!'));
|
196
|
+
console.log(chalk_1.default.blue(`🚀 Generating admin service: ${name}`));
|
197
|
+
await generateAdminService(name);
|
198
|
+
console.log(chalk_1.default.green(`✅ Admin service '${name}' generated successfully!`));
|
199
|
+
}
|
200
|
+
catch (error) {
|
201
|
+
console.error(chalk_1.default.red(`❌ Error generating admin service: ${error.message}`));
|
202
|
+
process.exit(1);
|
203
|
+
}
|
204
|
+
});
|
205
|
+
// Process admin template
|
206
|
+
admin
|
207
|
+
.command('process:template <projectName>')
|
208
|
+
.description('Process the admin template for a new project (branding, API URL, etc.)')
|
209
|
+
.action(async (projectName) => {
|
210
|
+
try {
|
211
|
+
console.log(chalk_1.default.blue(`🔧 Processing admin template for project: ${projectName}`));
|
212
|
+
await processAdminTemplate(projectName);
|
213
|
+
console.log(chalk_1.default.green(`✅ Admin template processed for '${projectName}'!`));
|
190
214
|
}
|
191
215
|
catch (error) {
|
192
|
-
console.error(chalk_1.default.red(`❌
|
216
|
+
console.error(chalk_1.default.red(`❌ Error processing admin template: ${error.message}`));
|
193
217
|
process.exit(1);
|
194
218
|
}
|
195
219
|
});
|
220
|
+
// Init command
|
221
|
+
admin
|
222
|
+
.command('init <project-name>')
|
223
|
+
.description('Initialize a new admin application (uses latest @diagramers/admin by default)')
|
224
|
+
.option('-f, --framework <framework>', 'Framework to use (react, vue, angular)', 'react')
|
225
|
+
.option('-a, --api-url <url>', 'API URL for backend integration', 'http://localhost:3000')
|
226
|
+
.option('-p, --port <port>', 'Port number for development server', '3000')
|
227
|
+
.option('-v, --version <version>', 'Specific version to use')
|
228
|
+
.option('-y, --yes', 'Skip prompts and use defaults')
|
229
|
+
.action(async (projectName, options) => {
|
230
|
+
await initAdminProject(projectName, options);
|
231
|
+
});
|
196
232
|
return admin;
|
197
233
|
}
|
198
234
|
//# sourceMappingURL=admin.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":";;;;;
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"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"}
|