@diagramers/cli 4.0.3 ā 4.0.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/README.md +45 -0
- package/dist/commands/admin.d.ts.map +1 -1
- package/dist/commands/admin.js +87 -1
- package/dist/commands/admin.js.map +1 -1
- package/dist/commands/api.d.ts +3 -0
- package/dist/commands/api.d.ts.map +1 -1
- package/dist/commands/api.js +311 -139
- package/dist/commands/api.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +24 -219
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
@@ -1,3 +1,48 @@
|
|
1
|
+
# Diagramers CLI
|
2
|
+
|
3
|
+
## Version Command
|
4
|
+
|
5
|
+
You can check the CLI version with:
|
6
|
+
|
7
|
+
```
|
8
|
+
diagramers version
|
9
|
+
diagramers -V
|
10
|
+
diagramers api version
|
11
|
+
diagramers admin version
|
12
|
+
```
|
13
|
+
|
14
|
+
## Update Command
|
15
|
+
|
16
|
+
You can update your project with:
|
17
|
+
|
18
|
+
```
|
19
|
+
diagramers update # (if supported at root)
|
20
|
+
diagramers admin update # For admin projects (legacy and new)
|
21
|
+
diagramers api update # For API projects (legacy and new)
|
22
|
+
```
|
23
|
+
|
24
|
+
- For legacy projects, dependencies are updated as before.
|
25
|
+
- For new projects, only modules are updated/added.
|
26
|
+
|
27
|
+
## Backward Compatibility
|
28
|
+
|
29
|
+
All previous commands are supported. New features (API commands, module addition) are available without breaking old workflows.
|
30
|
+
|
31
|
+
## Usage Examples
|
32
|
+
|
33
|
+
```
|
34
|
+
# Show CLI version
|
35
|
+
$ diagramers version
|
36
|
+
$ diagramers api version
|
37
|
+
$ diagramers admin version
|
38
|
+
|
39
|
+
# Update admin project
|
40
|
+
$ diagramers admin update
|
41
|
+
|
42
|
+
# Update API project
|
43
|
+
$ diagramers api update --modules odoo,notification
|
44
|
+
```
|
45
|
+
|
1
46
|
# @diagramers/cli
|
2
47
|
|
3
48
|
A powerful command-line interface for scaffolding and managing Diagramers projects. The CLI provides comprehensive tools for creating, managing, and extending API and admin dashboard projects with advanced features and automation.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,WAmJ5C"}
|
package/dist/commands/admin.js
CHANGED
@@ -46,13 +46,99 @@ function adminCommand(program) {
|
|
46
46
|
console.log(chalk_1.default.green(`ā
Admin application '${projectName}' initialized successfully!`));
|
47
47
|
console.log(chalk_1.default.blue(`š Project created at: ${process.cwd()}/${projectName}`));
|
48
48
|
console.log(chalk_1.default.blue(`š To start development: cd ${projectName} && npm start`));
|
49
|
+
console.log(chalk_1.default.yellow(`šØ After starting the app, you'll be redirected to the setup page to configure:`));
|
50
|
+
console.log(chalk_1.default.yellow(` ⢠Upload your project logo`));
|
51
|
+
console.log(chalk_1.default.yellow(` ⢠Set your project name`));
|
52
|
+
console.log(chalk_1.default.yellow(` ⢠Choose your default theme`));
|
53
|
+
console.log(chalk_1.default.blue(`š§ You can also access project settings later from the admin panel`));
|
49
54
|
}
|
50
55
|
catch (error) {
|
51
56
|
console.error(chalk_1.default.red(`ā Failed to initialize admin project: ${error.message}`));
|
52
57
|
process.exit(1);
|
53
58
|
}
|
54
59
|
});
|
55
|
-
|
60
|
+
admin
|
61
|
+
.command('update')
|
62
|
+
.description('Update an existing admin project with the latest template')
|
63
|
+
.option('-v, --version <version>', 'Specific version to update to (e.g., 1.1.27, latest)')
|
64
|
+
.option('-f, --force', 'Force update even if conflicts detected')
|
65
|
+
.option('-b, --backup', 'Create backup before updating')
|
66
|
+
.action(async (options) => {
|
67
|
+
try {
|
68
|
+
// Check if we're in a valid admin project
|
69
|
+
const fs = require('fs');
|
70
|
+
const path = require('path');
|
71
|
+
if (!fs.existsSync('package.json')) {
|
72
|
+
console.error(chalk_1.default.red('ā No package.json found. Please run this command from your admin project directory.'));
|
73
|
+
process.exit(1);
|
74
|
+
}
|
75
|
+
const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
|
76
|
+
const isAdminProject = packageJson.dependencies &&
|
77
|
+
(packageJson.dependencies['@diagramers/admin'] ||
|
78
|
+
packageJson.devDependencies && packageJson.devDependencies['@diagramers/admin']);
|
79
|
+
if (!isAdminProject) {
|
80
|
+
console.error(chalk_1.default.red('ā This does not appear to be a Diagramers admin project.'));
|
81
|
+
process.exit(1);
|
82
|
+
}
|
83
|
+
let version = options.version || 'latest';
|
84
|
+
console.log(chalk_1.default.blue(`š Updating admin project to version: ${version}`));
|
85
|
+
// Create backup if requested
|
86
|
+
if (options.backup) {
|
87
|
+
const backupDir = `backup-${new Date().toISOString().replace(/[:.]/g, '-')}`;
|
88
|
+
console.log(chalk_1.default.yellow(`š¦ Creating backup in: ${backupDir}`));
|
89
|
+
(0, child_process_1.execSync)(`cp -r . ${backupDir}`, { stdio: 'inherit' });
|
90
|
+
}
|
91
|
+
// Update the admin package
|
92
|
+
let updateCommand = `npm update @diagramers/admin`;
|
93
|
+
if (version !== 'latest') {
|
94
|
+
updateCommand = `npm install @diagramers/admin@${version}`;
|
95
|
+
}
|
96
|
+
console.log(chalk_1.default.gray(`Executing: ${updateCommand}`));
|
97
|
+
(0, child_process_1.execSync)(updateCommand, { stdio: 'inherit' });
|
98
|
+
// Run the admin update script if it exists
|
99
|
+
if (fs.existsSync('scripts/update.js')) {
|
100
|
+
console.log(chalk_1.default.blue(`š Running admin update script...`));
|
101
|
+
(0, child_process_1.execSync)('node scripts/update.js', { stdio: 'inherit' });
|
102
|
+
}
|
103
|
+
console.log(chalk_1.default.green(`ā
Admin project updated successfully!`));
|
104
|
+
console.log(chalk_1.default.blue(`š¦ Updated to @diagramers/admin@${version}`));
|
105
|
+
console.log(chalk_1.default.yellow(`š” Run "npm install" to update dependencies if needed`));
|
106
|
+
console.log(chalk_1.default.yellow(`š” Run "npm start" to start the updated application`));
|
107
|
+
}
|
108
|
+
catch (error) {
|
109
|
+
console.error(chalk_1.default.red(`ā Failed to update admin project: ${error.message}`));
|
110
|
+
process.exit(1);
|
111
|
+
}
|
112
|
+
});
|
113
|
+
admin
|
114
|
+
.command('versions')
|
115
|
+
.description('List available admin template versions')
|
116
|
+
.option('-a, --all', 'Show all versions (default: show last 10)')
|
117
|
+
.action(async (options) => {
|
118
|
+
try {
|
119
|
+
console.log(chalk_1.default.blue(`š¦ Fetching available @diagramers/admin versions...`));
|
120
|
+
const { execSync } = require('child_process');
|
121
|
+
const versions = execSync('npm view @diagramers/admin versions --json', { encoding: 'utf8' });
|
122
|
+
const versionList = JSON.parse(versions);
|
123
|
+
if (options.all) {
|
124
|
+
console.log(chalk_1.default.green(`š All available versions:`));
|
125
|
+
versionList.forEach((version) => {
|
126
|
+
console.log(chalk_1.default.cyan(` ⢠${version}`));
|
127
|
+
});
|
128
|
+
}
|
129
|
+
else {
|
130
|
+
console.log(chalk_1.default.green(`š Last 10 versions:`));
|
131
|
+
versionList.slice(-10).forEach((version) => {
|
132
|
+
console.log(chalk_1.default.cyan(` ⢠${version}`));
|
133
|
+
});
|
134
|
+
}
|
135
|
+
console.log(chalk_1.default.blue(`š” Use "diagramers admin update --version <version>" to update to a specific version`));
|
136
|
+
}
|
137
|
+
catch (error) {
|
138
|
+
console.error(chalk_1.default.red(`ā Failed to fetch versions: ${error.message}`));
|
139
|
+
process.exit(1);
|
140
|
+
}
|
141
|
+
});
|
56
142
|
return admin;
|
57
143
|
}
|
58
144
|
//# sourceMappingURL=admin.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":";;;;;AAIA,
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":";;;;;AAIA,oCAmJC;AAtJD,kDAA0B;AAC1B,iDAAyC;AAEzC,SAAgB,YAAY,CAAC,OAAgB;IAC3C,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iDAAiD,CAAC,CAAC;IAElE,KAAK;SACF,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,6BAA6B,EAAE,wCAAwC,EAAE,OAAO,CAAC;SACxF,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,EAAE,uBAAuB,CAAC;SACzF,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,MAAM,CAAC;SACzE,MAAM,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;SAC5D,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,OAAY,EAAE,EAAE;QAClD,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC;YAC1C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uDAAuD,OAAO,EAAE,CAAC,CAAC,CAAC;YAC5F,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,QAAQ,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;YAC9F,CAAC;YACD,IAAI,OAAO,GAAG,yBAAyB,OAAO,SAAS,WAAW,EAAE,CAAC;YACrE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,OAAO,IAAI,gBAAgB,OAAO,CAAC,SAAS,EAAE,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,IAAI,cAAc,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5C,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,IAAI,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC;YACvC,CAAC;YACD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,OAAO,IAAI,QAAQ,CAAC;YACtB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC;YACjD,IAAA,wBAAQ,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wBAAwB,WAAW,6BAA6B,CAAC,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,OAAO,CAAC,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+BAA+B,WAAW,eAAe,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iFAAiF,CAAC,CAAC,CAAC;YAC7G,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC,CAAC;QAChG,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,yCAAyC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2DAA2D,CAAC;SACxE,MAAM,CAAC,yBAAyB,EAAE,sDAAsD,CAAC;SACzF,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,0CAA0C;YAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC,CAAC;gBAChH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;YACxE,MAAM,cAAc,GAAG,WAAW,CAAC,YAAY;gBAC7C,CAAC,WAAW,CAAC,YAAY,CAAC,mBAAmB,CAAC;oBAC7C,WAAW,CAAC,eAAe,IAAI,WAAW,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAEpF,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAC;gBACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC,CAAC;YAE5E,6BAA6B;YAC7B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC7E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC,CAAC;gBACjE,IAAA,wBAAQ,EAAC,WAAW,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,2BAA2B;YAC3B,IAAI,aAAa,GAAG,8BAA8B,CAAC;YACnD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,aAAa,GAAG,iCAAiC,OAAO,EAAE,CAAC;YAC7D,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,aAAa,EAAE,CAAC,CAAC,CAAC;YACvD,IAAA,wBAAQ,EAAC,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAE9C,2CAA2C;YAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;gBAC7D,IAAA,wBAAQ,EAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC;QAEnF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,CAAC;YAE/E,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,4CAA4C,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9F,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEzC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACvD,WAAW,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE;oBACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBACjD,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE;oBACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC,CAAC;QAElH,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;IAEL,OAAO,KAAK,CAAC;AACf,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,QA4G1C"}
|
package/dist/commands/api.js
CHANGED
@@ -1,179 +1,351 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
37
|
};
|
5
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
39
|
exports.apiCommand = apiCommand;
|
7
|
-
const api_generator_1 = require("../services/api-generator");
|
8
|
-
const table_generator_1 = require("../services/table-generator");
|
9
|
-
const relation_generator_1 = require("../services/relation-generator");
|
10
|
-
const template_processor_1 = require("../services/template-processor");
|
11
40
|
const chalk_1 = __importDefault(require("chalk"));
|
12
41
|
const child_process_1 = require("child_process");
|
42
|
+
const fs = __importStar(require("fs"));
|
43
|
+
const path = __importStar(require("path"));
|
13
44
|
function apiCommand(program) {
|
14
45
|
const api = program
|
15
46
|
.command('api')
|
16
|
-
.description('API-specific commands for
|
17
|
-
// Version command
|
47
|
+
.description('API-specific commands for Diagramers projects');
|
18
48
|
api
|
19
|
-
.command('
|
20
|
-
.description('
|
21
|
-
.option('-
|
22
|
-
.
|
49
|
+
.command('init <projectName>')
|
50
|
+
.description('Initialize a new API project')
|
51
|
+
.option('-v, --version <version>', 'Specific version to use')
|
52
|
+
.option('-y, --yes', 'Skip prompts and use defaults')
|
53
|
+
.action(async (projectName, options) => {
|
23
54
|
try {
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
const versionInfo = (0, child_process_1.execSync)(`npm view @diagramers/api@${options.check} version`, {
|
28
|
-
encoding: 'utf8',
|
29
|
-
timeout: 5000
|
30
|
-
}).trim();
|
31
|
-
console.log(chalk_1.default.green(`ā
Version ${options.check} exists: ${versionInfo}`));
|
32
|
-
}
|
33
|
-
catch (error) {
|
34
|
-
console.log(chalk_1.default.red(`ā Version ${options.check} not found`));
|
35
|
-
// Show available versions
|
36
|
-
try {
|
37
|
-
const versionsOutput = (0, child_process_1.execSync)('npm view @diagramers/api versions --json', {
|
38
|
-
encoding: 'utf8',
|
39
|
-
timeout: 10000
|
40
|
-
});
|
41
|
-
const versions = JSON.parse(versionsOutput);
|
42
|
-
const recentVersions = Array.isArray(versions) ? versions.slice(-5) : [versions];
|
43
|
-
console.log(chalk_1.default.yellow('\nš¦ Recent available versions:'));
|
44
|
-
recentVersions.forEach((version) => {
|
45
|
-
console.log(chalk_1.default.yellow(` ${version}`));
|
46
|
-
});
|
47
|
-
}
|
48
|
-
catch (versionError) {
|
49
|
-
console.log(chalk_1.default.gray('Could not fetch available versions'));
|
50
|
-
}
|
51
|
-
}
|
55
|
+
let version = options.version || 'latest';
|
56
|
+
if (options.version) {
|
57
|
+
console.log(chalk_1.default.blue(`ā¹ļø Using user-specified @diagramers/api version: ${version}`));
|
52
58
|
}
|
53
59
|
else {
|
54
|
-
|
55
|
-
console.log(chalk_1.default.blue(
|
56
|
-
try {
|
57
|
-
const latestVersion = (0, child_process_1.execSync)('npm view @diagramers/api version', {
|
58
|
-
encoding: 'utf8',
|
59
|
-
timeout: 5000
|
60
|
-
}).trim();
|
61
|
-
console.log(chalk_1.default.green(`Latest: ${latestVersion}`));
|
62
|
-
}
|
63
|
-
catch (error) {
|
64
|
-
console.log(chalk_1.default.red('Could not fetch latest version'));
|
65
|
-
}
|
66
|
-
// Check local version if in a project
|
67
|
-
try {
|
68
|
-
const localVersion = (0, child_process_1.execSync)('npm list @diagramers/api --depth=0', {
|
69
|
-
encoding: 'utf8',
|
70
|
-
timeout: 5000
|
71
|
-
});
|
72
|
-
console.log(chalk_1.default.blue('Local project version:'));
|
73
|
-
console.log(localVersion);
|
74
|
-
}
|
75
|
-
catch (error) {
|
76
|
-
console.log(chalk_1.default.gray('No local @diagramers/api installation found'));
|
77
|
-
}
|
60
|
+
version = 'latest';
|
61
|
+
console.log(chalk_1.default.blue(`ā¹ļø Using @diagramers/api@latest (fetches the latest from npm)`));
|
78
62
|
}
|
63
|
+
let command = `npx @diagramers/api@${version} init ${projectName}`;
|
64
|
+
if (options.yes) {
|
65
|
+
command += ` --yes`;
|
66
|
+
}
|
67
|
+
console.log(chalk_1.default.gray(`Executing: ${command}`));
|
68
|
+
(0, child_process_1.execSync)(command, { stdio: 'inherit' });
|
69
|
+
console.log(chalk_1.default.green(`ā
API project '${projectName}' initialized successfully!`));
|
70
|
+
console.log(chalk_1.default.blue(`š Project created at: ${process.cwd()}/${projectName}`));
|
71
|
+
console.log(chalk_1.default.blue(`š To start development: cd ${projectName} && npm run dev`));
|
72
|
+
console.log(chalk_1.default.yellow(`š§ Available modules: auth, email, notification, odoo`));
|
79
73
|
}
|
80
74
|
catch (error) {
|
81
|
-
console.error(chalk_1.default.red(`ā
|
82
|
-
process.exit(1);
|
83
|
-
}
|
84
|
-
});
|
85
|
-
// Generate module command
|
86
|
-
api
|
87
|
-
.command('generate:module <name>')
|
88
|
-
.description('Generate a new module with entity, schema, service, controller, and routes')
|
89
|
-
.action(async (name) => {
|
90
|
-
try {
|
91
|
-
console.log(chalk_1.default.blue(`š Generating module: ${name}`));
|
92
|
-
await (0, api_generator_1.generateModule)(name);
|
93
|
-
console.log(chalk_1.default.green(`ā
Module '${name}' generated successfully!`));
|
94
|
-
}
|
95
|
-
catch (error) {
|
96
|
-
console.error(chalk_1.default.red(`ā Error generating module: ${error.message}`));
|
75
|
+
console.error(chalk_1.default.red(`ā Failed to initialize API project: ${error.message}`));
|
97
76
|
process.exit(1);
|
98
77
|
}
|
99
78
|
});
|
100
|
-
// Generate endpoint command
|
101
79
|
api
|
102
|
-
.command('
|
103
|
-
.description('
|
104
|
-
.option('-
|
105
|
-
.option('-
|
106
|
-
.option('-
|
107
|
-
.
|
80
|
+
.command('update')
|
81
|
+
.description('Update an existing API project with the latest modules and features')
|
82
|
+
.option('-v, --version <version>', 'Specific version to update to')
|
83
|
+
.option('-f, --force', 'Force update even if conflicts detected')
|
84
|
+
.option('-b, --backup', 'Create backup before updating')
|
85
|
+
.option('-m, --modules <modules>', 'Comma-separated list of modules to add (e.g., odoo,notification)')
|
86
|
+
.action(async (options) => {
|
108
87
|
try {
|
109
|
-
|
110
|
-
|
111
|
-
|
88
|
+
// Check if we're in a valid API project
|
89
|
+
if (!fs.existsSync('package.json')) {
|
90
|
+
console.error(chalk_1.default.red('ā No package.json found. Please run this command from your API project directory.'));
|
91
|
+
process.exit(1);
|
92
|
+
}
|
93
|
+
const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
|
94
|
+
const isApiProject = packageJson.name === '@diagramers/api' ||
|
95
|
+
(packageJson.dependencies &&
|
96
|
+
(packageJson.dependencies['@diagramers/api'] ||
|
97
|
+
packageJson.devDependencies && packageJson.devDependencies['@diagramers/api']));
|
98
|
+
if (!isApiProject) {
|
99
|
+
console.error(chalk_1.default.red('ā This does not appear to be a Diagramers API project.'));
|
100
|
+
process.exit(1);
|
101
|
+
}
|
102
|
+
console.log(chalk_1.default.blue(`š Updating API project...`));
|
103
|
+
// Create backup if requested
|
104
|
+
if (options.backup) {
|
105
|
+
const backupDir = `backup-${new Date().toISOString().replace(/[:.]/g, '-')}`;
|
106
|
+
console.log(chalk_1.default.yellow(`š¦ Creating backup in: ${backupDir}`));
|
107
|
+
(0, child_process_1.execSync)(`cp -r . ${backupDir}`, { stdio: 'inherit' });
|
108
|
+
}
|
109
|
+
// Skip package update for local development
|
110
|
+
console.log(chalk_1.default.blue(`ā¹ļø Skipping package update (local development mode)`));
|
111
|
+
// Add modules if specified
|
112
|
+
if (options.modules) {
|
113
|
+
const modules = options.modules.split(',').map((m) => m.trim());
|
114
|
+
console.log(chalk_1.default.blue(`š¦ Adding modules: ${modules.join(', ')}`));
|
115
|
+
for (const module of modules) {
|
116
|
+
await addModule(module, options.force);
|
117
|
+
}
|
118
|
+
}
|
119
|
+
console.log(chalk_1.default.green(`ā
API project updated successfully!`));
|
120
|
+
console.log(chalk_1.default.blue(`š To start development: npm run dev`));
|
121
|
+
console.log(chalk_1.default.yellow(`š Available modules: auth, email, notification, odoo`));
|
122
|
+
console.log(chalk_1.default.yellow(`š” Use "diagramers api add-module <module>" to add specific modules`));
|
112
123
|
}
|
113
124
|
catch (error) {
|
114
|
-
console.error(chalk_1.default.red(`ā
|
125
|
+
console.error(chalk_1.default.red(`ā Failed to update API project: ${error.message}`));
|
115
126
|
process.exit(1);
|
116
127
|
}
|
117
128
|
});
|
118
|
-
// Process template command
|
119
129
|
api
|
120
|
-
.command('
|
121
|
-
.description('
|
122
|
-
.
|
130
|
+
.command('add-module <moduleName>')
|
131
|
+
.description('Add a new module to the API project')
|
132
|
+
.option('-f, --force', 'Force add even if module exists')
|
133
|
+
.option('-v, --version <version>', 'Specific version of the module')
|
134
|
+
.action(async (moduleName, options) => {
|
123
135
|
try {
|
124
|
-
|
125
|
-
await (0, template_processor_1.processTemplate)(name);
|
126
|
-
console.log(chalk_1.default.green(`ā
Template processing completed for '${name}'!`));
|
136
|
+
await addModule(moduleName, options.force, options.version);
|
127
137
|
}
|
128
138
|
catch (error) {
|
129
|
-
console.error(chalk_1.default.red(`ā
|
139
|
+
console.error(chalk_1.default.red(`ā Failed to add module: ${error.message}`));
|
130
140
|
process.exit(1);
|
131
141
|
}
|
132
142
|
});
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
143
|
+
}
|
144
|
+
async function addModule(moduleName, force = false, version) {
|
145
|
+
console.log(chalk_1.default.blue(`š¦ Adding module: ${moduleName}`));
|
146
|
+
// Check if module already exists
|
147
|
+
const modulePath = path.join('src', 'modules', moduleName);
|
148
|
+
if (fs.existsSync(modulePath) && !force) {
|
149
|
+
console.error(chalk_1.default.red(`ā Module '${moduleName}' already exists. Use --force to overwrite.`));
|
150
|
+
process.exit(1);
|
151
|
+
}
|
152
|
+
// Define available modules and their templates
|
153
|
+
const availableModules = {
|
154
|
+
odoo: {
|
155
|
+
description: 'Odoo CRM integration module',
|
156
|
+
files: [
|
157
|
+
{
|
158
|
+
path: 'src/modules/odoo/entities/odoo-contact.entity.ts',
|
159
|
+
content: `// Odoo Contact Entity - Auto-generated by CLI
|
160
|
+
import { ObjectId } from 'mongoose';
|
161
|
+
|
162
|
+
export interface IOdooContact {
|
163
|
+
_id: ObjectId;
|
164
|
+
odooId: number;
|
165
|
+
name: string;
|
166
|
+
email?: string;
|
167
|
+
phone?: string;
|
168
|
+
type: 'contact' | 'invoice' | 'delivery' | 'private' | 'other';
|
169
|
+
isCompany: boolean;
|
170
|
+
isActive: boolean;
|
171
|
+
createDate: Date;
|
172
|
+
writeDate: Date;
|
173
|
+
createdAt: Date;
|
174
|
+
updatedAt: Date;
|
175
|
+
syncStatus: 'synced' | 'pending' | 'error';
|
176
|
+
}
|
177
|
+
|
178
|
+
export interface CreateOdooContactDto {
|
179
|
+
name: string;
|
180
|
+
email?: string;
|
181
|
+
phone?: string;
|
182
|
+
type?: 'contact' | 'invoice' | 'delivery' | 'private' | 'other';
|
183
|
+
isCompany?: boolean;
|
184
|
+
}
|
185
|
+
|
186
|
+
export interface UpdateOdooContactDto extends Partial<CreateOdooContactDto> {
|
187
|
+
isActive?: boolean;
|
188
|
+
}`
|
189
|
+
},
|
190
|
+
{
|
191
|
+
path: 'src/modules/odoo/controllers/odoo-contact.controller.ts',
|
192
|
+
content: `// Odoo Contact Controller - Auto-generated by CLI
|
193
|
+
import { Request, Response } from 'express';
|
194
|
+
import { ResponseCode } from '../../../shared/constants/enums';
|
195
|
+
|
196
|
+
export class OdooContactController {
|
197
|
+
async getAllCustomers(req: Request, res: Response): Promise<void> {
|
198
|
+
try {
|
199
|
+
res.json({
|
200
|
+
data: [],
|
201
|
+
statusCode: ResponseCode.Ok,
|
202
|
+
errors: [],
|
203
|
+
requestIdentifier: req.headers['x-request-id'] as string || null,
|
204
|
+
messages: null,
|
205
|
+
additionalInfo: null,
|
206
|
+
user: null
|
207
|
+
});
|
208
|
+
} catch (error: any) {
|
209
|
+
res.status(500).json({
|
210
|
+
data: null,
|
211
|
+
statusCode: ResponseCode.Error,
|
212
|
+
errors: [{ message: error.message }],
|
213
|
+
requestIdentifier: req.headers['x-request-id'] as string || null,
|
214
|
+
messages: null,
|
215
|
+
additionalInfo: null,
|
216
|
+
user: null
|
217
|
+
});
|
218
|
+
}
|
219
|
+
}
|
220
|
+
|
221
|
+
async getCustomerById(req: Request, res: Response): Promise<void> {
|
222
|
+
// Implementation
|
223
|
+
}
|
224
|
+
|
225
|
+
async createCustomer(req: Request, res: Response): Promise<void> {
|
226
|
+
// Implementation
|
227
|
+
}
|
228
|
+
|
229
|
+
async updateCustomer(req: Request, res: Response): Promise<void> {
|
230
|
+
// Implementation
|
231
|
+
}
|
232
|
+
|
233
|
+
async deleteCustomer(req: Request, res: Response): Promise<void> {
|
234
|
+
// Implementation
|
235
|
+
}
|
236
|
+
}`
|
237
|
+
},
|
238
|
+
{
|
239
|
+
path: 'src/modules/odoo/services/odoo-contact.service.ts',
|
240
|
+
content: `// Odoo Contact Service - Auto-generated by CLI
|
241
|
+
import { IOdooContact, CreateOdooContactDto, UpdateOdooContactDto } from '../entities/odoo-contact.entity';
|
242
|
+
|
243
|
+
export class OdooContactService {
|
244
|
+
async getAllCustomers(): Promise<{ data: IOdooContact[], total: number }> {
|
245
|
+
// Implementation
|
246
|
+
return { data: [], total: 0 };
|
247
|
+
}
|
248
|
+
|
249
|
+
async getCustomerById(customerId: string): Promise<IOdooContact | null> {
|
250
|
+
// Implementation
|
251
|
+
return null;
|
252
|
+
}
|
253
|
+
|
254
|
+
async createCustomer(customerData: CreateOdooContactDto): Promise<IOdooContact> {
|
255
|
+
// Implementation
|
256
|
+
throw new Error('Not implemented');
|
257
|
+
}
|
258
|
+
|
259
|
+
async updateCustomer(customerId: string, updateData: UpdateOdooContactDto): Promise<IOdooContact | null> {
|
260
|
+
// Implementation
|
261
|
+
return null;
|
262
|
+
}
|
263
|
+
|
264
|
+
async deleteCustomer(customerId: string): Promise<boolean> {
|
265
|
+
// Implementation
|
266
|
+
return false;
|
267
|
+
}
|
268
|
+
}`
|
269
|
+
},
|
270
|
+
{
|
271
|
+
path: 'src/modules/odoo/routes/odoo-contact.routes.ts',
|
272
|
+
content: `// Odoo Contact Routes - Auto-generated by CLI
|
273
|
+
import { Router } from 'express';
|
274
|
+
import { OdooContactController } from '../controllers/odoo-contact.controller';
|
275
|
+
|
276
|
+
const router = Router();
|
277
|
+
const odooContactController = new OdooContactController();
|
278
|
+
|
279
|
+
// Customer management routes
|
280
|
+
router.get('/', odooContactController.getAllCustomers.bind(odooContactController));
|
281
|
+
router.get('/:id', odooContactController.getCustomerById.bind(odooContactController));
|
282
|
+
router.post('/', odooContactController.createCustomer.bind(odooContactController));
|
283
|
+
router.put('/:id', odooContactController.updateCustomer.bind(odooContactController));
|
284
|
+
router.delete('/:id', odooContactController.deleteCustomer.bind(odooContactController));
|
285
|
+
|
286
|
+
export default router;`
|
287
|
+
}
|
288
|
+
]
|
289
|
+
},
|
290
|
+
notification: {
|
291
|
+
description: 'Notification system module',
|
292
|
+
files: [
|
293
|
+
{
|
294
|
+
path: 'src/modules/notification/entities/notification.entity.ts',
|
295
|
+
content: `// Notification Entity - Auto-generated by CLI
|
296
|
+
export interface INotification {
|
297
|
+
id: string;
|
298
|
+
userId: string;
|
299
|
+
type: 'email' | 'sms' | 'push';
|
300
|
+
message: string;
|
301
|
+
status: 'pending' | 'sent' | 'failed';
|
302
|
+
createdAt: Date;
|
303
|
+
}`
|
304
|
+
}
|
305
|
+
]
|
158
306
|
}
|
159
|
-
}
|
160
|
-
|
161
|
-
|
162
|
-
.
|
163
|
-
.
|
164
|
-
.
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
307
|
+
};
|
308
|
+
const module = availableModules[moduleName];
|
309
|
+
if (!module) {
|
310
|
+
console.error(chalk_1.default.red(`ā Module '${moduleName}' is not available.`));
|
311
|
+
console.log(chalk_1.default.yellow(`Available modules: ${Object.keys(availableModules).join(', ')}`));
|
312
|
+
process.exit(1);
|
313
|
+
}
|
314
|
+
console.log(chalk_1.default.blue(`š Creating module: ${moduleName}`));
|
315
|
+
console.log(chalk_1.default.gray(`Description: ${module.description}`));
|
316
|
+
// Create module directory structure
|
317
|
+
const moduleDir = path.join('src', 'modules', moduleName);
|
318
|
+
fs.mkdirSync(moduleDir, { recursive: true });
|
319
|
+
fs.mkdirSync(path.join(moduleDir, 'controllers'), { recursive: true });
|
320
|
+
fs.mkdirSync(path.join(moduleDir, 'services'), { recursive: true });
|
321
|
+
fs.mkdirSync(path.join(moduleDir, 'routes'), { recursive: true });
|
322
|
+
fs.mkdirSync(path.join(moduleDir, 'entities'), { recursive: true });
|
323
|
+
// Create module files
|
324
|
+
for (const file of module.files) {
|
325
|
+
const filePath = path.join(file.path);
|
326
|
+
const dir = path.dirname(filePath);
|
327
|
+
fs.mkdirSync(dir, { recursive: true });
|
328
|
+
fs.writeFileSync(filePath, file.content);
|
329
|
+
console.log(chalk_1.default.gray(` Created: ${filePath}`));
|
330
|
+
}
|
331
|
+
// Update routes index if it exists
|
332
|
+
const routesIndexPath = 'src/routes/index.ts';
|
333
|
+
if (fs.existsSync(routesIndexPath)) {
|
334
|
+
let routesContent = fs.readFileSync(routesIndexPath, 'utf8');
|
335
|
+
// Add import
|
336
|
+
const importStatement = `import ${moduleName}Routes from '../modules/${moduleName}/routes/${moduleName}.routes';`;
|
337
|
+
if (!routesContent.includes(importStatement)) {
|
338
|
+
routesContent = routesContent.replace(/import.*Routes.*from.*routes.*;/g, `$&\n${importStatement}`);
|
171
339
|
}
|
172
|
-
|
173
|
-
|
174
|
-
|
340
|
+
// Add route registration
|
341
|
+
const routeRegistration = `router.use('/${moduleName}', ${moduleName}Routes);`;
|
342
|
+
if (!routesContent.includes(routeRegistration)) {
|
343
|
+
routesContent = routesContent.replace(/router\.use.*Routes.*;/g, `$&\n${routeRegistration}`);
|
175
344
|
}
|
176
|
-
|
177
|
-
|
345
|
+
fs.writeFileSync(routesIndexPath, routesContent);
|
346
|
+
console.log(chalk_1.default.gray(` Updated: ${routesIndexPath}`));
|
347
|
+
}
|
348
|
+
console.log(chalk_1.default.green(`ā
Module '${moduleName}' added successfully!`));
|
349
|
+
console.log(chalk_1.default.blue(`š Module is ready to use. You may need to implement the business logic.`));
|
178
350
|
}
|
179
351
|
//# sourceMappingURL=api.js.map
|
package/dist/commands/api.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
CHANGED
@@ -5,234 +5,39 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
};
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
7
7
|
const commander_1 = require("commander");
|
8
|
-
const init_1 = require("./commands/init");
|
9
|
-
const update_1 = require("./commands/update");
|
10
|
-
const extend_1 = require("./commands/extend");
|
11
|
-
const api_1 = require("./commands/api");
|
12
|
-
const deploy_1 = require("./commands/deploy");
|
13
8
|
const chalk_1 = __importDefault(require("chalk"));
|
14
|
-
const
|
15
|
-
const
|
16
|
-
const child_process_1 = require("child_process");
|
9
|
+
const admin_1 = require("./commands/admin");
|
10
|
+
const api_1 = require("./commands/api");
|
17
11
|
const program = new commander_1.Command();
|
18
|
-
// Dynamically read CLI version
|
19
|
-
const cliPkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'package.json'), 'utf8'));
|
20
|
-
// Function to get API version from current project or global installation
|
21
|
-
function getApiVersion() {
|
22
|
-
// Check if we're in a diagramers API project directory (development scenario)
|
23
|
-
try {
|
24
|
-
const projectPkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(process.cwd(), 'package.json'), 'utf8'));
|
25
|
-
if (projectPkg.name === '@diagramers/api') {
|
26
|
-
return `${projectPkg.version} (development)`;
|
27
|
-
}
|
28
|
-
}
|
29
|
-
catch { }
|
30
|
-
// Try to read from current project's node_modules first
|
31
|
-
try {
|
32
|
-
const projectApiPkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(process.cwd(), 'node_modules', '@diagramers', 'api', 'package.json'), 'utf8'));
|
33
|
-
return `${projectApiPkg.version} (project)`;
|
34
|
-
}
|
35
|
-
catch { }
|
36
|
-
// Try to read from global CLI installation
|
37
|
-
try {
|
38
|
-
const globalApiPkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'node_modules', '@diagramers', 'api', 'package.json'), 'utf8'));
|
39
|
-
return `${globalApiPkg.version} (global)`;
|
40
|
-
}
|
41
|
-
catch { }
|
42
|
-
// Check if we're in a project created from diagramers template
|
43
|
-
try {
|
44
|
-
const projectPkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(process.cwd(), 'package.json'), 'utf8'));
|
45
|
-
// Check if it's a diagramers project by structure and package.json content
|
46
|
-
const hasApiStructure = (0, fs_1.existsSync)((0, path_1.join)(process.cwd(), 'src', 'modules')) &&
|
47
|
-
(0, fs_1.existsSync)((0, path_1.join)(process.cwd(), 'src', 'core')) &&
|
48
|
-
(0, fs_1.existsSync)((0, path_1.join)(process.cwd(), 'src', 'shared'));
|
49
|
-
if (hasApiStructure ||
|
50
|
-
(projectPkg.name && projectPkg.name.includes('diagramers')) ||
|
51
|
-
(projectPkg.description && projectPkg.description.includes('diagramers')) ||
|
52
|
-
(projectPkg.description && projectPkg.description.includes('API project'))) {
|
53
|
-
return `${projectPkg.version} (project template)`;
|
54
|
-
}
|
55
|
-
}
|
56
|
-
catch { }
|
57
|
-
// Try to check if it's available via npm (last resort)
|
58
|
-
try {
|
59
|
-
const npmVersion = (0, child_process_1.execSync)('npm view @diagramers/api version', { encoding: 'utf8', timeout: 5000 }).trim();
|
60
|
-
return `${npmVersion} (available on npm)`;
|
61
|
-
}
|
62
|
-
catch { }
|
63
|
-
return 'not installed';
|
64
|
-
}
|
65
|
-
// Function to get Admin version from current project or global installation
|
66
|
-
function getAdminVersion() {
|
67
|
-
// Check if we're in a diagramers Admin project directory (development scenario)
|
68
|
-
try {
|
69
|
-
const projectPkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(process.cwd(), 'package.json'), 'utf8'));
|
70
|
-
if (projectPkg.name === '@diagramers/admin') {
|
71
|
-
return `${projectPkg.version} (development)`;
|
72
|
-
}
|
73
|
-
}
|
74
|
-
catch { }
|
75
|
-
// Try to read from current project's node_modules first
|
76
|
-
try {
|
77
|
-
const projectAdminPkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(process.cwd(), 'node_modules', '@diagramers', 'admin', 'package.json'), 'utf8'));
|
78
|
-
return `${projectAdminPkg.version} (project)`;
|
79
|
-
}
|
80
|
-
catch { }
|
81
|
-
// Try to read from global CLI installation
|
82
|
-
try {
|
83
|
-
const globalAdminPkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'node_modules', '@diagramers', 'admin', 'package.json'), 'utf8'));
|
84
|
-
return `${globalAdminPkg.version} (global)`;
|
85
|
-
}
|
86
|
-
catch { }
|
87
|
-
// Check if we're in a project created from diagramers admin template
|
88
|
-
try {
|
89
|
-
const projectPkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(process.cwd(), 'package.json'), 'utf8'));
|
90
|
-
// Check if it's a diagramers admin project by structure and package.json content
|
91
|
-
const hasAdminStructure = (0, fs_1.existsSync)((0, path_1.join)(process.cwd(), 'src', 'components')) &&
|
92
|
-
(0, fs_1.existsSync)((0, path_1.join)(process.cwd(), 'src', 'features')) &&
|
93
|
-
((0, fs_1.existsSync)((0, path_1.join)(process.cwd(), 'src', 'hooks')) || (0, fs_1.existsSync)((0, path_1.join)(process.cwd(), 'src', 'services')));
|
94
|
-
if (hasAdminStructure ||
|
95
|
-
(projectPkg.name && projectPkg.name.includes('admin')) ||
|
96
|
-
(projectPkg.description && projectPkg.description.includes('admin')) ||
|
97
|
-
(projectPkg.description && projectPkg.description.includes('admin dashboard'))) {
|
98
|
-
return `${projectPkg.version} (project template)`;
|
99
|
-
}
|
100
|
-
}
|
101
|
-
catch { }
|
102
|
-
// Try to check if it's available via npm (last resort)
|
103
|
-
try {
|
104
|
-
const npmVersion = (0, child_process_1.execSync)('npm view @diagramers/admin version', { encoding: 'utf8', timeout: 5000 }).trim();
|
105
|
-
return `${npmVersion} (available on npm)`;
|
106
|
-
}
|
107
|
-
catch { }
|
108
|
-
return 'not installed';
|
109
|
-
}
|
110
12
|
program
|
111
13
|
.name('diagramers')
|
112
|
-
.description('CLI
|
113
|
-
.version(
|
114
|
-
//
|
115
|
-
program
|
116
|
-
.command('version')
|
117
|
-
.description('Show CLI and sub-library versions')
|
118
|
-
.action(() => {
|
119
|
-
console.log(`@diagramers/cli: ${cliPkg.version}`);
|
120
|
-
console.log(`@diagramers/api: ${getApiVersion()}`);
|
121
|
-
console.log(`@diagramers/admin: ${getAdminVersion()}`);
|
122
|
-
// Additional context about project status
|
123
|
-
try {
|
124
|
-
const projectPkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(process.cwd(), 'package.json'), 'utf8'));
|
125
|
-
if (projectPkg.name && (projectPkg.name.includes('diagramers') ||
|
126
|
-
(projectPkg.description && projectPkg.description.includes('diagramers')))) {
|
127
|
-
console.log(`\nš Current project: ${projectPkg.name || 'unnamed'}`);
|
128
|
-
console.log(`š Project version: ${projectPkg.version || 'unknown'}`);
|
129
|
-
}
|
130
|
-
}
|
131
|
-
catch { }
|
132
|
-
});
|
133
|
-
// Add commands
|
134
|
-
(0, init_1.initCommand)(program);
|
135
|
-
(0, update_1.updateCommand)(program);
|
136
|
-
(0, extend_1.extendCommand)(program);
|
14
|
+
.description('Diagramers CLI - Command-line tools for managing Diagramers projects')
|
15
|
+
.version('4.0.3');
|
16
|
+
// Register commands
|
17
|
+
(0, admin_1.adminCommand)(program);
|
137
18
|
(0, api_1.apiCommand)(program);
|
138
|
-
// Add
|
139
|
-
const deployCommand = new deploy_1.DeployCommand();
|
140
|
-
program.addCommand(deployCommand.getCommand());
|
141
|
-
// Add versions command
|
19
|
+
// Add a default help command
|
142
20
|
program
|
143
|
-
.command('
|
144
|
-
.description('
|
145
|
-
.
|
146
|
-
.
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
console.log(chalk_1.default.yellow(` ${version}`));
|
159
|
-
});
|
160
|
-
if (!options.all && versions.length > 10) {
|
161
|
-
console.log(chalk_1.default.gray(`\n ... and ${versions.length - 10} more versions`));
|
162
|
-
console.log(chalk_1.default.gray(' Use --all to see all versions'));
|
163
|
-
}
|
164
|
-
}
|
165
|
-
else {
|
166
|
-
console.log(chalk_1.default.yellow(` ${versions}`));
|
167
|
-
}
|
168
|
-
// Show current version
|
169
|
-
try {
|
170
|
-
const currentVersion = (0, child_process_1.execSync)('npm view @diagramers/api version', {
|
171
|
-
encoding: 'utf8',
|
172
|
-
timeout: 5000
|
173
|
-
}).trim();
|
174
|
-
console.log(chalk_1.default.green(`\nš Latest version: ${currentVersion}`));
|
175
|
-
}
|
176
|
-
catch (error) {
|
177
|
-
// Ignore if we can't get current version
|
178
|
-
}
|
179
|
-
console.log(chalk_1.default.blue('\nš Usage examples:'));
|
180
|
-
console.log(chalk_1.default.gray(' diagramers init api my-project --version 1.1.17'));
|
181
|
-
console.log(chalk_1.default.gray(' diagramers update --version 1.1.17'));
|
182
|
-
}
|
183
|
-
catch (error) {
|
184
|
-
console.error(chalk_1.default.red(`ā Failed to fetch versions: ${error.message}`));
|
185
|
-
console.log(chalk_1.default.yellow('š” Make sure you have internet connection and npm is installed'));
|
186
|
-
// Fallback: try to get just the latest version
|
187
|
-
try {
|
188
|
-
console.log(chalk_1.default.blue('\nš Trying to get latest version...'));
|
189
|
-
const latestVersion = (0, child_process_1.execSync)('npm view @diagramers/api version', {
|
190
|
-
encoding: 'utf8',
|
191
|
-
timeout: 5000
|
192
|
-
}).trim();
|
193
|
-
console.log(chalk_1.default.green(`ā
Latest version: ${latestVersion}`));
|
194
|
-
}
|
195
|
-
catch (fallbackError) {
|
196
|
-
console.log(chalk_1.default.red('ā Could not fetch any version information'));
|
197
|
-
}
|
198
|
-
process.exit(1);
|
199
|
-
}
|
21
|
+
.command('help')
|
22
|
+
.description('Show help information')
|
23
|
+
.action(() => {
|
24
|
+
console.log(chalk_1.default.blue('Diagramers CLI - Available Commands:'));
|
25
|
+
console.log(chalk_1.default.gray(''));
|
26
|
+
console.log(chalk_1.default.yellow('Admin Commands:'));
|
27
|
+
console.log(chalk_1.default.gray(' diagramers admin init <projectName> - Initialize a new admin application'));
|
28
|
+
console.log(chalk_1.default.gray(' diagramers admin update - Update an existing admin project'));
|
29
|
+
console.log(chalk_1.default.gray(''));
|
30
|
+
console.log(chalk_1.default.yellow('API Commands:'));
|
31
|
+
console.log(chalk_1.default.gray(' diagramers api init <projectName> - Initialize a new API project'));
|
32
|
+
console.log(chalk_1.default.gray(' diagramers api update - Update an existing API project'));
|
33
|
+
console.log(chalk_1.default.gray(' diagramers api add-module <module> - Add a new module to API project'));
|
34
|
+
console.log(chalk_1.default.gray(''));
|
35
|
+
console.log(chalk_1.default.blue('For more information, visit: https://github.com/diagramers/diagramers-cli'));
|
200
36
|
});
|
201
|
-
|
202
|
-
|
203
|
-
${chalk_1.default.gray('# Initialize new API project')}
|
204
|
-
${chalk_1.default.blue('diagramers init api my-new-api')}
|
205
|
-
|
206
|
-
${chalk_1.default.gray('# Initialize new Admin project')}
|
207
|
-
${chalk_1.default.blue('diagramers init admin my-admin-app')}
|
208
|
-
|
209
|
-
${chalk_1.default.gray('# Initialize with specific version')}
|
210
|
-
${chalk_1.default.blue('diagramers init api my-new-api --version 1.1.17')}
|
211
|
-
${chalk_1.default.blue('diagramers init admin my-admin-app --version 1.0.0')}
|
212
|
-
|
213
|
-
${chalk_1.default.gray('# Update project to latest version')}
|
214
|
-
${chalk_1.default.blue('diagramers update')}
|
215
|
-
|
216
|
-
${chalk_1.default.gray('# Update to specific version')}
|
217
|
-
${chalk_1.default.blue('diagramers update --version 1.1.17')}
|
218
|
-
|
219
|
-
${chalk_1.default.gray('# Generate new module')}
|
220
|
-
${chalk_1.default.blue('diagramers extend --module products --crud')}
|
221
|
-
|
222
|
-
${chalk_1.default.gray('# Add endpoint to existing module')}
|
223
|
-
${chalk_1.default.blue('diagramers extend --endpoint users:search --method GET')}
|
224
|
-
|
225
|
-
${chalk_1.default.gray('# List available versions')}
|
226
|
-
${chalk_1.default.blue('diagramers versions')}
|
227
|
-
|
228
|
-
${chalk_1.default.bold('Version Information:')}
|
229
|
-
CLI: ${chalk_1.default.green(cliPkg.version)}
|
230
|
-
API: ${chalk_1.default.green(getApiVersion())}
|
231
|
-
Admin: ${chalk_1.default.green(getAdminVersion())}
|
232
|
-
`);
|
37
|
+
// Parse command line arguments
|
38
|
+
program.parse(process.argv);
|
233
39
|
// If no command is provided, show help
|
234
40
|
if (!process.argv.slice(2).length) {
|
235
41
|
program.outputHelp();
|
236
42
|
}
|
237
|
-
program.parse(process.argv);
|
238
43
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,4CAAgD;AAChD,wCAA4C;AAE5C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,sEAAsE,CAAC;KACnF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,gBAAU,EAAC,OAAO,CAAC,CAAC;AAEpB,6BAA6B;AAC7B,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC,CAAC;IACvG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC,CAAC;IACrG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC,CAAC;IACnG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC,CAAC;AACvG,CAAC,CAAC,CAAC;AAEL,+BAA+B;AAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,uCAAuC;AACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
|