@diagramers/cli 1.1.5 → 1.1.7
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 +42 -4
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +12 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +4 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/config/template-config.js +1 -1
- package/dist/config/template-config.js.map +1 -1
- package/dist/index.js +110 -39
- package/dist/index.js.map +1 -1
- package/dist/services/api-generator.js +139 -47
- package/dist/services/api-generator.js.map +1 -1
- package/dist/services/project-extender.d.ts.map +1 -1
- package/dist/services/project-extender.js +3 -31
- package/dist/services/project-extender.js.map +1 -1
- package/dist/services/project-initializer.d.ts +1 -0
- package/dist/services/project-initializer.d.ts.map +1 -1
- package/dist/services/project-initializer.js +5 -4
- package/dist/services/project-initializer.js.map +1 -1
- package/dist/services/project-updater.d.ts +3 -0
- package/dist/services/project-updater.d.ts.map +1 -1
- package/dist/services/project-updater.js +171 -28
- package/dist/services/project-updater.js.map +1 -1
- package/dist/services/template-processor.d.ts.map +1 -1
- package/dist/services/template-processor.js +23 -2
- package/dist/services/template-processor.js.map +1 -1
- package/dist/services/template-updater.d.ts +1 -0
- package/dist/services/template-updater.d.ts.map +1 -1
- package/dist/services/template-updater.js +8 -5
- package/dist/services/template-updater.js.map +1 -1
- package/package.json +1 -1
@@ -53,13 +53,14 @@ class ProjectInitializer {
|
|
53
53
|
'webpack.config.js',
|
54
54
|
'main.ts',
|
55
55
|
'certs/**/*',
|
56
|
-
'env.example'
|
56
|
+
'.env.example'
|
57
57
|
];
|
58
58
|
// No need for template path as we'll use npm package
|
59
59
|
}
|
60
60
|
async initialize(projectName, options) {
|
61
61
|
const projectPath = path.resolve(process.cwd(), projectName);
|
62
62
|
const templateType = options.template || 'api';
|
63
|
+
const targetVersion = options.version || 'latest';
|
63
64
|
// Check if project directory already exists
|
64
65
|
if (await fs.pathExists(projectPath)) {
|
65
66
|
throw new Error(`Project directory ${projectName} already exists`);
|
@@ -67,7 +68,7 @@ class ProjectInitializer {
|
|
67
68
|
// Create project directory
|
68
69
|
await fs.ensureDir(projectPath);
|
69
70
|
// Install the appropriate template package
|
70
|
-
await this.installTemplatePackage(projectPath, templateType);
|
71
|
+
await this.installTemplatePackage(projectPath, templateType, targetVersion);
|
71
72
|
// Copy template files from the installed package
|
72
73
|
await this.copyTemplateFiles(projectPath, templateType);
|
73
74
|
// Update package.json with project name
|
@@ -84,7 +85,7 @@ class ProjectInitializer {
|
|
84
85
|
await this.cleanup(projectPath);
|
85
86
|
console.log(chalk_1.default.green(`✅ Project structure created successfully`));
|
86
87
|
}
|
87
|
-
async installTemplatePackage(projectPath, templateType) {
|
88
|
+
async installTemplatePackage(projectPath, templateType, targetVersion) {
|
88
89
|
const packageName = `@diagramers/${templateType}`;
|
89
90
|
console.log(chalk_1.default.blue(`📦 Installing ${packageName} template...`));
|
90
91
|
try {
|
@@ -96,7 +97,7 @@ class ProjectInitializer {
|
|
96
97
|
};
|
97
98
|
await fs.writeFile(path.join(projectPath, 'package.json'), JSON.stringify(tempPackageJson, null, 2));
|
98
99
|
// Install the template package temporarily
|
99
|
-
(0, child_process_1.execSync)(`npm install ${packageName} --no-save`, {
|
100
|
+
(0, child_process_1.execSync)(`npm install ${packageName}@${targetVersion} --no-save`, {
|
100
101
|
cwd: projectPath,
|
101
102
|
stdio: 'inherit'
|
102
103
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"project-initializer.js","sourceRoot":"","sources":["../../src/services/project-initializer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAC7B,2CAA6B;AAC7B,kDAA0B;AAC1B,iDAAyC;
|
1
|
+
{"version":3,"file":"project-initializer.js","sourceRoot":"","sources":["../../src/services/project-initializer.ts"],"names":[],"mappings":"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"}
|
@@ -8,8 +8,11 @@ export declare class ProjectUpdater {
|
|
8
8
|
update(options: UpdateOptions): Promise<void>;
|
9
9
|
private isValidProject;
|
10
10
|
private createBackup;
|
11
|
+
private downloadLatestTemplate;
|
11
12
|
private getUpdateableFiles;
|
12
13
|
private checkConflicts;
|
13
14
|
private performUpdate;
|
15
|
+
private updatePackageJson;
|
16
|
+
private cleanup;
|
14
17
|
}
|
15
18
|
//# sourceMappingURL=project-updater.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"project-updater.d.ts","sourceRoot":"","sources":["../../src/services/project-updater.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"project-updater.d.ts","sourceRoot":"","sources":["../../src/services/project-updater.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,kBAAkB,CAAS;;IAM7B,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAqCrC,cAAc;YA0Bd,YAAY;YAiBZ,sBAAsB;YA4BtB,kBAAkB;YA8ClB,cAAc;YA4Bd,aAAa;YA8Bb,iBAAiB;YAwCjB,OAAO;CAWtB"}
|
@@ -39,7 +39,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.ProjectUpdater = void 0;
|
40
40
|
const fs = __importStar(require("fs-extra"));
|
41
41
|
const path = __importStar(require("path"));
|
42
|
+
const glob = __importStar(require("glob"));
|
42
43
|
const chalk_1 = __importDefault(require("chalk"));
|
44
|
+
const child_process_1 = require("child_process");
|
43
45
|
class ProjectUpdater {
|
44
46
|
constructor() {
|
45
47
|
this.currentProjectPath = process.cwd();
|
@@ -53,6 +55,9 @@ class ProjectUpdater {
|
|
53
55
|
if (options.backup) {
|
54
56
|
await this.createBackup();
|
55
57
|
}
|
58
|
+
// Download latest template
|
59
|
+
console.log(chalk_1.default.blue('📦 Downloading latest template...'));
|
60
|
+
await this.downloadLatestTemplate();
|
56
61
|
// Get list of files that can be updated
|
57
62
|
const updateableFiles = await this.getUpdateableFiles();
|
58
63
|
// Check for conflicts
|
@@ -64,17 +69,32 @@ class ProjectUpdater {
|
|
64
69
|
throw new Error('Update aborted due to conflicts');
|
65
70
|
}
|
66
71
|
// Perform the update
|
67
|
-
await this.performUpdate(updateableFiles);
|
72
|
+
await this.performUpdate(updateableFiles, options.force || false);
|
73
|
+
// Clean up temporary files
|
74
|
+
await this.cleanup();
|
68
75
|
console.log(chalk_1.default.green('✅ Project updated successfully!'));
|
69
76
|
}
|
70
77
|
async isValidProject() {
|
71
78
|
const packageJsonPath = path.join(this.currentProjectPath, 'package.json');
|
72
|
-
|
73
|
-
const altMainTsPath = path.join(this.currentProjectPath, 'main.ts');
|
74
|
-
// Check for package.json and either src/main.ts or main.ts
|
79
|
+
// Check for package.json and diagramers project structure
|
75
80
|
const hasPackageJson = await fs.pathExists(packageJsonPath);
|
76
|
-
|
77
|
-
|
81
|
+
if (!hasPackageJson) {
|
82
|
+
return false;
|
83
|
+
}
|
84
|
+
// Check if it's a diagramers project
|
85
|
+
try {
|
86
|
+
const packageJson = await fs.readJson(packageJsonPath);
|
87
|
+
const hasApiStructure = await fs.pathExists(path.join(this.currentProjectPath, 'src', 'modules')) &&
|
88
|
+
await fs.pathExists(path.join(this.currentProjectPath, 'src', 'core')) &&
|
89
|
+
await fs.pathExists(path.join(this.currentProjectPath, 'src', 'shared'));
|
90
|
+
return hasApiStructure ||
|
91
|
+
(packageJson.name && packageJson.name.includes('diagramers')) ||
|
92
|
+
(packageJson.description && packageJson.description.includes('diagramers')) ||
|
93
|
+
(packageJson.description && packageJson.description.includes('API project'));
|
94
|
+
}
|
95
|
+
catch (error) {
|
96
|
+
return false;
|
97
|
+
}
|
78
98
|
}
|
79
99
|
async createBackup() {
|
80
100
|
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
@@ -84,48 +104,171 @@ class ProjectUpdater {
|
|
84
104
|
const relativePath = path.relative(this.currentProjectPath, src);
|
85
105
|
return !relativePath.startsWith('node_modules') &&
|
86
106
|
!relativePath.startsWith('.git') &&
|
87
|
-
!relativePath.startsWith('backup-')
|
107
|
+
!relativePath.startsWith('backup-') &&
|
108
|
+
!relativePath.startsWith('temp-update-');
|
88
109
|
}
|
89
110
|
});
|
90
111
|
console.log(chalk_1.default.blue(`📦 Backup created at: ${backupPath}`));
|
91
112
|
}
|
113
|
+
async downloadLatestTemplate() {
|
114
|
+
const tempDir = path.join(this.currentProjectPath, 'temp-update-download');
|
115
|
+
try {
|
116
|
+
// Create temporary directory
|
117
|
+
await fs.ensureDir(tempDir);
|
118
|
+
// Create temporary package.json
|
119
|
+
const tempPackageJson = {
|
120
|
+
name: 'temp-update',
|
121
|
+
version: '1.0.0',
|
122
|
+
private: true
|
123
|
+
};
|
124
|
+
await fs.writeJson(path.join(tempDir, 'package.json'), tempPackageJson, { spaces: 2 });
|
125
|
+
// Install the latest API template
|
126
|
+
console.log(chalk_1.default.blue(' Installing @diagramers/api...'));
|
127
|
+
(0, child_process_1.execSync)('npm install @diagramers/api --no-save', {
|
128
|
+
cwd: tempDir,
|
129
|
+
stdio: 'inherit'
|
130
|
+
});
|
131
|
+
}
|
132
|
+
catch (error) {
|
133
|
+
throw new Error(`Failed to download template: ${error.message}`);
|
134
|
+
}
|
135
|
+
}
|
92
136
|
async getUpdateableFiles() {
|
93
|
-
//
|
137
|
+
// Files that can be safely updated from the template
|
94
138
|
const updateableFiles = [
|
95
|
-
'src/
|
96
|
-
'src/
|
97
|
-
'src/
|
98
|
-
'src/
|
99
|
-
'src/
|
100
|
-
'src/
|
101
|
-
'src/
|
102
|
-
'src/server/
|
139
|
+
'src/core/app.ts',
|
140
|
+
'src/core/config/index.ts',
|
141
|
+
'src/core/config/interfaces.ts',
|
142
|
+
'src/core/database/connection.ts',
|
143
|
+
'src/core/database/seeder.ts',
|
144
|
+
'src/core/logging/index.ts',
|
145
|
+
'src/core/middleware/certificate-middleware.ts',
|
146
|
+
'src/core/server/manager.ts',
|
147
|
+
'src/core/utils/',
|
148
|
+
'src/shared/constants/enums.ts',
|
149
|
+
'src/shared/helpers/',
|
150
|
+
'src/shared/types/base-entity.ts',
|
151
|
+
'src/shared/types/common.ts',
|
152
|
+
'src/shared/types/database-adapter.ts',
|
153
|
+
'src/shared/types/result.ts',
|
154
|
+
'src/shared/utils/handle-response.ts',
|
155
|
+
'src/shared/utils/mongodb-adapter.ts',
|
156
|
+
'src/plugins/base/',
|
157
|
+
'src/plugins/registry/',
|
103
158
|
'webpack.config.js',
|
104
|
-
'tsconfig.json'
|
159
|
+
'tsconfig.json',
|
160
|
+
'.env.example'
|
105
161
|
];
|
106
|
-
|
162
|
+
const existingFiles = [];
|
163
|
+
for (const file of updateableFiles) {
|
164
|
+
const fullPath = path.join(this.currentProjectPath, file);
|
165
|
+
if (await fs.pathExists(fullPath)) {
|
166
|
+
const stat = await fs.stat(fullPath);
|
167
|
+
if (stat.isDirectory()) {
|
168
|
+
// Add all files in the directory
|
169
|
+
const files = glob.sync('**/*', { cwd: fullPath, nodir: true });
|
170
|
+
existingFiles.push(...files.map(f => path.join(file, f)));
|
171
|
+
}
|
172
|
+
else {
|
173
|
+
existingFiles.push(file);
|
174
|
+
}
|
175
|
+
}
|
176
|
+
}
|
177
|
+
return existingFiles;
|
107
178
|
}
|
108
179
|
async checkConflicts(files) {
|
109
180
|
const conflicts = [];
|
181
|
+
const tempDir = path.join(this.currentProjectPath, 'temp-update-download');
|
182
|
+
const templatePath = path.join(tempDir, 'node_modules', '@diagramers', 'api');
|
110
183
|
for (const file of files) {
|
111
184
|
const projectPath = path.join(this.currentProjectPath, file);
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
185
|
+
const templateFilePath = path.join(templatePath, file);
|
186
|
+
if (await fs.pathExists(projectPath) && await fs.pathExists(templateFilePath)) {
|
187
|
+
try {
|
188
|
+
const projectContent = await fs.readFile(projectPath, 'utf8');
|
189
|
+
const templateContent = await fs.readFile(templateFilePath, 'utf8');
|
190
|
+
// Simple content comparison - in a real implementation, you'd use a more sophisticated diff
|
191
|
+
if (projectContent !== templateContent) {
|
192
|
+
conflicts.push(file);
|
193
|
+
}
|
194
|
+
}
|
195
|
+
catch (error) {
|
196
|
+
// If we can't read the files, consider it a conflict
|
197
|
+
conflicts.push(file);
|
198
|
+
}
|
116
199
|
}
|
117
200
|
}
|
118
201
|
return conflicts;
|
119
202
|
}
|
120
|
-
async performUpdate(files) {
|
203
|
+
async performUpdate(files, force) {
|
121
204
|
console.log(chalk_1.default.blue('📝 Updating project files...'));
|
122
|
-
|
123
|
-
|
205
|
+
const tempDir = path.join(this.currentProjectPath, 'temp-update-download');
|
206
|
+
const templatePath = path.join(tempDir, 'node_modules', '@diagramers', 'api');
|
207
|
+
let updatedCount = 0;
|
124
208
|
for (const file of files) {
|
125
|
-
|
209
|
+
const projectPath = path.join(this.currentProjectPath, file);
|
210
|
+
const templateFilePath = path.join(templatePath, file);
|
211
|
+
if (await fs.pathExists(templateFilePath)) {
|
212
|
+
try {
|
213
|
+
// Copy file from template to project
|
214
|
+
await fs.copy(templateFilePath, projectPath);
|
215
|
+
console.log(chalk_1.default.green(`✅ Updated: ${file}`));
|
216
|
+
updatedCount++;
|
217
|
+
}
|
218
|
+
catch (error) {
|
219
|
+
console.log(chalk_1.default.yellow(`⚠️ Could not update: ${file}`));
|
220
|
+
}
|
221
|
+
}
|
222
|
+
}
|
223
|
+
console.log(chalk_1.default.blue(`📊 Updated ${updatedCount} files`));
|
224
|
+
// Update package.json dependencies
|
225
|
+
await this.updatePackageJson(templatePath);
|
226
|
+
}
|
227
|
+
async updatePackageJson(templatePath) {
|
228
|
+
try {
|
229
|
+
const projectPackageJsonPath = path.join(this.currentProjectPath, 'package.json');
|
230
|
+
const templatePackageJsonPath = path.join(templatePath, 'package.json');
|
231
|
+
if (await fs.pathExists(templatePackageJsonPath)) {
|
232
|
+
const projectPackageJson = await fs.readJson(projectPackageJsonPath);
|
233
|
+
const templatePackageJson = await fs.readJson(templatePackageJsonPath);
|
234
|
+
// Update dependencies and devDependencies
|
235
|
+
if (templatePackageJson.dependencies) {
|
236
|
+
projectPackageJson.dependencies = {
|
237
|
+
...projectPackageJson.dependencies,
|
238
|
+
...templatePackageJson.dependencies
|
239
|
+
};
|
240
|
+
}
|
241
|
+
if (templatePackageJson.devDependencies) {
|
242
|
+
projectPackageJson.devDependencies = {
|
243
|
+
...projectPackageJson.devDependencies,
|
244
|
+
...templatePackageJson.devDependencies
|
245
|
+
};
|
246
|
+
}
|
247
|
+
// Update scripts
|
248
|
+
if (templatePackageJson.scripts) {
|
249
|
+
projectPackageJson.scripts = {
|
250
|
+
...projectPackageJson.scripts,
|
251
|
+
...templatePackageJson.scripts
|
252
|
+
};
|
253
|
+
}
|
254
|
+
await fs.writeJson(projectPackageJsonPath, projectPackageJson, { spaces: 2 });
|
255
|
+
console.log(chalk_1.default.green('✅ Updated package.json'));
|
256
|
+
}
|
257
|
+
}
|
258
|
+
catch (error) {
|
259
|
+
console.log(chalk_1.default.yellow('⚠️ Could not update package.json'));
|
260
|
+
}
|
261
|
+
}
|
262
|
+
async cleanup() {
|
263
|
+
const tempDir = path.join(this.currentProjectPath, 'temp-update-download');
|
264
|
+
try {
|
265
|
+
if (await fs.pathExists(tempDir)) {
|
266
|
+
await fs.remove(tempDir);
|
267
|
+
}
|
268
|
+
}
|
269
|
+
catch (error) {
|
270
|
+
console.log(chalk_1.default.yellow('⚠️ Could not clean up temporary files'));
|
126
271
|
}
|
127
|
-
console.log(chalk_1.default.yellow('⚠️ Update mechanism is being improved.'));
|
128
|
-
console.log(chalk_1.default.yellow(' For now, manual updates are recommended.'));
|
129
272
|
}
|
130
273
|
}
|
131
274
|
exports.ProjectUpdater = ProjectUpdater;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"project-updater.js","sourceRoot":"","sources":["../../src/services/project-updater.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;
|
1
|
+
{"version":3,"file":"project-updater.js","sourceRoot":"","sources":["../../src/services/project-updater.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"template-processor.d.ts","sourceRoot":"","sources":["../../src/services/template-processor.ts"],"names":[],"mappings":"AAGA,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
1
|
+
{"version":3,"file":"template-processor.d.ts","sourceRoot":"","sources":["../../src/services/template-processor.ts"],"names":[],"mappings":"AAGA,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoJxE"}
|
@@ -106,8 +106,29 @@ async function processTemplate(projectName) {
|
|
106
106
|
}
|
107
107
|
// Create .env file template
|
108
108
|
console.log('📄 Creating .env template...');
|
109
|
-
|
110
|
-
|
109
|
+
// Try to copy the full .env.example from the API project template
|
110
|
+
try {
|
111
|
+
// First, try to read from the installed API package
|
112
|
+
const apiPackagePath = path.join(currentDir, 'node_modules', '@diagramers', 'api', '.env.example');
|
113
|
+
let envContent = '';
|
114
|
+
if (fs.existsSync(apiPackagePath)) {
|
115
|
+
envContent = fs.readFileSync(apiPackagePath, 'utf8');
|
116
|
+
}
|
117
|
+
else {
|
118
|
+
// Fallback to generating a comprehensive template
|
119
|
+
envContent = generateEnvTemplate(dbName);
|
120
|
+
}
|
121
|
+
// Update database names in the template
|
122
|
+
envContent = envContent.replace(/DATABASE_URL=mongodb:\/\/localhost:27017\/[^,\s\n]+/g, `DATABASE_URL=mongodb://localhost:27017/${dbName}`);
|
123
|
+
envContent = envContent.replace(/DATABASE_NAME=[^,\s\n]+/g, `DATABASE_NAME=${dbName}`);
|
124
|
+
// Write the updated template
|
125
|
+
fs.writeFileSync(path.join(currentDir, '.env.example'), envContent);
|
126
|
+
}
|
127
|
+
catch (error) {
|
128
|
+
console.log(' ⚠️ Warning: Could not copy full .env.example, using minimal template');
|
129
|
+
const envTemplate = generateEnvTemplate(dbName);
|
130
|
+
fs.writeFileSync(path.join(currentDir, '.env.example'), envTemplate);
|
131
|
+
}
|
111
132
|
console.log('✅ Template processing completed!');
|
112
133
|
console.log('');
|
113
134
|
console.log('📋 Summary:');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"template-processor.js","sourceRoot":"","sources":["../../src/services/template-processor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,
|
1
|
+
{"version":3,"file":"template-processor.js","sourceRoot":"","sources":["../../src/services/template-processor.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"template-updater.d.ts","sourceRoot":"","sources":["../../src/services/template-updater.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
1
|
+
{"version":3,"file":"template-updater.d.ts","sourceRoot":"","sources":["../../src/services/template-updater.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAS;;IAO3B,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyC7C,cAAc;YAOd,YAAY;YA8BZ,gBAAgB;YAchB,eAAe;YAiCf,kBAAkB;YAoBlB,cAAc;YAqBd,aAAa;YAeb,OAAO;CAKtB"}
|
@@ -59,7 +59,7 @@ class TemplateUpdater {
|
|
59
59
|
}
|
60
60
|
try {
|
61
61
|
// Download latest template
|
62
|
-
await this.downloadTemplate(options.template || '@diagramers/api');
|
62
|
+
await this.downloadTemplate(options.template || '@diagramers/api', options.version);
|
63
63
|
// Get list of files that can be updated
|
64
64
|
const updateableFiles = await this.getUpdateableFiles();
|
65
65
|
// Check for conflicts
|
@@ -109,12 +109,15 @@ class TemplateUpdater {
|
|
109
109
|
}
|
110
110
|
console.log(chalk_1.default.blue(`📦 Backup created at: ${backupPath}`));
|
111
111
|
}
|
112
|
-
async downloadTemplate(templatePackage) {
|
113
|
-
|
112
|
+
async downloadTemplate(templatePackage, targetVersion) {
|
113
|
+
const packageWithVersion = targetVersion && targetVersion !== 'latest'
|
114
|
+
? `${templatePackage}@${targetVersion}`
|
115
|
+
: templatePackage;
|
116
|
+
console.log(chalk_1.default.blue(`📦 Downloading latest template: ${packageWithVersion}`));
|
114
117
|
// Create temporary directory
|
115
118
|
await fs.ensureDir(this.tempTemplatePath);
|
116
119
|
// Only download from npm registry
|
117
|
-
await this.downloadFromNpm(
|
120
|
+
await this.downloadFromNpm(packageWithVersion);
|
118
121
|
}
|
119
122
|
async downloadFromNpm(templatePackage) {
|
120
123
|
const npmCachePath = path.join(this.tempTemplatePath, 'node_modules', templatePackage);
|
@@ -150,7 +153,7 @@ class TemplateUpdater {
|
|
150
153
|
'src/server/**/*',
|
151
154
|
'webpack.config.js',
|
152
155
|
'tsconfig.json',
|
153
|
-
'env.example'
|
156
|
+
'.env.example'
|
154
157
|
];
|
155
158
|
const files = [];
|
156
159
|
for (const pattern of updateablePatterns) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"template-updater.js","sourceRoot":"","sources":["../../src/services/template-updater.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAC7B,2CAA6B;AAC7B,kDAA0B;AAC1B,iDAAyC;
|
1
|
+
{"version":3,"file":"template-updater.js","sourceRoot":"","sources":["../../src/services/template-updater.ts"],"names":[],"mappings":"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"}
|