envware 1.2.9 → 1.3.1

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.
@@ -0,0 +1,123 @@
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.TeamInviteCommand = void 0;
16
+ const nest_commander_1 = require("nest-commander");
17
+ const api_service_1 = require("../services/api.service");
18
+ const config_service_1 = require("../services/config.service");
19
+ const encryption_service_1 = require("../services/encryption.service");
20
+ const chalk_1 = __importDefault(require("chalk"));
21
+ let TeamInviteCommand = class TeamInviteCommand extends nest_commander_1.CommandRunner {
22
+ apiService;
23
+ encryptionService;
24
+ configService;
25
+ constructor(apiService, encryptionService, configService) {
26
+ super();
27
+ this.apiService = apiService;
28
+ this.encryptionService = encryptionService;
29
+ this.configService = configService;
30
+ }
31
+ async run(passedParams, options) {
32
+ const [teamId, email] = passedParams;
33
+ const role = options?.role || 'MEMBER';
34
+ const grantAll = options?.all || false;
35
+ if (!teamId || !email) {
36
+ console.log(chalk_1.default.red('Usage: team-invite <teamId|slug> <email> [--role ADMIN|MEMBER] [--all]'));
37
+ return;
38
+ }
39
+ try {
40
+ console.log(chalk_1.default.blue(`Inviting ${email} to team ${teamId}...`));
41
+ const { data: member } = await this.apiService.instance.post(`/teams/${teamId}/members`, {
42
+ email,
43
+ role,
44
+ });
45
+ console.log(chalk_1.default.green(`✔ User ${email} added to team as ${role}!`));
46
+ if (grantAll) {
47
+ console.log(chalk_1.default.magenta(`\nGranting access to ALL projects in team ${teamId}... 🚀`));
48
+ const { data: userData } = await this.apiService.instance.get(`/users/${email}/public-key`);
49
+ const recipientPublicKey = userData.publicKey;
50
+ if (!recipientPublicKey) {
51
+ console.log(chalk_1.default.yellow(`User ${email} has no public key registered yet. They will need to 'request' access later.`));
52
+ return;
53
+ }
54
+ const { data: projects } = await this.apiService.instance.get(`/teams/${teamId}/projects`);
55
+ for (const project of projects) {
56
+ try {
57
+ console.log(chalk_1.default.blue(`Encrypting key for project: ${project.name}...`));
58
+ const { data: pullData } = await this.apiService.instance.get(`/secrets`, {
59
+ params: { projectId: project.id },
60
+ });
61
+ if (!pullData.encryptedProjectKey) {
62
+ console.log(chalk_1.default.gray(` Skipping ${project.name}: No E2EE key found.`));
63
+ continue;
64
+ }
65
+ const projectKey = this.encryptionService.decryptProjectKey(pullData.encryptedProjectKey);
66
+ const encryptedForRecipient = this.encryptionService.encryptProjectKey(projectKey, recipientPublicKey);
67
+ await this.apiService.instance.post(`/projects/keys`, {
68
+ projectId: project.id,
69
+ userId: member.userId,
70
+ encryptedProjectKey: encryptedForRecipient,
71
+ });
72
+ console.log(chalk_1.default.green(` ✔ Access granted to ${project.name}`));
73
+ }
74
+ catch (err) {
75
+ console.log(chalk_1.default.red(` ✘ Failed for ${project.name}: ${err.message}`));
76
+ }
77
+ }
78
+ console.log(chalk_1.default.bold.green('\nAll project accesses processed! 🌸'));
79
+ }
80
+ }
81
+ catch (error) {
82
+ const errorMessage = error.response?.data?.message || error.message;
83
+ console.log(chalk_1.default.red('Invite failed: ' + errorMessage));
84
+ }
85
+ }
86
+ parseRole(val) {
87
+ return val.toUpperCase();
88
+ }
89
+ parseAll(val) {
90
+ return val;
91
+ }
92
+ };
93
+ exports.TeamInviteCommand = TeamInviteCommand;
94
+ __decorate([
95
+ (0, nest_commander_1.Option)({
96
+ flags: '-r, --role [role]',
97
+ description: 'The role for the new member (ADMIN or MEMBER)',
98
+ defaultValue: 'MEMBER',
99
+ }),
100
+ __metadata("design:type", Function),
101
+ __metadata("design:paramtypes", [String]),
102
+ __metadata("design:returntype", String)
103
+ ], TeamInviteCommand.prototype, "parseRole", null);
104
+ __decorate([
105
+ (0, nest_commander_1.Option)({
106
+ flags: '-a, --all',
107
+ description: 'Grant access to all existing projects in the team',
108
+ defaultValue: false,
109
+ }),
110
+ __metadata("design:type", Function),
111
+ __metadata("design:paramtypes", [Boolean]),
112
+ __metadata("design:returntype", Boolean)
113
+ ], TeamInviteCommand.prototype, "parseAll", null);
114
+ exports.TeamInviteCommand = TeamInviteCommand = __decorate([
115
+ (0, nest_commander_1.Command)({
116
+ name: 'team-invite',
117
+ description: 'Invite a user to a team and optionally grant access to all projects',
118
+ }),
119
+ __metadata("design:paramtypes", [api_service_1.ApiService,
120
+ encryption_service_1.EncryptionService,
121
+ config_service_1.ConfigService])
122
+ ], TeamInviteCommand);
123
+ //# sourceMappingURL=team-invite.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-invite.command.js","sourceRoot":"","sources":["../../src/commands/team-invite.command.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,9 @@ let ApiService = class ApiService {
35
35
  config.headers.Authorization = `Bearer ${token}`;
36
36
  }
37
37
  }
38
+ if (config.headers) {
39
+ config.headers['x-envware-version'] = '1.3.1';
40
+ }
38
41
  return config;
39
42
  });
40
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api.service.js","sourceRoot":"","sources":["../../src/services/api.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kDAA6C;AAC7C,qDAAiD;AAG1C,IAAM,UAAU,GAAhB,MAAM,UAAU;IAGD;IAFZ,aAAa,CAAgB;IAErC,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAC9C,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,eAAe;YAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChC,6BAA6B,CAAC;QAEhC,IAAI,CAAC,aAAa,GAAG,eAAK,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACrD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;gBACnD,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;CACF,CAAA;AA5BY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAIwB,8BAAa;GAHrC,UAAU,CA4BtB"}
1
+ {"version":3,"file":"api.service.js","sourceRoot":"","sources":["../../src/services/api.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kDAA6C;AAC7C,qDAAiD;AAG1C,IAAM,UAAU,GAAhB,MAAM,UAAU;IAGD;IAFZ,aAAa,CAAgB;IAErC,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAC9C,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,eAAe;YAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChC,6BAA6B,CAAC;QAEhC,IAAI,CAAC,aAAa,GAAG,eAAK,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACrD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;gBACnD,CAAC;YACH,CAAC;YAGD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC;YAChD,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;CACF,CAAA;AAlCY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAIwB,8BAAa;GAHrC,UAAU,CAkCtB"}