envware 1.1.1 → 1.1.3
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/app.module.js +2 -0
- package/dist/app.module.js.map +1 -1
- package/dist/commands/project.command.d.ts +2 -0
- package/dist/commands/project.command.js +142 -1
- package/dist/commands/project.command.js.map +1 -1
- package/dist/commands/status.command.d.ts +7 -0
- package/dist/commands/status.command.js +76 -0
- package/dist/commands/status.command.js.map +1 -0
- package/dist/commands/upgrade.command.js +45 -56
- package/dist/commands/upgrade.command.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -1
package/dist/app.module.js
CHANGED
|
@@ -18,6 +18,7 @@ const accept_command_1 = require("./commands/accept.command");
|
|
|
18
18
|
const envs_command_1 = require("./commands/envs.command");
|
|
19
19
|
const secrets_command_1 = require("./commands/secrets.command");
|
|
20
20
|
const upgrade_command_1 = require("./commands/upgrade.command");
|
|
21
|
+
const status_command_1 = require("./commands/status.command");
|
|
21
22
|
const api_service_1 = require("./services/api.service");
|
|
22
23
|
const config_service_1 = require("./services/config.service");
|
|
23
24
|
const encryption_service_1 = require("./services/encryption.service");
|
|
@@ -37,6 +38,7 @@ exports.AppModule = AppModule = __decorate([
|
|
|
37
38
|
envs_command_1.EnvsCommand,
|
|
38
39
|
secrets_command_1.SecretsCommand,
|
|
39
40
|
upgrade_command_1.UpgradeCommand,
|
|
41
|
+
status_command_1.StatusCommand,
|
|
40
42
|
api_service_1.ApiService,
|
|
41
43
|
config_service_1.ConfigService,
|
|
42
44
|
encryption_service_1.EncryptionService,
|
package/dist/app.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8DAA0D;AAC1D,4DAAwD;AACxD,gEAA4D;AAC5D,0DAAsD;AACtD,0DAAsD;AACtD,4DAAwD;AACxD,8DAA0D;AAC1D,0DAAsD;AACtD,gEAA4D;AAC5D,gEAA4D;AAC5D,wDAAoD;AACpD,8DAA0D;AAC1D,sEAAkE;
|
|
1
|
+
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8DAA0D;AAC1D,4DAAwD;AACxD,gEAA4D;AAC5D,0DAAsD;AACtD,0DAAsD;AACtD,4DAAwD;AACxD,8DAA0D;AAC1D,0DAAsD;AACtD,gEAA4D;AAC5D,gEAA4D;AAC5D,8DAA0D;AAC1D,wDAAoD;AACpD,8DAA0D;AAC1D,sEAAkE;AAoB3D,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAlBrB,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,8BAAa;YACb,4BAAY;YACZ,gCAAc;YACd,0BAAW;YACX,0BAAW;YACX,4BAAY;YACZ,8BAAa;YACb,0BAAW;YACX,gCAAc;YACd,gCAAc;YACd,8BAAa;YACb,wBAAU;YACV,8BAAa;YACb,sCAAiB;SAClB;KACF,CAAC;GACW,SAAS,CAAG"}
|
|
@@ -41,8 +41,14 @@ let ProjectCommand = class ProjectCommand extends nest_commander_1.CommandRunner
|
|
|
41
41
|
else if (action === 'select') {
|
|
42
42
|
await this.selectProject();
|
|
43
43
|
}
|
|
44
|
+
else if (action === 'remove') {
|
|
45
|
+
await this.removeProject(name);
|
|
46
|
+
}
|
|
47
|
+
else if (action === 'leave') {
|
|
48
|
+
await this.leaveProject(name);
|
|
49
|
+
}
|
|
44
50
|
else {
|
|
45
|
-
console.log(chalk_1.default.yellow('Usage: project create <name> |
|
|
51
|
+
console.log(chalk_1.default.yellow('Usage: project create <name> | list | select | remove [name] | leave [name]'));
|
|
46
52
|
}
|
|
47
53
|
}
|
|
48
54
|
async createProject(name) {
|
|
@@ -111,6 +117,141 @@ let ProjectCommand = class ProjectCommand extends nest_commander_1.CommandRunner
|
|
|
111
117
|
(error.response?.data?.error || error.message)));
|
|
112
118
|
}
|
|
113
119
|
}
|
|
120
|
+
async removeProject(nameOrId) {
|
|
121
|
+
try {
|
|
122
|
+
let projectId = nameOrId;
|
|
123
|
+
if (!projectId) {
|
|
124
|
+
const response = await this.apiService.instance.get('/projects');
|
|
125
|
+
const projects = response.data;
|
|
126
|
+
const { data: me } = await this.apiService.instance.get('/auth/me');
|
|
127
|
+
const myProjects = projects.filter((p) => p.ownerId === me.id);
|
|
128
|
+
if (myProjects.length === 0) {
|
|
129
|
+
console.log(chalk_1.default.yellow("You don't have any projects to remove."));
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
const answer = await inquirer_1.default.prompt([
|
|
133
|
+
{
|
|
134
|
+
type: 'list',
|
|
135
|
+
name: 'selectedId',
|
|
136
|
+
message: 'Select a project to REMOVE (cannot be undone):',
|
|
137
|
+
choices: myProjects.map((p) => ({
|
|
138
|
+
name: `${p.name} (${p.slug})`,
|
|
139
|
+
value: p.id,
|
|
140
|
+
})),
|
|
141
|
+
},
|
|
142
|
+
]);
|
|
143
|
+
projectId = answer.selectedId;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
const response = await this.apiService.instance.get('/projects');
|
|
147
|
+
const found = response.data.find((p) => p.id === nameOrId || p.name === nameOrId || p.slug === nameOrId);
|
|
148
|
+
if (found)
|
|
149
|
+
projectId = found.id;
|
|
150
|
+
}
|
|
151
|
+
if (!projectId) {
|
|
152
|
+
console.log(chalk_1.default.red('Project not found.'));
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const { confirm } = await inquirer_1.default.prompt([
|
|
156
|
+
{
|
|
157
|
+
type: 'confirm',
|
|
158
|
+
name: 'confirm',
|
|
159
|
+
message: chalk_1.default.red(`Are you sure you want to DELETE this project? All secrets and keys will be lost forever.`),
|
|
160
|
+
default: false,
|
|
161
|
+
},
|
|
162
|
+
]);
|
|
163
|
+
if (!confirm) {
|
|
164
|
+
console.log(chalk_1.default.yellow('Operation cancelled.'));
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
await this.apiService.instance.delete(`/projects/${projectId}`);
|
|
168
|
+
console.log(chalk_1.default.green('✔ Project deleted successfully.'));
|
|
169
|
+
if (this.configService.getLocalProject() === projectId) {
|
|
170
|
+
this.configService.delete('PROJECT_ID');
|
|
171
|
+
try {
|
|
172
|
+
const fs = require('fs');
|
|
173
|
+
const path = require('path');
|
|
174
|
+
const projectConfigPath = path.join(process.cwd(), '.envware');
|
|
175
|
+
if (fs.existsSync(projectConfigPath)) {
|
|
176
|
+
fs.writeFileSync(projectConfigPath, '');
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch { }
|
|
180
|
+
console.log(chalk_1.default.blue('Removed from active configuration.'));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
console.log(chalk_1.default.red('Failed to remove project: ' +
|
|
185
|
+
(error.response?.data?.error || error.message)));
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
async leaveProject(nameOrId) {
|
|
189
|
+
try {
|
|
190
|
+
let projectId = nameOrId;
|
|
191
|
+
if (!projectId) {
|
|
192
|
+
const response = await this.apiService.instance.get('/projects');
|
|
193
|
+
const projects = response.data;
|
|
194
|
+
const { data: me } = await this.apiService.instance.get('/auth/me');
|
|
195
|
+
const sharedProjects = projects.filter((p) => p.ownerId !== me.id);
|
|
196
|
+
if (sharedProjects.length === 0) {
|
|
197
|
+
console.log(chalk_1.default.yellow("You don't have any shared projects to leave."));
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
const answer = await inquirer_1.default.prompt([
|
|
201
|
+
{
|
|
202
|
+
type: 'list',
|
|
203
|
+
name: 'selectedId',
|
|
204
|
+
message: 'Select a project to LEAVE:',
|
|
205
|
+
choices: sharedProjects.map((p) => ({
|
|
206
|
+
name: `${p.name} (${p.slug}) - Owner: ${p.owner.email}`,
|
|
207
|
+
value: p.id,
|
|
208
|
+
})),
|
|
209
|
+
},
|
|
210
|
+
]);
|
|
211
|
+
projectId = answer.selectedId;
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
const response = await this.apiService.instance.get('/projects');
|
|
215
|
+
const found = response.data.find((p) => p.id === nameOrId || p.name === nameOrId || p.slug === nameOrId);
|
|
216
|
+
if (found)
|
|
217
|
+
projectId = found.id;
|
|
218
|
+
}
|
|
219
|
+
if (!projectId) {
|
|
220
|
+
console.log(chalk_1.default.red('Project not found.'));
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
const { confirm } = await inquirer_1.default.prompt([
|
|
224
|
+
{
|
|
225
|
+
type: 'confirm',
|
|
226
|
+
name: 'confirm',
|
|
227
|
+
message: chalk_1.default.yellow(`Are you sure you want to LEAVE this project? You will lose access to all secrets.`),
|
|
228
|
+
default: false,
|
|
229
|
+
},
|
|
230
|
+
]);
|
|
231
|
+
if (!confirm) {
|
|
232
|
+
console.log(chalk_1.default.yellow('Operation cancelled.'));
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
await this.apiService.instance.delete(`/projects/${projectId}/leave`);
|
|
236
|
+
console.log(chalk_1.default.green('✔ Left project successfully.'));
|
|
237
|
+
if (this.configService.getLocalProject() === projectId) {
|
|
238
|
+
try {
|
|
239
|
+
const fs = require('fs');
|
|
240
|
+
const path = require('path');
|
|
241
|
+
const projectConfigPath = path.join(process.cwd(), '.envware');
|
|
242
|
+
if (fs.existsSync(projectConfigPath)) {
|
|
243
|
+
fs.writeFileSync(projectConfigPath, '');
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
catch { }
|
|
247
|
+
console.log(chalk_1.default.blue('Removed from active configuration.'));
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
console.log(chalk_1.default.red('Failed to leave project: ' +
|
|
252
|
+
(error.response?.data?.error || error.message)));
|
|
253
|
+
}
|
|
254
|
+
}
|
|
114
255
|
};
|
|
115
256
|
exports.ProjectCommand = ProjectCommand;
|
|
116
257
|
exports.ProjectCommand = ProjectCommand = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.command.js","sourceRoot":"","sources":["../../src/commands/project.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mDAAwD;AACxD,yDAAqD;AACrD,+DAA2D;AAC3D,kDAA0B;AAC1B,wDAAgC;AAGzB,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,8BAAa;IAErC;IACA;IAFV,YACU,UAAsB,EACtB,aAA4B;QAEpC,KAAK,EAAE,CAAC;QAHA,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAe;IAGtC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,YAAsB;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAC7D,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,eAAe,IAAI,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC;QAEpC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,
|
|
1
|
+
{"version":3,"file":"project.command.js","sourceRoot":"","sources":["../../src/commands/project.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.StatusCommand = void 0;
|
|
16
|
+
const nest_commander_1 = require("nest-commander");
|
|
17
|
+
const api_service_1 = require("../services/api.service");
|
|
18
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
19
|
+
let StatusCommand = class StatusCommand extends nest_commander_1.CommandRunner {
|
|
20
|
+
apiService;
|
|
21
|
+
constructor(apiService) {
|
|
22
|
+
super();
|
|
23
|
+
this.apiService = apiService;
|
|
24
|
+
}
|
|
25
|
+
async run() {
|
|
26
|
+
try {
|
|
27
|
+
const { data: me } = await this.apiService.instance.get('/auth/me');
|
|
28
|
+
const { data: projects } = await this.apiService.instance.get('/projects');
|
|
29
|
+
const myProjects = projects.filter((p) => p.ownerId === me.id);
|
|
30
|
+
const guestProjects = projects.filter((p) => p.ownerId !== me.id);
|
|
31
|
+
const plan = me.subscriptionStatus || 'FREE';
|
|
32
|
+
const projectLimit = plan === 'PREMIUM' ? 100 : (plan === 'ENTERPRISE' ? 'Unlimited' : 10);
|
|
33
|
+
const usageColor = myProjects.length > (typeof projectLimit === 'number' ? projectLimit : 9999)
|
|
34
|
+
? chalk_1.default.red
|
|
35
|
+
: (myProjects.length === projectLimit ? chalk_1.default.yellow : chalk_1.default.green);
|
|
36
|
+
console.log(chalk_1.default.bold('\n📊 Account Status'));
|
|
37
|
+
console.log('----------------');
|
|
38
|
+
console.log(`User: ${chalk_1.default.cyan(me.email)}`);
|
|
39
|
+
console.log(`Plan: ${plan === 'PREMIUM' ? chalk_1.default.magenta('✨ PREMIUM') : chalk_1.default.white('FREE')}`);
|
|
40
|
+
console.log(`Usage: ${usageColor(myProjects.length)} / ${projectLimit} projects owned`);
|
|
41
|
+
if (typeof projectLimit === 'number' && myProjects.length > projectLimit) {
|
|
42
|
+
console.log(chalk_1.default.bgRed.white.bold('\n ⚠️ ACCOUNT BLOCKED '));
|
|
43
|
+
console.log(chalk_1.default.red(`You have exceeded your plan limit. Your projects are locked.`));
|
|
44
|
+
console.log(chalk_1.default.red(`Please upgrade your plan or remove ${myProjects.length - projectLimit} project(s) to restore access.`));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log(chalk_1.default.green('\n✔ Account is active'));
|
|
48
|
+
}
|
|
49
|
+
console.log(chalk_1.default.bold('\n📂 Projects'));
|
|
50
|
+
console.log('----------------');
|
|
51
|
+
if (myProjects.length > 0) {
|
|
52
|
+
console.log(chalk_1.default.white('Owned by you:'));
|
|
53
|
+
myProjects.forEach((p) => {
|
|
54
|
+
console.log(` - ${p.name} (${chalk_1.default.gray(p.slug)})`);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (guestProjects.length > 0) {
|
|
58
|
+
console.log(chalk_1.default.white('\nShared with you:'));
|
|
59
|
+
guestProjects.forEach((p) => {
|
|
60
|
+
console.log(` - ${p.name} ${chalk_1.default.gray('(Owner: ' + p.owner.email + ')')}`);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
console.log('');
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.log(chalk_1.default.red('Failed to fetch status: ' +
|
|
67
|
+
(error.response?.data?.error || error.message)));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
exports.StatusCommand = StatusCommand;
|
|
72
|
+
exports.StatusCommand = StatusCommand = __decorate([
|
|
73
|
+
(0, nest_commander_1.Command)({ name: 'status', description: 'Show your account status and plan usage' }),
|
|
74
|
+
__metadata("design:paramtypes", [api_service_1.ApiService])
|
|
75
|
+
], StatusCommand);
|
|
76
|
+
//# sourceMappingURL=status.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.command.js","sourceRoot":"","sources":["../../src/commands/status.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,43 +1,10 @@
|
|
|
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
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
7
|
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
-
var ownKeys = function(o) {
|
|
26
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
-
var ar = [];
|
|
28
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
-
return ar;
|
|
30
|
-
};
|
|
31
|
-
return ownKeys(o);
|
|
32
|
-
};
|
|
33
|
-
return function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
})();
|
|
41
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
10
|
};
|
|
@@ -50,7 +17,6 @@ const nest_commander_1 = require("nest-commander");
|
|
|
50
17
|
const api_service_1 = require("../services/api.service");
|
|
51
18
|
const chalk_1 = __importDefault(require("chalk"));
|
|
52
19
|
const inquirer_1 = __importDefault(require("inquirer"));
|
|
53
|
-
const qrcode = __importStar(require("qrcode-terminal"));
|
|
54
20
|
let UpgradeCommand = class UpgradeCommand extends nest_commander_1.CommandRunner {
|
|
55
21
|
apiService;
|
|
56
22
|
constructor(apiService) {
|
|
@@ -58,40 +24,63 @@ let UpgradeCommand = class UpgradeCommand extends nest_commander_1.CommandRunner
|
|
|
58
24
|
this.apiService = apiService;
|
|
59
25
|
}
|
|
60
26
|
async run() {
|
|
61
|
-
const {
|
|
27
|
+
const { action } = await inquirer_1.default.prompt([
|
|
62
28
|
{
|
|
63
29
|
type: 'list',
|
|
64
|
-
name: '
|
|
65
|
-
message: '
|
|
30
|
+
name: 'action',
|
|
31
|
+
message: 'Manage your subscription:',
|
|
66
32
|
choices: [
|
|
67
|
-
{ name: 'Premium ($10/mo) - Up to
|
|
33
|
+
{ name: 'Upgrade to Premium ($10/mo) - Up to 100 projects', value: 'UPGRADE' },
|
|
34
|
+
{ name: 'Cancel Subscription (Downgrade to Free)', value: 'CANCEL' },
|
|
68
35
|
],
|
|
69
36
|
},
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
37
|
+
]);
|
|
38
|
+
if (action === 'CANCEL') {
|
|
39
|
+
const { confirm } = await inquirer_1.default.prompt([
|
|
40
|
+
{
|
|
41
|
+
type: 'confirm',
|
|
42
|
+
name: 'confirm',
|
|
43
|
+
message: 'Are you sure you want to cancel your Premium subscription? You will be downgraded to the Free plan.',
|
|
44
|
+
default: false,
|
|
78
45
|
},
|
|
46
|
+
]);
|
|
47
|
+
if (!confirm) {
|
|
48
|
+
console.log(chalk_1.default.yellow('Operation cancelled.'));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
console.log(chalk_1.default.blue('\nCancelling subscription...'));
|
|
53
|
+
await this.apiService.instance.delete('/checkout');
|
|
54
|
+
console.log(chalk_1.default.green('✔ Subscription cancelled successfully. You are now on the Free plan.'));
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
const message = error.response?.data?.error || error.message;
|
|
58
|
+
console.log(chalk_1.default.red('\nCancellation failed: ' + message));
|
|
59
|
+
}
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const { plan } = await inquirer_1.default.prompt([
|
|
63
|
+
{
|
|
64
|
+
type: 'list',
|
|
65
|
+
name: 'plan',
|
|
66
|
+
message: 'Which plan would you like to upgrade to?',
|
|
67
|
+
choices: [
|
|
68
|
+
{ name: 'Premium ($10/mo) - Up to 100 projects', value: 'PREMIUM' },
|
|
69
|
+
],
|
|
79
70
|
},
|
|
80
71
|
]);
|
|
81
72
|
try {
|
|
82
|
-
console.log(chalk_1.default.blue('\nGenerating
|
|
83
|
-
console.log(plan, cpfCnpj);
|
|
73
|
+
console.log(chalk_1.default.blue('\nGenerating secure checkout link...'));
|
|
84
74
|
const { data } = await this.apiService.instance.post('/checkout', {
|
|
85
75
|
plan,
|
|
86
|
-
cpfCnpj,
|
|
87
76
|
});
|
|
88
|
-
console.log(chalk_1.default.green('✔
|
|
89
|
-
console.log(chalk_1.default.yellow('\
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
console.log(chalk_1.default.
|
|
94
|
-
console.log(chalk_1.default.
|
|
77
|
+
console.log(chalk_1.default.green('✔ Link generated successfully!'));
|
|
78
|
+
console.log(chalk_1.default.yellow('\nPlease complete your payment in the browser:'));
|
|
79
|
+
console.log(chalk_1.default.underline.cyan(data.checkoutUrl));
|
|
80
|
+
const open = (await import('open')).default;
|
|
81
|
+
await open(data.checkoutUrl).catch(() => { });
|
|
82
|
+
console.log(chalk_1.default.gray('\nWaiting for payment confirmation...'));
|
|
83
|
+
console.log(chalk_1.default.gray('(Once paid, run "envware status" to see your new plan)'));
|
|
95
84
|
}
|
|
96
85
|
catch (error) {
|
|
97
86
|
const message = error.response?.data?.error || error.message;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.command.js","sourceRoot":"","sources":["../../src/commands/upgrade.command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upgrade.command.js","sourceRoot":"","sources":["../../src/commands/upgrade.command.ts"],"names":[],"mappings":"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"}
|