@diagramers/cli 1.1.14 → 1.1.16
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 +61 -6
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +3 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/services/template-updater.d.ts +3 -0
- package/dist/services/template-updater.d.ts.map +1 -1
- package/dist/services/template-updater.js +92 -4
- package/dist/services/template-updater.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
@@ -85,14 +85,17 @@ diagramers init admin my-admin-dashboard -v 1.1.16
|
|
85
85
|
```
|
86
86
|
|
87
87
|
#### Update Project
|
88
|
+
|
89
|
+
Update an existing project with the latest template features:
|
90
|
+
|
88
91
|
```bash
|
89
92
|
diagramers update [options]
|
90
93
|
```
|
91
94
|
|
92
95
|
**Options:**
|
93
|
-
- `-v, --version <version>` - Specific version to update to (e.g., 1.1.
|
94
|
-
-
|
95
|
-
-
|
96
|
+
- `-v, --version <version>` - Specific version to update to (e.g., 1.1.27, latest)
|
97
|
+
- `-f, --force` - Force update even if conflicts detected
|
98
|
+
- `-b, --backup` - Create backup before updating
|
96
99
|
|
97
100
|
**Examples:**
|
98
101
|
```bash
|
@@ -100,10 +103,62 @@ diagramers update [options]
|
|
100
103
|
diagramers update
|
101
104
|
|
102
105
|
# Update to specific version
|
103
|
-
diagramers update -v 1.1.
|
106
|
+
diagramers update -v 1.1.27
|
104
107
|
|
105
|
-
# Force update
|
106
|
-
diagramers update
|
108
|
+
# Force update (overwrite conflicts)
|
109
|
+
diagramers update --force
|
110
|
+
|
111
|
+
# Create backup before updating
|
112
|
+
diagramers update --backup
|
113
|
+
|
114
|
+
# Combine options
|
115
|
+
diagramers update -v 1.1.27 --backup --force
|
116
|
+
```
|
117
|
+
|
118
|
+
#### What Gets Updated
|
119
|
+
|
120
|
+
The update command intelligently updates the following:
|
121
|
+
|
122
|
+
- **Core Files**: `src/core/`, `src/shared/`, `src/plugins/`
|
123
|
+
- **Configuration**: `config/` folder, `webpack.config.js`, `tsconfig.json`
|
124
|
+
- **Scripts**: `scripts/` folder with utility scripts
|
125
|
+
- **Documentation**: `README.md`, `DEVELOPER_GUIDE.md`
|
126
|
+
- **Environment**: `.env.example` template
|
127
|
+
- **Package.json**: Updates dependencies and scripts while preserving project-specific fields
|
128
|
+
|
129
|
+
#### Version Management
|
130
|
+
|
131
|
+
- **Automatic Version Sync**: Project version is updated to match template version
|
132
|
+
- **Project Preservation**: Project-specific fields (name, description, repository, etc.) are preserved
|
133
|
+
- **Conflict Detection**: Detects conflicts and allows force overwrite
|
134
|
+
- **Backup Support**: Creates timestamped backups before updating
|
135
|
+
|
136
|
+
#### Update Process
|
137
|
+
|
138
|
+
1. **Validation**: Checks if current directory is a valid project
|
139
|
+
2. **Version Check**: Shows current project version vs target version
|
140
|
+
3. **Backup**: Creates backup if requested
|
141
|
+
4. **Download**: Downloads latest template from npm
|
142
|
+
5. **Conflict Check**: Identifies files with conflicts
|
143
|
+
6. **Update**: Updates files while preserving project-specific settings
|
144
|
+
7. **Cleanup**: Removes temporary files
|
145
|
+
|
146
|
+
#### Example Output
|
147
|
+
|
148
|
+
```bash
|
149
|
+
🔄 Checking for template updates...
|
150
|
+
📦 Current project version: 1.1.26
|
151
|
+
📌 Updating to latest version
|
152
|
+
📦 Downloading latest template: @diagramers/api
|
153
|
+
✅ Template downloaded from npm: @diagramers/api
|
154
|
+
📝 Updating project files...
|
155
|
+
✅ Updated: src/core/config/index.ts
|
156
|
+
✅ Updated: scripts/env-debug.js
|
157
|
+
✅ Updated: package.json (version: 1.1.27)
|
158
|
+
✅ Project updated successfully!
|
159
|
+
📦 Template version: 1.1.27
|
160
|
+
📝 Review the changes and test your application
|
161
|
+
💡 Run "npm install" to update dependencies if needed
|
107
162
|
```
|
108
163
|
|
109
164
|
#### List Available Versions
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,QA2B7C"}
|
package/dist/commands/update.js
CHANGED
@@ -19,6 +19,9 @@ function updateCommand(program) {
|
|
19
19
|
if (options.version && options.version !== 'latest') {
|
20
20
|
console.log(chalk_1.default.yellow(`📌 Updating to version: ${options.version}`));
|
21
21
|
}
|
22
|
+
else {
|
23
|
+
console.log(chalk_1.default.yellow('📌 Updating to latest version'));
|
24
|
+
}
|
22
25
|
const updater = new template_updater_1.TemplateUpdater();
|
23
26
|
await updater.update(options);
|
24
27
|
console.log(chalk_1.default.green('✅ Project updated successfully!'));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":";;;;;AAIA,
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":";;;;;AAIA,sCA2BC;AA9BD,mEAA+D;AAC/D,kDAA0B;AAE1B,SAAgB,aAAa,CAAC,OAAgB;IAC5C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,yBAAyB,EAAE,sDAAsD,EAAE,QAAQ,CAAC;SACnG,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;SAChE,MAAM,CAAC,cAAc,EAAE,+BAA+B,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAE/D,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,2BAA2B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,kCAAe,EAAE,CAAC;YACtC,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
@@ -16,6 +16,9 @@ export declare class TemplateUpdater {
|
|
16
16
|
private getUpdateableFiles;
|
17
17
|
private checkConflicts;
|
18
18
|
private performUpdate;
|
19
|
+
private updatePackageJson;
|
20
|
+
private getCurrentProjectVersion;
|
21
|
+
private getTemplateVersion;
|
19
22
|
private cleanup;
|
20
23
|
}
|
21
24
|
//# sourceMappingURL=template-updater.d.ts.map
|
@@ -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;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;
|
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;YAkD7C,cAAc;YAOd,YAAY;YAkCZ,gBAAgB;YAchB,eAAe;YAiCf,kBAAkB;YA4BlB,cAAc;YAqBd,aAAa;YAoBb,iBAAiB;YA4CjB,wBAAwB;YAaxB,kBAAkB;YAalB,OAAO;CAKtB"}
|
@@ -53,6 +53,9 @@ class TemplateUpdater {
|
|
53
53
|
throw new Error('Not a valid project directory. Please run this command from your project root.');
|
54
54
|
}
|
55
55
|
console.log(chalk_1.default.blue('🔄 Checking for template updates...'));
|
56
|
+
// Show current project version
|
57
|
+
const currentVersion = await this.getCurrentProjectVersion();
|
58
|
+
console.log(chalk_1.default.blue(`📦 Current project version: ${currentVersion}`));
|
56
59
|
// Create backup if requested
|
57
60
|
if (options.backup) {
|
58
61
|
await this.createBackup();
|
@@ -70,10 +73,14 @@ class TemplateUpdater {
|
|
70
73
|
console.log(chalk_1.default.yellow('Use --force to overwrite these files'));
|
71
74
|
throw new Error('Update aborted due to conflicts');
|
72
75
|
}
|
76
|
+
// Get template version for display
|
77
|
+
const templateVersion = await this.getTemplateVersion();
|
73
78
|
// Perform the update
|
74
79
|
await this.performUpdate(updateableFiles, options.force);
|
75
80
|
console.log(chalk_1.default.green('✅ Project updated successfully!'));
|
81
|
+
console.log(chalk_1.default.blue(`📦 Template version: ${templateVersion}`));
|
76
82
|
console.log(chalk_1.default.yellow('📝 Review the changes and test your application'));
|
83
|
+
console.log(chalk_1.default.yellow('💡 Run "npm install" to update dependencies if needed'));
|
77
84
|
}
|
78
85
|
finally {
|
79
86
|
// Clean up temporary template
|
@@ -93,11 +100,15 @@ class TemplateUpdater {
|
|
93
100
|
// Copy files individually to avoid the subdirectory issue
|
94
101
|
const filesToBackup = [
|
95
102
|
'src',
|
103
|
+
'config',
|
104
|
+
'scripts',
|
96
105
|
'main.ts',
|
97
106
|
'package.json',
|
98
107
|
'tsconfig.json',
|
99
108
|
'webpack.config.js',
|
100
109
|
'README.md',
|
110
|
+
'DEVELOPER_GUIDE.md',
|
111
|
+
'.env.example',
|
101
112
|
'.gitignore'
|
102
113
|
];
|
103
114
|
for (const item of filesToBackup) {
|
@@ -151,9 +162,17 @@ class TemplateUpdater {
|
|
151
162
|
'src/helpers/**/*',
|
152
163
|
'src/config/**/*',
|
153
164
|
'src/server/**/*',
|
165
|
+
'src/core/**/*',
|
166
|
+
'src/shared/**/*',
|
167
|
+
'src/plugins/**/*',
|
168
|
+
'config/**/*',
|
169
|
+
'scripts/**/*',
|
154
170
|
'webpack.config.js',
|
155
171
|
'tsconfig.json',
|
156
|
-
'.env.example'
|
172
|
+
'.env.example',
|
173
|
+
'package.json',
|
174
|
+
'README.md',
|
175
|
+
'DEVELOPER_GUIDE.md'
|
157
176
|
];
|
158
177
|
const files = [];
|
159
178
|
for (const pattern of updateablePatterns) {
|
@@ -184,12 +203,81 @@ class TemplateUpdater {
|
|
184
203
|
const templatePath = path.join(this.tempTemplatePath, file);
|
185
204
|
const projectPath = path.join(this.currentProjectPath, file);
|
186
205
|
if (await fs.pathExists(templatePath)) {
|
187
|
-
|
188
|
-
|
189
|
-
|
206
|
+
// Special handling for package.json to preserve project-specific settings
|
207
|
+
if (file === 'package.json') {
|
208
|
+
await this.updatePackageJson(templatePath, projectPath);
|
209
|
+
}
|
210
|
+
else {
|
211
|
+
await fs.ensureDir(path.dirname(projectPath));
|
212
|
+
await fs.copy(templatePath, projectPath);
|
213
|
+
console.log(chalk_1.default.green(`✅ Updated: ${file}`));
|
214
|
+
}
|
190
215
|
}
|
191
216
|
}
|
192
217
|
}
|
218
|
+
async updatePackageJson(templatePath, projectPath) {
|
219
|
+
try {
|
220
|
+
const templatePackageJson = JSON.parse(await fs.readFile(templatePath, 'utf8'));
|
221
|
+
const projectPackageJson = JSON.parse(await fs.readFile(projectPath, 'utf8'));
|
222
|
+
// Preserve project-specific fields
|
223
|
+
const preservedFields = [
|
224
|
+
'name',
|
225
|
+
'version',
|
226
|
+
'description',
|
227
|
+
'repository',
|
228
|
+
'bugs',
|
229
|
+
'homepage',
|
230
|
+
'author',
|
231
|
+
'license'
|
232
|
+
];
|
233
|
+
// Create updated package.json
|
234
|
+
const updatedPackageJson = {
|
235
|
+
...templatePackageJson,
|
236
|
+
...projectPackageJson,
|
237
|
+
// Preserve project-specific fields from project
|
238
|
+
...Object.fromEntries(preservedFields
|
239
|
+
.filter(field => projectPackageJson[field])
|
240
|
+
.map(field => [field, projectPackageJson[field]]))
|
241
|
+
};
|
242
|
+
// Update version to match template version
|
243
|
+
updatedPackageJson.version = templatePackageJson.version;
|
244
|
+
// Write updated package.json
|
245
|
+
await fs.writeFile(projectPath, JSON.stringify(updatedPackageJson, null, 2) + '\n');
|
246
|
+
console.log(chalk_1.default.green(`✅ Updated: package.json (version: ${templatePackageJson.version})`));
|
247
|
+
}
|
248
|
+
catch (error) {
|
249
|
+
console.log(chalk_1.default.yellow(`⚠️ Warning: Could not update package.json: ${error.message}`));
|
250
|
+
// Fallback to direct copy
|
251
|
+
await fs.copy(templatePath, projectPath);
|
252
|
+
console.log(chalk_1.default.green(`✅ Updated: package.json (direct copy)`));
|
253
|
+
}
|
254
|
+
}
|
255
|
+
async getCurrentProjectVersion() {
|
256
|
+
try {
|
257
|
+
const packageJsonPath = path.join(this.currentProjectPath, 'package.json');
|
258
|
+
if (await fs.pathExists(packageJsonPath)) {
|
259
|
+
const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf8'));
|
260
|
+
return packageJson.version || 'unknown';
|
261
|
+
}
|
262
|
+
}
|
263
|
+
catch (error) {
|
264
|
+
// Ignore errors
|
265
|
+
}
|
266
|
+
return 'unknown';
|
267
|
+
}
|
268
|
+
async getTemplateVersion() {
|
269
|
+
try {
|
270
|
+
const packageJsonPath = path.join(this.tempTemplatePath, 'package.json');
|
271
|
+
if (await fs.pathExists(packageJsonPath)) {
|
272
|
+
const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf8'));
|
273
|
+
return packageJson.version || 'unknown';
|
274
|
+
}
|
275
|
+
}
|
276
|
+
catch (error) {
|
277
|
+
// Ignore errors
|
278
|
+
}
|
279
|
+
return 'unknown';
|
280
|
+
}
|
193
281
|
async cleanup() {
|
194
282
|
if (await fs.pathExists(this.tempTemplatePath)) {
|
195
283
|
await fs.remove(this.tempTemplatePath);
|
@@ -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;AASzC,MAAa,eAAe;IAI1B;QACE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,8CAA8C;QAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACpG,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAE/D,6BAA6B;QAC7B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,IAAI,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAEpF,wCAAwC;YACxC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAExD,sBAAsB;YACtB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAE7D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;gBAC5E,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBAClE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YAED,qBAAqB;YACrB,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAEzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"template-updater.js","sourceRoot":"","sources":["../../src/services/template-updater.ts"],"names":[],"mappings":"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"}
|