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.
@@ -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,
@@ -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;AAmB3D,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAjBrB,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,wBAAU;YACV,8BAAa;YACb,sCAAiB;SAClB;KACF,CAAC;GACW,SAAS,CAAG"}
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"}
@@ -9,4 +9,6 @@ export declare class ProjectCommand extends CommandRunner {
9
9
  private createProject;
10
10
  private listProjects;
11
11
  private selectProject;
12
+ private removeProject;
13
+ private leaveProject;
12
14
  }
@@ -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> | project list | project select'));
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":"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"}
1
+ {"version":3,"file":"project.command.js","sourceRoot":"","sources":["../../src/commands/project.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { CommandRunner } from 'nest-commander';
2
+ import { ApiService } from '../services/api.service';
3
+ export declare class StatusCommand extends CommandRunner {
4
+ private apiService;
5
+ constructor(apiService: ApiService);
6
+ run(): Promise<void>;
7
+ }
@@ -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 { plan, cpfCnpj } = await inquirer_1.default.prompt([
27
+ const { action } = await inquirer_1.default.prompt([
62
28
  {
63
29
  type: 'list',
64
- name: 'plan',
65
- message: 'Which plan would you like to upgrade to?',
30
+ name: 'action',
31
+ message: 'Manage your subscription:',
66
32
  choices: [
67
- { name: 'Premium ($10/mo) - Up to 10 projects', value: 'PREMIUM' }
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
- type: 'input',
72
- name: 'cpfCnpj',
73
- message: 'Enter your CPF or CNPJ (only numbers):',
74
- validate: (input) => {
75
- if (/^\d{11}$|^\d{14}$/.test(input))
76
- return true;
77
- return 'Please enter a valid CPF (11 digits) or CNPJ (14 digits).';
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 your subscription...'));
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('✔ Subscription created successfully!'));
89
- console.log(chalk_1.default.yellow('\nTo complete your upgrade, pay via PIX:'));
90
- qrcode.generate(data.pixCode, { small: true });
91
- console.log(chalk_1.default.cyan('\nPix Code (Copy & Paste):'));
92
- console.log(chalk_1.default.white(data.pixCode));
93
- console.log(chalk_1.default.blue(`\nAlternatively, you can pay here: ${chalk_1.default.underline(data.invoiceUrl)}`));
94
- console.log(chalk_1.default.magenta('\nYour account will be updated automatically once the payment is confirmed. ✨'));
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAwD;AACxD,yDAAqD;AACrD,kDAA0B;AAC1B,wDAAgC;AAChC,wDAA0C;AAGnC,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,8BAAa;IAC3B;IAApB,YAAoB,UAAsB;QACxC,KAAK,EAAE,CAAC;QADU,eAAU,GAAV,UAAU,CAAY;IAE1C,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAC9C;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,0CAA0C;gBACnD,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,sCAAsC,EAAE,KAAK,EAAE,SAAS,EAAE;iBACnE;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,wCAAwC;gBACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;wBAAE,OAAO,IAAI,CAAC;oBACjD,OAAO,2DAA2D,CAAC;gBACrE,CAAC;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;gBAChE,IAAI;gBACJ,OAAO;aACR,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;YAGtE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAE/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAEvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sCAAsC,eAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAElG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,OAAO,CAAC,+EAA+E,CAAC,CAAC,CAAC;QAE9G,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF,CAAA;AApDY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,wBAAO,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;qCAEtD,wBAAU;GAD/B,cAAc,CAoD1B"}
1
+ {"version":3,"file":"upgrade.command.js","sourceRoot":"","sources":["../../src/commands/upgrade.command.ts"],"names":[],"mappings":"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"}