envware 1.3.3 → 1.3.4
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 +1 -0
- package/dist/app.module.js +2 -0
- package/dist/app.module.js.map +1 -1
- package/dist/commands/approve.command.d.ts +1 -0
- package/dist/commands/approve.command.js +63 -5
- package/dist/commands/approve.command.js.map +1 -1
- package/dist/commands/fingerprint.command.d.ts +8 -0
- package/dist/commands/fingerprint.command.js +97 -0
- package/dist/commands/fingerprint.command.js.map +1 -0
- package/dist/commands/keys.command.d.ts +2 -1
- package/dist/commands/keys.command.js +84 -66
- package/dist/commands/keys.command.js.map +1 -1
- package/dist/commands/team-invite.command.d.ts +1 -0
- package/dist/commands/team-invite.command.js +61 -7
- package/dist/commands/team-invite.command.js.map +1 -1
- package/dist/services/api.service.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,43 @@
|
|
|
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
|
+
});
|
|
2
18
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
19
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
20
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
21
|
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
22
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
23
|
};
|
|
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
|
+
})();
|
|
8
41
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
42
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
43
|
};
|
|
@@ -18,6 +51,7 @@ const api_service_1 = require("../services/api.service");
|
|
|
18
51
|
const config_service_1 = require("../services/config.service");
|
|
19
52
|
const encryption_service_1 = require("../services/encryption.service");
|
|
20
53
|
const chalk_1 = __importDefault(require("chalk"));
|
|
54
|
+
const crypto = __importStar(require("crypto"));
|
|
21
55
|
let TeamInviteCommand = class TeamInviteCommand extends nest_commander_1.CommandRunner {
|
|
22
56
|
apiService;
|
|
23
57
|
encryptionService;
|
|
@@ -28,6 +62,21 @@ let TeamInviteCommand = class TeamInviteCommand extends nest_commander_1.Command
|
|
|
28
62
|
this.encryptionService = encryptionService;
|
|
29
63
|
this.configService = configService;
|
|
30
64
|
}
|
|
65
|
+
getFingerprint(publicKey) {
|
|
66
|
+
try {
|
|
67
|
+
const parts = publicKey.trim().split(' ');
|
|
68
|
+
const keyData = parts.length > 1 ? parts[1] : parts[0];
|
|
69
|
+
const binaryKey = Buffer.from(keyData, 'base64');
|
|
70
|
+
return crypto
|
|
71
|
+
.createHash('sha256')
|
|
72
|
+
.update(binaryKey)
|
|
73
|
+
.digest('base64')
|
|
74
|
+
.replace(/=+$/, '');
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return 'unknown';
|
|
78
|
+
}
|
|
79
|
+
}
|
|
31
80
|
async run(passedParams, options) {
|
|
32
81
|
const [teamId, email] = passedParams;
|
|
33
82
|
const role = options?.role || 'MEMBER';
|
|
@@ -42,24 +91,29 @@ let TeamInviteCommand = class TeamInviteCommand extends nest_commander_1.Command
|
|
|
42
91
|
email,
|
|
43
92
|
role,
|
|
44
93
|
});
|
|
45
|
-
console.log(chalk_1.default.green(`✔ User ${email} added to team
|
|
94
|
+
console.log(chalk_1.default.green(`✔ User ${email} added to team!`));
|
|
46
95
|
if (grantAll) {
|
|
47
|
-
console.log(chalk_1.default.magenta(`\nGranting access to ALL projects in team ${teamId}... 🚀`));
|
|
48
96
|
const { data: userData } = await this.apiService.instance.get(`/users/${email}/public-key`);
|
|
49
97
|
const recipientPublicKey = userData.publicKey;
|
|
50
98
|
if (!recipientPublicKey) {
|
|
51
|
-
console.log(chalk_1.default.yellow(`User ${email} has no public key registered yet
|
|
99
|
+
console.log(chalk_1.default.yellow(`User ${email} has no public key registered yet.`));
|
|
52
100
|
return;
|
|
53
101
|
}
|
|
102
|
+
const fingerprint = this.getFingerprint(recipientPublicKey);
|
|
103
|
+
console.log(chalk_1.default.yellow('\n🛡️ SECURITY VERIFICATION REQUIRED'));
|
|
104
|
+
console.log(`Granting ALL project keys to: ${chalk_1.default.cyan(email)}`);
|
|
105
|
+
console.log(`Target Key Fingerprint: ${chalk_1.default.green('SHA256:' + fingerprint)}`);
|
|
106
|
+
console.log(chalk_1.default.gray('If this fingerprint is suspicious, ABORT immediately.'));
|
|
107
|
+
console.log(chalk_1.default.gray('Encryption is happening LOCALLY for this identity.\n'));
|
|
54
108
|
const { data: projects } = await this.apiService.instance.get(`/teams/${teamId}/projects`);
|
|
55
109
|
for (const project of projects) {
|
|
56
110
|
try {
|
|
57
|
-
console.log(chalk_1.default.blue(`Encrypting
|
|
111
|
+
console.log(chalk_1.default.blue(`Encrypting: ${project.name}...`));
|
|
58
112
|
const { data: pullData } = await this.apiService.instance.get(`/secrets`, {
|
|
59
113
|
params: { projectId: project.id },
|
|
60
114
|
});
|
|
61
115
|
if (!pullData.encryptedProjectKey) {
|
|
62
|
-
console.log(chalk_1.default.gray(` Skipping
|
|
116
|
+
console.log(chalk_1.default.gray(` Skipping: No E2EE key.`));
|
|
63
117
|
continue;
|
|
64
118
|
}
|
|
65
119
|
const projectKey = this.encryptionService.decryptProjectKey(pullData.encryptedProjectKey);
|
|
@@ -69,13 +123,13 @@ let TeamInviteCommand = class TeamInviteCommand extends nest_commander_1.Command
|
|
|
69
123
|
userId: member.userId,
|
|
70
124
|
encryptedProjectKey: encryptedForRecipient,
|
|
71
125
|
});
|
|
72
|
-
console.log(chalk_1.default.green(` ✔
|
|
126
|
+
console.log(chalk_1.default.green(` ✔ Success.`));
|
|
73
127
|
}
|
|
74
128
|
catch (err) {
|
|
75
129
|
console.log(chalk_1.default.red(` ✘ Failed for ${project.name}: ${err.message}`));
|
|
76
130
|
}
|
|
77
131
|
}
|
|
78
|
-
console.log(chalk_1.default.bold.green('\
|
|
132
|
+
console.log(chalk_1.default.bold.green('\nAccess grant complete! 🌸'));
|
|
79
133
|
}
|
|
80
134
|
}
|
|
81
135
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-invite.command.js","sourceRoot":"","sources":["../../src/commands/team-invite.command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"team-invite.command.js","sourceRoot":"","sources":["../../src/commands/team-invite.command.ts"],"names":[],"mappings":"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"}
|