@sendly/cli 3.13.1 → 3.15.0

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,12 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class TeamsCreate extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ name: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ description: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
9
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,58 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { success, json, colors, isJsonMode, } from "../../lib/output.js";
5
+ import { setCurrentOrg } from "../../lib/config.js";
6
+ import { isCI } from "../../lib/config.js";
7
+ export default class TeamsCreate extends AuthenticatedCommand {
8
+ static description = "Create a new team";
9
+ static examples = [
10
+ '<%= config.bin %> teams create --name "Acme Corp"',
11
+ '<%= config.bin %> teams create --name "Acme Corp" --description "Our main team"',
12
+ ];
13
+ static flags = {
14
+ ...AuthenticatedCommand.baseFlags,
15
+ name: Flags.string({
16
+ char: "n",
17
+ description: "Team name",
18
+ required: true,
19
+ }),
20
+ description: Flags.string({
21
+ char: "d",
22
+ description: "Team description",
23
+ }),
24
+ };
25
+ async run() {
26
+ const { flags } = await this.parse(TeamsCreate);
27
+ const body = { name: flags.name };
28
+ if (flags.description)
29
+ body.description = flags.description;
30
+ const response = await apiClient.post("/api/organizations", body);
31
+ if (isJsonMode()) {
32
+ json(response);
33
+ return;
34
+ }
35
+ success("Team created", {
36
+ Name: response.name,
37
+ ID: colors.dim(response.id),
38
+ Slug: colors.dim(response.slug),
39
+ });
40
+ if (!isCI()) {
41
+ const { default: inquirer } = await import("inquirer");
42
+ const { switchNow } = await inquirer.prompt([
43
+ {
44
+ type: "confirm",
45
+ name: "switchNow",
46
+ message: "Switch to this team now?",
47
+ default: true,
48
+ },
49
+ ]);
50
+ if (switchNow) {
51
+ setCurrentOrg(response.id, response.name, response.slug);
52
+ console.log();
53
+ success(`Switched to ${colors.primary(response.name)}`);
54
+ }
55
+ }
56
+ }
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3RlYW1zL2NyZWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsT0FBTyxFQUNQLElBQUksRUFDSixNQUFNLEVBQ04sVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVUzQyxNQUFNLENBQUMsT0FBTyxPQUFPLFdBQVksU0FBUSxvQkFBb0I7SUFDM0QsTUFBTSxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQztJQUV6QyxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLG1EQUFtRDtRQUNuRCxpRkFBaUY7S0FDbEYsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsV0FBVztZQUN4QixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN4QixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSxrQkFBa0I7U0FDaEMsQ0FBQztLQUNILENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEQsTUFBTSxJQUFJLEdBQTRCLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzRCxJQUFJLEtBQUssQ0FBQyxXQUFXO1lBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBRTVELE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDbkMsb0JBQW9CLEVBQ3BCLElBQUksQ0FDTCxDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUN0QixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7WUFDbkIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMzQixJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1NBQ2hDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2RCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUMxQztvQkFDRSxJQUFJLEVBQUUsU0FBUztvQkFDZixJQUFJLEVBQUUsV0FBVztvQkFDakIsT0FBTyxFQUFFLDBCQUEwQjtvQkFDbkMsT0FBTyxFQUFFLElBQUk7aUJBQ2Q7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLGVBQWUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGpzb24sXG4gIGNvbG9ycyxcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcbmltcG9ydCB7IHNldEN1cnJlbnRPcmcgfSBmcm9tIFwiLi4vLi4vbGliL2NvbmZpZy5qc1wiO1xuaW1wb3J0IHsgaXNDSSB9IGZyb20gXCIuLi8uLi9saWIvY29uZmlnLmpzXCI7XG5cbmludGVyZmFjZSBDcmVhdGVPcmdSZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlYW1zQ3JlYXRlIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkNyZWF0ZSBhIG5ldyB0ZWFtXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgICc8JT0gY29uZmlnLmJpbiAlPiB0ZWFtcyBjcmVhdGUgLS1uYW1lIFwiQWNtZSBDb3JwXCInLFxuICAgICc8JT0gY29uZmlnLmJpbiAlPiB0ZWFtcyBjcmVhdGUgLS1uYW1lIFwiQWNtZSBDb3JwXCIgLS1kZXNjcmlwdGlvbiBcIk91ciBtYWluIHRlYW1cIicsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBuYW1lOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJuXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUZWFtIG5hbWVcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICAgIGRlc2NyaXB0aW9uOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUZWFtIGRlc2NyaXB0aW9uXCIsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoVGVhbXNDcmVhdGUpO1xuXG4gICAgY29uc3QgYm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IG5hbWU6IGZsYWdzLm5hbWUgfTtcbiAgICBpZiAoZmxhZ3MuZGVzY3JpcHRpb24pIGJvZHkuZGVzY3JpcHRpb24gPSBmbGFncy5kZXNjcmlwdGlvbjtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8Q3JlYXRlT3JnUmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL29yZ2FuaXphdGlvbnNcIixcbiAgICAgIGJvZHksXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1Y2Nlc3MoXCJUZWFtIGNyZWF0ZWRcIiwge1xuICAgICAgTmFtZTogcmVzcG9uc2UubmFtZSxcbiAgICAgIElEOiBjb2xvcnMuZGltKHJlc3BvbnNlLmlkKSxcbiAgICAgIFNsdWc6IGNvbG9ycy5kaW0ocmVzcG9uc2Uuc2x1ZyksXG4gICAgfSk7XG5cbiAgICBpZiAoIWlzQ0koKSkge1xuICAgICAgY29uc3QgeyBkZWZhdWx0OiBpbnF1aXJlciB9ID0gYXdhaXQgaW1wb3J0KFwiaW5xdWlyZXJcIik7XG4gICAgICBjb25zdCB7IHN3aXRjaE5vdyB9ID0gYXdhaXQgaW5xdWlyZXIucHJvbXB0KFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiY29uZmlybVwiLFxuICAgICAgICAgIG5hbWU6IFwic3dpdGNoTm93XCIsXG4gICAgICAgICAgbWVzc2FnZTogXCJTd2l0Y2ggdG8gdGhpcyB0ZWFtIG5vdz9cIixcbiAgICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSk7XG5cbiAgICAgIGlmIChzd2l0Y2hOb3cpIHtcbiAgICAgICAgc2V0Q3VycmVudE9yZyhyZXNwb25zZS5pZCwgcmVzcG9uc2UubmFtZSwgcmVzcG9uc2Uuc2x1Zyk7XG4gICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgIHN1Y2Nlc3MoYFN3aXRjaGVkIHRvICR7Y29sb3JzLnByaW1hcnkocmVzcG9uc2UubmFtZSl9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class TeamsCurrent extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
7
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
8
+ };
9
+ run(): Promise<void>;
10
+ }
@@ -0,0 +1,33 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ import { json, info, keyValue, colors, isJsonMode } from "../../lib/output.js";
3
+ import { getCurrentOrg } from "../../lib/config.js";
4
+ export default class TeamsCurrent extends AuthenticatedCommand {
5
+ static description = "Show the currently active team";
6
+ static examples = [
7
+ "<%= config.bin %> teams current",
8
+ "<%= config.bin %> teams current --json",
9
+ ];
10
+ static flags = {
11
+ ...AuthenticatedCommand.baseFlags,
12
+ };
13
+ async run() {
14
+ const org = getCurrentOrg();
15
+ if (isJsonMode()) {
16
+ json(org || { message: "No active team" });
17
+ return;
18
+ }
19
+ if (!org) {
20
+ info("No active team set");
21
+ console.log();
22
+ console.log(` Run ${colors.code("sendly teams switch")} to select a team`);
23
+ return;
24
+ }
25
+ console.log();
26
+ keyValue({
27
+ Team: colors.primary(org.name),
28
+ ID: colors.dim(org.id),
29
+ ...(org.slug ? { Slug: colors.dim(org.slug) } : {}),
30
+ });
31
+ }
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy90ZWFtcy9jdXJyZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBYSxTQUFRLG9CQUFvQjtJQUM1RCxNQUFNLENBQUMsV0FBVyxHQUFHLGdDQUFnQyxDQUFDO0lBRXRELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsaUNBQWlDO1FBQ2pDLHdDQUF3QztLQUN6QyxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEdBQUcsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUU1QixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDM0MsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUMzQixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULFNBQVMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FDL0QsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsUUFBUSxDQUFDO1lBQ1AsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUM5QixFQUFFLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDcEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGpzb24sIGluZm8sIGtleVZhbHVlLCBjb2xvcnMsIGlzSnNvbk1vZGUgfSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IHsgZ2V0Q3VycmVudE9yZyB9IGZyb20gXCIuLi8uLi9saWIvY29uZmlnLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlYW1zQ3VycmVudCBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJTaG93IHRoZSBjdXJyZW50bHkgYWN0aXZlIHRlYW1cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB0ZWFtcyBjdXJyZW50XCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB0ZWFtcyBjdXJyZW50IC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG9yZyA9IGdldEN1cnJlbnRPcmcoKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ob3JnIHx8IHsgbWVzc2FnZTogXCJObyBhY3RpdmUgdGVhbVwiIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghb3JnKSB7XG4gICAgICBpbmZvKFwiTm8gYWN0aXZlIHRlYW0gc2V0XCIpO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgICBSdW4gJHtjb2xvcnMuY29kZShcInNlbmRseSB0ZWFtcyBzd2l0Y2hcIil9IHRvIHNlbGVjdCBhIHRlYW1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGtleVZhbHVlKHtcbiAgICAgIFRlYW06IGNvbG9ycy5wcmltYXJ5KG9yZy5uYW1lKSxcbiAgICAgIElEOiBjb2xvcnMuZGltKG9yZy5pZCksXG4gICAgICAuLi4ob3JnLnNsdWcgPyB7IFNsdWc6IGNvbG9ycy5kaW0ob3JnLnNsdWcpIH0gOiB7fSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class TeamsInvite extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ email: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ role: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
11
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,48 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { success, json, colors, isJsonMode } from "../../lib/output.js";
5
+ import { getCurrentOrg } from "../../lib/config.js";
6
+ export default class TeamsInvite extends AuthenticatedCommand {
7
+ static description = "Invite a member to the current team";
8
+ static examples = [
9
+ "<%= config.bin %> teams invite user@example.com",
10
+ "<%= config.bin %> teams invite user@example.com --role admin",
11
+ ];
12
+ static args = {
13
+ email: Args.string({
14
+ description: "Email address to invite",
15
+ required: true,
16
+ }),
17
+ };
18
+ static flags = {
19
+ ...AuthenticatedCommand.baseFlags,
20
+ role: Flags.string({
21
+ char: "r",
22
+ description: "Role to assign (admin, member, viewer)",
23
+ options: ["admin", "member", "viewer"],
24
+ default: "member",
25
+ }),
26
+ };
27
+ async run() {
28
+ const { args, flags } = await this.parse(TeamsInvite);
29
+ const org = getCurrentOrg();
30
+ if (!org) {
31
+ this.error("No active team. Run 'sendly teams switch' to select one.");
32
+ }
33
+ const response = await apiClient.post(`/api/organizations/${org.id}/invitations`, {
34
+ email: args.email,
35
+ role: flags.role,
36
+ });
37
+ if (isJsonMode()) {
38
+ json(response);
39
+ return;
40
+ }
41
+ success(`Invitation sent to ${colors.primary(args.email)}`, {
42
+ Team: org.name,
43
+ Role: flags.role,
44
+ Expires: new Date(response.expiresAt).toLocaleDateString(),
45
+ });
46
+ }
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52aXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3RlYW1zL2ludml0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVdwRCxNQUFNLENBQUMsT0FBTyxPQUFPLFdBQVksU0FBUSxvQkFBb0I7SUFDM0QsTUFBTSxDQUFDLFdBQVcsR0FBRyxxQ0FBcUMsQ0FBQztJQUUzRCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLGlEQUFpRDtRQUNqRCw4REFBOEQ7S0FDL0QsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNqQixXQUFXLEVBQUUseUJBQXlCO1lBQ3RDLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLHdDQUF3QztZQUNyRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQztZQUN0QyxPQUFPLEVBQUUsUUFBUTtTQUNsQixDQUFDO0tBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdEQsTUFBTSxHQUFHLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLEtBQUssQ0FDUiwwREFBMEQsQ0FDM0QsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQ25DLHNCQUFzQixHQUFHLENBQUMsRUFBRSxjQUFjLEVBQzFDO1lBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNqQixDQUNGLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLENBQUMsc0JBQXNCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDMUQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1lBQ2QsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFLO1lBQ2pCLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7U0FDM0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MsIEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7IHN1Y2Nlc3MsIGpzb24sIGNvbG9ycywgaXNKc29uTW9kZSB9IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgeyBnZXRDdXJyZW50T3JnIH0gZnJvbSBcIi4uLy4uL2xpYi9jb25maWcuanNcIjtcblxuaW50ZXJmYWNlIEludml0YXRpb25SZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHJvbGU6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVhbXNJbnZpdGUgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiSW52aXRlIGEgbWVtYmVyIHRvIHRoZSBjdXJyZW50IHRlYW1cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB0ZWFtcyBpbnZpdGUgdXNlckBleGFtcGxlLmNvbVwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdGVhbXMgaW52aXRlIHVzZXJAZXhhbXBsZS5jb20gLS1yb2xlIGFkbWluXCIsXG4gIF07XG5cbiAgc3RhdGljIGFyZ3MgPSB7XG4gICAgZW1haWw6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkVtYWlsIGFkZHJlc3MgdG8gaW52aXRlXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIHJvbGU6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcInJcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlJvbGUgdG8gYXNzaWduIChhZG1pbiwgbWVtYmVyLCB2aWV3ZXIpXCIsXG4gICAgICBvcHRpb25zOiBbXCJhZG1pblwiLCBcIm1lbWJlclwiLCBcInZpZXdlclwiXSxcbiAgICAgIGRlZmF1bHQ6IFwibWVtYmVyXCIsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncywgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoVGVhbXNJbnZpdGUpO1xuXG4gICAgY29uc3Qgb3JnID0gZ2V0Q3VycmVudE9yZygpO1xuICAgIGlmICghb3JnKSB7XG4gICAgICB0aGlzLmVycm9yKFxuICAgICAgICBcIk5vIGFjdGl2ZSB0ZWFtLiBSdW4gJ3NlbmRseSB0ZWFtcyBzd2l0Y2gnIHRvIHNlbGVjdCBvbmUuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8SW52aXRhdGlvblJlc3BvbnNlPihcbiAgICAgIGAvYXBpL29yZ2FuaXphdGlvbnMvJHtvcmcuaWR9L2ludml0YXRpb25zYCxcbiAgICAgIHtcbiAgICAgICAgZW1haWw6IGFyZ3MuZW1haWwsXG4gICAgICAgIHJvbGU6IGZsYWdzLnJvbGUsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdWNjZXNzKGBJbnZpdGF0aW9uIHNlbnQgdG8gJHtjb2xvcnMucHJpbWFyeShhcmdzLmVtYWlsKX1gLCB7XG4gICAgICBUZWFtOiBvcmcubmFtZSxcbiAgICAgIFJvbGU6IGZsYWdzLnJvbGUhLFxuICAgICAgRXhwaXJlczogbmV3IERhdGUocmVzcG9uc2UuZXhwaXJlc0F0KS50b0xvY2FsZURhdGVTdHJpbmcoKSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,10 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class TeamsList extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
7
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
8
+ };
9
+ run(): Promise<void>;
10
+ }
@@ -0,0 +1,71 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ import { apiClient } from "../../lib/api-client.js";
3
+ import { table, json, info, colors, isJsonMode, formatRelativeTime, } from "../../lib/output.js";
4
+ import { getCurrentOrg } from "../../lib/config.js";
5
+ export default class TeamsList extends AuthenticatedCommand {
6
+ static description = "List your teams";
7
+ static examples = [
8
+ "<%= config.bin %> teams list",
9
+ "<%= config.bin %> teams list --json",
10
+ ];
11
+ static flags = {
12
+ ...AuthenticatedCommand.baseFlags,
13
+ };
14
+ async run() {
15
+ const orgs = await apiClient.get("/api/organizations");
16
+ if (isJsonMode()) {
17
+ json(orgs);
18
+ return;
19
+ }
20
+ if (orgs.length === 0) {
21
+ info("No teams found");
22
+ console.log();
23
+ console.log(` Create one with ${colors.code("sendly teams create --name \"My Team\"")}`);
24
+ return;
25
+ }
26
+ const currentOrg = getCurrentOrg();
27
+ console.log();
28
+ table(orgs.map((org) => ({
29
+ ...org,
30
+ isCurrent: currentOrg?.id === org.id,
31
+ })), [
32
+ {
33
+ header: "",
34
+ key: "isCurrent",
35
+ width: 3,
36
+ formatter: (v) => (v ? colors.primary("→") : " "),
37
+ },
38
+ {
39
+ header: "Name",
40
+ key: "name",
41
+ width: 24,
42
+ },
43
+ {
44
+ header: "Role",
45
+ key: "role",
46
+ width: 10,
47
+ formatter: (v) => {
48
+ const role = String(v);
49
+ if (role === "owner")
50
+ return colors.warning(role);
51
+ if (role === "admin")
52
+ return colors.info(role);
53
+ return role;
54
+ },
55
+ },
56
+ {
57
+ header: "Members",
58
+ key: "memberCount",
59
+ width: 10,
60
+ formatter: (v) => (v != null ? String(v) : colors.dim("-")),
61
+ },
62
+ {
63
+ header: "Created",
64
+ key: "createdAt",
65
+ width: 14,
66
+ formatter: (v) => (v ? formatRelativeTime(String(v)) : colors.dim("-")),
67
+ },
68
+ ]);
69
+ }
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy90ZWFtcy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLFVBQVUsRUFDVixrQkFBa0IsR0FDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFhcEQsTUFBTSxDQUFDLE9BQU8sT0FBTyxTQUFVLFNBQVEsb0JBQW9CO0lBQ3pELE1BQU0sQ0FBQyxXQUFXLEdBQUcsaUJBQWlCLENBQUM7SUFFdkMsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiw4QkFBOEI7UUFDOUIscUNBQXFDO0tBQ3RDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sSUFBSSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBaUIsb0JBQW9CLENBQUMsQ0FBQztRQUV2RSxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ1gsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdkIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxxQkFBcUIsTUFBTSxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxFQUFFLENBQzdFLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBRW5DLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVkLEtBQUssQ0FDSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pCLEdBQUcsR0FBRztZQUNOLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1NBQ3JDLENBQUMsQ0FBQyxFQUNIO1lBQ0U7Z0JBQ0UsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLEtBQUssRUFBRSxDQUFDO2dCQUNSLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQzthQUNsRDtZQUNEO2dCQUNFLE1BQU0sRUFBRSxNQUFNO2dCQUNkLEdBQUcsRUFBRSxNQUFNO2dCQUNYLEtBQUssRUFBRSxFQUFFO2FBQ1Y7WUFDRDtnQkFDRSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxHQUFHLEVBQUUsTUFBTTtnQkFDWCxLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDZixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLElBQUksSUFBSSxLQUFLLE9BQU87d0JBQUUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNsRCxJQUFJLElBQUksS0FBSyxPQUFPO3dCQUFFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDL0MsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQzthQUNGO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLEdBQUcsRUFBRSxhQUFhO2dCQUNsQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzVEO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLEdBQUcsRUFBRSxXQUFXO2dCQUNoQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN4RTtTQUNGLENBQ0YsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHRhYmxlLFxuICBqc29uLFxuICBpbmZvLFxuICBjb2xvcnMsXG4gIGlzSnNvbk1vZGUsXG4gIGZvcm1hdFJlbGF0aXZlVGltZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcbmltcG9ydCB7IGdldEN1cnJlbnRPcmcgfSBmcm9tIFwiLi4vLi4vbGliL2NvbmZpZy5qc1wiO1xuXG5pbnRlcmZhY2UgT3JnYW5pemF0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpc1BlcnNvbmFsOiBib29sZWFuO1xuICByb2xlOiBzdHJpbmc7XG4gIG1lbWJlckNvdW50PzogbnVtYmVyO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVhbXNMaXN0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkxpc3QgeW91ciB0ZWFtc1wiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHRlYW1zIGxpc3RcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHRlYW1zIGxpc3QgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgb3JncyA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8T3JnYW5pemF0aW9uW10+KFwiL2FwaS9vcmdhbml6YXRpb25zXCIpO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihvcmdzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAob3Jncy5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8oXCJObyB0ZWFtcyBmb3VuZFwiKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCAgQ3JlYXRlIG9uZSB3aXRoICR7Y29sb3JzLmNvZGUoXCJzZW5kbHkgdGVhbXMgY3JlYXRlIC0tbmFtZSBcXFwiTXkgVGVhbVxcXCJcIil9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudE9yZyA9IGdldEN1cnJlbnRPcmcoKTtcblxuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICB0YWJsZShcbiAgICAgIG9yZ3MubWFwKChvcmcpID0+ICh7XG4gICAgICAgIC4uLm9yZyxcbiAgICAgICAgaXNDdXJyZW50OiBjdXJyZW50T3JnPy5pZCA9PT0gb3JnLmlkLFxuICAgICAgfSkpLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyOiBcIlwiLFxuICAgICAgICAgIGtleTogXCJpc0N1cnJlbnRcIixcbiAgICAgICAgICB3aWR0aDogMyxcbiAgICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiAodiA/IGNvbG9ycy5wcmltYXJ5KFwi4oaSXCIpIDogXCIgXCIpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyOiBcIk5hbWVcIixcbiAgICAgICAgICBrZXk6IFwibmFtZVwiLFxuICAgICAgICAgIHdpZHRoOiAyNCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcjogXCJSb2xlXCIsXG4gICAgICAgICAga2V5OiBcInJvbGVcIixcbiAgICAgICAgICB3aWR0aDogMTAsXG4gICAgICAgICAgZm9ybWF0dGVyOiAodikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgcm9sZSA9IFN0cmluZyh2KTtcbiAgICAgICAgICAgIGlmIChyb2xlID09PSBcIm93bmVyXCIpIHJldHVybiBjb2xvcnMud2FybmluZyhyb2xlKTtcbiAgICAgICAgICAgIGlmIChyb2xlID09PSBcImFkbWluXCIpIHJldHVybiBjb2xvcnMuaW5mbyhyb2xlKTtcbiAgICAgICAgICAgIHJldHVybiByb2xlO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXI6IFwiTWVtYmVyc1wiLFxuICAgICAgICAgIGtleTogXCJtZW1iZXJDb3VudFwiLFxuICAgICAgICAgIHdpZHRoOiAxMCxcbiAgICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiAodiAhPSBudWxsID8gU3RyaW5nKHYpIDogY29sb3JzLmRpbShcIi1cIikpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyOiBcIkNyZWF0ZWRcIixcbiAgICAgICAgICBrZXk6IFwiY3JlYXRlZEF0XCIsXG4gICAgICAgICAgd2lkdGg6IDE0LFxuICAgICAgICAgIGZvcm1hdHRlcjogKHYpID0+ICh2ID8gZm9ybWF0UmVsYXRpdmVUaW1lKFN0cmluZyh2KSkgOiBjb2xvcnMuZGltKFwiLVwiKSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class TeamsMembers extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
7
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
8
+ };
9
+ run(): Promise<void>;
10
+ }
@@ -0,0 +1,66 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ import { apiClient } from "../../lib/api-client.js";
3
+ import { table, json, info, colors, isJsonMode, formatRelativeTime, } from "../../lib/output.js";
4
+ import { getCurrentOrg } from "../../lib/config.js";
5
+ export default class TeamsMembers extends AuthenticatedCommand {
6
+ static description = "List members of the current team";
7
+ static examples = [
8
+ "<%= config.bin %> teams members",
9
+ "<%= config.bin %> teams members --json",
10
+ ];
11
+ static flags = {
12
+ ...AuthenticatedCommand.baseFlags,
13
+ };
14
+ async run() {
15
+ const org = getCurrentOrg();
16
+ if (!org) {
17
+ this.error("No active team. Run 'sendly teams switch' to select one.");
18
+ }
19
+ const members = await apiClient.get(`/api/organizations/${org.id}/members`);
20
+ if (isJsonMode()) {
21
+ json(members);
22
+ return;
23
+ }
24
+ if (members.length === 0) {
25
+ info("No members found");
26
+ return;
27
+ }
28
+ console.log();
29
+ info(`${colors.primary(org.name)} — ${members.length} member${members.length === 1 ? "" : "s"}`);
30
+ console.log();
31
+ table(members, [
32
+ {
33
+ header: "Name",
34
+ key: "userName",
35
+ width: 22,
36
+ formatter: (v) => String(v || "Unknown"),
37
+ },
38
+ {
39
+ header: "Email",
40
+ key: "userEmail",
41
+ width: 28,
42
+ formatter: (v) => (v ? colors.dim(String(v)) : colors.dim("-")),
43
+ },
44
+ {
45
+ header: "Role",
46
+ key: "role",
47
+ width: 10,
48
+ formatter: (v) => {
49
+ const role = String(v);
50
+ if (role === "owner")
51
+ return colors.warning(role);
52
+ if (role === "admin")
53
+ return colors.info(role);
54
+ return role;
55
+ },
56
+ },
57
+ {
58
+ header: "Joined",
59
+ key: "joinedAt",
60
+ width: 14,
61
+ formatter: (v) => (v ? formatRelativeTime(String(v)) : colors.dim("-")),
62
+ },
63
+ ]);
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy90ZWFtcy9tZW1iZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLFVBQVUsRUFDVixrQkFBa0IsR0FDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFXcEQsTUFBTSxDQUFDLE9BQU8sT0FBTyxZQUFhLFNBQVEsb0JBQW9CO0lBQzVELE1BQU0sQ0FBQyxXQUFXLEdBQUcsa0NBQWtDLENBQUM7SUFFeEQsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQixpQ0FBaUM7UUFDakMsd0NBQXdDO0tBQ3pDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sR0FBRyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxLQUFLLENBQ1IsMERBQTBELENBQzNELENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUNqQyxzQkFBc0IsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUN2QyxDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNkLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLE1BQU0sVUFBVSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVkLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDYjtnQkFDRSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxHQUFHLEVBQUUsVUFBVTtnQkFDZixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO2FBQ3pDO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDaEU7WUFDRDtnQkFDRSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxHQUFHLEVBQUUsTUFBTTtnQkFDWCxLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDZixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLElBQUksSUFBSSxLQUFLLE9BQU87d0JBQUUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNsRCxJQUFJLElBQUksS0FBSyxPQUFPO3dCQUFFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDL0MsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQzthQUNGO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLEdBQUcsRUFBRSxVQUFVO2dCQUNmLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hFO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAgdGFibGUsXG4gIGpzb24sXG4gIGluZm8sXG4gIGNvbG9ycyxcbiAgaXNKc29uTW9kZSxcbiAgZm9ybWF0UmVsYXRpdmVUaW1lLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IHsgZ2V0Q3VycmVudE9yZyB9IGZyb20gXCIuLi8uLi9saWIvY29uZmlnLmpzXCI7XG5cbmludGVyZmFjZSBNZW1iZXIge1xuICBpZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgcm9sZTogc3RyaW5nO1xuICBqb2luZWRBdDogc3RyaW5nO1xuICB1c2VyTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgdXNlckVtYWlsOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZWFtc01lbWJlcnMgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiTGlzdCBtZW1iZXJzIG9mIHRoZSBjdXJyZW50IHRlYW1cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB0ZWFtcyBtZW1iZXJzXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB0ZWFtcyBtZW1iZXJzIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG9yZyA9IGdldEN1cnJlbnRPcmcoKTtcbiAgICBpZiAoIW9yZykge1xuICAgICAgdGhpcy5lcnJvcihcbiAgICAgICAgXCJObyBhY3RpdmUgdGVhbS4gUnVuICdzZW5kbHkgdGVhbXMgc3dpdGNoJyB0byBzZWxlY3Qgb25lLlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW1iZXJzID0gYXdhaXQgYXBpQ2xpZW50LmdldDxNZW1iZXJbXT4oXG4gICAgICBgL2FwaS9vcmdhbml6YXRpb25zLyR7b3JnLmlkfS9tZW1iZXJzYCxcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihtZW1iZXJzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobWVtYmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8oXCJObyBtZW1iZXJzIGZvdW5kXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgaW5mbyhgJHtjb2xvcnMucHJpbWFyeShvcmcubmFtZSl9IOKAlCAke21lbWJlcnMubGVuZ3RofSBtZW1iZXIke21lbWJlcnMubGVuZ3RoID09PSAxID8gXCJcIiA6IFwic1wifWApO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICB0YWJsZShtZW1iZXJzLCBbXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJOYW1lXCIsXG4gICAgICAgIGtleTogXCJ1c2VyTmFtZVwiLFxuICAgICAgICB3aWR0aDogMjIsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IFN0cmluZyh2IHx8IFwiVW5rbm93blwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJFbWFpbFwiLFxuICAgICAgICBrZXk6IFwidXNlckVtYWlsXCIsXG4gICAgICAgIHdpZHRoOiAyOCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gKHYgPyBjb2xvcnMuZGltKFN0cmluZyh2KSkgOiBjb2xvcnMuZGltKFwiLVwiKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiUm9sZVwiLFxuICAgICAgICBrZXk6IFwicm9sZVwiLFxuICAgICAgICB3aWR0aDogMTAsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IHtcbiAgICAgICAgICBjb25zdCByb2xlID0gU3RyaW5nKHYpO1xuICAgICAgICAgIGlmIChyb2xlID09PSBcIm93bmVyXCIpIHJldHVybiBjb2xvcnMud2FybmluZyhyb2xlKTtcbiAgICAgICAgICBpZiAocm9sZSA9PT0gXCJhZG1pblwiKSByZXR1cm4gY29sb3JzLmluZm8ocm9sZSk7XG4gICAgICAgICAgcmV0dXJuIHJvbGU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiSm9pbmVkXCIsXG4gICAgICAgIGtleTogXCJqb2luZWRBdFwiLFxuICAgICAgICB3aWR0aDogMTQsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+ICh2ID8gZm9ybWF0UmVsYXRpdmVUaW1lKFN0cmluZyh2KSkgOiBjb2xvcnMuZGltKFwiLVwiKSksXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class TeamsSwitch extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ org: import("@oclif/core/lib/interfaces/parser.js").Arg<string | undefined, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,86 @@
1
+ import { Args } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { success, json, colors, isJsonMode, } from "../../lib/output.js";
5
+ import { setCurrentOrg, clearCurrentOrg, getCurrentOrg } from "../../lib/config.js";
6
+ import { isCI } from "../../lib/config.js";
7
+ export default class TeamsSwitch extends AuthenticatedCommand {
8
+ static description = "Switch the active team";
9
+ static examples = [
10
+ "<%= config.bin %> teams switch",
11
+ "<%= config.bin %> teams switch <org-id-or-slug>",
12
+ "<%= config.bin %> teams switch --clear",
13
+ ];
14
+ static args = {
15
+ org: Args.string({
16
+ description: "Organization ID or slug to switch to",
17
+ required: false,
18
+ }),
19
+ };
20
+ static flags = {
21
+ ...AuthenticatedCommand.baseFlags,
22
+ };
23
+ async run() {
24
+ const { args } = await this.parse(TeamsSwitch);
25
+ if (args.org === "clear" || args.org === "none" || args.org === "personal") {
26
+ clearCurrentOrg();
27
+ if (isJsonMode()) {
28
+ json({ cleared: true });
29
+ return;
30
+ }
31
+ success("Switched to personal account");
32
+ return;
33
+ }
34
+ const orgs = await apiClient.get("/api/organizations");
35
+ if (args.org) {
36
+ const match = orgs.find((o) => o.id === args.org ||
37
+ o.slug === args.org ||
38
+ o.name.toLowerCase() === args.org.toLowerCase());
39
+ if (!match) {
40
+ this.error(`Team not found: ${args.org}`);
41
+ }
42
+ setCurrentOrg(match.id, match.name, match.slug);
43
+ if (isJsonMode()) {
44
+ json({ id: match.id, name: match.name, slug: match.slug });
45
+ return;
46
+ }
47
+ success(`Switched to ${colors.primary(match.name)}`);
48
+ return;
49
+ }
50
+ if (isCI()) {
51
+ this.error("Interactive mode not available in CI. Pass an org ID or slug as argument.");
52
+ }
53
+ const { default: inquirer } = await import("inquirer");
54
+ const currentOrg = getCurrentOrg();
55
+ const choices = orgs.map((o) => ({
56
+ name: `${o.name}${o.role ? ` (${o.role})` : ""}${o.isPersonal ? " — personal" : ""}`,
57
+ value: o.id,
58
+ }));
59
+ const { orgId } = await inquirer.prompt([
60
+ {
61
+ type: "list",
62
+ name: "orgId",
63
+ message: "Select a team:",
64
+ choices,
65
+ default: currentOrg?.id,
66
+ },
67
+ ]);
68
+ const selected = orgs.find((o) => o.id === orgId);
69
+ if (selected.isPersonal) {
70
+ clearCurrentOrg();
71
+ if (isJsonMode()) {
72
+ json({ cleared: true });
73
+ return;
74
+ }
75
+ success("Switched to personal account");
76
+ return;
77
+ }
78
+ setCurrentOrg(selected.id, selected.name, selected.slug);
79
+ if (isJsonMode()) {
80
+ json({ id: selected.id, name: selected.name, slug: selected.slug });
81
+ return;
82
+ }
83
+ success(`Switched to ${colors.primary(selected.name)}`);
84
+ }
85
+ }
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3RlYW1zL3N3aXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsT0FBTyxFQUNQLElBQUksRUFFSixNQUFNLEVBQ04sVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVTNDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sV0FBWSxTQUFRLG9CQUFvQjtJQUMzRCxNQUFNLENBQUMsV0FBVyxHQUFHLHdCQUF3QixDQUFDO0lBRTlDLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsZ0NBQWdDO1FBQ2hDLGlEQUFpRDtRQUNqRCx3Q0FBd0M7S0FDekMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNmLFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFL0MsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzNFLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3hCLE9BQU87WUFDVCxDQUFDO1lBQ0QsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQUM7WUFDeEMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQWlCLG9CQUFvQixDQUFDLENBQUM7UUFFdkUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUNyQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsR0FBRztnQkFDakIsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRztnQkFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsR0FBSSxDQUFDLFdBQVcsRUFBRSxDQUNuRCxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLENBQUM7WUFDRCxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRCxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDM0QsT0FBTztZQUNULENBQUM7WUFDRCxPQUFPLENBQUMsZUFBZSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLDJFQUEyRSxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUVELE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkQsTUFBTSxVQUFVLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQixJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDcEYsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFO1NBQ1osQ0FBQyxDQUFDLENBQUM7UUFFSixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3RDO2dCQUNFLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxPQUFPO2dCQUNiLE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLE9BQU87Z0JBQ1AsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUUsQ0FBQztRQUVuRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QixlQUFlLEVBQUUsQ0FBQztZQUNsQixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QixPQUFPO1lBQ1QsQ0FBQztZQUNELE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1lBQ3hDLE9BQU87UUFDVCxDQUFDO1FBRUQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekQsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNwRSxPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxlQUFlLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBzdWNjZXNzLFxuICBqc29uLFxuICBpbmZvLFxuICBjb2xvcnMsXG4gIGlzSnNvbk1vZGUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgeyBzZXRDdXJyZW50T3JnLCBjbGVhckN1cnJlbnRPcmcsIGdldEN1cnJlbnRPcmcgfSBmcm9tIFwiLi4vLi4vbGliL2NvbmZpZy5qc1wiO1xuaW1wb3J0IHsgaXNDSSB9IGZyb20gXCIuLi8uLi9saWIvY29uZmlnLmpzXCI7XG5cbmludGVyZmFjZSBPcmdhbml6YXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgcm9sZTogc3RyaW5nO1xuICBpc1BlcnNvbmFsOiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZWFtc1N3aXRjaCBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJTd2l0Y2ggdGhlIGFjdGl2ZSB0ZWFtXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdGVhbXMgc3dpdGNoXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB0ZWFtcyBzd2l0Y2ggPG9yZy1pZC1vci1zbHVnPlwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdGVhbXMgc3dpdGNoIC0tY2xlYXJcIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICBvcmc6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk9yZ2FuaXphdGlvbiBJRCBvciBzbHVnIHRvIHN3aXRjaCB0b1wiLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShUZWFtc1N3aXRjaCk7XG5cbiAgICBpZiAoYXJncy5vcmcgPT09IFwiY2xlYXJcIiB8fCBhcmdzLm9yZyA9PT0gXCJub25lXCIgfHwgYXJncy5vcmcgPT09IFwicGVyc29uYWxcIikge1xuICAgICAgY2xlYXJDdXJyZW50T3JnKCk7XG4gICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgIGpzb24oeyBjbGVhcmVkOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzdWNjZXNzKFwiU3dpdGNoZWQgdG8gcGVyc29uYWwgYWNjb3VudFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvcmdzID0gYXdhaXQgYXBpQ2xpZW50LmdldDxPcmdhbml6YXRpb25bXT4oXCIvYXBpL29yZ2FuaXphdGlvbnNcIik7XG5cbiAgICBpZiAoYXJncy5vcmcpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gb3Jncy5maW5kKFxuICAgICAgICAobykgPT5cbiAgICAgICAgICBvLmlkID09PSBhcmdzLm9yZyB8fFxuICAgICAgICAgIG8uc2x1ZyA9PT0gYXJncy5vcmcgfHxcbiAgICAgICAgICBvLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gYXJncy5vcmchLnRvTG93ZXJDYXNlKCksXG4gICAgICApO1xuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICB0aGlzLmVycm9yKGBUZWFtIG5vdCBmb3VuZDogJHthcmdzLm9yZ31gKTtcbiAgICAgIH1cbiAgICAgIHNldEN1cnJlbnRPcmcobWF0Y2guaWQsIG1hdGNoLm5hbWUsIG1hdGNoLnNsdWcpO1xuICAgICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAgICBqc29uKHsgaWQ6IG1hdGNoLmlkLCBuYW1lOiBtYXRjaC5uYW1lLCBzbHVnOiBtYXRjaC5zbHVnIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzdWNjZXNzKGBTd2l0Y2hlZCB0byAke2NvbG9ycy5wcmltYXJ5KG1hdGNoLm5hbWUpfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0NJKCkpIHtcbiAgICAgIHRoaXMuZXJyb3IoXCJJbnRlcmFjdGl2ZSBtb2RlIG5vdCBhdmFpbGFibGUgaW4gQ0kuIFBhc3MgYW4gb3JnIElEIG9yIHNsdWcgYXMgYXJndW1lbnQuXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgZGVmYXVsdDogaW5xdWlyZXIgfSA9IGF3YWl0IGltcG9ydChcImlucXVpcmVyXCIpO1xuXG4gICAgY29uc3QgY3VycmVudE9yZyA9IGdldEN1cnJlbnRPcmcoKTtcbiAgICBjb25zdCBjaG9pY2VzID0gb3Jncy5tYXAoKG8pID0+ICh7XG4gICAgICBuYW1lOiBgJHtvLm5hbWV9JHtvLnJvbGUgPyBgICgke28ucm9sZX0pYCA6IFwiXCJ9JHtvLmlzUGVyc29uYWwgPyBcIiDigJQgcGVyc29uYWxcIiA6IFwiXCJ9YCxcbiAgICAgIHZhbHVlOiBvLmlkLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHsgb3JnSWQgfSA9IGF3YWl0IGlucXVpcmVyLnByb21wdChbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibGlzdFwiLFxuICAgICAgICBuYW1lOiBcIm9yZ0lkXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiU2VsZWN0IGEgdGVhbTpcIixcbiAgICAgICAgY2hvaWNlcyxcbiAgICAgICAgZGVmYXVsdDogY3VycmVudE9yZz8uaWQsXG4gICAgICB9LFxuICAgIF0pO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBvcmdzLmZpbmQoKG8pID0+IG8uaWQgPT09IG9yZ0lkKSE7XG5cbiAgICBpZiAoc2VsZWN0ZWQuaXNQZXJzb25hbCkge1xuICAgICAgY2xlYXJDdXJyZW50T3JnKCk7XG4gICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgIGpzb24oeyBjbGVhcmVkOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzdWNjZXNzKFwiU3dpdGNoZWQgdG8gcGVyc29uYWwgYWNjb3VudFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRDdXJyZW50T3JnKHNlbGVjdGVkLmlkLCBzZWxlY3RlZC5uYW1lLCBzZWxlY3RlZC5zbHVnKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24oeyBpZDogc2VsZWN0ZWQuaWQsIG5hbWU6IHNlbGVjdGVkLm5hbWUsIHNsdWc6IHNlbGVjdGVkLnNsdWcgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VjY2VzcyhgU3dpdGNoZWQgdG8gJHtjb2xvcnMucHJpbWFyeShzZWxlY3RlZC5uYW1lKX1gKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { BaseCommand } from "../lib/base-command.js";
2
2
  import { getAuthInfo } from "../lib/auth.js";
3
3
  import { success, info, keyValue, colors, json } from "../lib/output.js";
4
- import { getConfigValue, getConfigPath } from "../lib/config.js";
4
+ import { getConfigValue, getConfigPath, getCurrentOrg } from "../lib/config.js";
5
5
  export default class Whoami extends BaseCommand {
6
6
  static description = "Show current authentication status";
7
7
  static examples = ["<%= config.bin %> whoami"];
@@ -11,6 +11,7 @@ export default class Whoami extends BaseCommand {
11
11
  async run() {
12
12
  const { flags } = await this.parse(Whoami);
13
13
  const authInfo = await getAuthInfo();
14
+ const org = getCurrentOrg();
14
15
  if (flags.json) {
15
16
  json({
16
17
  authenticated: authInfo.authenticated,
@@ -19,6 +20,7 @@ export default class Whoami extends BaseCommand {
19
20
  environment: authInfo.environment,
20
21
  keyType: authInfo.keyType,
21
22
  configPath: getConfigPath(),
23
+ organization: org ? { id: org.id, name: org.name, slug: org.slug } : null,
22
24
  });
23
25
  return;
24
26
  }
@@ -48,8 +50,11 @@ export default class Whoami extends BaseCommand {
48
50
  if (baseUrl && baseUrl !== "https://sendly.live") {
49
51
  displayData["Server"] = colors.dim(baseUrl);
50
52
  }
53
+ if (org) {
54
+ displayData["Team"] = colors.primary(org.name) + colors.dim(` (${org.id})`);
55
+ }
51
56
  displayData["Config"] = colors.dim(getConfigPath());
52
57
  keyValue(displayData);
53
58
  }
54
59
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hvYW1pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3dob2FtaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRSxNQUFNLENBQUMsT0FBTyxPQUFPLE1BQU8sU0FBUSxXQUFXO0lBQzdDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsb0NBQW9DLENBQUM7SUFFMUQsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFFL0MsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsV0FBVyxDQUFDLFNBQVM7S0FDekIsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsRUFBRSxDQUFDO1FBRXJDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDO2dCQUNILGFBQWEsRUFBRSxRQUFRLENBQUMsYUFBYTtnQkFDckMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO2dCQUNyQixNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07Z0JBQ3ZCLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztnQkFDakMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO2dCQUN6QixVQUFVLEVBQUUsYUFBYSxFQUFFO2FBQzVCLENBQUMsQ0FBQztZQUNILE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDdEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDcEUsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWQsTUFBTSxXQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUUvQywrRUFBK0U7UUFDL0UsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ3RELFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDckIsSUFBSSxLQUFLLE1BQU07Z0JBQ2IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQztnQkFDdEUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUzRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUN4QyxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCx1Q0FBdUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLElBQUksT0FBTyxJQUFJLE9BQU8sS0FBSyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2pELFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBRXBELFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvbW1hbmQgfSBmcm9tIFwiLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgZ2V0QXV0aEluZm8gfSBmcm9tIFwiLi4vbGliL2F1dGguanNcIjtcbmltcG9ydCB7IHN1Y2Nlc3MsIGluZm8sIGtleVZhbHVlLCBjb2xvcnMsIGpzb24gfSBmcm9tIFwiLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnVmFsdWUsIGdldENvbmZpZ1BhdGggfSBmcm9tIFwiLi4vbGliL2NvbmZpZy5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXaG9hbWkgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiU2hvdyBjdXJyZW50IGF1dGhlbnRpY2F0aW9uIHN0YXR1c1wiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcIjwlPSBjb25maWcuYmluICU+IHdob2FtaVwiXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQmFzZUNvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKFdob2FtaSk7XG5cbiAgICBjb25zdCBhdXRoSW5mbyA9IGF3YWl0IGdldEF1dGhJbmZvKCk7XG5cbiAgICBpZiAoZmxhZ3MuanNvbikge1xuICAgICAganNvbih7XG4gICAgICAgIGF1dGhlbnRpY2F0ZWQ6IGF1dGhJbmZvLmF1dGhlbnRpY2F0ZWQsXG4gICAgICAgIGVtYWlsOiBhdXRoSW5mby5lbWFpbCxcbiAgICAgICAgdXNlcklkOiBhdXRoSW5mby51c2VySWQsXG4gICAgICAgIGVudmlyb25tZW50OiBhdXRoSW5mby5lbnZpcm9ubWVudCxcbiAgICAgICAga2V5VHlwZTogYXV0aEluZm8ua2V5VHlwZSxcbiAgICAgICAgY29uZmlnUGF0aDogZ2V0Q29uZmlnUGF0aCgpLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFhdXRoSW5mby5hdXRoZW50aWNhdGVkKSB7XG4gICAgICBpbmZvKFwiTm90IGxvZ2dlZCBpblwiKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhgICBSdW4gJHtjb2xvcnMuY29kZShcInNlbmRseSBsb2dpblwiKX0gdG8gYXV0aGVudGljYXRlYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcIkF1dGhlbnRpY2F0ZWRcIik7XG4gICAgY29uc29sZS5sb2coKTtcblxuICAgIGNvbnN0IGRpc3BsYXlEYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAvLyBTaG93IEFQSSBtb2RlICh0ZXN0IHZzIGxpdmUpIC0gdGhpcyBkZXRlcm1pbmVzIGlmIG1lc3NhZ2VzIGFyZSBhY3R1YWxseSBzZW50XG4gICAgY29uc3QgbW9kZSA9IGF1dGhJbmZvLmtleVR5cGUgfHwgYXV0aEluZm8uZW52aXJvbm1lbnQ7XG4gICAgZGlzcGxheURhdGFbXCJBUEkgTW9kZVwiXSA9XG4gICAgICBtb2RlID09PSBcInRlc3RcIlxuICAgICAgICA/IGNvbG9ycy53YXJuaW5nKFwidGVzdFwiKSArIGNvbG9ycy5kaW0oXCIgKHNhbmRib3ggLSBubyByZWFsIG1lc3NhZ2VzKVwiKVxuICAgICAgICA6IGNvbG9ycy5zdWNjZXNzKFwibGl2ZVwiKSArIGNvbG9ycy5kaW0oXCIgKHByb2R1Y3Rpb24pXCIpO1xuXG4gICAgaWYgKGF1dGhJbmZvLmVtYWlsKSB7XG4gICAgICBkaXNwbGF5RGF0YVtcIkVtYWlsXCJdID0gYXV0aEluZm8uZW1haWw7XG4gICAgfVxuXG4gICAgaWYgKGF1dGhJbmZvLnVzZXJJZCkge1xuICAgICAgZGlzcGxheURhdGFbXCJVc2VyIElEXCJdID0gY29sb3JzLmRpbShhdXRoSW5mby51c2VySWQpO1xuICAgIH1cblxuICAgIC8vIFNob3cgd2hpY2ggc2VydmVyIHdlJ3JlIGNvbm5lY3RlZCB0b1xuICAgIGNvbnN0IGJhc2VVcmwgPSBnZXRDb25maWdWYWx1ZShcImJhc2VVcmxcIik7XG4gICAgaWYgKGJhc2VVcmwgJiYgYmFzZVVybCAhPT0gXCJodHRwczovL3NlbmRseS5saXZlXCIpIHtcbiAgICAgIGRpc3BsYXlEYXRhW1wiU2VydmVyXCJdID0gY29sb3JzLmRpbShiYXNlVXJsKTtcbiAgICB9XG5cbiAgICBkaXNwbGF5RGF0YVtcIkNvbmZpZ1wiXSA9IGNvbG9ycy5kaW0oZ2V0Q29uZmlnUGF0aCgpKTtcblxuICAgIGtleVZhbHVlKGRpc3BsYXlEYXRhKTtcbiAgfVxufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hvYW1pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3dob2FtaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEYsTUFBTSxDQUFDLE9BQU8sT0FBTyxNQUFPLFNBQVEsV0FBVztJQUM3QyxNQUFNLENBQUMsV0FBVyxHQUFHLG9DQUFvQyxDQUFDO0lBRTFELE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLFdBQVcsQ0FBQyxTQUFTO0tBQ3pCLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLEVBQUUsQ0FBQztRQUVyQyxNQUFNLEdBQUcsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUU1QixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQztnQkFDSCxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWE7Z0JBQ3JDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDckIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO2dCQUN2QixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7Z0JBQ2pDLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztnQkFDekIsVUFBVSxFQUFFLGFBQWEsRUFBRTtnQkFDM0IsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQzFFLENBQUMsQ0FBQztZQUNILE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDdEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDcEUsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWQsTUFBTSxXQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUUvQywrRUFBK0U7UUFDL0UsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ3RELFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDckIsSUFBSSxLQUFLLE1BQU07Z0JBQ2IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQztnQkFDdEUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUzRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUN4QyxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCx1Q0FBdUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLElBQUksT0FBTyxJQUFJLE9BQU8sS0FBSyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2pELFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBRUQsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUVwRCxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb21tYW5kIH0gZnJvbSBcIi4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGdldEF1dGhJbmZvIH0gZnJvbSBcIi4uL2xpYi9hdXRoLmpzXCI7XG5pbXBvcnQgeyBzdWNjZXNzLCBpbmZvLCBrZXlWYWx1ZSwgY29sb3JzLCBqc29uIH0gZnJvbSBcIi4uL2xpYi9vdXRwdXQuanNcIjtcbmltcG9ydCB7IGdldENvbmZpZ1ZhbHVlLCBnZXRDb25maWdQYXRoLCBnZXRDdXJyZW50T3JnIH0gZnJvbSBcIi4uL2xpYi9jb25maWcuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2hvYW1pIGV4dGVuZHMgQmFzZUNvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIlNob3cgY3VycmVudCBhdXRoZW50aWNhdGlvbiBzdGF0dXNcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXCI8JT0gY29uZmlnLmJpbiAlPiB3aG9hbWlcIl07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkJhc2VDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShXaG9hbWkpO1xuXG4gICAgY29uc3QgYXV0aEluZm8gPSBhd2FpdCBnZXRBdXRoSW5mbygpO1xuXG4gICAgY29uc3Qgb3JnID0gZ2V0Q3VycmVudE9yZygpO1xuXG4gICAgaWYgKGZsYWdzLmpzb24pIHtcbiAgICAgIGpzb24oe1xuICAgICAgICBhdXRoZW50aWNhdGVkOiBhdXRoSW5mby5hdXRoZW50aWNhdGVkLFxuICAgICAgICBlbWFpbDogYXV0aEluZm8uZW1haWwsXG4gICAgICAgIHVzZXJJZDogYXV0aEluZm8udXNlcklkLFxuICAgICAgICBlbnZpcm9ubWVudDogYXV0aEluZm8uZW52aXJvbm1lbnQsXG4gICAgICAgIGtleVR5cGU6IGF1dGhJbmZvLmtleVR5cGUsXG4gICAgICAgIGNvbmZpZ1BhdGg6IGdldENvbmZpZ1BhdGgoKSxcbiAgICAgICAgb3JnYW5pemF0aW9uOiBvcmcgPyB7IGlkOiBvcmcuaWQsIG5hbWU6IG9yZy5uYW1lLCBzbHVnOiBvcmcuc2x1ZyB9IDogbnVsbCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghYXV0aEluZm8uYXV0aGVudGljYXRlZCkge1xuICAgICAgaW5mbyhcIk5vdCBsb2dnZWQgaW5cIik7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coYCAgUnVuICR7Y29sb3JzLmNvZGUoXCJzZW5kbHkgbG9naW5cIil9IHRvIGF1dGhlbnRpY2F0ZWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1Y2Nlc3MoXCJBdXRoZW50aWNhdGVkXCIpO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICBjb25zdCBkaXNwbGF5RGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgLy8gU2hvdyBBUEkgbW9kZSAodGVzdCB2cyBsaXZlKSAtIHRoaXMgZGV0ZXJtaW5lcyBpZiBtZXNzYWdlcyBhcmUgYWN0dWFsbHkgc2VudFxuICAgIGNvbnN0IG1vZGUgPSBhdXRoSW5mby5rZXlUeXBlIHx8IGF1dGhJbmZvLmVudmlyb25tZW50O1xuICAgIGRpc3BsYXlEYXRhW1wiQVBJIE1vZGVcIl0gPVxuICAgICAgbW9kZSA9PT0gXCJ0ZXN0XCJcbiAgICAgICAgPyBjb2xvcnMud2FybmluZyhcInRlc3RcIikgKyBjb2xvcnMuZGltKFwiIChzYW5kYm94IC0gbm8gcmVhbCBtZXNzYWdlcylcIilcbiAgICAgICAgOiBjb2xvcnMuc3VjY2VzcyhcImxpdmVcIikgKyBjb2xvcnMuZGltKFwiIChwcm9kdWN0aW9uKVwiKTtcblxuICAgIGlmIChhdXRoSW5mby5lbWFpbCkge1xuICAgICAgZGlzcGxheURhdGFbXCJFbWFpbFwiXSA9IGF1dGhJbmZvLmVtYWlsO1xuICAgIH1cblxuICAgIGlmIChhdXRoSW5mby51c2VySWQpIHtcbiAgICAgIGRpc3BsYXlEYXRhW1wiVXNlciBJRFwiXSA9IGNvbG9ycy5kaW0oYXV0aEluZm8udXNlcklkKTtcbiAgICB9XG5cbiAgICAvLyBTaG93IHdoaWNoIHNlcnZlciB3ZSdyZSBjb25uZWN0ZWQgdG9cbiAgICBjb25zdCBiYXNlVXJsID0gZ2V0Q29uZmlnVmFsdWUoXCJiYXNlVXJsXCIpO1xuICAgIGlmIChiYXNlVXJsICYmIGJhc2VVcmwgIT09IFwiaHR0cHM6Ly9zZW5kbHkubGl2ZVwiKSB7XG4gICAgICBkaXNwbGF5RGF0YVtcIlNlcnZlclwiXSA9IGNvbG9ycy5kaW0oYmFzZVVybCk7XG4gICAgfVxuXG4gICAgaWYgKG9yZykge1xuICAgICAgZGlzcGxheURhdGFbXCJUZWFtXCJdID0gY29sb3JzLnByaW1hcnkob3JnLm5hbWUpICsgY29sb3JzLmRpbShgICgke29yZy5pZH0pYCk7XG4gICAgfVxuXG4gICAgZGlzcGxheURhdGFbXCJDb25maWdcIl0gPSBjb2xvcnMuZGltKGdldENvbmZpZ1BhdGgoKSk7XG5cbiAgICBrZXlWYWx1ZShkaXNwbGF5RGF0YSk7XG4gIH1cbn1cbiJdfQ==