@sendly/cli 3.15.3 → 3.17.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.
- package/dist/commands/credits/transfer.d.ts +13 -0
- package/dist/commands/credits/transfer.js +126 -0
- package/dist/commands/sms/list.js +2 -2
- package/dist/commands/trigger.js +2 -1
- package/dist/commands/webhooks/create.js +6 -1
- package/dist/commands/webhooks/listen.js +11 -3
- package/dist/lib/api-client.d.ts +3 -0
- package/dist/lib/api-client.js +74 -20
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.js +4 -1
- package/oclif.manifest.json +65 -3
- package/package.json +4 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class CreditsTransfer extends AuthenticatedCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
to: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
+
amount: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
+
yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
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,126 @@
|
|
|
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, error, json, colors, isJsonMode, spinner, } from "../../lib/output.js";
|
|
5
|
+
import { getCurrentOrg } from "../../lib/config.js";
|
|
6
|
+
import inquirer from "inquirer";
|
|
7
|
+
export default class CreditsTransfer extends AuthenticatedCommand {
|
|
8
|
+
static description = "Transfer credits between workspaces";
|
|
9
|
+
static examples = [
|
|
10
|
+
"<%= config.bin %> credits transfer --to org_abc123 --amount 500",
|
|
11
|
+
"<%= config.bin %> credits transfer --amount 1000",
|
|
12
|
+
"<%= config.bin %> credits transfer --to org_abc123 --amount 500 --yes",
|
|
13
|
+
];
|
|
14
|
+
static flags = {
|
|
15
|
+
...AuthenticatedCommand.baseFlags,
|
|
16
|
+
to: Flags.string({
|
|
17
|
+
description: "Target workspace ID to transfer credits to",
|
|
18
|
+
}),
|
|
19
|
+
amount: Flags.integer({
|
|
20
|
+
char: "a",
|
|
21
|
+
description: "Number of credits to transfer",
|
|
22
|
+
}),
|
|
23
|
+
yes: Flags.boolean({
|
|
24
|
+
char: "y",
|
|
25
|
+
description: "Skip confirmation prompt",
|
|
26
|
+
default: false,
|
|
27
|
+
}),
|
|
28
|
+
};
|
|
29
|
+
async run() {
|
|
30
|
+
const { flags } = await this.parse(CreditsTransfer);
|
|
31
|
+
const currentOrg = getCurrentOrg();
|
|
32
|
+
if (!currentOrg) {
|
|
33
|
+
this.error("No workspace selected. Run 'sendly teams switch' first.");
|
|
34
|
+
}
|
|
35
|
+
const orgs = await apiClient.get("/api/organizations");
|
|
36
|
+
const ownedOrgs = orgs.filter((o) => o.role === "owner" && o.id !== currentOrg.id);
|
|
37
|
+
if (ownedOrgs.length === 0) {
|
|
38
|
+
this.error("No other workspaces available. You need at least two workspaces you own to transfer credits.");
|
|
39
|
+
}
|
|
40
|
+
let targetOrgId = flags.to;
|
|
41
|
+
let amount = flags.amount;
|
|
42
|
+
if (!targetOrgId && !isJsonMode()) {
|
|
43
|
+
const { selected } = await inquirer.prompt([
|
|
44
|
+
{
|
|
45
|
+
type: "list",
|
|
46
|
+
name: "selected",
|
|
47
|
+
message: "Transfer credits to which workspace?",
|
|
48
|
+
choices: ownedOrgs.map((o) => ({
|
|
49
|
+
name: `${o.name}${o.isPersonal ? " (personal)" : ""}`,
|
|
50
|
+
value: o.id,
|
|
51
|
+
})),
|
|
52
|
+
},
|
|
53
|
+
]);
|
|
54
|
+
targetOrgId = selected;
|
|
55
|
+
}
|
|
56
|
+
if (!targetOrgId) {
|
|
57
|
+
this.error("Target workspace is required. Use --to <org_id>.");
|
|
58
|
+
}
|
|
59
|
+
const targetOrg = ownedOrgs.find((o) => o.id === targetOrgId);
|
|
60
|
+
if (!targetOrg) {
|
|
61
|
+
this.error("Target workspace not found or you don't own it.");
|
|
62
|
+
}
|
|
63
|
+
const credits = await apiClient.get("/api/v1/account/credits");
|
|
64
|
+
if (!amount && !isJsonMode()) {
|
|
65
|
+
const { entered } = await inquirer.prompt([
|
|
66
|
+
{
|
|
67
|
+
type: "input",
|
|
68
|
+
name: "entered",
|
|
69
|
+
message: `How many credits to transfer? (available: ${credits.availableBalance.toLocaleString()})`,
|
|
70
|
+
validate: (input) => {
|
|
71
|
+
const n = parseInt(input, 10);
|
|
72
|
+
if (isNaN(n) || n <= 0)
|
|
73
|
+
return "Must be a positive number";
|
|
74
|
+
if (n > credits.availableBalance)
|
|
75
|
+
return `Exceeds available balance (${credits.availableBalance.toLocaleString()})`;
|
|
76
|
+
return true;
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
]);
|
|
80
|
+
amount = parseInt(entered, 10);
|
|
81
|
+
}
|
|
82
|
+
if (!amount || amount <= 0) {
|
|
83
|
+
this.error("Amount must be a positive integer.");
|
|
84
|
+
}
|
|
85
|
+
if (amount > credits.availableBalance) {
|
|
86
|
+
this.error(`Insufficient credits. Available: ${credits.availableBalance.toLocaleString()}, requested: ${amount.toLocaleString()}`);
|
|
87
|
+
}
|
|
88
|
+
if (!flags.yes && !isJsonMode()) {
|
|
89
|
+
console.log();
|
|
90
|
+
console.log(` ${colors.bold("Transfer Summary")}`);
|
|
91
|
+
console.log(` ${colors.dim("From:")} ${currentOrg.name}`);
|
|
92
|
+
console.log(` ${colors.dim("To:")} ${targetOrg.name}`);
|
|
93
|
+
console.log(` ${colors.dim("Amount:")} ${colors.primary(amount.toLocaleString() + " credits")}`);
|
|
94
|
+
console.log();
|
|
95
|
+
const { confirm } = await inquirer.prompt([
|
|
96
|
+
{
|
|
97
|
+
type: "confirm",
|
|
98
|
+
name: "confirm",
|
|
99
|
+
message: "Proceed with transfer?",
|
|
100
|
+
default: false,
|
|
101
|
+
},
|
|
102
|
+
]);
|
|
103
|
+
if (!confirm) {
|
|
104
|
+
error("Transfer cancelled");
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const spin = spinner("Transferring credits...");
|
|
109
|
+
spin.start();
|
|
110
|
+
const result = await apiClient.post(`/api/organizations/${currentOrg.id}/transfer-credits`, {
|
|
111
|
+
targetOrganizationId: targetOrgId,
|
|
112
|
+
amount,
|
|
113
|
+
});
|
|
114
|
+
spin.succeed("Transfer complete");
|
|
115
|
+
if (isJsonMode()) {
|
|
116
|
+
json(result);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
success("Credits transferred", {
|
|
120
|
+
Amount: `${amount.toLocaleString()} credits`,
|
|
121
|
+
"Source balance": `${result.sourceBalance.toLocaleString()} credits`,
|
|
122
|
+
"Target balance": `${result.targetBalance.toLocaleString()} credits`,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvY3JlZGl0cy90cmFuc2Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsT0FBTyxFQUNQLEtBQUssRUFDTCxJQUFJLEVBQ0osTUFBTSxFQUNOLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxRQUFRLE1BQU0sVUFBVSxDQUFDO0FBdUJoQyxNQUFNLENBQUMsT0FBTyxPQUFPLGVBQWdCLFNBQVEsb0JBQW9CO0lBQy9ELE1BQU0sQ0FBQyxXQUFXLEdBQUcscUNBQXFDLENBQUM7SUFFM0QsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQixpRUFBaUU7UUFDakUsa0RBQWtEO1FBQ2xELHVFQUF1RTtLQUN4RSxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxFQUFFLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNmLFdBQVcsRUFBRSw0Q0FBNEM7U0FDMUQsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3BCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLCtCQUErQjtTQUM3QyxDQUFDO1FBQ0YsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsMEJBQTBCO1lBQ3ZDLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBzdWNjZXNzLFxuICBlcnJvcixcbiAganNvbixcbiAgY29sb3JzLFxuICBpc0pzb25Nb2RlLFxuICBzcGlubmVyLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IHsgZ2V0Q3VycmVudE9yZyB9IGZyb20gXCIuLi8uLi9saWIvY29uZmlnLmpzXCI7XG5pbXBvcnQgaW5xdWlyZXIgZnJvbSBcImlucXVpcmVyXCI7XG5cbmludGVyZmFjZSBPcmdhbml6YXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgaXNQZXJzb25hbDogYm9vbGVhbjtcbiAgcm9sZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVHJhbnNmZXJSZXNwb25zZSB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGFtb3VudDogbnVtYmVyO1xuICBzb3VyY2VCYWxhbmNlOiBudW1iZXI7XG4gIHRhcmdldEJhbGFuY2U6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIENyZWRpdHNSZXNwb25zZSB7XG4gIGJhbGFuY2U6IG51bWJlcjtcbiAgcmVzZXJ2ZWRCYWxhbmNlOiBudW1iZXI7XG4gIGF2YWlsYWJsZUJhbGFuY2U6IG51bWJlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3JlZGl0c1RyYW5zZmVyIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIlRyYW5zZmVyIGNyZWRpdHMgYmV0d2VlbiB3b3Jrc3BhY2VzXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY3JlZGl0cyB0cmFuc2ZlciAtLXRvIG9yZ19hYmMxMjMgLS1hbW91bnQgNTAwXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBjcmVkaXRzIHRyYW5zZmVyIC0tYW1vdW50IDEwMDBcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGNyZWRpdHMgdHJhbnNmZXIgLS10byBvcmdfYWJjMTIzIC0tYW1vdW50IDUwMCAtLXllc1wiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgdG86IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJUYXJnZXQgd29ya3NwYWNlIElEIHRvIHRyYW5zZmVyIGNyZWRpdHMgdG9cIixcbiAgICB9KSxcbiAgICBhbW91bnQ6IEZsYWdzLmludGVnZXIoe1xuICAgICAgY2hhcjogXCJhXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJOdW1iZXIgb2YgY3JlZGl0cyB0byB0cmFuc2ZlclwiLFxuICAgIH0pLFxuICAgIHllczogRmxhZ3MuYm9vbGVhbih7XG4gICAgICBjaGFyOiBcInlcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNraXAgY29uZmlybWF0aW9uIHByb21wdFwiLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoQ3JlZGl0c1RyYW5zZmVyKTtcblxuICAgIGNvbnN0IGN1cnJlbnRPcmcgPSBnZXRDdXJyZW50T3JnKCk7XG4gICAgaWYgKCFjdXJyZW50T3JnKSB7XG4gICAgICB0aGlzLmVycm9yKFwiTm8gd29ya3NwYWNlIHNlbGVjdGVkLiBSdW4gJ3NlbmRseSB0ZWFtcyBzd2l0Y2gnIGZpcnN0LlwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcmdzID0gYXdhaXQgYXBpQ2xpZW50LmdldDxPcmdhbml6YXRpb25bXT4oXCIvYXBpL29yZ2FuaXphdGlvbnNcIik7XG4gICAgY29uc3Qgb3duZWRPcmdzID0gb3Jncy5maWx0ZXIoXG4gICAgICAobykgPT4gby5yb2xlID09PSBcIm93bmVyXCIgJiYgby5pZCAhPT0gY3VycmVudE9yZy5pZCxcbiAgICApO1xuXG4gICAgaWYgKG93bmVkT3Jncy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3IoXCJObyBvdGhlciB3b3Jrc3BhY2VzIGF2YWlsYWJsZS4gWW91IG5lZWQgYXQgbGVhc3QgdHdvIHdvcmtzcGFjZXMgeW91IG93biB0byB0cmFuc2ZlciBjcmVkaXRzLlwiKTtcbiAgICB9XG5cbiAgICBsZXQgdGFyZ2V0T3JnSWQgPSBmbGFncy50bztcbiAgICBsZXQgYW1vdW50ID0gZmxhZ3MuYW1vdW50O1xuXG4gICAgaWYgKCF0YXJnZXRPcmdJZCAmJiAhaXNKc29uTW9kZSgpKSB7XG4gICAgICBjb25zdCB7IHNlbGVjdGVkIH0gPSBhd2FpdCBpbnF1aXJlci5wcm9tcHQoW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJsaXN0XCIsXG4gICAgICAgICAgbmFtZTogXCJzZWxlY3RlZFwiLFxuICAgICAgICAgIG1lc3NhZ2U6IFwiVHJhbnNmZXIgY3JlZGl0cyB0byB3aGljaCB3b3Jrc3BhY2U/XCIsXG4gICAgICAgICAgY2hvaWNlczogb3duZWRPcmdzLm1hcCgobykgPT4gKHtcbiAgICAgICAgICAgIG5hbWU6IGAke28ubmFtZX0ke28uaXNQZXJzb25hbCA/IFwiIChwZXJzb25hbClcIiA6IFwiXCJ9YCxcbiAgICAgICAgICAgIHZhbHVlOiBvLmlkLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuICAgICAgdGFyZ2V0T3JnSWQgPSBzZWxlY3RlZDtcbiAgICB9XG5cbiAgICBpZiAoIXRhcmdldE9yZ0lkKSB7XG4gICAgICB0aGlzLmVycm9yKFwiVGFyZ2V0IHdvcmtzcGFjZSBpcyByZXF1aXJlZC4gVXNlIC0tdG8gPG9yZ19pZD4uXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldE9yZyA9IG93bmVkT3Jncy5maW5kKChvKSA9PiBvLmlkID09PSB0YXJnZXRPcmdJZCk7XG4gICAgaWYgKCF0YXJnZXRPcmcpIHtcbiAgICAgIHRoaXMuZXJyb3IoXCJUYXJnZXQgd29ya3NwYWNlIG5vdCBmb3VuZCBvciB5b3UgZG9uJ3Qgb3duIGl0LlwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBjcmVkaXRzID0gYXdhaXQgYXBpQ2xpZW50LmdldDxDcmVkaXRzUmVzcG9uc2U+KFwiL2FwaS92MS9hY2NvdW50L2NyZWRpdHNcIik7XG5cbiAgICBpZiAoIWFtb3VudCAmJiAhaXNKc29uTW9kZSgpKSB7XG4gICAgICBjb25zdCB7IGVudGVyZWQgfSA9IGF3YWl0IGlucXVpcmVyLnByb21wdChbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcImlucHV0XCIsXG4gICAgICAgICAgbmFtZTogXCJlbnRlcmVkXCIsXG4gICAgICAgICAgbWVzc2FnZTogYEhvdyBtYW55IGNyZWRpdHMgdG8gdHJhbnNmZXI/IChhdmFpbGFibGU6ICR7Y3JlZGl0cy5hdmFpbGFibGVCYWxhbmNlLnRvTG9jYWxlU3RyaW5nKCl9KWAsXG4gICAgICAgICAgdmFsaWRhdGU6IChpbnB1dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuID0gcGFyc2VJbnQoaW5wdXQsIDEwKTtcbiAgICAgICAgICAgIGlmIChpc05hTihuKSB8fCBuIDw9IDApIHJldHVybiBcIk11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXJcIjtcbiAgICAgICAgICAgIGlmIChuID4gY3JlZGl0cy5hdmFpbGFibGVCYWxhbmNlKSByZXR1cm4gYEV4Y2VlZHMgYXZhaWxhYmxlIGJhbGFuY2UgKCR7Y3JlZGl0cy5hdmFpbGFibGVCYWxhbmNlLnRvTG9jYWxlU3RyaW5nKCl9KWA7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgICBhbW91bnQgPSBwYXJzZUludChlbnRlcmVkLCAxMCk7XG4gICAgfVxuXG4gICAgaWYgKCFhbW91bnQgfHwgYW1vdW50IDw9IDApIHtcbiAgICAgIHRoaXMuZXJyb3IoXCJBbW91bnQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuXCIpO1xuICAgIH1cblxuICAgIGlmIChhbW91bnQgPiBjcmVkaXRzLmF2YWlsYWJsZUJhbGFuY2UpIHtcbiAgICAgIHRoaXMuZXJyb3IoYEluc3VmZmljaWVudCBjcmVkaXRzLiBBdmFpbGFibGU6ICR7Y3JlZGl0cy5hdmFpbGFibGVCYWxhbmNlLnRvTG9jYWxlU3RyaW5nKCl9LCByZXF1ZXN0ZWQ6ICR7YW1vdW50LnRvTG9jYWxlU3RyaW5nKCl9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFmbGFncy55ZXMgJiYgIWlzSnNvbk1vZGUoKSkge1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLmJvbGQoXCJUcmFuc2ZlciBTdW1tYXJ5XCIpfWApO1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKFwiRnJvbTpcIil9ICAgICR7Y3VycmVudE9yZy5uYW1lfWApO1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKFwiVG86XCIpfSAgICAgICR7dGFyZ2V0T3JnLm5hbWV9YCk7XG4gICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJBbW91bnQ6XCIpfSAgJHtjb2xvcnMucHJpbWFyeShhbW91bnQudG9Mb2NhbGVTdHJpbmcoKSArIFwiIGNyZWRpdHNcIil9YCk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuXG4gICAgICBjb25zdCB7IGNvbmZpcm0gfSA9IGF3YWl0IGlucXVpcmVyLnByb21wdChbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcImNvbmZpcm1cIixcbiAgICAgICAgICBuYW1lOiBcImNvbmZpcm1cIixcbiAgICAgICAgICBtZXNzYWdlOiBcIlByb2NlZWQgd2l0aCB0cmFuc2Zlcj9cIixcbiAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuXG4gICAgICBpZiAoIWNvbmZpcm0pIHtcbiAgICAgICAgZXJyb3IoXCJUcmFuc2ZlciBjYW5jZWxsZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIlRyYW5zZmVycmluZyBjcmVkaXRzLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PFRyYW5zZmVyUmVzcG9uc2U+KFxuICAgICAgYC9hcGkvb3JnYW5pemF0aW9ucy8ke2N1cnJlbnRPcmcuaWR9L3RyYW5zZmVyLWNyZWRpdHNgLFxuICAgICAge1xuICAgICAgICB0YXJnZXRPcmdhbml6YXRpb25JZDogdGFyZ2V0T3JnSWQsXG4gICAgICAgIGFtb3VudCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHNwaW4uc3VjY2VlZChcIlRyYW5zZmVyIGNvbXBsZXRlXCIpO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihyZXN1bHQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1Y2Nlc3MoXCJDcmVkaXRzIHRyYW5zZmVycmVkXCIsIHtcbiAgICAgIEFtb3VudDogYCR7YW1vdW50LnRvTG9jYWxlU3RyaW5nKCl9IGNyZWRpdHNgLFxuICAgICAgXCJTb3VyY2UgYmFsYW5jZVwiOiBgJHtyZXN1bHQuc291cmNlQmFsYW5jZS50b0xvY2FsZVN0cmluZygpfSBjcmVkaXRzYCxcbiAgICAgIFwiVGFyZ2V0IGJhbGFuY2VcIjogYCR7cmVzdWx0LnRhcmdldEJhbGFuY2UudG9Mb2NhbGVTdHJpbmcoKX0gY3JlZGl0c2AsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -28,7 +28,7 @@ export default class SmsList extends AuthenticatedCommand {
|
|
|
28
28
|
}),
|
|
29
29
|
status: Flags.string({
|
|
30
30
|
char: "s",
|
|
31
|
-
description: "Filter by status (queued, sent, delivered, failed)",
|
|
31
|
+
description: "Filter by status (queued, sent, delivered, failed, bounced, retrying)",
|
|
32
32
|
}),
|
|
33
33
|
sandbox: Flags.boolean({
|
|
34
34
|
description: "Show sandbox/test messages (live keys only)",
|
|
@@ -110,4 +110,4 @@ export default class SmsList extends AuthenticatedCommand {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zbXMvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osWUFBWSxFQUNaLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLHFCQUFxQixDQUFDO0FBOEI3QixNQUFNLENBQUMsT0FBTyxPQUFPLE9BQVEsU0FBUSxvQkFBb0I7SUFDdkQsTUFBTSxDQUFDLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUUxQyxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDRCQUE0QjtRQUM1Qix1Q0FBdUM7UUFDdkMscUNBQXFDO1FBQ3JDLCtDQUErQztRQUMvQyxzQ0FBc0M7UUFDdEMsbUNBQW1DO0tBQ3BDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDZCQUE2QjtZQUMxQyxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNsQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSwyQkFBMkI7U0FDekMsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3BCLFdBQVcsRUFBRSwyQ0FBMkM7U0FDekQsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENB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QVMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUNwRSxDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHRhYmxlLFxuICBqc29uLFxuICBpbmZvLFxuICBmb3JtYXRTdGF0dXMsXG4gIGZvcm1hdFJlbGF0aXZlVGltZSxcbiAgZm9ybWF0UGhvbmUsXG4gIGNvbG9ycyxcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICBpZDogc3RyaW5nO1xuICB0bzogc3RyaW5nO1xuICBmcm9tOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHNlZ21lbnRzOiBudW1iZXI7XG4gIGNyZWRpdHNVc2VkOiBudW1iZXI7XG4gIGlzU2FuZGJveDogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIGRlbGl2ZXJlZEF0Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUGFnaW5hdGlvbiB7XG4gIHRvdGFsOiBudW1iZXI7XG4gIGxpbWl0OiBudW1iZXI7XG4gIG9mZnNldDogbnVtYmVyO1xuICBwYWdlOiBudW1iZXI7XG4gIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgaGFzTW9yZTogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIExpc3RNZXNzYWdlc1Jlc3BvbnNlIHtcbiAgZGF0YTogTWVzc2FnZVtdO1xuICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTbXNMaXN0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkxpc3Qgc2VudCBtZXNzYWdlc1wiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHNtcyBsaXN0XCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBzbXMgbGlzdCAtLWxpbWl0IDEwXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBzbXMgbGlzdCAtLXBhZ2UgMlwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gc21zIGxpc3QgLS1zdGF0dXMgZGVsaXZlcmVkXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBzbXMgbGlzdCAtLXNhbmRib3hcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHNtcyBsaXN0IC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgbGltaXQ6IEZsYWdzLmludGVnZXIoe1xuICAgICAgY2hhcjogXCJsXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJOdW1iZXIgb2YgbWVzc2FnZXMgcGVyIHBhZ2VcIixcbiAgICAgIGRlZmF1bHQ6IDIwLFxuICAgIH0pLFxuICAgIHBhZ2U6IEZsYWdzLmludGVnZXIoe1xuICAgICAgY2hhcjogXCJwXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJQYWdlIG51bWJlciAoc3RhcnRzIGF0IDEpXCIsXG4gICAgfSksXG4gICAgb2Zmc2V0OiBGbGFncy5pbnRlZ2VyKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk9mZnNldCBmcm9tIHN0YXJ0IChhbHRlcm5hdGl2ZSB0byAtLXBhZ2UpXCIsXG4gICAgfSksXG4gICAgc3RhdHVzOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJzXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJGaWx0ZXIgYnkgc3RhdHVzIChxdWV1ZWQsIHNlbnQsIGRlbGl2ZXJlZCwgZmFpbGVkKVwiLFxuICAgIH0pLFxuICAgIHNhbmRib3g6IEZsYWdzLmJvb2xlYW4oe1xuICAgICAgZGVzY3JpcHRpb246IFwiU2hvdyBzYW5kYm94L3Rlc3QgbWVzc2FnZXMgKGxpdmUga2V5cyBvbmx5KVwiLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoU21zTGlzdCk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8TGlzdE1lc3NhZ2VzUmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL21lc3NhZ2VzXCIsXG4gICAgICB7XG4gICAgICAgIGxpbWl0OiBmbGFncy5saW1pdCxcbiAgICAgICAgLi4uKGZsYWdzLnBhZ2UgJiYgeyBwYWdlOiBmbGFncy5wYWdlIH0pLFxuICAgICAgICAuLi4oZmxhZ3Mub2Zmc2V0ICYmIHsgb2Zmc2V0OiBmbGFncy5vZmZzZXQgfSksXG4gICAgICAgIC4uLihmbGFncy5zdGF0dXMgJiYgeyBzdGF0dXM6IGZsYWdzLnN0YXR1cyB9KSxcbiAgICAgICAgLi4uKGZsYWdzLnNhbmRib3ggJiYgeyBzYW5kYm94OiBcInRydWVcIiB9KSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5mbyhmbGFncy5zYW5kYm94ID8gXCJObyBzYW5kYm94IG1lc3NhZ2VzIGZvdW5kXCIgOiBcIk5vIG1lc3NhZ2VzIGZvdW5kXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhZ2luYXRpb24gPSByZXNwb25zZS5wYWdpbmF0aW9uIHx8IHtcbiAgICAgIHRvdGFsOiByZXNwb25zZS5jb3VudCxcbiAgICAgIHBhZ2U6IDEsXG4gICAgICB0b3RhbFBhZ2VzOiAxLFxuICAgICAgaGFzTW9yZTogZmFsc2UsXG4gICAgfTtcbiAgICBjb25zdCBtb2RlTGFiZWwgPSBmbGFncy5zYW5kYm94ID8gXCJzYW5kYm94IFwiIDogXCJcIjtcblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBjb2xvcnMuZGltKFxuICAgICAgICBgU2hvd2luZyAke3Jlc3BvbnNlLmRhdGEubGVuZ3RofSAke21vZGVMYWJlbH1tZXNzYWdlcyAocGFnZSAke3BhZ2luYXRpb24ucGFnZX0gb2YgJHtwYWdpbmF0aW9uLnRvdGFsUGFnZXN9LCAke3BhZ2luYXRpb24udG90YWx9IHRvdGFsKWAsXG4gICAgICApLFxuICAgICk7XG4gICAgY29uc29sZS5sb2coKTtcblxuICAgIHRhYmxlKHJlc3BvbnNlLmRhdGEsIFtcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIklEXCIsXG4gICAgICAgIGtleTogXCJpZFwiLFxuICAgICAgICB3aWR0aDogMTgsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGNvbG9ycy5kaW0oU3RyaW5nKHYpLnNsaWNlKDAsIDE1KSArIFwiLi4uXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlRvXCIsXG4gICAgICAgIGtleTogXCJ0b1wiLFxuICAgICAgICB3aWR0aDogMTYsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGZvcm1hdFBob25lKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiU3RhdHVzXCIsXG4gICAgICAgIGtleTogXCJzdGF0dXNcIixcbiAgICAgICAgd2lkdGg6IDExLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBmb3JtYXRTdGF0dXMoU3RyaW5nKHYpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJNb2RlXCIsXG4gICAgICAgIGtleTogXCJpc1NhbmRib3hcIixcbiAgICAgICAgd2lkdGg6IDYsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+ICh2ID8gY29sb3JzLndhcm5pbmcoXCJ0ZXN0XCIpIDogY29sb3JzLnN1Y2Nlc3MoXCJsaXZlXCIpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJUZXh0XCIsXG4gICAgICAgIGtleTogXCJ0ZXh0XCIsXG4gICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4ge1xuICAgICAgICAgIGNvbnN0IHRleHQgPSBTdHJpbmcodik7XG4gICAgICAgICAgcmV0dXJuIHRleHQubGVuZ3RoID4gMjIgPyB0ZXh0LnNsaWNlKDAsIDIyKSArIFwiLi4uXCIgOiB0ZXh0O1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlNlbnRcIixcbiAgICAgICAga2V5OiBcImNyZWF0ZWRBdFwiLFxuICAgICAgICB3aWR0aDogMTIsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGZvcm1hdFJlbGF0aXZlVGltZShTdHJpbmcodikpLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIC8vIFNob3cgcGFnaW5hdGlvbiBoaW50IGlmIG1vcmUgcGFnZXMgYXZhaWxhYmxlXG4gICAgaWYgKHBhZ2luYXRpb24uaGFzTW9yZSkge1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgIGAgIFVzZSAke2NvbG9ycy5jb2RlKGAtLXBhZ2UgJHtwYWdpbmF0aW9uLnBhZ2UgKyAxfWApfSB0byBzZWUgbW9yZWAsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zbXMvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osWUFBWSxFQUNaLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLHFCQUFxQixDQUFDO0FBOEI3QixNQUFNLENBQUMsT0FBTyxPQUFPLE9BQVEsU0FBUSxvQkFBb0I7SUFDdkQsTUFBTSxDQUFDLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUUxQyxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDRCQUE0QjtRQUM1Qix1Q0FBdUM7UUFDdkMscUNBQXFDO1FBQ3JDLCtDQUErQztRQUMvQyxzQ0FBc0M7UUFDdEMsbUNBQW1DO0tBQ3BDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDZCQUE2QjtZQUMxQyxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNsQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSwyQkFBMkI7U0FDekMsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3BCLFdBQVcsRUFBRSwyQ0FBMkM7U0FDekQsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENB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QVMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUNwRSxDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHRhYmxlLFxuICBqc29uLFxuICBpbmZvLFxuICBmb3JtYXRTdGF0dXMsXG4gIGZvcm1hdFJlbGF0aXZlVGltZSxcbiAgZm9ybWF0UGhvbmUsXG4gIGNvbG9ycyxcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICBpZDogc3RyaW5nO1xuICB0bzogc3RyaW5nO1xuICBmcm9tOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHNlZ21lbnRzOiBudW1iZXI7XG4gIGNyZWRpdHNVc2VkOiBudW1iZXI7XG4gIGlzU2FuZGJveDogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIGRlbGl2ZXJlZEF0Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUGFnaW5hdGlvbiB7XG4gIHRvdGFsOiBudW1iZXI7XG4gIGxpbWl0OiBudW1iZXI7XG4gIG9mZnNldDogbnVtYmVyO1xuICBwYWdlOiBudW1iZXI7XG4gIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgaGFzTW9yZTogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIExpc3RNZXNzYWdlc1Jlc3BvbnNlIHtcbiAgZGF0YTogTWVzc2FnZVtdO1xuICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTbXNMaXN0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkxpc3Qgc2VudCBtZXNzYWdlc1wiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHNtcyBsaXN0XCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBzbXMgbGlzdCAtLWxpbWl0IDEwXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBzbXMgbGlzdCAtLXBhZ2UgMlwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gc21zIGxpc3QgLS1zdGF0dXMgZGVsaXZlcmVkXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBzbXMgbGlzdCAtLXNhbmRib3hcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHNtcyBsaXN0IC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgbGltaXQ6IEZsYWdzLmludGVnZXIoe1xuICAgICAgY2hhcjogXCJsXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJOdW1iZXIgb2YgbWVzc2FnZXMgcGVyIHBhZ2VcIixcbiAgICAgIGRlZmF1bHQ6IDIwLFxuICAgIH0pLFxuICAgIHBhZ2U6IEZsYWdzLmludGVnZXIoe1xuICAgICAgY2hhcjogXCJwXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJQYWdlIG51bWJlciAoc3RhcnRzIGF0IDEpXCIsXG4gICAgfSksXG4gICAgb2Zmc2V0OiBGbGFncy5pbnRlZ2VyKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk9mZnNldCBmcm9tIHN0YXJ0IChhbHRlcm5hdGl2ZSB0byAtLXBhZ2UpXCIsXG4gICAgfSksXG4gICAgc3RhdHVzOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJzXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJGaWx0ZXIgYnkgc3RhdHVzIChxdWV1ZWQsIHNlbnQsIGRlbGl2ZXJlZCwgZmFpbGVkLCBib3VuY2VkLCByZXRyeWluZylcIixcbiAgICB9KSxcbiAgICBzYW5kYm94OiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNob3cgc2FuZGJveC90ZXN0IG1lc3NhZ2VzIChsaXZlIGtleXMgb25seSlcIixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKFNtc0xpc3QpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PExpc3RNZXNzYWdlc1Jlc3BvbnNlPihcbiAgICAgIFwiL2FwaS92MS9tZXNzYWdlc1wiLFxuICAgICAge1xuICAgICAgICBsaW1pdDogZmxhZ3MubGltaXQsXG4gICAgICAgIC4uLihmbGFncy5wYWdlICYmIHsgcGFnZTogZmxhZ3MucGFnZSB9KSxcbiAgICAgICAgLi4uKGZsYWdzLm9mZnNldCAmJiB7IG9mZnNldDogZmxhZ3Mub2Zmc2V0IH0pLFxuICAgICAgICAuLi4oZmxhZ3Muc3RhdHVzICYmIHsgc3RhdHVzOiBmbGFncy5zdGF0dXMgfSksXG4gICAgICAgIC4uLihmbGFncy5zYW5kYm94ICYmIHsgc2FuZGJveDogXCJ0cnVlXCIgfSksXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocmVzcG9uc2UuZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8oZmxhZ3Muc2FuZGJveCA/IFwiTm8gc2FuZGJveCBtZXNzYWdlcyBmb3VuZFwiIDogXCJObyBtZXNzYWdlcyBmb3VuZFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYWdpbmF0aW9uID0gcmVzcG9uc2UucGFnaW5hdGlvbiB8fCB7XG4gICAgICB0b3RhbDogcmVzcG9uc2UuY291bnQsXG4gICAgICBwYWdlOiAxLFxuICAgICAgdG90YWxQYWdlczogMSxcbiAgICAgIGhhc01vcmU6IGZhbHNlLFxuICAgIH07XG4gICAgY29uc3QgbW9kZUxhYmVsID0gZmxhZ3Muc2FuZGJveCA/IFwic2FuZGJveCBcIiA6IFwiXCI7XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgYFNob3dpbmcgJHtyZXNwb25zZS5kYXRhLmxlbmd0aH0gJHttb2RlTGFiZWx9bWVzc2FnZXMgKHBhZ2UgJHtwYWdpbmF0aW9uLnBhZ2V9IG9mICR7cGFnaW5hdGlvbi50b3RhbFBhZ2VzfSwgJHtwYWdpbmF0aW9uLnRvdGFsfSB0b3RhbClgLFxuICAgICAgKSxcbiAgICApO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICB0YWJsZShyZXNwb25zZS5kYXRhLCBbXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJJRFwiLFxuICAgICAgICBrZXk6IFwiaWRcIixcbiAgICAgICAgd2lkdGg6IDE4LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBjb2xvcnMuZGltKFN0cmluZyh2KS5zbGljZSgwLCAxNSkgKyBcIi4uLlwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJUb1wiLFxuICAgICAgICBrZXk6IFwidG9cIixcbiAgICAgICAgd2lkdGg6IDE2LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBmb3JtYXRQaG9uZShTdHJpbmcodikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlN0YXR1c1wiLFxuICAgICAgICBrZXk6IFwic3RhdHVzXCIsXG4gICAgICAgIHdpZHRoOiAxMSxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gZm9ybWF0U3RhdHVzKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiTW9kZVwiLFxuICAgICAgICBrZXk6IFwiaXNTYW5kYm94XCIsXG4gICAgICAgIHdpZHRoOiA2LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiAodiA/IGNvbG9ycy53YXJuaW5nKFwidGVzdFwiKSA6IGNvbG9ycy5zdWNjZXNzKFwibGl2ZVwiKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiVGV4dFwiLFxuICAgICAgICBrZXk6IFwidGV4dFwiLFxuICAgICAgICB3aWR0aDogMjUsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gU3RyaW5nKHYpO1xuICAgICAgICAgIHJldHVybiB0ZXh0Lmxlbmd0aCA+IDIyID8gdGV4dC5zbGljZSgwLCAyMikgKyBcIi4uLlwiIDogdGV4dDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJTZW50XCIsXG4gICAgICAgIGtleTogXCJjcmVhdGVkQXRcIixcbiAgICAgICAgd2lkdGg6IDEyLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBmb3JtYXRSZWxhdGl2ZVRpbWUoU3RyaW5nKHYpKSxcbiAgICAgIH0sXG4gICAgXSk7XG5cbiAgICAvLyBTaG93IHBhZ2luYXRpb24gaGludCBpZiBtb3JlIHBhZ2VzIGF2YWlsYWJsZVxuICAgIGlmIChwYWdpbmF0aW9uLmhhc01vcmUpIHtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgICBgICBVc2UgJHtjb2xvcnMuY29kZShgLS1wYWdlICR7cGFnaW5hdGlvbi5wYWdlICsgMX1gKX0gdG8gc2VlIG1vcmVgLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/dist/commands/trigger.js
CHANGED
|
@@ -7,6 +7,7 @@ const VALID_EVENT_TYPES = [
|
|
|
7
7
|
"message.delivered",
|
|
8
8
|
"message.failed",
|
|
9
9
|
"message.bounced",
|
|
10
|
+
"message.retrying",
|
|
10
11
|
"message.received",
|
|
11
12
|
];
|
|
12
13
|
export default class Trigger extends AuthenticatedCommand {
|
|
@@ -58,4 +59,4 @@ export default class Trigger extends AuthenticatedCommand {
|
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy90cmlnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFnQixNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE1BQU0saUJBQWlCLEdBQUc7SUFDeEIsY0FBYztJQUNkLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixrQkFBa0I7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxPQUFPLE9BQU8sT0FBUSxTQUFRLG9CQUFvQjtJQUN2RCxNQUFNLENBQUMsV0FBVyxHQUNoQixvRkFBb0YsQ0FBQztJQUV2RixNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDZDQUE2QztRQUM3QywwQ0FBMEM7UUFDMUMsd0NBQXdDO0tBQ3pDLENBQUM7SUFFRixNQUFNLENBQUMsSUFBSSxHQUFHO1FBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDakIsV0FBVyxFQUFFLHVCQUF1QjtZQUNwQyxRQUFRLEVBQUUsSUFBSTtZQUNkLE9BQU8sRUFBRSxpQkFBaUI7U0FDM0IsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUU3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDM0MsS0FBSyxDQUFDLHVCQUF1QixTQUFTLEVBQUUsRUFBRTtnQkFDeEMsSUFBSSxFQUFFLGdCQUFnQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7YUFDckQsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQ25DLG9CQUFvQixTQUFTLEVBQUUsRUFDL0IsRUFBRSxDQUNILENBQUM7WUFFRixJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELEtBQUssQ0FBQyx5QkFBeUIsRUFBRTtvQkFDL0IsSUFBSSxFQUFFLHdEQUF3RDtpQkFDL0QsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxDQUFDO1lBQ1osQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MsIEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7IHN1Y2Nlc3MsIGVycm9yLCBpbmZvLCBjb2xvcnMgfSBmcm9tIFwiLi4vbGliL291dHB1dC5qc1wiO1xuXG5jb25zdCBWQUxJRF9FVkVOVF9UWVBFUyA9IFtcbiAgXCJtZXNzYWdlLnNlbnRcIixcbiAgXCJtZXNzYWdlLmRlbGl2ZXJlZFwiLFxuICBcIm1lc3NhZ2UuZmFpbGVkXCIsXG4gIFwibWVzc2FnZS5ib3VuY2VkXCIsXG4gIFwibWVzc2FnZS5yZXRyeWluZ1wiLFxuICBcIm1lc3NhZ2UucmVjZWl2ZWRcIixcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRyaWdnZXIgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJUcmlnZ2VyIGEgdGVzdCB3ZWJob29rIGV2ZW50LiBTZW5kcyBhIHN5bnRoZXRpYyBldmVudCB0byB5b3VyIGFjdGl2ZSBDTEkgbGlzdGVuZXIuXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdHJpZ2dlciBtZXNzYWdlLmRlbGl2ZXJlZFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdHJpZ2dlciBtZXNzYWdlLmZhaWxlZFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdHJpZ2dlciBtZXNzYWdlLnNlbnRcIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICBldmVudDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiRXZlbnQgdHlwZSB0byB0cmlnZ2VyXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IFZBTElEX0VWRU5UX1RZUEVTLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShUcmlnZ2VyKTtcbiAgICBjb25zdCBldmVudFR5cGUgPSBhcmdzLmV2ZW50O1xuXG4gICAgaWYgKCFWQUxJRF9FVkVOVF9UWVBFUy5pbmNsdWRlcyhldmVudFR5cGUpKSB7XG4gICAgICBlcnJvcihgSW52YWxpZCBldmVudCB0eXBlOiAke2V2ZW50VHlwZX1gLCB7XG4gICAgICAgIGhpbnQ6IGBWYWxpZCB0eXBlczogJHtWQUxJRF9FVkVOVF9UWVBFUy5qb2luKFwiLCBcIil9YCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5leGl0KDEpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PHsgc3VjY2VzczogYm9vbGVhbjsgbWVzc2FnZTogc3RyaW5nIH0+KFxuICAgICAgICBgL2FwaS9jbGkvdHJpZ2dlci8ke2V2ZW50VHlwZX1gLFxuICAgICAgICB7fSxcbiAgICAgICk7XG5cbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgIHN1Y2Nlc3MocmVzcG9uc2UubWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvcihcIkZhaWxlZCB0byB0cmlnZ2VyIGV2ZW50XCIpO1xuICAgICAgICB0aGlzLmV4aXQoMSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIubWVzc2FnZT8uaW5jbHVkZXMoXCJObyBhY3RpdmUgQ0xJIGxpc3RlbmVyc1wiKSkge1xuICAgICAgICBlcnJvcihcIk5vIGFjdGl2ZSBDTEkgbGlzdGVuZXJzXCIsIHtcbiAgICAgICAgICBoaW50OiBcIlJ1biAnc2VuZGx5IHdlYmhvb2tzIGxpc3RlbicgaW4gYW5vdGhlciB0ZXJtaW5hbCBmaXJzdFwiLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -34,6 +34,11 @@ export default class WebhooksCreate extends AuthenticatedCommand {
|
|
|
34
34
|
};
|
|
35
35
|
async run() {
|
|
36
36
|
const { flags } = await this.parse(WebhooksCreate);
|
|
37
|
+
const testUrlPatterns = ["localhost", "127.0.0.1", ".ngrok.", ".loca.lt", "webhook.site"];
|
|
38
|
+
const isTestUrl = testUrlPatterns.some((p) => flags.url.toLowerCase().includes(p));
|
|
39
|
+
if (!flags.url.startsWith("https://") && !isTestUrl) {
|
|
40
|
+
this.error("Webhook URL must use HTTPS. Use http:// only for local development URLs (localhost, ngrok, etc.).");
|
|
41
|
+
}
|
|
37
42
|
const events = flags.events.split(",").map((e) => e.trim());
|
|
38
43
|
const response = await apiClient.post("/api/v1/webhooks", {
|
|
39
44
|
url: flags.url,
|
|
@@ -68,4 +73,4 @@ export default class WebhooksCreate extends AuthenticatedCommand {
|
|
|
68
73
|
console.log(colors.dim("See the docs for signature verification examples."));
|
|
69
74
|
}
|
|
70
75
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3dlYmhvb2tzL2NyZWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsT0FBTyxFQUNQLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxxQkFBcUIsQ0FBQztBQWdCN0IsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBQzlELE1BQU0sQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUM7SUFFeEMsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiw4RkFBOEY7UUFDOUYsZ0pBQWdKO1FBQ2hKLGtHQUFrRztLQUNuRyxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNoQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSw2QkFBNkI7WUFDMUMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbkIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsOENBQThDO1lBQzNELFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztRQUNGLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3hCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDZCQUE2QjtTQUMzQyxDQUFDO1FBQ0YsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7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QUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxHQUFHLENBQUMsbURBQW1ELENBQUMsQ0FDaEUsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBzdWNjZXNzLFxuICB3YXJuLFxuICBqc29uLFxuICBjb2xvcnMsXG4gIGNvZGVCbG9jayxcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxudHlwZSBXZWJob29rTW9kZSA9IFwiYWxsXCIgfCBcInRlc3RcIiB8IFwibGl2ZVwiO1xuXG5pbnRlcmZhY2UgQ3JlYXRlV2ViaG9va1Jlc3BvbnNlIHtcbiAgaWQ6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGV2ZW50czogc3RyaW5nW107XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBtb2RlOiBXZWJob29rTW9kZTtcbiAgc2VjcmV0OiBzdHJpbmc7IC8vIE9ubHkgcmV0dXJuZWQgb24gY3JlYXRpb25cbiAgc2VjcmV0X3ZlcnNpb246IG51bWJlcjtcbiAgaXNfYWN0aXZlOiBib29sZWFuO1xuICBjcmVhdGVkX2F0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdlYmhvb2tzQ3JlYXRlIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkNyZWF0ZSBhIHdlYmhvb2tcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB3ZWJob29rcyBjcmVhdGUgLS11cmwgaHR0cHM6Ly9teWFwcC5jb20vd2ViaG9vayAtLWV2ZW50cyBtZXNzYWdlLmRlbGl2ZXJlZFwiLFxuICAgICc8JT0gY29uZmlnLmJpbiAlPiB3ZWJob29rcyBjcmVhdGUgLS11cmwgaHR0cHM6Ly9teWFwcC5jb20vd2ViaG9vayAtLWV2ZW50cyBtZXNzYWdlLmRlbGl2ZXJlZCxtZXNzYWdlLmZhaWxlZCAtLWRlc2NyaXB0aW9uIFwiUHJvZHVjdGlvbiB3ZWJob29rXCInLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gd2ViaG9va3MgY3JlYXRlIC0tdXJsIGh0dHBzOi8vd2ViaG9vay5zaXRlL2FiYzEyMyAtLWV2ZW50cyBtZXNzYWdlLnNlbnQgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICB1cmw6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcInVcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIldlYmhvb2sgVVJMIChtdXN0IGJlIEhUVFBTKVwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgZXZlbnRzOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJlXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBldmVudHMgdG8gbGlzdGVuIGZvclwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgZGVzY3JpcHRpb246IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcImRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkRlc2NyaXB0aW9uIGZvciB0aGUgd2ViaG9va1wiLFxuICAgIH0pLFxuICAgIG1vZGU6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcIm1cIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkV2ZW50IG1vZGUgZmlsdGVyOiBhbGwgKGRlZmF1bHQpLCB0ZXN0IChzYW5kYm94IG9ubHkpLCBsaXZlIChwcm9kdWN0aW9uIG9ubHkpXCIsXG4gICAgICBvcHRpb25zOiBbXCJhbGxcIiwgXCJ0ZXN0XCIsIFwibGl2ZVwiXSxcbiAgICAgIGRlZmF1bHQ6IFwiYWxsXCIsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoV2ViaG9va3NDcmVhdGUpO1xuXG4gICAgY29uc3QgdGVzdFVybFBhdHRlcm5zID0gW1wibG9jYWxob3N0XCIsIFwiMTI3LjAuMC4xXCIsIFwiLm5ncm9rLlwiLCBcIi5sb2NhLmx0XCIsIFwid2ViaG9vay5zaXRlXCJdO1xuICAgIGNvbnN0IGlzVGVzdFVybCA9IHRlc3RVcmxQYXR0ZXJucy5zb21lKChwKSA9PiBmbGFncy51cmwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhwKSk7XG4gICAgaWYgKCFmbGFncy51cmwuc3RhcnRzV2l0aChcImh0dHBzOi8vXCIpICYmICFpc1Rlc3RVcmwpIHtcbiAgICAgIHRoaXMuZXJyb3IoXCJXZWJob29rIFVSTCBtdXN0IHVzZSBIVFRQUy4gVXNlIGh0dHA6Ly8gb25seSBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQgVVJMcyAobG9jYWxob3N0LCBuZ3JvaywgZXRjLikuXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50cyA9IGZsYWdzLmV2ZW50cy5zcGxpdChcIixcIikubWFwKChlKSA9PiBlLnRyaW0oKSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PENyZWF0ZVdlYmhvb2tSZXNwb25zZT4oXG4gICAgICBcIi9hcGkvdjEvd2ViaG9va3NcIixcbiAgICAgIHtcbiAgICAgICAgdXJsOiBmbGFncy51cmwsXG4gICAgICAgIGV2ZW50cyxcbiAgICAgICAgbW9kZTogZmxhZ3MubW9kZSxcbiAgICAgICAgLi4uKGZsYWdzLmRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb246IGZsYWdzLmRlc2NyaXB0aW9uIH0pLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbW9kZURpc3BsYXkgPSB7XG4gICAgICBhbGw6IGNvbG9ycy5kaW0oXCJhbGxcIiksXG4gICAgICB0ZXN0OiBjb2xvcnMud2FybmluZyhcInRlc3RcIiksXG4gICAgICBsaXZlOiBjb2xvcnMuc3VjY2VzcyhcImxpdmVcIiksXG4gICAgfTtcblxuICAgIHN1Y2Nlc3MoXCJXZWJob29rIGNyZWF0ZWRcIiwge1xuICAgICAgSUQ6IHJlc3BvbnNlLmlkLFxuICAgICAgVVJMOiByZXNwb25zZS51cmwsXG4gICAgICBFdmVudHM6IHJlc3BvbnNlLmV2ZW50cy5qb2luKFwiLCBcIiksXG4gICAgICBNb2RlOiBtb2RlRGlzcGxheVtyZXNwb25zZS5tb2RlXSB8fCByZXNwb25zZS5tb2RlLFxuICAgICAgLi4uKHJlc3BvbnNlLmRlc2NyaXB0aW9uICYmIHsgRGVzY3JpcHRpb246IHJlc3BvbnNlLmRlc2NyaXB0aW9uIH0pLFxuICAgICAgU3RhdHVzOiByZXNwb25zZS5pc19hY3RpdmVcbiAgICAgICAgPyBjb2xvcnMuc3VjY2VzcyhcImFjdGl2ZVwiKVxuICAgICAgICA6IGNvbG9ycy53YXJuaW5nKFwiaW5hY3RpdmVcIiksXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIHdhcm4oXCJDb3B5IHlvdXIgd2ViaG9vayBzZWNyZXQgbm93LiBZb3Ugd29uJ3QgYmUgYWJsZSB0byBzZWUgaXQgYWdhaW4hXCIpO1xuICAgIGNvZGVCbG9jayhyZXNwb25zZS5zZWNyZXQpO1xuXG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGNvbG9ycy5kaW0oXG4gICAgICAgIFwiVXNlIHRoaXMgc2VjcmV0IHRvIHZlcmlmeSB3ZWJob29rIHNpZ25hdHVyZXMgaW4geW91ciBhcHBsaWNhdGlvbi5cIixcbiAgICAgICksXG4gICAgKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGNvbG9ycy5kaW0oXCJTZWUgdGhlIGRvY3MgZm9yIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZXhhbXBsZXMuXCIpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -21,7 +21,7 @@ export default class WebhooksListen extends AuthenticatedCommand {
|
|
|
21
21
|
events: Flags.string({
|
|
22
22
|
char: "e",
|
|
23
23
|
description: "Comma-separated list of events to listen for",
|
|
24
|
-
default: "message.sent,message.delivered,message.failed,message.bounced",
|
|
24
|
+
default: "message.sent,message.delivered,message.failed,message.bounced,message.retrying",
|
|
25
25
|
}),
|
|
26
26
|
};
|
|
27
27
|
ws = null;
|
|
@@ -29,6 +29,12 @@ export default class WebhooksListen extends AuthenticatedCommand {
|
|
|
29
29
|
secret = null;
|
|
30
30
|
async run() {
|
|
31
31
|
const { flags } = await this.parse(WebhooksListen);
|
|
32
|
+
try {
|
|
33
|
+
new URL(flags.forward);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
this.error(`Invalid forward URL: ${flags.forward}. Must be a valid URL (e.g., http://localhost:3000/webhook).`);
|
|
37
|
+
}
|
|
32
38
|
const events = flags.events.split(",").map((e) => e.trim());
|
|
33
39
|
const spin = spinner("Starting webhook listener...");
|
|
34
40
|
spin.start();
|
|
@@ -140,8 +146,10 @@ export default class WebhooksListen extends AuthenticatedCommand {
|
|
|
140
146
|
let statusColor = colors.info;
|
|
141
147
|
if (eventType.includes("delivered"))
|
|
142
148
|
statusColor = colors.success;
|
|
143
|
-
if (eventType.includes("failed"))
|
|
149
|
+
if (eventType.includes("failed") || eventType.includes("bounced"))
|
|
144
150
|
statusColor = colors.error;
|
|
151
|
+
if (eventType.includes("retrying"))
|
|
152
|
+
statusColor = colors.warning;
|
|
145
153
|
console.log(`${colors.dim(timestamp)} ${statusColor("→")} ${colors.bold(eventType)}`);
|
|
146
154
|
const data = event.data?.object;
|
|
147
155
|
if (data) {
|
|
@@ -196,4 +204,4 @@ export default class WebhooksListen extends AuthenticatedCommand {
|
|
|
196
204
|
}
|
|
197
205
|
}
|
|
198
206
|
}
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3dlYmhvb2tzL2xpc3Rlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBRUwsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sU0FBUyxNQUFNLElBQUksQ0FBQztBQUMzQixPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQztBQStCdEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBQzlELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGlIQUFpSCxDQUFDO0lBRXBILE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsbUNBQW1DO1FBQ25DLDJFQUEyRTtRQUMzRSw2RUFBNkU7S0FDOUUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsZ0NBQWdDO1lBQzdDLE9BQU8sRUFBRSwrQkFBK0I7U0FDekMsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDhDQUE4QztZQUMzRCxPQUFPLEVBQUUsK0RBQStEO1NBQ3pFLENBQUM7S0FDSCxDQUFDO0lBRU0sRUFBRSxHQUFxQixJQUFJLENBQUM7SUFDNUIsU0FBUyxHQUFrQixJQUFJLENB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QWlCLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNqQixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDO2dCQUNILE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDbkUsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCx3QkFBd0I7WUFDMUIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAgc3VjY2VzcyxcbiAgZXJyb3IsXG4gIGluZm8sXG4gIHdhcm4sXG4gIGNvbG9ycyxcbiAgc3Bpbm5lcixcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcbmltcG9ydCB7IGdldENvbmZpZ1ZhbHVlIH0gZnJvbSBcIi4uLy4uL2xpYi9jb25maWcuanNcIjtcbmltcG9ydCBXZWJTb2NrZXQgZnJvbSBcIndzXCI7XG5pbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5cbmludGVyZmFjZSBXZWJob29rRXZlbnQge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGFwaV92ZXJzaW9uOiBzdHJpbmc7XG4gIGNyZWF0ZWQ6IG51bWJlcjtcbiAgbGl2ZW1vZGU6IGJvb2xlYW47XG4gIGRhdGE6IHtcbiAgICBvYmplY3Q6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB9O1xufVxuXG5pbnRlcmZhY2UgV2ViU29ja2V0TWVzc2FnZSB7XG4gIHR5cGU6IHN0cmluZztcbiAgdGltZXN0YW1wPzogbnVtYmVyO1xuICBzaWduYXR1cmU/OiBzdHJpbmc7XG4gIGV2ZW50PzogV2ViaG9va0V2ZW50O1xuICBzZXNzaW9uSWQ/OiBzdHJpbmc7XG4gIGV2ZW50cz86IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgTGlzdGVuU3RhcnRSZXNwb25zZSB7XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICB3c1Rva2VuOiBzdHJpbmc7XG4gIHNlY3JldDogc3RyaW5nO1xuICB3c1VybDogc3RyaW5nO1xuICBldmVudHM6IHN0cmluZ1tdO1xuICBmb3J3YXJkVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdlYmhvb2tzTGlzdGVuIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPVxuICAgIFwiTGlzdGVuIGZvciB3ZWJob29rcyBsb2NhbGx5LiBSZWNlaXZlcyBldmVudHMgaW4gcmVhbC10aW1lIHZpYSBXZWJTb2NrZXQgYW5kIGZvcndhcmRzIHRoZW0gdG8geW91ciBsb2NhbCBzZXJ2ZXIuXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gd2ViaG9va3MgbGlzdGVuXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB3ZWJob29rcyBsaXN0ZW4gLS1mb3J3YXJkIGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC93ZWJob29rXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB3ZWJob29rcyBsaXN0ZW4gLS1ldmVudHMgbWVzc2FnZS5kZWxpdmVyZWQsbWVzc2FnZS5mYWlsZWRcIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIGZvcndhcmQ6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcImZcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkxvY2FsIFVSTCB0byBmb3J3YXJkIGV2ZW50cyB0b1wiLFxuICAgICAgZGVmYXVsdDogXCJodHRwOi8vbG9jYWxob3N0OjMwMDAvd2ViaG9va1wiLFxuICAgIH0pLFxuICAgIGV2ZW50czogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwiZVwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZXZlbnRzIHRvIGxpc3RlbiBmb3JcIixcbiAgICAgIGRlZmF1bHQ6IFwibWVzc2FnZS5zZW50LG1lc3NhZ2UuZGVsaXZlcmVkLG1lc3NhZ2UuZmFpbGVkLG1lc3NhZ2UuYm91bmNlZFwiLFxuICAgIH0pLFxuICB9O1xuXG4gIHByaXZhdGUgd3M6IFdlYlNvY2tldCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHNlc3Npb25JZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc2VjcmV0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShXZWJob29rc0xpc3Rlbik7XG4gICAgY29uc3QgZXZlbnRzID0gZmxhZ3MuZXZlbnRzLnNwbGl0KFwiLFwiKS5tYXAoKGUpID0+IGUudHJpbSgpKTtcblxuICAgIGNvbnN0IHNwaW4gPSBzcGlubmVyKFwiU3RhcnRpbmcgd2ViaG9vayBsaXN0ZW5lci4uLlwiKTtcbiAgICBzcGluLnN0YXJ0KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxMaXN0ZW5TdGFydFJlc3BvbnNlPihcbiAgICAgICAgXCIvYXBpL2NsaS9saXN0ZW4vc3RhcnRcIixcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50cyxcbiAgICAgICAgICBmb3J3YXJkVXJsOiBmbGFncy5mb3J3YXJkLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy5zZXNzaW9uSWQgPSByZXNwb25zZS5zZXNzaW9uSWQ7XG4gICAgICB0aGlzLnNlY3JldCA9IHJlc3BvbnNlLnNlY3JldDtcblxuICAgICAgc3Bpbi5zdWNjZWVkKFwiTGlzdGVuZXIgcmVnaXN0ZXJlZFwiKTtcblxuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKGNvbG9ycy5ib2xkKGNvbG9ycy5wcmltYXJ5KFwiV2ViaG9vayBsaXN0ZW5lciByZWFkeSFcIikpKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCAgJHtjb2xvcnMuZGltKFwiRm9yd2FyZGluZyB0bzpcIil9ICR7Y29sb3JzLmNvZGUoZmxhZ3MuZm9yd2FyZCl9YCxcbiAgICAgICk7XG4gICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJFdmVudHM6XCIpfSAgICAgICAgJHtldmVudHMuam9pbihcIiwgXCIpfWApO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLmRpbShcIldlYmhvb2sgU2VjcmV0OlwiKX1gKTtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLnByaW1hcnkocmVzcG9uc2Uuc2VjcmV0KX1gKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLmRpbShcIlVzZSB0aGlzIHNlY3JldCB0byB2ZXJpZnkgd2ViaG9vayBzaWduYXR1cmVzIGluIHlvdXIgYXBwLlwiKSxcbiAgICAgICk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuXG4gICAgICBjb25zdCBzcGluMiA9IHNwaW5uZXIoXCJDb25uZWN0aW5nIHRvIFNlbmRseS4uLlwiKTtcbiAgICAgIHNwaW4yLnN0YXJ0KCk7XG5cbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdFdlYlNvY2tldChyZXNwb25zZS53c1VybCwgZmxhZ3MuZm9yd2FyZCk7XG5cbiAgICAgIHNwaW4yLnN1Y2NlZWQoXCJDb25uZWN0ZWRcIik7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmJvbGQoXCJXYWl0aW5nIGZvciBldmVudHMuLi4gKEN0cmwrQyB0byBxdWl0KVwiKSk7XG4gICAgICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwi4pSAXCIucmVwZWF0KDYwKSkpO1xuICAgICAgY29uc29sZS5sb2coKTtcblxuICAgICAgY29uc3QgY2xlYW51cCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgaW5mbyhcIlNodXR0aW5nIGRvd24uLi5cIik7XG4gICAgICAgIGF3YWl0IHRoaXMuY2xlYW51cCgpO1xuICAgICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgICB9O1xuXG4gICAgICBwcm9jZXNzLm9uKFwiU0lHSU5UXCIsIGNsZWFudXApO1xuICAgICAgcHJvY2Vzcy5vbihcIlNJR1RFUk1cIiwgY2xlYW51cCk7XG5cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKCgpID0+IHt9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNwaW4uZmFpbChcIkZhaWxlZCB0byBzdGFydCBsaXN0ZW5lclwiKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbm5lY3RXZWJTb2NrZXQod3NVcmw6IHN0cmluZywgZm9yd2FyZFVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMud3MgPSBuZXcgV2ViU29ja2V0KHdzVXJsKTtcblxuICAgICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKFwiV2ViU29ja2V0IGNvbm5lY3Rpb24gdGltZW91dFwiKSk7XG4gICAgICB9LCAzMDAwMCk7XG5cbiAgICAgIHRoaXMud3Mub24oXCJvcGVuXCIsICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMud3Mub24oXCJtZXNzYWdlXCIsIGFzeW5jIChkYXRhKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZTogV2ViU29ja2V0TWVzc2FnZSA9IEpTT04ucGFyc2UoZGF0YS50b1N0cmluZygpKTtcblxuICAgICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IFwiY2xpX2Nvbm5lY3RlZFwiKSB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJ3ZWJob29rX2V2ZW50XCIgJiYgbWVzc2FnZS5ldmVudCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFdmVudChtZXNzYWdlLCBmb3J3YXJkVXJsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gcGFyc2UgV2ViU29ja2V0IG1lc3NhZ2U6XCIsIGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLndzLm9uKFwiY2xvc2VcIiwgKGNvZGUsIHJlYXNvbikgPT4ge1xuICAgICAgICBpZiAoY29kZSAhPT0gMTAwMCkge1xuICAgICAgICAgIHdhcm4oYFdlYlNvY2tldCBkaXNjb25uZWN0ZWQ6ICR7cmVhc29uIHx8IGNvZGV9YCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLndzLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIGVycm9yKGBXZWJTb2NrZXQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUV2ZW50KFxuICAgIG1lc3NhZ2U6IFdlYlNvY2tldE1lc3NhZ2UsXG4gICAgZm9yd2FyZFVybDogc3RyaW5nLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBldmVudCA9IG1lc3NhZ2UuZXZlbnQhO1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IG1lc3NhZ2UudGltZXN0YW1wITtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBtZXNzYWdlLnNpZ25hdHVyZSE7XG5cbiAgICB0aGlzLmRpc3BsYXlFdmVudChldmVudCk7XG5cbiAgICBpZiAodGhpcy52ZXJpZnlTaWduYXR1cmUoZXZlbnQsIHRpbWVzdGFtcCwgc2lnbmF0dXJlKSkge1xuICAgICAgYXdhaXQgdGhpcy5mb3J3YXJkRXZlbnQoZm9yd2FyZFVybCwgZXZlbnQsIHRpbWVzdGFtcCwgc2lnbmF0dXJlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZXJyb3IoXCLinJdcIil9IFNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZmFpbGVkYCk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5U2lnbmF0dXJlKFxuICAgIGV2ZW50OiBXZWJob29rRXZlbnQsXG4gICAgdGltZXN0YW1wOiBudW1iZXIsXG4gICAgc2lnbmF0dXJlOiBzdHJpbmcsXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5zZWNyZXQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShldmVudCk7XG4gICAgY29uc3Qgc2lnbmVkUGF5bG9hZCA9IGAke3RpbWVzdGFtcH0uJHtwYXlsb2FkfWA7XG4gICAgY29uc3QgZXhwZWN0ZWRTaWduYXR1cmUgPSBgc2hhMjU2PSR7Y3J5cHRvXG4gICAgICAuY3JlYXRlSG1hYyhcInNoYTI1NlwiLCB0aGlzLnNlY3JldClcbiAgICAgIC51cGRhdGUoc2lnbmVkUGF5bG9hZCwgXCJ1dGY4XCIpXG4gICAgICAuZGlnZXN0KFwiaGV4XCIpfWA7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlID09PSBleHBlY3RlZFNpZ25hdHVyZTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheUV2ZW50KGV2ZW50OiBXZWJob29rRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZShldmVudC5jcmVhdGVkICogMTAwMCkudG9Mb2NhbGVUaW1lU3RyaW5nKCk7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gZXZlbnQudHlwZTtcblxuICAgIGxldCBzdGF0dXNDb2xvciA9IGNvbG9ycy5pbmZvO1xuICAgIGlmIChldmVudFR5cGUuaW5jbHVkZXMoXCJkZWxpdmVyZWRcIikpIHN0YXR1c0NvbG9yID0gY29sb3JzLnN1Y2Nlc3M7XG4gICAgaWYgKGV2ZW50VHlwZS5pbmNsdWRlcyhcImZhaWxlZFwiKSkgc3RhdHVzQ29sb3IgPSBjb2xvcnMuZXJyb3I7XG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAke2NvbG9ycy5kaW0odGltZXN0YW1wKX0gJHtzdGF0dXNDb2xvcihcIuKGklwiKX0gJHtjb2xvcnMuYm9sZChldmVudFR5cGUpfWAsXG4gICAgKTtcblxuICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhPy5vYmplY3Q7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VJZCA9IGRhdGEuaWQgYXMgc3RyaW5nO1xuICAgICAgY29uc3QgdG8gPSBkYXRhLnRvIGFzIHN0cmluZztcbiAgICAgIGlmIChtZXNzYWdlSWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKFwiaWQ6XCIpfSAke21lc3NhZ2VJZH1gKTtcbiAgICAgIH1cbiAgICAgIGlmICh0bykge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJ0bzpcIil9ICR7dG99YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmb3J3YXJkRXZlbnQoXG4gICAgZm9yd2FyZFVybDogc3RyaW5nLFxuICAgIGV2ZW50OiBXZWJob29rRXZlbnQsXG4gICAgdGltZXN0YW1wOiBudW1iZXIsXG4gICAgc2lnbmF0dXJlOiBzdHJpbmcsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoZXZlbnQpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGZvcndhcmRVcmwsIHtcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgIFwiWC1TZW5kbHktU2lnbmF0dXJlXCI6IHNpZ25hdHVyZSxcbiAgICAgICAgICBcIlgtU2VuZGx5LVRpbWVzdGFtcFwiOiB0aW1lc3RhbXAudG9TdHJpbmcoKSxcbiAgICAgICAgICBcIlgtU2VuZGx5LUV2ZW50XCI6IGV2ZW50LnR5cGUsXG4gICAgICAgICAgXCJYLVNlbmRseS1FdmVudC1JZFwiOiBldmVudC5pZCxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogcGF5bG9hZCxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYCAgJHtjb2xvcnMuc3VjY2VzcyhcIuKck1wiKX0gRm9yd2FyZGVkIHRvICR7Zm9yd2FyZFVybH0gKCR7cmVzcG9uc2Uuc3RhdHVzfSlgLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYCAgJHtjb2xvcnMuZXJyb3IoXCLinJdcIil9IEZvcndhcmQgZmFpbGVkICgke3Jlc3BvbnNlLnN0YXR1c30pYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgICAke2NvbG9ycy5lcnJvcihcIuKcl1wiKX0gRm9yd2FyZCBlcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbGVhbnVwKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLndzKSB7XG4gICAgICB0aGlzLndzLmNsb3NlKDEwMDAsIFwiQ2xpZW50IHNodXRkb3duXCIpO1xuICAgICAgdGhpcy53cyA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2Vzc2lvbklkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBhcGlDbGllbnQuZGVsZXRlKGAvYXBpL2NsaS9saXN0ZW4vc3RvcC8ke3RoaXMuc2Vzc2lvbklkfWApO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIElnbm9yZSBjbGVhbnVwIGVycm9yc1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3dlYmhvb2tzL2xpc3Rlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBRUwsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sU0FBUyxNQUFNLElBQUksQ0FBQztBQUMzQixPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQztBQStCdEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBQzlELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGlIQUFpSCxDQUFDO0lBRXBILE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsbUNBQW1DO1FBQ25DLDJFQUEyRTtRQUMzRSw2RUFBNkU7S0FDOUUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsZ0NBQWdDO1lBQzdDLE9BQU8sRUFBRSwrQkFBK0I7U0FDekMsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDhDQUE4QztZQUMzRCxPQUFPLEVBQUUsZ0ZBQWdGO1NBQzFGLENBQUM7S0FDSCxDQUFDO0lBRU0sRUFBRSxHQUFxQixJQUFJLENBQUM7SUFDNUIsU0FBUyxHQUFrQixJQUFJLENB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QUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLG1CQUFvQixHQUFhLENBQUMsT0FBTyxFQUFFLENBQ2xFLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBTztRQUNuQixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxTQUFTLENBQUMsTUFBTSxDQUFDLHdCQUF3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUNuRSxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLHdCQUF3QjtZQUMxQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBzdWNjZXNzLFxuICBlcnJvcixcbiAgaW5mbyxcbiAgd2FybixcbiAgY29sb3JzLFxuICBzcGlubmVyLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnVmFsdWUgfSBmcm9tIFwiLi4vLi4vbGliL2NvbmZpZy5qc1wiO1xuaW1wb3J0IFdlYlNvY2tldCBmcm9tIFwid3NcIjtcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tIFwibm9kZTpjcnlwdG9cIjtcblxuaW50ZXJmYWNlIFdlYmhvb2tFdmVudCB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgYXBpX3ZlcnNpb246IHN0cmluZztcbiAgY3JlYXRlZDogbnVtYmVyO1xuICBsaXZlbW9kZTogYm9vbGVhbjtcbiAgZGF0YToge1xuICAgIG9iamVjdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIH07XG59XG5cbmludGVyZmFjZSBXZWJTb2NrZXRNZXNzYWdlIHtcbiAgdHlwZTogc3RyaW5nO1xuICB0aW1lc3RhbXA/OiBudW1iZXI7XG4gIHNpZ25hdHVyZT86IHN0cmluZztcbiAgZXZlbnQ/OiBXZWJob29rRXZlbnQ7XG4gIHNlc3Npb25JZD86IHN0cmluZztcbiAgZXZlbnRzPzogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBMaXN0ZW5TdGFydFJlc3BvbnNlIHtcbiAgc2Vzc2lvbklkOiBzdHJpbmc7XG4gIHdzVG9rZW46IHN0cmluZztcbiAgc2VjcmV0OiBzdHJpbmc7XG4gIHdzVXJsOiBzdHJpbmc7XG4gIGV2ZW50czogc3RyaW5nW107XG4gIGZvcndhcmRVcmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2ViaG9va3NMaXN0ZW4gZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJMaXN0ZW4gZm9yIHdlYmhvb2tzIGxvY2FsbHkuIFJlY2VpdmVzIGV2ZW50cyBpbiByZWFsLXRpbWUgdmlhIFdlYlNvY2tldCBhbmQgZm9yd2FyZHMgdGhlbSB0byB5b3VyIGxvY2FsIHNlcnZlci5cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB3ZWJob29rcyBsaXN0ZW5cIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHdlYmhvb2tzIGxpc3RlbiAtLWZvcndhcmQgaHR0cDovL2xvY2FsaG9zdDozMDAwL3dlYmhvb2tcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHdlYmhvb2tzIGxpc3RlbiAtLWV2ZW50cyBtZXNzYWdlLmRlbGl2ZXJlZCxtZXNzYWdlLmZhaWxlZFwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgZm9yd2FyZDogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwiZlwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiTG9jYWwgVVJMIHRvIGZvcndhcmQgZXZlbnRzIHRvXCIsXG4gICAgICBkZWZhdWx0OiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC93ZWJob29rXCIsXG4gICAgfSksXG4gICAgZXZlbnRzOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJlXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBldmVudHMgdG8gbGlzdGVuIGZvclwiLFxuICAgICAgZGVmYXVsdDogXCJtZXNzYWdlLnNlbnQsbWVzc2FnZS5kZWxpdmVyZWQsbWVzc2FnZS5mYWlsZWQsbWVzc2FnZS5ib3VuY2VkLG1lc3NhZ2UucmV0cnlpbmdcIixcbiAgICB9KSxcbiAgfTtcblxuICBwcml2YXRlIHdzOiBXZWJTb2NrZXQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzZXNzaW9uSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHNlY3JldDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoV2ViaG9va3NMaXN0ZW4pO1xuXG4gICAgdHJ5IHtcbiAgICAgIG5ldyBVUkwoZmxhZ3MuZm9yd2FyZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmVycm9yKGBJbnZhbGlkIGZvcndhcmQgVVJMOiAke2ZsYWdzLmZvcndhcmR9LiBNdXN0IGJlIGEgdmFsaWQgVVJMIChlLmcuLCBodHRwOi8vbG9jYWxob3N0OjMwMDAvd2ViaG9vaykuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgZXZlbnRzID0gZmxhZ3MuZXZlbnRzLnNwbGl0KFwiLFwiKS5tYXAoKGUpID0+IGUudHJpbSgpKTtcblxuICAgIGNvbnN0IHNwaW4gPSBzcGlubmVyKFwiU3RhcnRpbmcgd2ViaG9vayBsaXN0ZW5lci4uLlwiKTtcbiAgICBzcGluLnN0YXJ0KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxMaXN0ZW5TdGFydFJlc3BvbnNlPihcbiAgICAgICAgXCIvYXBpL2NsaS9saXN0ZW4vc3RhcnRcIixcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50cyxcbiAgICAgICAgICBmb3J3YXJkVXJsOiBmbGFncy5mb3J3YXJkLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy5zZXNzaW9uSWQgPSByZXNwb25zZS5zZXNzaW9uSWQ7XG4gICAgICB0aGlzLnNlY3JldCA9IHJlc3BvbnNlLnNlY3JldDtcblxuICAgICAgc3Bpbi5zdWNjZWVkKFwiTGlzdGVuZXIgcmVnaXN0ZXJlZFwiKTtcblxuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKGNvbG9ycy5ib2xkKGNvbG9ycy5wcmltYXJ5KFwiV2ViaG9vayBsaXN0ZW5lciByZWFkeSFcIikpKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCAgJHtjb2xvcnMuZGltKFwiRm9yd2FyZGluZyB0bzpcIil9ICR7Y29sb3JzLmNvZGUoZmxhZ3MuZm9yd2FyZCl9YCxcbiAgICAgICk7XG4gICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJFdmVudHM6XCIpfSAgICAgICAgJHtldmVudHMuam9pbihcIiwgXCIpfWApO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLmRpbShcIldlYmhvb2sgU2VjcmV0OlwiKX1gKTtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLnByaW1hcnkocmVzcG9uc2Uuc2VjcmV0KX1gKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLmRpbShcIlVzZSB0aGlzIHNlY3JldCB0byB2ZXJpZnkgd2ViaG9vayBzaWduYXR1cmVzIGluIHlvdXIgYXBwLlwiKSxcbiAgICAgICk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuXG4gICAgICBjb25zdCBzcGluMiA9IHNwaW5uZXIoXCJDb25uZWN0aW5nIHRvIFNlbmRseS4uLlwiKTtcbiAgICAgIHNwaW4yLnN0YXJ0KCk7XG5cbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdFdlYlNvY2tldChyZXNwb25zZS53c1VybCwgZmxhZ3MuZm9yd2FyZCk7XG5cbiAgICAgIHNwaW4yLnN1Y2NlZWQoXCJDb25uZWN0ZWRcIik7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmJvbGQoXCJXYWl0aW5nIGZvciBldmVudHMuLi4gKEN0cmwrQyB0byBxdWl0KVwiKSk7XG4gICAgICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwi4pSAXCIucmVwZWF0KDYwKSkpO1xuICAgICAgY29uc29sZS5sb2coKTtcblxuICAgICAgY29uc3QgY2xlYW51cCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgaW5mbyhcIlNodXR0aW5nIGRvd24uLi5cIik7XG4gICAgICAgIGF3YWl0IHRoaXMuY2xlYW51cCgpO1xuICAgICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgICB9O1xuXG4gICAgICBwcm9jZXNzLm9uKFwiU0lHSU5UXCIsIGNsZWFudXApO1xuICAgICAgcHJvY2Vzcy5vbihcIlNJR1RFUk1cIiwgY2xlYW51cCk7XG5cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKCgpID0+IHt9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNwaW4uZmFpbChcIkZhaWxlZCB0byBzdGFydCBsaXN0ZW5lclwiKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbm5lY3RXZWJTb2NrZXQod3NVcmw6IHN0cmluZywgZm9yd2FyZFVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMud3MgPSBuZXcgV2ViU29ja2V0KHdzVXJsKTtcblxuICAgICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKFwiV2ViU29ja2V0IGNvbm5lY3Rpb24gdGltZW91dFwiKSk7XG4gICAgICB9LCAzMDAwMCk7XG5cbiAgICAgIHRoaXMud3Mub24oXCJvcGVuXCIsICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMud3Mub24oXCJtZXNzYWdlXCIsIGFzeW5jIChkYXRhKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZTogV2ViU29ja2V0TWVzc2FnZSA9IEpTT04ucGFyc2UoZGF0YS50b1N0cmluZygpKTtcblxuICAgICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IFwiY2xpX2Nvbm5lY3RlZFwiKSB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJ3ZWJob29rX2V2ZW50XCIgJiYgbWVzc2FnZS5ldmVudCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFdmVudChtZXNzYWdlLCBmb3J3YXJkVXJsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gcGFyc2UgV2ViU29ja2V0IG1lc3NhZ2U6XCIsIGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLndzLm9uKFwiY2xvc2VcIiwgKGNvZGUsIHJlYXNvbikgPT4ge1xuICAgICAgICBpZiAoY29kZSAhPT0gMTAwMCkge1xuICAgICAgICAgIHdhcm4oYFdlYlNvY2tldCBkaXNjb25uZWN0ZWQ6ICR7cmVhc29uIHx8IGNvZGV9YCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLndzLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIGVycm9yKGBXZWJTb2NrZXQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUV2ZW50KFxuICAgIG1lc3NhZ2U6IFdlYlNvY2tldE1lc3NhZ2UsXG4gICAgZm9yd2FyZFVybDogc3RyaW5nLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBldmVudCA9IG1lc3NhZ2UuZXZlbnQhO1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IG1lc3NhZ2UudGltZXN0YW1wITtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBtZXNzYWdlLnNpZ25hdHVyZSE7XG5cbiAgICB0aGlzLmRpc3BsYXlFdmVudChldmVudCk7XG5cbiAgICBpZiAodGhpcy52ZXJpZnlTaWduYXR1cmUoZXZlbnQsIHRpbWVzdGFtcCwgc2lnbmF0dXJlKSkge1xuICAgICAgYXdhaXQgdGhpcy5mb3J3YXJkRXZlbnQoZm9yd2FyZFVybCwgZXZlbnQsIHRpbWVzdGFtcCwgc2lnbmF0dXJlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZXJyb3IoXCLinJdcIil9IFNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZmFpbGVkYCk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5U2lnbmF0dXJlKFxuICAgIGV2ZW50OiBXZWJob29rRXZlbnQsXG4gICAgdGltZXN0YW1wOiBudW1iZXIsXG4gICAgc2lnbmF0dXJlOiBzdHJpbmcsXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5zZWNyZXQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShldmVudCk7XG4gICAgY29uc3Qgc2lnbmVkUGF5bG9hZCA9IGAke3RpbWVzdGFtcH0uJHtwYXlsb2FkfWA7XG4gICAgY29uc3QgZXhwZWN0ZWRTaWduYXR1cmUgPSBgc2hhMjU2PSR7Y3J5cHRvXG4gICAgICAuY3JlYXRlSG1hYyhcInNoYTI1NlwiLCB0aGlzLnNlY3JldClcbiAgICAgIC51cGRhdGUoc2lnbmVkUGF5bG9hZCwgXCJ1dGY4XCIpXG4gICAgICAuZGlnZXN0KFwiaGV4XCIpfWA7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlID09PSBleHBlY3RlZFNpZ25hdHVyZTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheUV2ZW50KGV2ZW50OiBXZWJob29rRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZShldmVudC5jcmVhdGVkICogMTAwMCkudG9Mb2NhbGVUaW1lU3RyaW5nKCk7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gZXZlbnQudHlwZTtcblxuICAgIGxldCBzdGF0dXNDb2xvciA9IGNvbG9ycy5pbmZvO1xuICAgIGlmIChldmVudFR5cGUuaW5jbHVkZXMoXCJkZWxpdmVyZWRcIikpIHN0YXR1c0NvbG9yID0gY29sb3JzLnN1Y2Nlc3M7XG4gICAgaWYgKGV2ZW50VHlwZS5pbmNsdWRlcyhcImZhaWxlZFwiKSB8fCBldmVudFR5cGUuaW5jbHVkZXMoXCJib3VuY2VkXCIpKSBzdGF0dXNDb2xvciA9IGNvbG9ycy5lcnJvcjtcbiAgICBpZiAoZXZlbnRUeXBlLmluY2x1ZGVzKFwicmV0cnlpbmdcIikpIHN0YXR1c0NvbG9yID0gY29sb3JzLndhcm5pbmc7XG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAke2NvbG9ycy5kaW0odGltZXN0YW1wKX0gJHtzdGF0dXNDb2xvcihcIuKGklwiKX0gJHtjb2xvcnMuYm9sZChldmVudFR5cGUpfWAsXG4gICAgKTtcblxuICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhPy5vYmplY3Q7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VJZCA9IGRhdGEuaWQgYXMgc3RyaW5nO1xuICAgICAgY29uc3QgdG8gPSBkYXRhLnRvIGFzIHN0cmluZztcbiAgICAgIGlmIChtZXNzYWdlSWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKFwiaWQ6XCIpfSAke21lc3NhZ2VJZH1gKTtcbiAgICAgIH1cbiAgICAgIGlmICh0bykge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJ0bzpcIil9ICR7dG99YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmb3J3YXJkRXZlbnQoXG4gICAgZm9yd2FyZFVybDogc3RyaW5nLFxuICAgIGV2ZW50OiBXZWJob29rRXZlbnQsXG4gICAgdGltZXN0YW1wOiBudW1iZXIsXG4gICAgc2lnbmF0dXJlOiBzdHJpbmcsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoZXZlbnQpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGZvcndhcmRVcmwsIHtcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgIFwiWC1TZW5kbHktU2lnbmF0dXJlXCI6IHNpZ25hdHVyZSxcbiAgICAgICAgICBcIlgtU2VuZGx5LVRpbWVzdGFtcFwiOiB0aW1lc3RhbXAudG9TdHJpbmcoKSxcbiAgICAgICAgICBcIlgtU2VuZGx5LUV2ZW50XCI6IGV2ZW50LnR5cGUsXG4gICAgICAgICAgXCJYLVNlbmRseS1FdmVudC1JZFwiOiBldmVudC5pZCxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogcGF5bG9hZCxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYCAgJHtjb2xvcnMuc3VjY2VzcyhcIuKck1wiKX0gRm9yd2FyZGVkIHRvICR7Zm9yd2FyZFVybH0gKCR7cmVzcG9uc2Uuc3RhdHVzfSlgLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYCAgJHtjb2xvcnMuZXJyb3IoXCLinJdcIil9IEZvcndhcmQgZmFpbGVkICgke3Jlc3BvbnNlLnN0YXR1c30pYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgICAke2NvbG9ycy5lcnJvcihcIuKcl1wiKX0gRm9yd2FyZCBlcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbGVhbnVwKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLndzKSB7XG4gICAgICB0aGlzLndzLmNsb3NlKDEwMDAsIFwiQ2xpZW50IHNodXRkb3duXCIpO1xuICAgICAgdGhpcy53cyA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2Vzc2lvbklkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBhcGlDbGllbnQuZGVsZXRlKGAvYXBpL2NsaS9saXN0ZW4vc3RvcC8ke3RoaXMuc2Vzc2lvbklkfWApO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIElnbm9yZSBjbGVhbnVwIGVycm9yc1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
package/dist/lib/api-client.d.ts
CHANGED
|
@@ -44,8 +44,11 @@ export declare class ValidationError extends ApiError {
|
|
|
44
44
|
}
|
|
45
45
|
declare class ApiClient {
|
|
46
46
|
private rateLimitInfo?;
|
|
47
|
+
private refreshing;
|
|
47
48
|
private getBaseUrl;
|
|
49
|
+
private ensureAuth;
|
|
48
50
|
private getHeaders;
|
|
51
|
+
private refreshTokens;
|
|
49
52
|
request<T>(method: string, path: string, options?: {
|
|
50
53
|
body?: Record<string, unknown>;
|
|
51
54
|
query?: Record<string, string | number | boolean | undefined>;
|
package/dist/lib/api-client.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Handles all HTTP requests to the Sendly API
|
|
4
4
|
*/
|
|
5
5
|
import { createRequire } from "node:module";
|
|
6
|
-
import { getAuthToken, getConfigValue, getEffectiveValue } from "./config.js";
|
|
6
|
+
import { getAuthToken, getStoredAccessToken, getConfigValue, getEffectiveValue, setAuthTokens } from "./config.js";
|
|
7
7
|
// Read version from package.json
|
|
8
8
|
const require = createRequire(import.meta.url);
|
|
9
9
|
const { version } = require("../../package.json");
|
|
@@ -86,21 +86,33 @@ export class ValidationError extends ApiError {
|
|
|
86
86
|
}
|
|
87
87
|
class ApiClient {
|
|
88
88
|
rateLimitInfo;
|
|
89
|
+
refreshing = null;
|
|
89
90
|
getBaseUrl() {
|
|
90
91
|
return getConfigValue("baseUrl") || "https://sendly.live";
|
|
91
92
|
}
|
|
92
|
-
|
|
93
|
+
async ensureAuth() {
|
|
94
|
+
let token = getAuthToken();
|
|
95
|
+
if (token)
|
|
96
|
+
return token;
|
|
97
|
+
const stored = getStoredAccessToken();
|
|
98
|
+
if (stored?.startsWith("cli_")) {
|
|
99
|
+
const refreshed = await this.refreshTokens();
|
|
100
|
+
if (refreshed) {
|
|
101
|
+
token = getAuthToken();
|
|
102
|
+
if (token)
|
|
103
|
+
return token;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
throw new AuthenticationError();
|
|
107
|
+
}
|
|
108
|
+
async getHeaders(requireAuth = true) {
|
|
93
109
|
const headers = {
|
|
94
110
|
"Content-Type": "application/json",
|
|
95
111
|
Accept: "application/json",
|
|
96
112
|
"User-Agent": `@sendly/cli/${version}`,
|
|
97
113
|
};
|
|
98
114
|
if (requireAuth) {
|
|
99
|
-
|
|
100
|
-
if (!token) {
|
|
101
|
-
throw new AuthenticationError();
|
|
102
|
-
}
|
|
103
|
-
headers["Authorization"] = `Bearer ${token}`;
|
|
115
|
+
headers["Authorization"] = `Bearer ${await this.ensureAuth()}`;
|
|
104
116
|
}
|
|
105
117
|
const orgId = getEffectiveValue("currentOrgId");
|
|
106
118
|
if (orgId) {
|
|
@@ -108,6 +120,39 @@ class ApiClient {
|
|
|
108
120
|
}
|
|
109
121
|
return headers;
|
|
110
122
|
}
|
|
123
|
+
async refreshTokens() {
|
|
124
|
+
if (this.refreshing)
|
|
125
|
+
return this.refreshing;
|
|
126
|
+
this.refreshing = (async () => {
|
|
127
|
+
const stored = getStoredAccessToken();
|
|
128
|
+
if (!stored)
|
|
129
|
+
return false;
|
|
130
|
+
try {
|
|
131
|
+
const response = await fetch(`${this.getBaseUrl()}/api/cli/auth/refresh`, {
|
|
132
|
+
method: "POST",
|
|
133
|
+
headers: {
|
|
134
|
+
"Content-Type": "application/json",
|
|
135
|
+
"User-Agent": `@sendly/cli/${version}`,
|
|
136
|
+
},
|
|
137
|
+
body: JSON.stringify({ accessToken: stored }),
|
|
138
|
+
});
|
|
139
|
+
if (!response.ok)
|
|
140
|
+
return false;
|
|
141
|
+
const data = await response.json();
|
|
142
|
+
setAuthTokens(data.accessToken, data.refreshToken, data.expiresIn, data.userId, data.email);
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
})();
|
|
149
|
+
try {
|
|
150
|
+
return await this.refreshing;
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
this.refreshing = null;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
111
156
|
async request(method, path, options = {}) {
|
|
112
157
|
const { body, query, requireAuth = true } = options;
|
|
113
158
|
const maxRetries = getEffectiveValue("maxRetries");
|
|
@@ -121,21 +166,28 @@ class ApiClient {
|
|
|
121
166
|
});
|
|
122
167
|
}
|
|
123
168
|
let lastError;
|
|
169
|
+
let didRefresh = false;
|
|
124
170
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
125
171
|
try {
|
|
126
172
|
const controller = new AbortController();
|
|
127
173
|
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
128
174
|
const response = await fetch(url.toString(), {
|
|
129
175
|
method,
|
|
130
|
-
headers: this.getHeaders(requireAuth),
|
|
176
|
+
headers: await this.getHeaders(requireAuth),
|
|
131
177
|
body: body ? JSON.stringify(body) : undefined,
|
|
132
178
|
signal: controller.signal,
|
|
133
179
|
});
|
|
134
180
|
clearTimeout(timeoutId);
|
|
135
|
-
// Update rate limit info
|
|
136
181
|
this.updateRateLimitInfo(response.headers);
|
|
137
|
-
// Parse response
|
|
138
182
|
const data = await response.json().catch(() => ({}));
|
|
183
|
+
if (response.status === 401 && requireAuth && !didRefresh) {
|
|
184
|
+
didRefresh = true;
|
|
185
|
+
const refreshed = await this.refreshTokens();
|
|
186
|
+
if (refreshed) {
|
|
187
|
+
attempt--;
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
139
191
|
if (!response.ok) {
|
|
140
192
|
this.handleError(response.status, data);
|
|
141
193
|
}
|
|
@@ -143,20 +195,16 @@ class ApiClient {
|
|
|
143
195
|
}
|
|
144
196
|
catch (error) {
|
|
145
197
|
lastError = error;
|
|
146
|
-
// Don't retry non-retryable errors (4xx client errors)
|
|
147
198
|
if (!isRetryableError(error)) {
|
|
148
199
|
throw error;
|
|
149
200
|
}
|
|
150
|
-
// Don't retry on last attempt
|
|
151
201
|
if (attempt === maxRetries) {
|
|
152
202
|
throw error;
|
|
153
203
|
}
|
|
154
|
-
// Exponential backoff: 1s, 2s, 4s, etc.
|
|
155
204
|
const backoffMs = Math.min(1000 * Math.pow(2, attempt), 10000);
|
|
156
205
|
await sleep(backoffMs);
|
|
157
206
|
}
|
|
158
207
|
}
|
|
159
|
-
// Should never reach here, but TypeScript needs this
|
|
160
208
|
throw lastError || new Error("Request failed");
|
|
161
209
|
}
|
|
162
210
|
updateRateLimitInfo(headers) {
|
|
@@ -239,13 +287,10 @@ class ApiClient {
|
|
|
239
287
|
"User-Agent": `@sendly/cli/${version}`,
|
|
240
288
|
};
|
|
241
289
|
if (requireAuth) {
|
|
242
|
-
|
|
243
|
-
if (!token) {
|
|
244
|
-
throw new AuthenticationError();
|
|
245
|
-
}
|
|
246
|
-
headers["Authorization"] = `Bearer ${token}`;
|
|
290
|
+
headers["Authorization"] = `Bearer ${await this.ensureAuth()}`;
|
|
247
291
|
}
|
|
248
292
|
let lastError;
|
|
293
|
+
let didRefresh = false;
|
|
249
294
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
250
295
|
try {
|
|
251
296
|
const controller = new AbortController();
|
|
@@ -259,6 +304,15 @@ class ApiClient {
|
|
|
259
304
|
clearTimeout(timeoutId);
|
|
260
305
|
this.updateRateLimitInfo(response.headers);
|
|
261
306
|
const data = await response.json().catch(() => ({}));
|
|
307
|
+
if (response.status === 401 && requireAuth && !didRefresh) {
|
|
308
|
+
didRefresh = true;
|
|
309
|
+
const refreshed = await this.refreshTokens();
|
|
310
|
+
if (refreshed) {
|
|
311
|
+
headers["Authorization"] = `Bearer ${getAuthToken()}`;
|
|
312
|
+
attempt--;
|
|
313
|
+
continue;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
262
316
|
if (!response.ok) {
|
|
263
317
|
this.handleError(response.status, data);
|
|
264
318
|
}
|
|
@@ -280,4 +334,4 @@ class ApiClient {
|
|
|
280
334
|
}
|
|
281
335
|
}
|
|
282
336
|
export const apiClient = new ApiClient();
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlFLGlDQUFpQztBQUNqQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUF3QixDQUFDO0FBRXpFOztHQUVHO0FBQ0gsU0FBUyxLQUFLLENBQUMsRUFBVTtJQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFjO0lBQ3RDLGlCQUFpQjtJQUNqQixJQUFJLEtBQUssWUFBWSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNsRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxvQ0FBb0M7SUFDcEMsSUFBSSxLQUFLLFlBQVksUUFBUSxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksR0FBRyxFQUFFLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBaUJELE1BQU0sT0FBTyxRQUFTLFNBQVEsS0FBSztJQUl4QjtJQUVBO0lBQ0E7SUFORixJQUFJLENBQVU7SUFFckIsWUFDUyxJQUFZLEVBQ25CLE9BQWUs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QUFDO2dCQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMvRCxNQUFNLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sU0FBUyxJQUFJLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBUEkgQ2xpZW50IGZvciBTZW5kbHkgQ0xJXG4gKiBIYW5kbGVzIGFsbCBIVFRQIHJlcXVlc3RzIHRvIHRoZSBTZW5kbHkgQVBJXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gXCJub2RlOm1vZHVsZVwiO1xuaW1wb3J0IHsgZ2V0QXV0aFRva2VuLCBnZXRDb25maWdWYWx1ZSwgZ2V0RWZmZWN0aXZlVmFsdWUgfSBmcm9tIFwiLi9jb25maWcuanNcIjtcblxuLy8gUmVhZCB2ZXJzaW9uIGZyb20gcGFja2FnZS5qc29uXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuY29uc3QgeyB2ZXJzaW9uIH0gPSByZXF1aXJlKFwiLi4vLi4vcGFja2FnZS5qc29uXCIpIGFzIHsgdmVyc2lvbjogc3RyaW5nIH07XG5cbi8qKlxuICogU2xlZXAgZm9yIGEgZ2l2ZW4gbnVtYmVyIG9mIG1pbGxpc2Vjb25kc1xuICovXG5mdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGFuIGVycm9yIGlzIHJldHJ5YWJsZSAobmV0d29yayBlcnJvcnMgb3IgNXh4IHNlcnZlciBlcnJvcnMpXG4gKi9cbmZ1bmN0aW9uIGlzUmV0cnlhYmxlRXJyb3IoZXJyb3I6IHVua25vd24pOiBib29sZWFuIHtcbiAgLy8gTmV0d29yayBlcnJvcnNcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yICYmIGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoXCJmZXRjaFwiKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8vIFNlcnZlciBlcnJvcnMgKDV4eCkgYXJlIHJldHJ5YWJsZVxuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBcGlFcnJvciAmJiBlcnJvci5zdGF0dXNDb2RlID49IDUwMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZTxUPiB7XG4gIGRhdGE/OiBUO1xuICBlcnJvcj86IHtcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYXRlTGltaXRJbmZvIHtcbiAgbGltaXQ6IG51bWJlcjtcbiAgcmVtYWluaW5nOiBudW1iZXI7XG4gIHJlc2V0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBBcGlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIGhpbnQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvZGU6IHN0cmluZyxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcHVibGljIHN0YXR1c0NvZGU6IG51bWJlcixcbiAgICBwdWJsaWMgZGV0YWlscz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIGhpbnQ/OiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9IFwiQXBpRXJyb3JcIjtcbiAgICB0aGlzLmhpbnQgPSBoaW50O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvbkVycm9yIGV4dGVuZHMgQXBpRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcgPSBcIkF1dGhlbnRpY2F0aW9uIGZhaWxlZFwiLFxuICAgIGhpbnQ6IHN0cmluZyA9IFwiUnVuICdzZW5kbHkgbG9naW4nIHRvIGF1dGhlbnRpY2F0ZSwgb3IgY2hlY2sgeW91ciBBUEkga2V5IHdpdGggJ3NlbmRseSBjb25maWcgc2hvdydcIixcbiAgKSB7XG4gICAgc3VwZXIoXCJhdXRoZW50aWNhdGlvbl9lcnJvclwiLCBtZXNzYWdlLCA0MDEsIHVuZGVmaW5lZCwgaGludCk7XG4gICAgdGhpcy5uYW1lID0gXCJBdXRoZW50aWNhdGlvbkVycm9yXCI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwaUtleVJlcXVpcmVkRXJyb3IgZXh0ZW5kcyBBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9IFwiQVBJIGtleSByZXF1aXJlZCBmb3IgdGhpcyBvcGVyYXRpb24uXCIsXG4gICAgcHVibGljIGhpbnQ6IHN0cmluZyA9IFwiU2V0IFNFTkRMWV9BUElfS0VZIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIGNyZWF0ZSBhIGtleSB3aXRoOiBzZW5kbHkga2V5cyBjcmVhdGUgLS10eXBlIHRlc3RcIixcbiAgKSB7XG4gICAgc3VwZXIoXCJhcGlfa2V5X3JlcXVpcmVkXCIsIG1lc3NhZ2UsIDQwMSk7XG4gICAgdGhpcy5uYW1lID0gXCJBcGlLZXlSZXF1aXJlZEVycm9yXCI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJhdGVMaW1pdEVycm9yIGV4dGVuZHMgQXBpRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmV0cnlBZnRlcjogbnVtYmVyLFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9IFwiUmF0ZSBsaW1pdCBleGNlZWRlZFwiLFxuICApIHtcbiAgICBjb25zdCBoaW50ID0gYFdhaXQgJHtyZXRyeUFmdGVyfSBzZWNvbmRzIGJlZm9yZSByZXRyeWluZywgb3IgdXBncmFkZSB5b3VyIHBsYW4gZm9yIGhpZ2hlciBsaW1pdHNgO1xuICAgIHN1cGVyKFwicmF0ZV9saW1pdF9leGNlZWRlZFwiLCBtZXNzYWdlLCA0MjksIHVuZGVmaW5lZCwgaGludCk7XG4gICAgdGhpcy5uYW1lID0gXCJSYXRlTGltaXRFcnJvclwiO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnN1ZmZpY2llbnRDcmVkaXRzRXJyb3IgZXh0ZW5kcyBBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IFwiSW5zdWZmaWNpZW50IGNyZWRpdHNcIikge1xuICAgIGNvbnN0IGhpbnQgPVxuICAgICAgXCJDaGVjayB5b3VyIGJhbGFuY2Ugd2l0aCAnc2VuZGx5IGNyZWRpdHMnLCBvciBhZGQgY3JlZGl0cyBhdCBodHRwczovL3NlbmRseS5saXZlL2Rhc2hib2FyZC9iaWxsaW5nXCI7XG4gICAgc3VwZXIoXCJpbnN1ZmZpY2llbnRfY3JlZGl0c1wiLCBtZXNzYWdlLCA0MDIsIHVuZGVmaW5lZCwgaGludCk7XG4gICAgdGhpcy5uYW1lID0gXCJJbnN1ZmZpY2llbnRDcmVkaXRzRXJyb3JcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTm90Rm91bmRFcnJvciBleHRlbmRzIEFwaUVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nID0gXCJSZXNvdXJjZSBub3QgZm91bmRcIixcbiAgICBoaW50OiBzdHJpbmcgPSBcIlZlcmlmeSB0aGUgSUQgaXMgY29ycmVjdCwgb3IgdXNlIGEgbGlzdCBjb21tYW5kIHRvIHNlZSBhdmFpbGFibGUgcmVzb3VyY2VzXCIsXG4gICkge1xuICAgIHN1cGVyKFwibm90X2ZvdW5kXCIsIG1lc3NhZ2UsIDQwNCwgdW5kZWZpbmVkLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIk5vdEZvdW5kRXJyb3JcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgQXBpRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcgPSBcIlZhbGlkYXRpb24gZmFpbGVkXCIsXG4gICAgZGV0YWlscz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICApIHtcbiAgICBjb25zdCBoaW50ID0gXCJDaGVjayB0aGUgY29tbWFuZCBoZWxwIHdpdGggLS1oZWxwIGZvciB2YWxpZCBvcHRpb25zIGFuZCBmb3JtYXRzXCI7XG4gICAgc3VwZXIoXCJ2YWxpZGF0aW9uX2Vycm9yXCIsIG1lc3NhZ2UsIDQwMCwgZGV0YWlscywgaGludCk7XG4gICAgdGhpcy5uYW1lID0gXCJWYWxpZGF0aW9uRXJyb3JcIjtcbiAgfVxufVxuXG5jbGFzcyBBcGlDbGllbnQge1xuICBwcml2YXRlIHJhdGVMaW1pdEluZm8/OiBSYXRlTGltaXRJbmZvO1xuXG4gIHByaXZhdGUgZ2V0QmFzZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRDb25maWdWYWx1ZShcImJhc2VVcmxcIikgfHwgXCJodHRwczovL3NlbmRseS5saXZlXCI7XG4gIH1cblxuICBwcml2YXRlIGdldEhlYWRlcnMocmVxdWlyZUF1dGg6IGJvb2xlYW4gPSB0cnVlKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgIFwiVXNlci1BZ2VudFwiOiBgQHNlbmRseS9jbGkvJHt2ZXJzaW9ufWAsXG4gICAgfTtcblxuICAgIGlmIChyZXF1aXJlQXV0aCkge1xuICAgICAgY29uc3QgdG9rZW4gPSBnZXRBdXRoVG9rZW4oKTtcbiAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoKTtcbiAgICAgIH1cbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJlYXJlciAke3Rva2VufWA7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JnSWQgPSBnZXRFZmZlY3RpdmVWYWx1ZShcImN1cnJlbnRPcmdJZFwiKTtcbiAgICBpZiAob3JnSWQpIHtcbiAgICAgIGhlYWRlcnNbXCJYLU9yZ2FuaXphdGlvbi1JZFwiXSA9IG9yZ0lkO1xuICAgIH1cblxuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgYXN5bmMgcmVxdWVzdDxUPihcbiAgICBtZXRob2Q6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgYm9keT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgcXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkPjtcbiAgICAgIHJlcXVpcmVBdXRoPzogYm9vbGVhbjtcbiAgICB9ID0ge30sXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHsgYm9keSwgcXVlcnksIHJlcXVpcmVBdXRoID0gdHJ1ZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBtYXhSZXRyaWVzID0gZ2V0RWZmZWN0aXZlVmFsdWUoXCJtYXhSZXRyaWVzXCIpO1xuICAgIGNvbnN0IHRpbWVvdXQgPSBnZXRFZmZlY3RpdmVWYWx1ZShcInRpbWVvdXRcIik7XG5cbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGAke3RoaXMuZ2V0QmFzZVVybCgpfSR7cGF0aH1gKTtcbiAgICBpZiAocXVlcnkpIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHF1ZXJ5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgbGFzdEVycm9yOiBFcnJvciB8IHVuZGVmaW5lZDtcblxuICAgIGZvciAobGV0IGF0dGVtcHQgPSAwOyBhdHRlbXB0IDw9IG1heFJldHJpZXM7IGF0dGVtcHQrKykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiBjb250cm9sbGVyLmFib3J0KCksIHRpbWVvdXQpO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLnRvU3RyaW5nKCksIHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKHJlcXVpcmVBdXRoKSxcbiAgICAgICAgICBib2R5OiBib2R5ID8gSlNPTi5zdHJpbmdpZnkoYm9keSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG5cbiAgICAgICAgLy8gVXBkYXRlIHJhdGUgbGltaXQgaW5mb1xuICAgICAgICB0aGlzLnVwZGF0ZVJhdGVMaW1pdEluZm8ocmVzcG9uc2UuaGVhZGVycyk7XG5cbiAgICAgICAgLy8gUGFyc2UgcmVzcG9uc2VcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKS5jYXRjaCgoKSA9PiAoe30pKTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihyZXNwb25zZS5zdGF0dXMsIGRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGEgYXMgVDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxhc3RFcnJvciA9IGVycm9yIGFzIEVycm9yO1xuXG4gICAgICAgIC8vIERvbid0IHJldHJ5IG5vbi1yZXRyeWFibGUgZXJyb3JzICg0eHggY2xpZW50IGVycm9ycylcbiAgICAgICAgaWYgKCFpc1JldHJ5YWJsZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRG9uJ3QgcmV0cnkgb24gbGFzdCBhdHRlbXB0XG4gICAgICAgIGlmIChhdHRlbXB0ID09PSBtYXhSZXRyaWVzKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFeHBvbmVudGlhbCBiYWNrb2ZmOiAxcywgMnMsIDRzLCBldGMuXG4gICAgICAgIGNvbnN0IGJhY2tvZmZNcyA9IE1hdGgubWluKDEwMDAgKiBNYXRoLnBvdygyLCBhdHRlbXB0KSwgMTAwMDApO1xuICAgICAgICBhd2FpdCBzbGVlcChiYWNrb2ZmTXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNob3VsZCBuZXZlciByZWFjaCBoZXJlLCBidXQgVHlwZVNjcmlwdCBuZWVkcyB0aGlzXG4gICAgdGhyb3cgbGFzdEVycm9yIHx8IG5ldyBFcnJvcihcIlJlcXVlc3QgZmFpbGVkXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSYXRlTGltaXRJbmZvKGhlYWRlcnM6IEhlYWRlcnMpOiB2b2lkIHtcbiAgICBjb25zdCBsaW1pdCA9IGhlYWRlcnMuZ2V0KFwiWC1SYXRlTGltaXQtTGltaXRcIik7XG4gICAgY29uc3QgcmVtYWluaW5nID0gaGVhZGVycy5nZXQoXCJYLVJhdGVMaW1pdC1SZW1haW5pbmdcIik7XG4gICAgY29uc3QgcmVzZXQgPSBoZWFkZXJzLmdldChcIlgtUmF0ZUxpbWl0LVJlc2V0XCIpO1xuXG4gICAgaWYgKGxpbWl0ICYmIHJlbWFpbmluZyAmJiByZXNldCkge1xuICAgICAgdGhpcy5yYXRlTGltaXRJbmZvID0ge1xuICAgICAgICBsaW1pdDogcGFyc2VJbnQobGltaXQsIDEwKSxcbiAgICAgICAgcmVtYWluaW5nOiBwYXJzZUludChyZW1haW5pbmcsIDEwKSxcbiAgICAgICAgcmVzZXQ6IHBhcnNlSW50KHJlc2V0LCAxMCksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3Ioc3RhdHVzQ29kZTogbnVtYmVyLCBkYXRhOiBhbnkpOiBuZXZlciB7XG4gICAgY29uc3QgZXJyb3IgPSBkYXRhPy5lcnJvciB8fCBcInVua25vd25fZXJyb3JcIjtcbiAgICBjb25zdCBtZXNzYWdlID0gZGF0YT8ubWVzc2FnZSB8fCBgSFRUUCAke3N0YXR1c0NvZGV9YDtcbiAgICBjb25zdCBkZXRhaWxzID0gZGF0YT8uZGV0YWlscztcblxuICAgIHN3aXRjaCAoc3RhdHVzQ29kZSkge1xuICAgICAgY2FzZSA0MDE6XG4gICAgICBjYXNlIDQwMzpcbiAgICAgICAgLy8gRGV0ZWN0IGlmIHRoaXMgaXMgYW4gQVBJIGtleSByZXF1aXJlZCBlcnJvciB2cyBnZW5lcmFsIGF1dGggZXJyb3JcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGVycm9yID09PSBcImludmFsaWRfYXBpX2tleVwiIHx8XG4gICAgICAgICAgZXJyb3IgPT09IFwiYXBpX2tleV9yZXF1aXJlZFwiIHx8XG4gICAgICAgICAgbWVzc2FnZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImFwaSBrZXlcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEFwaUtleVJlcXVpcmVkRXJyb3IoXG4gICAgICAgICAgICBcIkFQSSBrZXkgcmVxdWlyZWQgZm9yIHNlbmRpbmcgbWVzc2FnZXNcIixcbiAgICAgICAgICAgIFwiU2V0IFNFTkRMWV9BUElfS0VZIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIGNyZWF0ZSBhIGtleSB3aXRoOlxcbiAgc2VuZGx5IGtleXMgY3JlYXRlIC0tdHlwZSB0ZXN0XCIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcihtZXNzYWdlKTtcbiAgICAgIGNhc2UgNDAwOlxuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKG1lc3NhZ2UsIGRldGFpbHMpO1xuICAgICAgY2FzZSA0MDI6XG4gICAgICAgIHRocm93IG5ldyBJbnN1ZmZpY2llbnRDcmVkaXRzRXJyb3IobWVzc2FnZSk7XG4gICAgICBjYXNlIDQwNDpcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICBjYXNlIDQyOTpcbiAgICAgICAgY29uc3QgcmV0cnlBZnRlciA9IGRhdGE/LnJldHJ5QWZ0ZXIgfHwgNjA7XG4gICAgICAgIHRocm93IG5ldyBSYXRlTGltaXRFcnJvcihyZXRyeUFmdGVyLCBtZXNzYWdlKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnN0IGRlZmF1bHRIaW50ID1cbiAgICAgICAgICBzdGF0dXNDb2RlID49IDUwMFxuICAgICAgICAgICAgPyBcIlRoaXMgaXMgYSBzZXJ2ZXIgZXJyb3IuIFRyeSBhZ2FpbiBsYXRlciBvciBjaGVjayBodHRwczovL3N0YXR1cy5zZW5kbHkubGl2ZVwiXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgdGhyb3cgbmV3IEFwaUVycm9yKGVycm9yLCBtZXNzYWdlLCBzdGF0dXNDb2RlLCBkZXRhaWxzLCBkZWZhdWx0SGludCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmF0ZUxpbWl0SW5mbygpOiBSYXRlTGltaXRJbmZvIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yYXRlTGltaXRJbmZvO1xuICB9XG5cbiAgLy8gQ29udmVuaWVuY2UgbWV0aG9kc1xuICBhc3luYyBnZXQ8VD4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHF1ZXJ5PzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZD4sXG4gICAgcmVxdWlyZUF1dGg6IGJvb2xlYW4gPSB0cnVlLFxuICApOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KFwiR0VUXCIsIHBhdGgsIHsgcXVlcnksIHJlcXVpcmVBdXRoIH0pO1xuICB9XG5cbiAgYXN5bmMgcG9zdDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYm9keT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIHJlcXVpcmVBdXRoOiBib29sZWFuID0gdHJ1ZSxcbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPihcIlBPU1RcIiwgcGF0aCwgeyBib2R5LCByZXF1aXJlQXV0aCB9KTtcbiAgfVxuXG4gIGFzeW5jIHBhdGNoPFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBib2R5PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgcmVxdWlyZUF1dGg6IGJvb2xlYW4gPSB0cnVlLFxuICApOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KFwiUEFUQ0hcIiwgcGF0aCwgeyBib2R5LCByZXF1aXJlQXV0aCB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZTxUPihwYXRoOiBzdHJpbmcsIHJlcXVpcmVBdXRoOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oXCJERUxFVEVcIiwgcGF0aCwgeyByZXF1aXJlQXV0aCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWQgYSBmaWxlIHVzaW5nIG11bHRpcGFydC9mb3JtLWRhdGFcbiAgICogVXNlZCBmb3IgYmF0Y2ggQ1NWIHVwbG9hZHMgdG8gU3VwYWJhc2Ugc3RvcmFnZVxuICAgKi9cbiAgYXN5bmMgdXBsb2FkRmlsZTxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgZmlsZToge1xuICAgICAgYnVmZmVyOiBCdWZmZXI7XG4gICAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgICAgbWltZXR5cGU/OiBzdHJpbmc7XG4gICAgfSxcbiAgICByZXF1aXJlQXV0aDogYm9vbGVhbiA9IHRydWUsXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IG1heFJldHJpZXMgPSBnZXRFZmZlY3RpdmVWYWx1ZShcIm1heFJldHJpZXNcIik7XG4gICAgY29uc3QgdGltZW91dCA9IGdldEVmZmVjdGl2ZVZhbHVlKFwidGltZW91dFwiKTtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhc2VVcmwoKX0ke3BhdGh9YDtcblxuICAgIC8vIEJ1aWxkIG11bHRpcGFydCBmb3JtIGRhdGEgbWFudWFsbHkgKE5vZGUuanMgY29tcGF0aWJsZSlcbiAgICBjb25zdCBib3VuZGFyeSA9IGAtLS0tRm9ybUJvdW5kYXJ5JHtEYXRlLm5vdygpfSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpfWA7XG4gICAgY29uc3QgbWltZXR5cGUgPSBmaWxlLm1pbWV0eXBlIHx8IFwidGV4dC9jc3ZcIjtcblxuICAgIGNvbnN0IGhlYWRlciA9IEJ1ZmZlci5mcm9tKFxuICAgICAgYC0tJHtib3VuZGFyeX1cXHJcXG5gICtcbiAgICAgICAgYENvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT1cImZpbGVcIjsgZmlsZW5hbWU9XCIke2ZpbGUuZmlsZW5hbWV9XCJcXHJcXG5gICtcbiAgICAgICAgYENvbnRlbnQtVHlwZTogJHttaW1ldHlwZX1cXHJcXG5cXHJcXG5gLFxuICAgICk7XG4gICAgY29uc3QgZm9vdGVyID0gQnVmZmVyLmZyb20oYFxcclxcbi0tJHtib3VuZGFyeX0tLVxcclxcbmApO1xuICAgIGNvbnN0IGJvZHkgPSBCdWZmZXIuY29uY2F0KFtoZWFkZXIsIGZpbGUuYnVmZmVyLCBmb290ZXJdKTtcblxuICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBgbXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9JHtib3VuZGFyeX1gLFxuICAgICAgQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgIFwiVXNlci1BZ2VudFwiOiBgQHNlbmRseS9jbGkvJHt2ZXJzaW9ufWAsXG4gICAgfTtcblxuICAgIGlmIChyZXF1aXJlQXV0aCkge1xuICAgICAgY29uc3QgdG9rZW4gPSBnZXRBdXRoVG9rZW4oKTtcbiAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoKTtcbiAgICAgIH1cbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJlYXJlciAke3Rva2VufWA7XG4gICAgfVxuXG4gICAgbGV0IGxhc3RFcnJvcjogRXJyb3IgfCB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGxldCBhdHRlbXB0ID0gMDsgYXR0ZW1wdCA8PSBtYXhSZXRyaWVzOyBhdHRlbXB0KyspIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCB0aW1lb3V0KTtcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICBib2R5LFxuICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlUmF0ZUxpbWl0SW5mbyhyZXNwb25zZS5oZWFkZXJzKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKS5jYXRjaCgoKSA9PiAoe30pKTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihyZXNwb25zZS5zdGF0dXMsIGRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGEgYXMgVDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxhc3RFcnJvciA9IGVycm9yIGFzIEVycm9yO1xuXG4gICAgICAgIGlmICghaXNSZXRyeWFibGVFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhdHRlbXB0ID09PSBtYXhSZXRyaWVzKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBiYWNrb2ZmTXMgPSBNYXRoLm1pbigxMDAwICogTWF0aC5wb3coMiwgYXR0ZW1wdCksIDEwMDAwKTtcbiAgICAgICAgYXdhaXQgc2xlZXAoYmFja29mZk1zKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBsYXN0RXJyb3IgfHwgbmV3IEVycm9yKFwiVXBsb2FkIGZhaWxlZFwiKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgYXBpQ2xpZW50ID0gbmV3IEFwaUNsaWVudCgpO1xuIl19
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuSCxpQ0FBaUM7QUFDakMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBd0IsQ0FBQztBQUV6RTs7R0FFRztBQUNILFNBQVMsS0FBSyxDQUFDLEVBQVU7SUFDdkIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsS0FBYztJQUN0QyxpQkFBaUI7SUFDakIsSUFBSSxLQUFLLFlBQVksU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0Qsb0NBQW9DO0lBQ3BDLElBQUksS0FBSyxZQUFZLFFBQVEsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQWlCRCxNQUFNLE9BQU8sUUFBUyxTQUFRLEtBQUs7SUFJeEI7SUFFQTtJQUNBO0lBTkYsSUFBSSxDQUFVO0lBRXJC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RUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDL0QsTUFBTSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFNBQVMsSUFBSSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQVBJIENsaWVudCBmb3IgU2VuZGx5IENMSVxuICogSGFuZGxlcyBhbGwgSFRUUCByZXF1ZXN0cyB0byB0aGUgU2VuZGx5IEFQSVxuICovXG5cbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCB7IGdldEF1dGhUb2tlbiwgZ2V0U3RvcmVkQWNjZXNzVG9rZW4sIGdldENvbmZpZ1ZhbHVlLCBnZXRFZmZlY3RpdmVWYWx1ZSwgc2V0QXV0aFRva2VucyB9IGZyb20gXCIuL2NvbmZpZy5qc1wiO1xuXG4vLyBSZWFkIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb25cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5jb25zdCB7IHZlcnNpb24gfSA9IHJlcXVpcmUoXCIuLi8uLi9wYWNrYWdlLmpzb25cIikgYXMgeyB2ZXJzaW9uOiBzdHJpbmcgfTtcblxuLyoqXG4gKiBTbGVlcCBmb3IgYSBnaXZlbiBudW1iZXIgb2YgbWlsbGlzZWNvbmRzXG4gKi9cbmZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gZXJyb3IgaXMgcmV0cnlhYmxlIChuZXR3b3JrIGVycm9ycyBvciA1eHggc2VydmVyIGVycm9ycylcbiAqL1xuZnVuY3Rpb24gaXNSZXRyeWFibGVFcnJvcihlcnJvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICAvLyBOZXR3b3JrIGVycm9yc1xuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiYgZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcImZldGNoXCIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gU2VydmVyIGVycm9ycyAoNXh4KSBhcmUgcmV0cnlhYmxlXG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEFwaUVycm9yICYmIGVycm9yLnN0YXR1c0NvZGUgPj0gNTAwKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJlc3BvbnNlPFQ+IHtcbiAgZGF0YT86IFQ7XG4gIGVycm9yPzoge1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgZGV0YWlscz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhdGVMaW1pdEluZm8ge1xuICBsaW1pdDogbnVtYmVyO1xuICByZW1haW5pbmc6IG51bWJlcjtcbiAgcmVzZXQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEFwaUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwdWJsaWMgaGludD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29kZTogc3RyaW5nLFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgc3RhdHVzQ29kZTogbnVtYmVyLFxuICAgIHB1YmxpYyBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgaGludD86IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gXCJBcGlFcnJvclwiO1xuICAgIHRoaXMuaGludCA9IGhpbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRXJyb3IgZXh0ZW5kcyBBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9IFwiQXV0aGVudGljYXRpb24gZmFpbGVkXCIsXG4gICAgaGludDogc3RyaW5nID0gXCJSdW4gJ3NlbmRseSBsb2dpbicgdG8gYXV0aGVudGljYXRlLCBvciBjaGVjayB5b3VyIEFQSSBrZXkgd2l0aCAnc2VuZGx5IGNvbmZpZyBzaG93J1wiLFxuICApIHtcbiAgICBzdXBlcihcImF1dGhlbnRpY2F0aW9uX2Vycm9yXCIsIG1lc3NhZ2UsIDQwMSwgdW5kZWZpbmVkLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIkF1dGhlbnRpY2F0aW9uRXJyb3JcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXBpS2V5UmVxdWlyZWRFcnJvciBleHRlbmRzIEFwaUVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nID0gXCJBUEkga2V5IHJlcXVpcmVkIGZvciB0aGlzIG9wZXJhdGlvbi5cIixcbiAgICBwdWJsaWMgaGludDogc3RyaW5nID0gXCJTZXQgU0VORExZX0FQSV9LRVkgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgY3JlYXRlIGEga2V5IHdpdGg6IHNlbmRseSBrZXlzIGNyZWF0ZSAtLXR5cGUgdGVzdFwiLFxuICApIHtcbiAgICBzdXBlcihcImFwaV9rZXlfcmVxdWlyZWRcIiwgbWVzc2FnZSwgNDAxKTtcbiAgICB0aGlzLm5hbWUgPSBcIkFwaUtleVJlcXVpcmVkRXJyb3JcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmF0ZUxpbWl0RXJyb3IgZXh0ZW5kcyBBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZXRyeUFmdGVyOiBudW1iZXIsXG4gICAgbWVzc2FnZTogc3RyaW5nID0gXCJSYXRlIGxpbWl0IGV4Y2VlZGVkXCIsXG4gICkge1xuICAgIGNvbnN0IGhpbnQgPSBgV2FpdCAke3JldHJ5QWZ0ZXJ9IHNlY29uZHMgYmVmb3JlIHJldHJ5aW5nLCBvciB1cGdyYWRlIHlvdXIgcGxhbiBmb3IgaGlnaGVyIGxpbWl0c2A7XG4gICAgc3VwZXIoXCJyYXRlX2xpbWl0X2V4Y2VlZGVkXCIsIG1lc3NhZ2UsIDQyOSwgdW5kZWZpbmVkLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIlJhdGVMaW1pdEVycm9yXCI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluc3VmZmljaWVudENyZWRpdHNFcnJvciBleHRlbmRzIEFwaUVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gXCJJbnN1ZmZpY2llbnQgY3JlZGl0c1wiKSB7XG4gICAgY29uc3QgaGludCA9XG4gICAgICBcIkNoZWNrIHlvdXIgYmFsYW5jZSB3aXRoICdzZW5kbHkgY3JlZGl0cycsIG9yIGFkZCBjcmVkaXRzIGF0IGh0dHBzOi8vc2VuZGx5LmxpdmUvZGFzaGJvYXJkL2JpbGxpbmdcIjtcbiAgICBzdXBlcihcImluc3VmZmljaWVudF9jcmVkaXRzXCIsIG1lc3NhZ2UsIDQwMiwgdW5kZWZpbmVkLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIkluc3VmZmljaWVudENyZWRpdHNFcnJvclwiO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb3RGb3VuZEVycm9yIGV4dGVuZHMgQXBpRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcgPSBcIlJlc291cmNlIG5vdCBmb3VuZFwiLFxuICAgIGhpbnQ6IHN0cmluZyA9IFwiVmVyaWZ5IHRoZSBJRCBpcyBjb3JyZWN0LCBvciB1c2UgYSBsaXN0IGNvbW1hbmQgdG8gc2VlIGF2YWlsYWJsZSByZXNvdXJjZXNcIixcbiAgKSB7XG4gICAgc3VwZXIoXCJub3RfZm91bmRcIiwgbWVzc2FnZSwgNDA0LCB1bmRlZmluZWQsIGhpbnQpO1xuICAgIHRoaXMubmFtZSA9IFwiTm90Rm91bmRFcnJvclwiO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9IFwiVmFsaWRhdGlvbiBmYWlsZWRcIixcbiAgICBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICkge1xuICAgIGNvbnN0IGhpbnQgPSBcIkNoZWNrIHRoZSBjb21tYW5kIGhlbHAgd2l0aCAtLWhlbHAgZm9yIHZhbGlkIG9wdGlvbnMgYW5kIGZvcm1hdHNcIjtcbiAgICBzdXBlcihcInZhbGlkYXRpb25fZXJyb3JcIiwgbWVzc2FnZSwgNDAwLCBkZXRhaWxzLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIlZhbGlkYXRpb25FcnJvclwiO1xuICB9XG59XG5cbmNsYXNzIEFwaUNsaWVudCB7XG4gIHByaXZhdGUgcmF0ZUxpbWl0SW5mbz86IFJhdGVMaW1pdEluZm87XG4gIHByaXZhdGUgcmVmcmVzaGluZzogUHJvbWlzZTxib29sZWFuPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZ2V0QmFzZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRDb25maWdWYWx1ZShcImJhc2VVcmxcIikgfHwgXCJodHRwczovL3NlbmRseS5saXZlXCI7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVuc3VyZUF1dGgoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBsZXQgdG9rZW4gPSBnZXRBdXRoVG9rZW4oKTtcbiAgICBpZiAodG9rZW4pIHJldHVybiB0b2tlbjtcblxuICAgIGNvbnN0IHN0b3JlZCA9IGdldFN0b3JlZEFjY2Vzc1Rva2VuKCk7XG4gICAgaWYgKHN0b3JlZD8uc3RhcnRzV2l0aChcImNsaV9cIikpIHtcbiAgICAgIGNvbnN0IHJlZnJlc2hlZCA9IGF3YWl0IHRoaXMucmVmcmVzaFRva2VucygpO1xuICAgICAgaWYgKHJlZnJlc2hlZCkge1xuICAgICAgICB0b2tlbiA9IGdldEF1dGhUb2tlbigpO1xuICAgICAgICBpZiAodG9rZW4pIHJldHVybiB0b2tlbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRIZWFkZXJzKHJlcXVpcmVBdXRoOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICBcIlVzZXItQWdlbnRcIjogYEBzZW5kbHkvY2xpLyR7dmVyc2lvbn1gLFxuICAgIH07XG5cbiAgICBpZiAocmVxdWlyZUF1dGgpIHtcbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJlYXJlciAke2F3YWl0IHRoaXMuZW5zdXJlQXV0aCgpfWA7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JnSWQgPSBnZXRFZmZlY3RpdmVWYWx1ZShcImN1cnJlbnRPcmdJZFwiKTtcbiAgICBpZiAob3JnSWQpIHtcbiAgICAgIGhlYWRlcnNbXCJYLU9yZ2FuaXphdGlvbi1JZFwiXSA9IG9yZ0lkO1xuICAgIH1cblxuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWZyZXNoVG9rZW5zKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnJlZnJlc2hpbmcpIHJldHVybiB0aGlzLnJlZnJlc2hpbmc7XG5cbiAgICB0aGlzLnJlZnJlc2hpbmcgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmVkID0gZ2V0U3RvcmVkQWNjZXNzVG9rZW4oKTtcbiAgICAgIGlmICghc3RvcmVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7dGhpcy5nZXRCYXNlVXJsKCl9L2FwaS9jbGkvYXV0aC9yZWZyZXNoYCwge1xuICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICBcIlVzZXItQWdlbnRcIjogYEBzZW5kbHkvY2xpLyR7dmVyc2lvbn1gLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBhY2Nlc3NUb2tlbjogc3RvcmVkIH0pLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyB7XG4gICAgICAgICAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgICAgICAgICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgICAgICAgICBleHBpcmVzSW46IG51bWJlcjtcbiAgICAgICAgICB1c2VySWQ6IHN0cmluZztcbiAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNldEF1dGhUb2tlbnMoXG4gICAgICAgICAgZGF0YS5hY2Nlc3NUb2tlbixcbiAgICAgICAgICBkYXRhLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICBkYXRhLmV4cGlyZXNJbixcbiAgICAgICAgICBkYXRhLnVzZXJJZCxcbiAgICAgICAgICBkYXRhLmVtYWlsLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlZnJlc2hpbmc7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMucmVmcmVzaGluZyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVxdWVzdDxUPihcbiAgICBtZXRob2Q6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgYm9keT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgcXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkPjtcbiAgICAgIHJlcXVpcmVBdXRoPzogYm9vbGVhbjtcbiAgICB9ID0ge30sXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHsgYm9keSwgcXVlcnksIHJlcXVpcmVBdXRoID0gdHJ1ZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBtYXhSZXRyaWVzID0gZ2V0RWZmZWN0aXZlVmFsdWUoXCJtYXhSZXRyaWVzXCIpO1xuICAgIGNvbnN0IHRpbWVvdXQgPSBnZXRFZmZlY3RpdmVWYWx1ZShcInRpbWVvdXRcIik7XG5cbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGAke3RoaXMuZ2V0QmFzZVVybCgpfSR7cGF0aH1gKTtcbiAgICBpZiAocXVlcnkpIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHF1ZXJ5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgbGFzdEVycm9yOiBFcnJvciB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZGlkUmVmcmVzaCA9IGZhbHNlO1xuXG4gICAgZm9yIChsZXQgYXR0ZW1wdCA9IDA7IGF0dGVtcHQgPD0gbWF4UmV0cmllczsgYXR0ZW1wdCsrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSwgdGltZW91dCk7XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwudG9TdHJpbmcoKSwge1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBoZWFkZXJzOiBhd2FpdCB0aGlzLmdldEhlYWRlcnMocmVxdWlyZUF1dGgpLFxuICAgICAgICAgIGJvZHk6IGJvZHkgPyBKU09OLnN0cmluZ2lmeShib2R5KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9KTtcblxuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVJhdGVMaW1pdEluZm8ocmVzcG9uc2UuaGVhZGVycyk7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKS5jYXRjaCgoKSA9PiAoe30pKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEgJiYgcmVxdWlyZUF1dGggJiYgIWRpZFJlZnJlc2gpIHtcbiAgICAgICAgICBkaWRSZWZyZXNoID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCByZWZyZXNoZWQgPSBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbnMoKTtcbiAgICAgICAgICBpZiAocmVmcmVzaGVkKSB7XG4gICAgICAgICAgICBhdHRlbXB0LS07XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihyZXNwb25zZS5zdGF0dXMsIGRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGEgYXMgVDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxhc3RFcnJvciA9IGVycm9yIGFzIEVycm9yO1xuXG4gICAgICAgIGlmICghaXNSZXRyeWFibGVFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhdHRlbXB0ID09PSBtYXhSZXRyaWVzKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBiYWNrb2ZmTXMgPSBNYXRoLm1pbigxMDAwICogTWF0aC5wb3coMiwgYXR0ZW1wdCksIDEwMDAwKTtcbiAgICAgICAgYXdhaXQgc2xlZXAoYmFja29mZk1zKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBsYXN0RXJyb3IgfHwgbmV3IEVycm9yKFwiUmVxdWVzdCBmYWlsZWRcIik7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJhdGVMaW1pdEluZm8oaGVhZGVyczogSGVhZGVycyk6IHZvaWQge1xuICAgIGNvbnN0IGxpbWl0ID0gaGVhZGVycy5nZXQoXCJYLVJhdGVMaW1pdC1MaW1pdFwiKTtcbiAgICBjb25zdCByZW1haW5pbmcgPSBoZWFkZXJzLmdldChcIlgtUmF0ZUxpbWl0LVJlbWFpbmluZ1wiKTtcbiAgICBjb25zdCByZXNldCA9IGhlYWRlcnMuZ2V0KFwiWC1SYXRlTGltaXQtUmVzZXRcIik7XG5cbiAgICBpZiAobGltaXQgJiYgcmVtYWluaW5nICYmIHJlc2V0KSB7XG4gICAgICB0aGlzLnJhdGVMaW1pdEluZm8gPSB7XG4gICAgICAgIGxpbWl0OiBwYXJzZUludChsaW1pdCwgMTApLFxuICAgICAgICByZW1haW5pbmc6IHBhcnNlSW50KHJlbWFpbmluZywgMTApLFxuICAgICAgICByZXNldDogcGFyc2VJbnQocmVzZXQsIDEwKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihzdGF0dXNDb2RlOiBudW1iZXIsIGRhdGE6IGFueSk6IG5ldmVyIHtcbiAgICBjb25zdCBlcnJvciA9IGRhdGE/LmVycm9yIHx8IFwidW5rbm93bl9lcnJvclwiO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhPy5tZXNzYWdlIHx8IGBIVFRQICR7c3RhdHVzQ29kZX1gO1xuICAgIGNvbnN0IGRldGFpbHMgPSBkYXRhPy5kZXRhaWxzO1xuXG4gICAgc3dpdGNoIChzdGF0dXNDb2RlKSB7XG4gICAgICBjYXNlIDQwMTpcbiAgICAgIGNhc2UgNDAzOlxuICAgICAgICAvLyBEZXRlY3QgaWYgdGhpcyBpcyBhbiBBUEkga2V5IHJlcXVpcmVkIGVycm9yIHZzIGdlbmVyYWwgYXV0aCBlcnJvclxuICAgICAgICBpZiAoXG4gICAgICAgICAgZXJyb3IgPT09IFwiaW52YWxpZF9hcGlfa2V5XCIgfHxcbiAgICAgICAgICBlcnJvciA9PT0gXCJhcGlfa2V5X3JlcXVpcmVkXCIgfHxcbiAgICAgICAgICBtZXNzYWdlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiYXBpIGtleVwiKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQXBpS2V5UmVxdWlyZWRFcnJvcihcbiAgICAgICAgICAgIFwiQVBJIGtleSByZXF1aXJlZCBmb3Igc2VuZGluZyBtZXNzYWdlc1wiLFxuICAgICAgICAgICAgXCJTZXQgU0VORExZX0FQSV9LRVkgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgY3JlYXRlIGEga2V5IHdpdGg6XFxuICBzZW5kbHkga2V5cyBjcmVhdGUgLS10eXBlIHRlc3RcIixcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKG1lc3NhZ2UpO1xuICAgICAgY2FzZSA0MDA6XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobWVzc2FnZSwgZGV0YWlscyk7XG4gICAgICBjYXNlIDQwMjpcbiAgICAgICAgdGhyb3cgbmV3IEluc3VmZmljaWVudENyZWRpdHNFcnJvcihtZXNzYWdlKTtcbiAgICAgIGNhc2UgNDA0OlxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgIGNhc2UgNDI5OlxuICAgICAgICBjb25zdCByZXRyeUFmdGVyID0gZGF0YT8ucmV0cnlBZnRlciB8fCA2MDtcbiAgICAgICAgdGhyb3cgbmV3IFJhdGVMaW1pdEVycm9yKHJldHJ5QWZ0ZXIsIG1lc3NhZ2UpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc3QgZGVmYXVsdEhpbnQgPVxuICAgICAgICAgIHN0YXR1c0NvZGUgPj0gNTAwXG4gICAgICAgICAgICA/IFwiVGhpcyBpcyBhIHNlcnZlciBlcnJvci4gVHJ5IGFnYWluIGxhdGVyIG9yIGNoZWNrIGh0dHBzOi8vc3RhdHVzLnNlbmRseS5saXZlXCJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICB0aHJvdyBuZXcgQXBpRXJyb3IoZXJyb3IsIG1lc3NhZ2UsIHN0YXR1c0NvZGUsIGRldGFpbHMsIGRlZmF1bHRIaW50KTtcbiAgICB9XG4gIH1cblxuICBnZXRSYXRlTGltaXRJbmZvKCk6IFJhdGVMaW1pdEluZm8gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJhdGVMaW1pdEluZm87XG4gIH1cblxuICAvLyBDb252ZW5pZW5jZSBtZXRob2RzXG4gIGFzeW5jIGdldDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkPixcbiAgICByZXF1aXJlQXV0aDogYm9vbGVhbiA9IHRydWUsXG4gICk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oXCJHRVRcIiwgcGF0aCwgeyBxdWVyeSwgcmVxdWlyZUF1dGggfSk7XG4gIH1cblxuICBhc3luYyBwb3N0PFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBib2R5PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgcmVxdWlyZUF1dGg6IGJvb2xlYW4gPSB0cnVlLFxuICApOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KFwiUE9TVFwiLCBwYXRoLCB7IGJvZHksIHJlcXVpcmVBdXRoIH0pO1xuICB9XG5cbiAgYXN5bmMgcGF0Y2g8VD4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGJvZHk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICByZXF1aXJlQXV0aDogYm9vbGVhbiA9IHRydWUsXG4gICk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oXCJQQVRDSFwiLCBwYXRoLCB7IGJvZHksIHJlcXVpcmVBdXRoIH0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlPFQ+KHBhdGg6IHN0cmluZywgcmVxdWlyZUF1dGg6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPihcIkRFTEVURVwiLCBwYXRoLCB7IHJlcXVpcmVBdXRoIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBhIGZpbGUgdXNpbmcgbXVsdGlwYXJ0L2Zvcm0tZGF0YVxuICAgKiBVc2VkIGZvciBiYXRjaCBDU1YgdXBsb2FkcyB0byBTdXBhYmFzZSBzdG9yYWdlXG4gICAqL1xuICBhc3luYyB1cGxvYWRGaWxlPFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBmaWxlOiB7XG4gICAgICBidWZmZXI6IEJ1ZmZlcjtcbiAgICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgICBtaW1ldHlwZT86IHN0cmluZztcbiAgICB9LFxuICAgIHJlcXVpcmVBdXRoOiBib29sZWFuID0gdHJ1ZSxcbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgbWF4UmV0cmllcyA9IGdldEVmZmVjdGl2ZVZhbHVlKFwibWF4UmV0cmllc1wiKTtcbiAgICBjb25zdCB0aW1lb3V0ID0gZ2V0RWZmZWN0aXZlVmFsdWUoXCJ0aW1lb3V0XCIpO1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVVybCgpfSR7cGF0aH1gO1xuXG4gICAgLy8gQnVpbGQgbXVsdGlwYXJ0IGZvcm0gZGF0YSBtYW51YWxseSAoTm9kZS5qcyBjb21wYXRpYmxlKVxuICAgIGNvbnN0IGJvdW5kYXJ5ID0gYC0tLS1Gb3JtQm91bmRhcnkke0RhdGUubm93KCl9JHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMil9YDtcbiAgICBjb25zdCBtaW1ldHlwZSA9IGZpbGUubWltZXR5cGUgfHwgXCJ0ZXh0L2NzdlwiO1xuXG4gICAgY29uc3QgaGVhZGVyID0gQnVmZmVyLmZyb20oXG4gICAgICBgLS0ke2JvdW5kYXJ5fVxcclxcbmAgK1xuICAgICAgICBgQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwiZmlsZVwiOyBmaWxlbmFtZT1cIiR7ZmlsZS5maWxlbmFtZX1cIlxcclxcbmAgK1xuICAgICAgICBgQ29udGVudC1UeXBlOiAke21pbWV0eXBlfVxcclxcblxcclxcbmAsXG4gICAgKTtcbiAgICBjb25zdCBmb290ZXIgPSBCdWZmZXIuZnJvbShgXFxyXFxuLS0ke2JvdW5kYXJ5fS0tXFxyXFxuYCk7XG4gICAgY29uc3QgYm9keSA9IEJ1ZmZlci5jb25jYXQoW2hlYWRlciwgZmlsZS5idWZmZXIsIGZvb3Rlcl0pO1xuXG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IGBtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0ke2JvdW5kYXJ5fWAsXG4gICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgXCJVc2VyLUFnZW50XCI6IGBAc2VuZGx5L2NsaS8ke3ZlcnNpb259YCxcbiAgICB9O1xuXG4gICAgaWYgKHJlcXVpcmVBdXRoKSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCZWFyZXIgJHthd2FpdCB0aGlzLmVuc3VyZUF1dGgoKX1gO1xuICAgIH1cblxuICAgIGxldCBsYXN0RXJyb3I6IEVycm9yIHwgdW5kZWZpbmVkO1xuICAgIGxldCBkaWRSZWZyZXNoID0gZmFsc2U7XG5cbiAgICBmb3IgKGxldCBhdHRlbXB0ID0gMDsgYXR0ZW1wdCA8PSBtYXhSZXRyaWVzOyBhdHRlbXB0KyspIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCB0aW1lb3V0KTtcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICBib2R5LFxuICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlUmF0ZUxpbWl0SW5mbyhyZXNwb25zZS5oZWFkZXJzKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKS5jYXRjaCgoKSA9PiAoe30pKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEgJiYgcmVxdWlyZUF1dGggJiYgIWRpZFJlZnJlc2gpIHtcbiAgICAgICAgICBkaWRSZWZyZXNoID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCByZWZyZXNoZWQgPSBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbnMoKTtcbiAgICAgICAgICBpZiAocmVmcmVzaGVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCZWFyZXIgJHtnZXRBdXRoVG9rZW4oKX1gO1xuICAgICAgICAgICAgYXR0ZW1wdC0tO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IocmVzcG9uc2Uuc3RhdHVzLCBkYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRhIGFzIFQ7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsYXN0RXJyb3IgPSBlcnJvciBhcyBFcnJvcjtcblxuICAgICAgICBpZiAoIWlzUmV0cnlhYmxlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXR0ZW1wdCA9PT0gbWF4UmV0cmllcykge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYmFja29mZk1zID0gTWF0aC5taW4oMTAwMCAqIE1hdGgucG93KDIsIGF0dGVtcHQpLCAxMDAwMCk7XG4gICAgICAgIGF3YWl0IHNsZWVwKGJhY2tvZmZNcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbGFzdEVycm9yIHx8IG5ldyBFcnJvcihcIlVwbG9hZCBmYWlsZWRcIik7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGFwaUNsaWVudCA9IG5ldyBBcGlDbGllbnQoKTtcbiJdfQ==
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -52,6 +52,7 @@ export declare function clearConfig(): void;
|
|
|
52
52
|
export declare function clearAuth(): void;
|
|
53
53
|
export declare function isAuthenticated(): boolean;
|
|
54
54
|
export declare function getAuthToken(): string | undefined;
|
|
55
|
+
export declare function getStoredAccessToken(): string | undefined;
|
|
55
56
|
export declare function setApiKey(apiKey: string): void;
|
|
56
57
|
export declare function setAuthTokens(accessToken: string, refreshToken: string, expiresIn: number, userId: string, email: string): void;
|
|
57
58
|
export declare function getConfigPath(): string;
|
package/dist/lib/config.js
CHANGED
|
@@ -250,6 +250,9 @@ export function getAuthToken() {
|
|
|
250
250
|
}
|
|
251
251
|
return undefined;
|
|
252
252
|
}
|
|
253
|
+
export function getStoredAccessToken() {
|
|
254
|
+
return config.get("accessToken") || undefined;
|
|
255
|
+
}
|
|
253
256
|
export function setApiKey(apiKey) {
|
|
254
257
|
// Validate API key format
|
|
255
258
|
if (!/^sk_(test|live)_v1_[a-zA-Z0-9_-]+$/.test(apiKey)) {
|
|
@@ -296,4 +299,4 @@ export function clearCurrentOrg() {
|
|
|
296
299
|
config.delete("currentOrgSlug");
|
|
297
300
|
}
|
|
298
301
|
export { config };
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUE2QnRDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLElBQUk7SUFDbEIsT0FBTyxDQUFDLENBQUMsQ0FDUCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQjtRQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWM7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUTtRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU07UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZUFBZTtJQUM3QixPQUFPLENBQUMsQ0FBQyxDQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZTtRQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUM1QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUVsQyw0Q0FBNEM7QUFD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LENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWE7SUFLM0IsTUFBTSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFDLElBQUksQ0FBQyxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDckIsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7QUFDdEUsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDTEkgQ29uZmlndXJhdGlvbiBNYW5hZ2VtZW50XG4gKiBTdG9yZXMgdXNlciBwcmVmZXJlbmNlcyBhbmQgY3JlZGVudGlhbHMgaW4gfi8uc2VuZGx5L1xuICpcbiAqIEVudmlyb25tZW50IFZhcmlhYmxlcyAodGFrZSBwcmVjZWRlbmNlIG92ZXIgY29uZmlnIGZpbGUpOlxuICogLSBTRU5ETFlfQVBJX0tFWTogQVBJIGtleSBmb3IgYXV0aGVudGljYXRpb25cbiAqIC0gU0VORExZX0JBU0VfVVJMOiBDdXN0b20gQVBJIGVuZHBvaW50XG4gKiAtIFNFTkRMWV9PVVRQVVRfRk9STUFUOiBEZWZhdWx0IG91dHB1dCBmb3JtYXQgKGh1bWFuL2pzb24pXG4gKiAtIFNFTkRMWV9OT19DT0xPUjogRGlzYWJsZSBjb2xvcmVkIG91dHB1dCAoYW55IHZhbHVlKVxuICogLSBTRU5ETFlfVElNRU9VVDogUmVxdWVzdCB0aW1lb3V0IGluIG1zIChkZWZhdWx0OiAzMDAwMClcbiAqIC0gU0VORExZX01BWF9SRVRSSUVTOiBNYXggcmV0cnkgYXR0ZW1wdHMgKGRlZmF1bHQ6IDMpXG4gKiAtIFNFTkRMWV9PUkdfSUQ6IE92ZXJyaWRlIGFjdGl2ZSBvcmdhbml6YXRpb24gSURcbiAqIC0gU0VORExZX0NPTkZJR19LRVk6IEN1c3RvbSBlbmNyeXB0aW9uIGtleSAoZm9yIENJL0NEKVxuICogLSBDSTogQXV0by1kZXRlY3QgQ0kgbW9kZSAoZGlzYWJsZXMgaW50ZXJhY3RpdmUgcHJvbXB0cylcbiAqL1xuXG5pbXBvcnQgQ29uZiBmcm9tIFwiY29uZlwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tIFwibm9kZTpjcnlwdG9cIjtcblxuZXhwb3J0IGludGVyZmFjZSBTZW5kbHlDb25maWcge1xuICAvLyBBdXRoZW50aWNhdGlvblxuICBhcGlLZXk/OiBzdHJpbmc7XG4gIGFjY2Vzc1Rva2VuPzogc3RyaW5nO1xuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XG4gIHRva2VuRXhwaXJlc0F0PzogbnVtYmVyO1xuICB1c2VySWQ/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuXG4gIC8vIEVudmlyb25tZW50XG4gIGVudmlyb25tZW50OiBcInRlc3RcIiB8IFwibGl2ZVwiO1xuICBiYXNlVXJsOiBzdHJpbmc7XG5cbiAgLy8gUHJlZmVyZW5jZXNcbiAgZGVmYXVsdEZvcm1hdDogXCJodW1hblwiIHwgXCJqc29uXCI7XG4gIGNvbG9yRW5hYmxlZDogYm9vbGVhbjtcblxuICAvLyBOZXR3b3JrXG4gIHRpbWVvdXQ6IG51bWJlcjtcbiAgbWF4UmV0cmllczogbnVtYmVyO1xuXG4gIC8vIE9yZ2FuaXphdGlvblxuICBjdXJyZW50T3JnSWQ/OiBzdHJpbmc7XG4gIGN1cnJlbnRPcmdOYW1lPzogc3RyaW5nO1xuICBjdXJyZW50T3JnU2x1Zz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBydW5uaW5nIGluIENJIGVudmlyb25tZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NJKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gISEoXG4gICAgcHJvY2Vzcy5lbnYuQ0kgfHxcbiAgICBwcm9jZXNzLmVudi5DT05USU5VT1VTX0lOVEVHUkFUSU9OIHx8XG4gICAgcHJvY2Vzcy5lbnYuR0lUSFVCX0FDVElPTlMgfHxcbiAgICBwcm9jZXNzLmVudi5HSVRMQUJfQ0kgfHxcbiAgICBwcm9jZXNzLmVudi5DSVJDTEVDSSB8fFxuICAgIHByb2Nlc3MuZW52LlRSQVZJUyB8fFxuICAgIHByb2Nlc3MuZW52LkJVSUxES0lURVxuICApO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGNvbG9yIG91dHB1dCBpcyBkaXNhYmxlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb2xvckRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gISEoXG4gICAgcHJvY2Vzcy5lbnYuU0VORExZX05PX0NPTE9SIHx8XG4gICAgcHJvY2Vzcy5lbnYuTk9fQ09MT1IgfHxcbiAgICBwcm9jZXNzLmVudi5URVJNID09PSBcImR1bWJcIlxuICApO1xufVxuXG5jb25zdCBDT05GSUdfRElSID0gcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgXCIuc2VuZGx5XCIpO1xuY29uc3QgQ09ORklHX0ZJTEUgPSBcImNvbmZpZy5qc29uXCI7XG5cbi8vIE9sZCBkZWZhdWx0IGtleSAtIHVzZWQgZm9yIG1pZ3JhdGlvbiBvbmx5XG5jb25zdCBPTERfREVGQVVMVF9LRVkgPSBcInNlbmRseS1jbGktZGVmYXVsdC1rZXktdjFcIjtcblxuLyoqXG4gKiBEZXJpdmUgYSBtYWNoaW5lLXNwZWNpZmljIGVuY3J5cHRpb24ga2V5LlxuICogVGhpcyBlbnN1cmVzIGVhY2ggaW5zdGFsbGF0aW9uIGhhcyBhIHVuaXF1ZSBrZXkgdGhhdCBjYW4ndCBiZSBlYXNpbHkgZ3Vlc3NlZC5cbiAqXG4gKiBUaGUga2V5IGlzIGRlcml2ZWQgZnJvbSBtYWNoaW5lLXNwZWNpZmljIGlkZW50aWZpZXJzIHRoYXQgYXJlOlxuICogLSBVbmlxdWUgcGVyIG1hY2hpbmVcbiAqIC0gU3RhYmxlIGFjcm9zcyBzZXNzaW9uc1xuICogLSBOb3QgcHVibGljbHkga25vd25cbiAqL1xuZnVuY3Rpb24gZGVyaXZlRW5jcnlwdGlvbktleSgpOiBzdHJpbmcge1xuICBjb25zdCBtYWNoaW5lSWQgPSBbb3MuaG9zdG5hbWUoKSwgb3MudXNlckluZm8oKS51c2VybmFtZSwgb3MuaG9tZWRpcigpXS5qb2luKFxuICAgIFwiOlwiLFxuICApO1xuXG4gIHJldHVybiBjcnlwdG9cbiAgICAuY3JlYXRlSGFzaChcInNoYTI1NlwiKVxuICAgIC51cGRhdGUoYHNlbmRseToke21hY2hpbmVJZH06djJgKVxuICAgIC5kaWdlc3QoXCJoZXhcIik7XG59XG5cbi8qKlxuICogR2V0IHRoZSBlbmNyeXB0aW9uIGtleSB0byB1c2UgZm9yIGNvbmZpZy5cbiAqIFByaW9yaXR5OiBTRU5ETFlfQ09ORklHX0tFWSBlbnYgdmFyID4gbWFjaGluZS1kZXJpdmVkIGtleVxuICovXG5mdW5jdGlvbiBnZXRFbmNyeXB0aW9uS2V5KCk6IHN0cmluZyB7XG4gIC8vIEV4cGxpY2l0IGtleSB0YWtlcyBwcmVjZWRlbmNlIChmb3IgQ0kvQ0QsIHRlc3RpbmcsIGFkdmFuY2VkIHVzZXJzKVxuICBpZiAocHJvY2Vzcy5lbnYuU0VORExZX0NPTkZJR19LRVkpIHtcbiAgICByZXR1cm4gcHJvY2Vzcy5lbnYuU0VORExZX0NPTkZJR19LRVk7XG4gIH1cbiAgcmV0dXJuIGRlcml2ZUVuY3J5cHRpb25LZXkoKTtcbn1cblxuLy8gRW5zdXJlIGNvbmZpZyBkaXJlY3RvcnkgZXhpc3RzIHdpdGggc2VjdXJlIHBlcm1pc3Npb25zXG5pZiAoIWZzLmV4aXN0c1N5bmMoQ09ORklHX0RJUikpIHtcbiAgZnMubWtkaXJTeW5jKENPTkZJR19ESVIsIHsgcmVjdXJzaXZlOiB0cnVlLCBtb2RlOiAwbzcwMCB9KTtcbn1cblxuY29uc3QgREVGQVVMVF9DT05GSUc6IFNlbmRseUNvbmZpZyA9IHtcbiAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICBiYXNlVXJsOiBcImh0dHBzOi8vc2VuZGx5LmxpdmVcIixcbiAgZGVmYXVsdEZvcm1hdDogXCJodW1hblwiLFxuICBjb2xvckVuYWJsZWQ6IHRydWUsXG4gIHRpbWVvdXQ6IDMwMDAwLFxuICBtYXhSZXRyaWVzOiAzLFxufTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGNvbmZpZyB3aXRoIGF1dG9tYXRpYyBtaWdyYXRpb24gZnJvbSBvbGQgZW5jcnlwdGlvbiBrZXkuXG4gKiBUaGlzIGVuc3VyZXMgZXhpc3RpbmcgdXNlcnMgZG9uJ3QgbG9zZSB0aGVpciBjcmVkZW50aWFscy5cbiAqL1xuZnVuY3Rpb24gaW5pdGlhbGl6ZUNvbmZpZygpOiBDb25mPFNlbmRseUNvbmZpZz4ge1xuICBjb25zdCBuZXdLZXkgPSBnZXRFbmNyeXB0aW9uS2V5KCk7XG5cbiAgLy8gVHJ5IHRvIGluaXRpYWxpemUgd2l0aCBuZXcga2V5IGZpcnN0XG4gIHRyeSB7XG4gICAgY29uc3QgbmV3Q29uZmlnID0gbmV3IENvbmY8U2VuZGx5Q29uZmlnPih7XG4gICAgICBwcm9qZWN0TmFtZTogXCJzZW5kbHlcIixcbiAgICAgIGN3ZDogQ09ORklHX0RJUixcbiAgICAgIGNvbmZpZ05hbWU6IFwiY29uZmlnXCIsXG4gICAgICBkZWZhdWx0czogREVGQVVMVF9DT05GSUcsXG4gICAgICBlbmNyeXB0aW9uS2V5OiBuZXdLZXksXG4gICAgfSk7XG5cbiAgICAvLyBUcnkgdG8gcmVhZCBhIHZhbHVlIHRvIHZlcmlmeSBkZWNyeXB0aW9uIHdvcmtzXG4gICAgbmV3Q29uZmlnLmdldChcImVudmlyb25tZW50XCIpO1xuICAgIHJldHVybiBuZXdDb25maWc7XG4gIH0gY2F0Y2gge1xuICAgIC8vIE5ldyBrZXkgZGlkbid0IHdvcmsgLSB0cnkgbWlncmF0aW9uIGZyb20gb2xkIGtleVxuICB9XG5cbiAgLy8gTWlncmF0aW9uOiBUcnkgdG8gcmVhZCB3aXRoIG9sZCBkZWZhdWx0IGtleVxuICB0cnkge1xuICAgIGNvbnN0IG9sZENvbmZpZyA9IG5ldyBDb25mPFNlbmRseUNvbmZpZz4oe1xuICAgICAgcHJvamVjdE5hbWU6IFwic2VuZGx5XCIsXG4gICAgICBjd2Q6IENPTkZJR19ESVIsXG4gICAgICBjb25maWdOYW1lOiBcImNvbmZpZ1wiLFxuICAgICAgZGVmYXVsdHM6IERFRkFVTFRfQ09ORklHLFxuICAgICAgZW5jcnlwdGlvbktleTogT0xEX0RFRkFVTFRfS0VZLFxuICAgIH0pO1xuXG4gICAgLy8gUmVhZCBhbGwgZGF0YSB3aXRoIG9sZCBrZXlcbiAgICBjb25zdCBvbGREYXRhID0geyAuLi5vbGRDb25maWcuc3RvcmUgfTtcbiAgICBjb25zdCBoYXNEYXRhID0gT2JqZWN0LmtleXMob2xkRGF0YSkuc29tZShcbiAgICAgIChrKSA9PlxuICAgICAgICAhT2JqZWN0LmtleXMoREVGQVVMVF9DT05GSUcpLmluY2x1ZGVzKGspIHx8XG4gICAgICAgIG9sZERhdGFbayBhcyBrZXlvZiBTZW5kbHlDb25maWddICE9PVxuICAgICAgICAgIERFRkFVTFRfQ09ORklHW2sgYXMga2V5b2YgU2VuZGx5Q29uZmlnXSxcbiAgICApO1xuXG4gICAgaWYgKGhhc0RhdGEpIHtcbiAgICAgIC8vIENsZWFyIG9sZCBjb25maWcgZmlsZVxuICAgICAgb2xkQ29uZmlnLmNsZWFyKCk7XG5cbiAgICAgIC8vIENyZWF0ZSBuZXcgY29uZmlnIHdpdGggbmV3IGtleVxuICAgICAgY29uc3QgbmV3Q29uZmlnID0gbmV3IENvbmY8U2VuZGx5Q29uZmlnPih7XG4gICAgICAgIHByb2plY3ROYW1lOiBcInNlbmRseVwiLFxuICAgICAgICBjd2Q6IENPTkZJR19ESVIsXG4gICAgICAgIGNvbmZpZ05hbWU6IFwiY29uZmlnXCIsXG4gICAgICAgIGRlZmF1bHRzOiBERUZBVUxUX0NPTkZJRyxcbiAgICAgICAgZW5jcnlwdGlvbktleTogbmV3S2V5LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFJlc3RvcmUgZGF0YSB3aXRoIG5ldyBlbmNyeXB0aW9uXG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvbGREYXRhKSkge1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG5ld0NvbmZpZy5zZXQoa2V5IGFzIGtleW9mIFNlbmRseUNvbmZpZywgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXdDb25maWc7XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICAvLyBPbGQga2V5IGFsc28gZGlkbid0IHdvcmsgLSBjb3JydXB0ZWQgb3IgZnJlc2ggaW5zdGFsbFxuICB9XG5cbiAgLy8gRnJlc2ggaW5zdGFsbCBvciBjb3JydXB0ZWQgLSBzdGFydCB3aXRoIG5ldyBrZXlcbiAgcmV0dXJuIG5ldyBDb25mPFNlbmRseUNvbmZpZz4oe1xuICAgIHByb2plY3ROYW1lOiBcInNlbmRseVwiLFxuICAgIGN3ZDogQ09ORklHX0RJUixcbiAgICBjb25maWdOYW1lOiBcImNvbmZpZ1wiLFxuICAgIGRlZmF1bHRzOiBERUZBVUxUX0NPTkZJRyxcbiAgICBlbmNyeXB0aW9uS2V5OiBuZXdLZXksXG4gIH0pO1xufVxuXG5jb25zdCBjb25maWcgPSBpbml0aWFsaXplQ29uZmlnKCk7XG5cbi8qKlxuICogR2V0IGVmZmVjdGl2ZSBjb25maWcgdmFsdWUgd2l0aCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvdmVycmlkZVxuICogUHJpb3JpdHk6IGVudiB2YXIgPiBjb25maWcgZmlsZSA+IGRlZmF1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVmZmVjdGl2ZVZhbHVlPEsgZXh0ZW5kcyBrZXlvZiBTZW5kbHlDb25maWc+KFxuICBrZXk6IEssXG4pOiBTZW5kbHlDb25maWdbS10ge1xuICAvLyBFbnZpcm9ubWVudCB2YXJpYWJsZSBvdmVycmlkZXNcbiAgc3dpdGNoIChrZXkpIHtcbiAgICBjYXNlIFwiYXBpS2V5XCI6XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuU0VORExZX0FQSV9LRVkpIHtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3MuZW52LlNFTkRMWV9BUElfS0VZIGFzIFNlbmRseUNvbmZpZ1tLXTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJiYXNlVXJsXCI6XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuU0VORExZX0JBU0VfVVJMKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzLmVudi5TRU5ETFlfQkFTRV9VUkwgYXMgU2VuZGx5Q29uZmlnW0tdO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImRlZmF1bHRGb3JtYXRcIjpcbiAgICAgIGlmIChwcm9jZXNzLmVudi5TRU5ETFlfT1VUUFVUX0ZPUk1BVCkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBwcm9jZXNzLmVudi5TRU5ETFlfT1VUUFVUX0ZPUk1BVC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImpzb25cIiB8fCBmb3JtYXQgPT09IFwiaHVtYW5cIikge1xuICAgICAgICAgIHJldHVybiBmb3JtYXQgYXMgU2VuZGx5Q29uZmlnW0tdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiY29sb3JFbmFibGVkXCI6XG4gICAgICBpZiAoaXNDb2xvckRpc2FibGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlIGFzIFNlbmRseUNvbmZpZ1tLXTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ0aW1lb3V0XCI6XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuU0VORExZX1RJTUVPVVQpIHtcbiAgICAgICAgY29uc3QgdGltZW91dCA9IHBhcnNlSW50KHByb2Nlc3MuZW52LlNFTkRMWV9USU1FT1VULCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4odGltZW91dCkgJiYgdGltZW91dCA+IDApIHtcbiAgICAgICAgICByZXR1cm4gdGltZW91dCBhcyBTZW5kbHlDb25maWdbS107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJtYXhSZXRyaWVzXCI6XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuU0VORExZX01BWF9SRVRSSUVTKSB7XG4gICAgICAgIGNvbnN0IHJldHJpZXMgPSBwYXJzZUludChwcm9jZXNzLmVudi5TRU5ETFlfTUFYX1JFVFJJRVMsIDEwKTtcbiAgICAgICAgaWYgKCFpc05hTihyZXRyaWVzKSAmJiByZXRyaWVzID49IDApIHtcbiAgICAgICAgICByZXR1cm4gcmV0cmllcyBhcyBTZW5kbHlDb25maWdbS107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjdXJyZW50T3JnSWRcIjpcbiAgICAgIGlmIChwcm9jZXNzLmVudi5TRU5ETFlfT1JHX0lEKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzLmVudi5TRU5ETFlfT1JHX0lEIGFzIFNlbmRseUNvbmZpZ1tLXTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgLy8gRmFsbCBiYWNrIHRvIGNvbmZpZyBmaWxlIHZhbHVlXG4gIHJldHVybiBjb25maWcuZ2V0KGtleSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maWcoKTogU2VuZGx5Q29uZmlnIHtcbiAgcmV0dXJuIGNvbmZpZy5zdG9yZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldENvbmZpZzxLIGV4dGVuZHMga2V5b2YgU2VuZGx5Q29uZmlnPihcbiAga2V5OiBLLFxuICB2YWx1ZTogU2VuZGx5Q29uZmlnW0tdLFxuKTogdm9pZCB7XG4gIGNvbmZpZy5zZXQoa2V5LCB2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maWdWYWx1ZTxLIGV4dGVuZHMga2V5b2YgU2VuZGx5Q29uZmlnPihcbiAga2V5OiBLLFxuKTogU2VuZGx5Q29uZmlnW0tdIHtcbiAgcmV0dXJuIGNvbmZpZy5nZXQoa2V5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQ29uZmlnKCk6IHZvaWQge1xuICBjb25maWcuY2xlYXIoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQXV0aCgpOiB2b2lkIHtcbiAgY29uZmlnLmRlbGV0ZShcImFwaUtleVwiKTtcbiAgY29uZmlnLmRlbGV0ZShcImFjY2Vzc1Rva2VuXCIpO1xuICBjb25maWcuZGVsZXRlKFwicmVmcmVzaFRva2VuXCIpO1xuICBjb25maWcuZGVsZXRlKFwidG9rZW5FeHBpcmVzQXRcIik7XG4gIGNvbmZpZy5kZWxldGUoXCJ1c2VySWRcIik7XG4gIGNvbmZpZy5kZWxldGUoXCJlbWFpbFwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcbiAgLy8gQ2hlY2sgZW52IHZhciBmaXJzdFxuICBpZiAocHJvY2Vzcy5lbnYuU0VORExZX0FQSV9LRVkpIHJldHVybiB0cnVlO1xuXG4gIGNvbnN0IGFwaUtleSA9IGNvbmZpZy5nZXQoXCJhcGlLZXlcIik7XG4gIGNvbnN0IGFjY2Vzc1Rva2VuID0gY29uZmlnLmdldChcImFjY2Vzc1Rva2VuXCIpO1xuICByZXR1cm4gISEoYXBpS2V5IHx8IGFjY2Vzc1Rva2VuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEF1dGhUb2tlbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAvLyBFbnZpcm9ubWVudCB2YXJpYWJsZSB0YWtlcyBoaWdoZXN0IHByZWNlZGVuY2VcbiAgaWYgKHByb2Nlc3MuZW52LlNFTkRMWV9BUElfS0VZKSB7XG4gICAgcmV0dXJuIHByb2Nlc3MuZW52LlNFTkRMWV9BUElfS0VZO1xuICB9XG5cbiAgLy8gVGhlbiBzdG9yZWQgQVBJIGtleVxuICBjb25zdCBhcGlLZXkgPSBjb25maWcuZ2V0KFwiYXBpS2V5XCIpO1xuICBpZiAoYXBpS2V5KSByZXR1cm4gYXBpS2V5O1xuXG4gIC8vIEZpbmFsbHksIGFjY2VzcyB0b2tlbiAoaWYgbm90IGV4cGlyZWQpXG4gIGNvbnN0IGFjY2Vzc1Rva2VuID0gY29uZmlnLmdldChcImFjY2Vzc1Rva2VuXCIpO1xuICBjb25zdCBleHBpcmVzQXQgPSBjb25maWcuZ2V0KFwidG9rZW5FeHBpcmVzQXRcIik7XG5cbiAgaWYgKGFjY2Vzc1Rva2VuICYmIGV4cGlyZXNBdCAmJiBEYXRlLm5vdygpIDwgZXhwaXJlc0F0KSB7XG4gICAgcmV0dXJuIGFjY2Vzc1Rva2VuO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEFwaUtleShhcGlLZXk6IHN0cmluZyk6IHZvaWQge1xuICAvLyBWYWxpZGF0ZSBBUEkga2V5IGZvcm1hdFxuICBpZiAoIS9ec2tfKHRlc3R8bGl2ZSlfdjFfW2EtekEtWjAtOV8tXSskLy50ZXN0KGFwaUtleSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkludmFsaWQgQVBJIGtleSBmb3JtYXQuIEV4cGVjdGVkIHNrX3Rlc3RfdjFfeHh4IG9yIHNrX2xpdmVfdjFfeHh4XCIsXG4gICAgKTtcbiAgfVxuXG4gIGNvbmZpZy5zZXQoXCJhcGlLZXlcIiwgYXBpS2V5KTtcblxuICAvLyBTZXQgZW52aXJvbm1lbnQgYmFzZWQgb24ga2V5IHR5cGVcbiAgaWYgKGFwaUtleS5zdGFydHNXaXRoKFwic2tfdGVzdF9cIikpIHtcbiAgICBjb25maWcuc2V0KFwiZW52aXJvbm1lbnRcIiwgXCJ0ZXN0XCIpO1xuICB9IGVsc2Uge1xuICAgIGNvbmZpZy5zZXQoXCJlbnZpcm9ubWVudFwiLCBcImxpdmVcIik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEF1dGhUb2tlbnMoXG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmcsXG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nLFxuICBleHBpcmVzSW46IG51bWJlcixcbiAgdXNlcklkOiBzdHJpbmcsXG4gIGVtYWlsOiBzdHJpbmcsXG4pOiB2b2lkIHtcbiAgY29uZmlnLnNldChcImFjY2Vzc1Rva2VuXCIsIGFjY2Vzc1Rva2VuKTtcbiAgY29uZmlnLnNldChcInJlZnJlc2hUb2tlblwiLCByZWZyZXNoVG9rZW4pO1xuICBjb25maWcuc2V0KFwidG9rZW5FeHBpcmVzQXRcIiwgRGF0ZS5ub3coKSArIGV4cGlyZXNJbiAqIDEwMDApO1xuICBjb25maWcuc2V0KFwidXNlcklkXCIsIHVzZXJJZCk7XG4gIGNvbmZpZy5zZXQoXCJlbWFpbFwiLCBlbWFpbCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maWdQYXRoKCk6IHN0cmluZyB7XG4gIHJldHVybiBwYXRoLmpvaW4oQ09ORklHX0RJUiwgQ09ORklHX0ZJTEUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uZmlnRGlyKCk6IHN0cmluZyB7XG4gIHJldHVybiBDT05GSUdfRElSO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q3VycmVudE9yZyhpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIHNsdWc/OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uZmlnLnNldChcImN1cnJlbnRPcmdJZFwiLCBpZCk7XG4gIGNvbmZpZy5zZXQoXCJjdXJyZW50T3JnTmFtZVwiLCBuYW1lKTtcbiAgaWYgKHNsdWcpIGNvbmZpZy5zZXQoXCJjdXJyZW50T3JnU2x1Z1wiLCBzbHVnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRPcmcoKToge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNsdWc/OiBzdHJpbmc7XG59IHwgbnVsbCB7XG4gIGNvbnN0IGlkID0gZ2V0RWZmZWN0aXZlVmFsdWUoXCJjdXJyZW50T3JnSWRcIik7XG4gIGNvbnN0IG5hbWUgPSBjb25maWcuZ2V0KFwiY3VycmVudE9yZ05hbWVcIik7XG4gIGlmICghaWQpIHJldHVybiBudWxsO1xuICByZXR1cm4geyBpZCwgbmFtZTogbmFtZSB8fCBpZCwgc2x1ZzogY29uZmlnLmdldChcImN1cnJlbnRPcmdTbHVnXCIpIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhckN1cnJlbnRPcmcoKTogdm9pZCB7XG4gIGNvbmZpZy5kZWxldGUoXCJjdXJyZW50T3JnSWRcIik7XG4gIGNvbmZpZy5kZWxldGUoXCJjdXJyZW50T3JnTmFtZVwiKTtcbiAgY29uZmlnLmRlbGV0ZShcImN1cnJlbnRPcmdTbHVnXCIpO1xufVxuXG5leHBvcnQgeyBjb25maWcgfTtcbiJdfQ==
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUE2QnRDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLElBQUk7SUFDbEIsT0FBTyxDQUFDLENBQUMsQ0FDUCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQjtRQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWM7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUTtRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU07UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZUFBZTtJQUM3QixPQUFPLENBQUMsQ0FBQyxDQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZTtRQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUM1QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUVsQyw0Q0FBNEM7QUFD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Q0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuQyxJQUFJLElBQUk7UUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYTtJQUszQixNQUFNLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDMUMsSUFBSSxDQUFDLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNyQixPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztBQUN0RSxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWU7SUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENMSSBDb25maWd1cmF0aW9uIE1hbmFnZW1lbnRcbiAqIFN0b3JlcyB1c2VyIHByZWZlcmVuY2VzIGFuZCBjcmVkZW50aWFscyBpbiB+Ly5zZW5kbHkvXG4gKlxuICogRW52aXJvbm1lbnQgVmFyaWFibGVzICh0YWtlIHByZWNlZGVuY2Ugb3ZlciBjb25maWcgZmlsZSk6XG4gKiAtIFNFTkRMWV9BUElfS0VZOiBBUEkga2V5IGZvciBhdXRoZW50aWNhdGlvblxuICogLSBTRU5ETFlfQkFTRV9VUkw6IEN1c3RvbSBBUEkgZW5kcG9pbnRcbiAqIC0gU0VORExZX09VVFBVVF9GT1JNQVQ6IERlZmF1bHQgb3V0cHV0IGZvcm1hdCAoaHVtYW4vanNvbilcbiAqIC0gU0VORExZX05PX0NPTE9SOiBEaXNhYmxlIGNvbG9yZWQgb3V0cHV0IChhbnkgdmFsdWUpXG4gKiAtIFNFTkRMWV9USU1FT1VUOiBSZXF1ZXN0IHRpbWVvdXQgaW4gbXMgKGRlZmF1bHQ6IDMwMDAwKVxuICogLSBTRU5ETFlfTUFYX1JFVFJJRVM6IE1heCByZXRyeSBhdHRlbXB0cyAoZGVmYXVsdDogMylcbiAqIC0gU0VORExZX09SR19JRDogT3ZlcnJpZGUgYWN0aXZlIG9yZ2FuaXphdGlvbiBJRFxuICogLSBTRU5ETFlfQ09ORklHX0tFWTogQ3VzdG9tIGVuY3J5cHRpb24ga2V5IChmb3IgQ0kvQ0QpXG4gKiAtIENJOiBBdXRvLWRldGVjdCBDSSBtb2RlIChkaXNhYmxlcyBpbnRlcmFjdGl2ZSBwcm9tcHRzKVxuICovXG5cbmltcG9ydCBDb25mIGZyb20gXCJjb25mXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gXCJub2RlOmNyeXB0b1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbmRseUNvbmZpZyB7XG4gIC8vIEF1dGhlbnRpY2F0aW9uXG4gIGFwaUtleT86IHN0cmluZztcbiAgYWNjZXNzVG9rZW4/OiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbj86IHN0cmluZztcbiAgdG9rZW5FeHBpcmVzQXQ/OiBudW1iZXI7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG5cbiAgLy8gRW52aXJvbm1lbnRcbiAgZW52aXJvbm1lbnQ6IFwidGVzdFwiIHwgXCJsaXZlXCI7XG4gIGJhc2VVcmw6IHN0cmluZztcblxuICAvLyBQcmVmZXJlbmNlc1xuICBkZWZhdWx0Rm9ybWF0OiBcImh1bWFuXCIgfCBcImpzb25cIjtcbiAgY29sb3JFbmFibGVkOiBib29sZWFuO1xuXG4gIC8vIE5ldHdvcmtcbiAgdGltZW91dDogbnVtYmVyO1xuICBtYXhSZXRyaWVzOiBudW1iZXI7XG5cbiAgLy8gT3JnYW5pemF0aW9uXG4gIGN1cnJlbnRPcmdJZD86IHN0cmluZztcbiAgY3VycmVudE9yZ05hbWU/OiBzdHJpbmc7XG4gIGN1cnJlbnRPcmdTbHVnPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHJ1bm5pbmcgaW4gQ0kgZW52aXJvbm1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ0koKTogYm9vbGVhbiB7XG4gIHJldHVybiAhIShcbiAgICBwcm9jZXNzLmVudi5DSSB8fFxuICAgIHByb2Nlc3MuZW52LkNPTlRJTlVPVVNfSU5URUdSQVRJT04gfHxcbiAgICBwcm9jZXNzLmVudi5HSVRIVUJfQUNUSU9OUyB8fFxuICAgIHByb2Nlc3MuZW52LkdJVExBQl9DSSB8fFxuICAgIHByb2Nlc3MuZW52LkNJUkNMRUNJIHx8XG4gICAgcHJvY2Vzcy5lbnYuVFJBVklTIHx8XG4gICAgcHJvY2Vzcy5lbnYuQlVJTERLSVRFXG4gICk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgY29sb3Igb3V0cHV0IGlzIGRpc2FibGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbG9yRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gIHJldHVybiAhIShcbiAgICBwcm9jZXNzLmVudi5TRU5ETFlfTk9fQ09MT1IgfHxcbiAgICBwcm9jZXNzLmVudi5OT19DT0xPUiB8fFxuICAgIHByb2Nlc3MuZW52LlRFUk0gPT09IFwiZHVtYlwiXG4gICk7XG59XG5cbmNvbnN0IENPTkZJR19ESVIgPSBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCBcIi5zZW5kbHlcIik7XG5jb25zdCBDT05GSUdfRklMRSA9IFwiY29uZmlnLmpzb25cIjtcblxuLy8gT2xkIGRlZmF1bHQga2V5IC0gdXNlZCBmb3IgbWlncmF0aW9uIG9ubHlcbmNvbnN0IE9MRF9ERUZBVUxUX0tFWSA9IFwic2VuZGx5LWNsaS1kZWZhdWx0LWtleS12MVwiO1xuXG4vKipcbiAqIERlcml2ZSBhIG1hY2hpbmUtc3BlY2lmaWMgZW5jcnlwdGlvbiBrZXkuXG4gKiBUaGlzIGVuc3VyZXMgZWFjaCBpbnN0YWxsYXRpb24gaGFzIGEgdW5pcXVlIGtleSB0aGF0IGNhbid0IGJlIGVhc2lseSBndWVzc2VkLlxuICpcbiAqIFRoZSBrZXkgaXMgZGVyaXZlZCBmcm9tIG1hY2hpbmUtc3BlY2lmaWMgaWRlbnRpZmllcnMgdGhhdCBhcmU6XG4gKiAtIFVuaXF1ZSBwZXIgbWFjaGluZVxuICogLSBTdGFibGUgYWNyb3NzIHNlc3Npb25zXG4gKiAtIE5vdCBwdWJsaWNseSBrbm93blxuICovXG5mdW5jdGlvbiBkZXJpdmVFbmNyeXB0aW9uS2V5KCk6IHN0cmluZyB7XG4gIGNvbnN0IG1hY2hpbmVJZCA9IFtvcy5ob3N0bmFtZSgpLCBvcy51c2VySW5mbygpLnVzZXJuYW1lLCBvcy5ob21lZGlyKCldLmpvaW4oXG4gICAgXCI6XCIsXG4gICk7XG5cbiAgcmV0dXJuIGNyeXB0b1xuICAgIC5jcmVhdGVIYXNoKFwic2hhMjU2XCIpXG4gICAgLnVwZGF0ZShgc2VuZGx5OiR7bWFjaGluZUlkfTp2MmApXG4gICAgLmRpZ2VzdChcImhleFwiKTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGVuY3J5cHRpb24ga2V5IHRvIHVzZSBmb3IgY29uZmlnLlxuICogUHJpb3JpdHk6IFNFTkRMWV9DT05GSUdfS0VZIGVudiB2YXIgPiBtYWNoaW5lLWRlcml2ZWQga2V5XG4gKi9cbmZ1bmN0aW9uIGdldEVuY3J5cHRpb25LZXkoKTogc3RyaW5nIHtcbiAgLy8gRXhwbGljaXQga2V5IHRha2VzIHByZWNlZGVuY2UgKGZvciBDSS9DRCwgdGVzdGluZywgYWR2YW5jZWQgdXNlcnMpXG4gIGlmIChwcm9jZXNzLmVudi5TRU5ETFlfQ09ORklHX0tFWSkge1xuICAgIHJldHVybiBwcm9jZXNzLmVudi5TRU5ETFlfQ09ORklHX0tFWTtcbiAgfVxuICByZXR1cm4gZGVyaXZlRW5jcnlwdGlvbktleSgpO1xufVxuXG4vLyBFbnN1cmUgY29uZmlnIGRpcmVjdG9yeSBleGlzdHMgd2l0aCBzZWN1cmUgcGVybWlzc2lvbnNcbmlmICghZnMuZXhpc3RzU3luYyhDT05GSUdfRElSKSkge1xuICBmcy5ta2RpclN5bmMoQ09ORklHX0RJUiwgeyByZWN1cnNpdmU6IHRydWUsIG1vZGU6IDBvNzAwIH0pO1xufVxuXG5jb25zdCBERUZBVUxUX0NPTkZJRzogU2VuZGx5Q29uZmlnID0ge1xuICBlbnZpcm9ubWVudDogXCJ0ZXN0XCIsXG4gIGJhc2VVcmw6IFwiaHR0cHM6Ly9zZW5kbHkubGl2ZVwiLFxuICBkZWZhdWx0Rm9ybWF0OiBcImh1bWFuXCIsXG4gIGNvbG9yRW5hYmxlZDogdHJ1ZSxcbiAgdGltZW91dDogMzAwMDAsXG4gIG1heFJldHJpZXM6IDMsXG59O1xuXG4vKipcbiAqIEluaXRpYWxpemUgY29uZmlnIHdpdGggYXV0b21hdGljIG1pZ3JhdGlvbiBmcm9tIG9sZCBlbmNyeXB0aW9uIGtleS5cbiAqIFRoaXMgZW5zdXJlcyBleGlzdGluZyB1c2VycyBkb24ndCBsb3NlIHRoZWlyIGNyZWRlbnRpYWxzLlxuICovXG5mdW5jdGlvbiBpbml0aWFsaXplQ29uZmlnKCk6IENvbmY8U2VuZGx5Q29uZmlnPiB7XG4gIGNvbnN0IG5ld0tleSA9IGdldEVuY3J5cHRpb25LZXkoKTtcblxuICAvLyBUcnkgdG8gaW5pdGlhbGl6ZSB3aXRoIG5ldyBrZXkgZmlyc3RcbiAgdHJ5IHtcbiAgICBjb25zdCBuZXdDb25maWcgPSBuZXcgQ29uZjxTZW5kbHlDb25maWc+KHtcbiAgICAgIHByb2plY3ROYW1lOiBcInNlbmRseVwiLFxuICAgICAgY3dkOiBDT05GSUdfRElSLFxuICAgICAgY29uZmlnTmFtZTogXCJjb25maWdcIixcbiAgICAgIGRlZmF1bHRzOiBERUZBVUxUX0NPTkZJRyxcbiAgICAgIGVuY3J5cHRpb25LZXk6IG5ld0tleSxcbiAgICB9KTtcblxuICAgIC8vIFRyeSB0byByZWFkIGEgdmFsdWUgdG8gdmVyaWZ5IGRlY3J5cHRpb24gd29ya3NcbiAgICBuZXdDb25maWcuZ2V0KFwiZW52aXJvbm1lbnRcIik7XG4gICAgcmV0dXJuIG5ld0NvbmZpZztcbiAgfSBjYXRjaCB7XG4gICAgLy8gTmV3IGtleSBkaWRuJ3Qgd29yayAtIHRyeSBtaWdyYXRpb24gZnJvbSBvbGQga2V5XG4gIH1cblxuICAvLyBNaWdyYXRpb246IFRyeSB0byByZWFkIHdpdGggb2xkIGRlZmF1bHQga2V5XG4gIHRyeSB7XG4gICAgY29uc3Qgb2xkQ29uZmlnID0gbmV3IENvbmY8U2VuZGx5Q29uZmlnPih7XG4gICAgICBwcm9qZWN0TmFtZTogXCJzZW5kbHlcIixcbiAgICAgIGN3ZDogQ09ORklHX0RJUixcbiAgICAgIGNvbmZpZ05hbWU6IFwiY29uZmlnXCIsXG4gICAgICBkZWZhdWx0czogREVGQVVMVF9DT05GSUcsXG4gICAgICBlbmNyeXB0aW9uS2V5OiBPTERfREVGQVVMVF9LRVksXG4gICAgfSk7XG5cbiAgICAvLyBSZWFkIGFsbCBkYXRhIHdpdGggb2xkIGtleVxuICAgIGNvbnN0IG9sZERhdGEgPSB7IC4uLm9sZENvbmZpZy5zdG9yZSB9O1xuICAgIGNvbnN0IGhhc0RhdGEgPSBPYmplY3Qua2V5cyhvbGREYXRhKS5zb21lKFxuICAgICAgKGspID0+XG4gICAgICAgICFPYmplY3Qua2V5cyhERUZBVUxUX0NPTkZJRykuaW5jbHVkZXMoaykgfHxcbiAgICAgICAgb2xkRGF0YVtrIGFzIGtleW9mIFNlbmRseUNvbmZpZ10gIT09XG4gICAgICAgICAgREVGQVVMVF9DT05GSUdbayBhcyBrZXlvZiBTZW5kbHlDb25maWddLFxuICAgICk7XG5cbiAgICBpZiAoaGFzRGF0YSkge1xuICAgICAgLy8gQ2xlYXIgb2xkIGNvbmZpZyBmaWxlXG4gICAgICBvbGRDb25maWcuY2xlYXIoKTtcblxuICAgICAgLy8gQ3JlYXRlIG5ldyBjb25maWcgd2l0aCBuZXcga2V5XG4gICAgICBjb25zdCBuZXdDb25maWcgPSBuZXcgQ29uZjxTZW5kbHlDb25maWc+KHtcbiAgICAgICAgcHJvamVjdE5hbWU6IFwic2VuZGx5XCIsXG4gICAgICAgIGN3ZDogQ09ORklHX0RJUixcbiAgICAgICAgY29uZmlnTmFtZTogXCJjb25maWdcIixcbiAgICAgICAgZGVmYXVsdHM6IERFRkFVTFRfQ09ORklHLFxuICAgICAgICBlbmNyeXB0aW9uS2V5OiBuZXdLZXksXG4gICAgICB9KTtcblxuICAgICAgLy8gUmVzdG9yZSBkYXRhIHdpdGggbmV3IGVuY3J5cHRpb25cbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9sZERhdGEpKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbmV3Q29uZmlnLnNldChrZXkgYXMga2V5b2YgU2VuZGx5Q29uZmlnLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld0NvbmZpZztcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIC8vIE9sZCBrZXkgYWxzbyBkaWRuJ3Qgd29yayAtIGNvcnJ1cHRlZCBvciBmcmVzaCBpbnN0YWxsXG4gIH1cblxuICAvLyBGcmVzaCBpbnN0YWxsIG9yIGNvcnJ1cHRlZCAtIHN0YXJ0IHdpdGggbmV3IGtleVxuICByZXR1cm4gbmV3IENvbmY8U2VuZGx5Q29uZmlnPih7XG4gICAgcHJvamVjdE5hbWU6IFwic2VuZGx5XCIsXG4gICAgY3dkOiBDT05GSUdfRElSLFxuICAgIGNvbmZpZ05hbWU6IFwiY29uZmlnXCIsXG4gICAgZGVmYXVsdHM6IERFRkFVTFRfQ09ORklHLFxuICAgIGVuY3J5cHRpb25LZXk6IG5ld0tleSxcbiAgfSk7XG59XG5cbmNvbnN0IGNvbmZpZyA9IGluaXRpYWxpemVDb25maWcoKTtcblxuLyoqXG4gKiBHZXQgZWZmZWN0aXZlIGNvbmZpZyB2YWx1ZSB3aXRoIGVudmlyb25tZW50IHZhcmlhYmxlIG92ZXJyaWRlXG4gKiBQcmlvcml0eTogZW52IHZhciA+IGNvbmZpZyBmaWxlID4gZGVmYXVsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWZmZWN0aXZlVmFsdWU8SyBleHRlbmRzIGtleW9mIFNlbmRseUNvbmZpZz4oXG4gIGtleTogSyxcbik6IFNlbmRseUNvbmZpZ1tLXSB7XG4gIC8vIEVudmlyb25tZW50IHZhcmlhYmxlIG92ZXJyaWRlc1xuICBzd2l0Y2ggKGtleSkge1xuICAgIGNhc2UgXCJhcGlLZXlcIjpcbiAgICAgIGlmIChwcm9jZXNzLmVudi5TRU5ETFlfQVBJX0tFWSkge1xuICAgICAgICByZXR1cm4gcHJvY2Vzcy5lbnYuU0VORExZX0FQSV9LRVkgYXMgU2VuZGx5Q29uZmlnW0tdO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImJhc2VVcmxcIjpcbiAgICAgIGlmIChwcm9jZXNzLmVudi5TRU5ETFlfQkFTRV9VUkwpIHtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3MuZW52LlNFTkRMWV9CQVNFX1VSTCBhcyBTZW5kbHlDb25maWdbS107XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZGVmYXVsdEZvcm1hdFwiOlxuICAgICAgaWYgKHByb2Nlc3MuZW52LlNFTkRMWV9PVVRQVVRfRk9STUFUKSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHByb2Nlc3MuZW52LlNFTkRMWV9PVVRQVVRfRk9STUFULnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwianNvblwiIHx8IGZvcm1hdCA9PT0gXCJodW1hblwiKSB7XG4gICAgICAgICAgcmV0dXJuIGZvcm1hdCBhcyBTZW5kbHlDb25maWdbS107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjb2xvckVuYWJsZWRcIjpcbiAgICAgIGlmIChpc0NvbG9yRGlzYWJsZWQoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2UgYXMgU2VuZGx5Q29uZmlnW0tdO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcInRpbWVvdXRcIjpcbiAgICAgIGlmIChwcm9jZXNzLmVudi5TRU5ETFlfVElNRU9VVCkge1xuICAgICAgICBjb25zdCB0aW1lb3V0ID0gcGFyc2VJbnQocHJvY2Vzcy5lbnYuU0VORExZX1RJTUVPVVQsIDEwKTtcbiAgICAgICAgaWYgKCFpc05hTih0aW1lb3V0KSAmJiB0aW1lb3V0ID4gMCkge1xuICAgICAgICAgIHJldHVybiB0aW1lb3V0IGFzIFNlbmRseUNvbmZpZ1tLXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcIm1heFJldHJpZXNcIjpcbiAgICAgIGlmIChwcm9jZXNzLmVudi5TRU5ETFlfTUFYX1JFVFJJRVMpIHtcbiAgICAgICAgY29uc3QgcmV0cmllcyA9IHBhcnNlSW50KHByb2Nlc3MuZW52LlNFTkRMWV9NQVhfUkVUUklFUywgMTApO1xuICAgICAgICBpZiAoIWlzTmFOKHJldHJpZXMpICYmIHJldHJpZXMgPj0gMCkge1xuICAgICAgICAgIHJldHVybiByZXRyaWVzIGFzIFNlbmRseUNvbmZpZ1tLXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImN1cnJlbnRPcmdJZFwiOlxuICAgICAgaWYgKHByb2Nlc3MuZW52LlNFTkRMWV9PUkdfSUQpIHtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3MuZW52LlNFTkRMWV9PUkdfSUQgYXMgU2VuZGx5Q29uZmlnW0tdO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gIH1cblxuICAvLyBGYWxsIGJhY2sgdG8gY29uZmlnIGZpbGUgdmFsdWVcbiAgcmV0dXJuIGNvbmZpZy5nZXQoa2V5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZygpOiBTZW5kbHlDb25maWcge1xuICByZXR1cm4gY29uZmlnLnN0b3JlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q29uZmlnPEsgZXh0ZW5kcyBrZXlvZiBTZW5kbHlDb25maWc+KFxuICBrZXk6IEssXG4gIHZhbHVlOiBTZW5kbHlDb25maWdbS10sXG4pOiB2b2lkIHtcbiAgY29uZmlnLnNldChrZXksIHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZ1ZhbHVlPEsgZXh0ZW5kcyBrZXlvZiBTZW5kbHlDb25maWc+KFxuICBrZXk6IEssXG4pOiBTZW5kbHlDb25maWdbS10ge1xuICByZXR1cm4gY29uZmlnLmdldChrZXkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDb25maWcoKTogdm9pZCB7XG4gIGNvbmZpZy5jbGVhcigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJBdXRoKCk6IHZvaWQge1xuICBjb25maWcuZGVsZXRlKFwiYXBpS2V5XCIpO1xuICBjb25maWcuZGVsZXRlKFwiYWNjZXNzVG9rZW5cIik7XG4gIGNvbmZpZy5kZWxldGUoXCJyZWZyZXNoVG9rZW5cIik7XG4gIGNvbmZpZy5kZWxldGUoXCJ0b2tlbkV4cGlyZXNBdFwiKTtcbiAgY29uZmlnLmRlbGV0ZShcInVzZXJJZFwiKTtcbiAgY29uZmlnLmRlbGV0ZShcImVtYWlsXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xuICAvLyBDaGVjayBlbnYgdmFyIGZpcnN0XG4gIGlmIChwcm9jZXNzLmVudi5TRU5ETFlfQVBJX0tFWSkgcmV0dXJuIHRydWU7XG5cbiAgY29uc3QgYXBpS2V5ID0gY29uZmlnLmdldChcImFwaUtleVwiKTtcbiAgY29uc3QgYWNjZXNzVG9rZW4gPSBjb25maWcuZ2V0KFwiYWNjZXNzVG9rZW5cIik7XG4gIHJldHVybiAhIShhcGlLZXkgfHwgYWNjZXNzVG9rZW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXV0aFRva2VuKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIC8vIEVudmlyb25tZW50IHZhcmlhYmxlIHRha2VzIGhpZ2hlc3QgcHJlY2VkZW5jZVxuICBpZiAocHJvY2Vzcy5lbnYuU0VORExZX0FQSV9LRVkpIHtcbiAgICByZXR1cm4gcHJvY2Vzcy5lbnYuU0VORExZX0FQSV9LRVk7XG4gIH1cblxuICAvLyBUaGVuIHN0b3JlZCBBUEkga2V5XG4gIGNvbnN0IGFwaUtleSA9IGNvbmZpZy5nZXQoXCJhcGlLZXlcIik7XG4gIGlmIChhcGlLZXkpIHJldHVybiBhcGlLZXk7XG5cbiAgLy8gRmluYWxseSwgYWNjZXNzIHRva2VuIChpZiBub3QgZXhwaXJlZClcbiAgY29uc3QgYWNjZXNzVG9rZW4gPSBjb25maWcuZ2V0KFwiYWNjZXNzVG9rZW5cIik7XG4gIGNvbnN0IGV4cGlyZXNBdCA9IGNvbmZpZy5nZXQoXCJ0b2tlbkV4cGlyZXNBdFwiKTtcblxuICBpZiAoYWNjZXNzVG9rZW4gJiYgZXhwaXJlc0F0ICYmIERhdGUubm93KCkgPCBleHBpcmVzQXQpIHtcbiAgICByZXR1cm4gYWNjZXNzVG9rZW47XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmVkQWNjZXNzVG9rZW4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGNvbmZpZy5nZXQoXCJhY2Nlc3NUb2tlblwiKSB8fCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRBcGlLZXkoYXBpS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgLy8gVmFsaWRhdGUgQVBJIGtleSBmb3JtYXRcbiAgaWYgKCEvXnNrXyh0ZXN0fGxpdmUpX3YxX1thLXpBLVowLTlfLV0rJC8udGVzdChhcGlLZXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJJbnZhbGlkIEFQSSBrZXkgZm9ybWF0LiBFeHBlY3RlZCBza190ZXN0X3YxX3h4eCBvciBza19saXZlX3YxX3h4eFwiLFxuICAgICk7XG4gIH1cblxuICBjb25maWcuc2V0KFwiYXBpS2V5XCIsIGFwaUtleSk7XG5cbiAgLy8gU2V0IGVudmlyb25tZW50IGJhc2VkIG9uIGtleSB0eXBlXG4gIGlmIChhcGlLZXkuc3RhcnRzV2l0aChcInNrX3Rlc3RfXCIpKSB7XG4gICAgY29uZmlnLnNldChcImVudmlyb25tZW50XCIsIFwidGVzdFwiKTtcbiAgfSBlbHNlIHtcbiAgICBjb25maWcuc2V0KFwiZW52aXJvbm1lbnRcIiwgXCJsaXZlXCIpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRBdXRoVG9rZW5zKFxuICBhY2Nlc3NUb2tlbjogc3RyaW5nLFxuICByZWZyZXNoVG9rZW46IHN0cmluZyxcbiAgZXhwaXJlc0luOiBudW1iZXIsXG4gIHVzZXJJZDogc3RyaW5nLFxuICBlbWFpbDogc3RyaW5nLFxuKTogdm9pZCB7XG4gIGNvbmZpZy5zZXQoXCJhY2Nlc3NUb2tlblwiLCBhY2Nlc3NUb2tlbik7XG4gIGNvbmZpZy5zZXQoXCJyZWZyZXNoVG9rZW5cIiwgcmVmcmVzaFRva2VuKTtcbiAgY29uZmlnLnNldChcInRva2VuRXhwaXJlc0F0XCIsIERhdGUubm93KCkgKyBleHBpcmVzSW4gKiAxMDAwKTtcbiAgY29uZmlnLnNldChcInVzZXJJZFwiLCB1c2VySWQpO1xuICBjb25maWcuc2V0KFwiZW1haWxcIiwgZW1haWwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uZmlnUGF0aCgpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5qb2luKENPTkZJR19ESVIsIENPTkZJR19GSUxFKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZ0RpcigpOiBzdHJpbmcge1xuICByZXR1cm4gQ09ORklHX0RJUjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEN1cnJlbnRPcmcoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nLCBzbHVnPzogc3RyaW5nKTogdm9pZCB7XG4gIGNvbmZpZy5zZXQoXCJjdXJyZW50T3JnSWRcIiwgaWQpO1xuICBjb25maWcuc2V0KFwiY3VycmVudE9yZ05hbWVcIiwgbmFtZSk7XG4gIGlmIChzbHVnKSBjb25maWcuc2V0KFwiY3VycmVudE9yZ1NsdWdcIiwgc2x1Zyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW50T3JnKCk6IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzbHVnPzogc3RyaW5nO1xufSB8IG51bGwge1xuICBjb25zdCBpZCA9IGdldEVmZmVjdGl2ZVZhbHVlKFwiY3VycmVudE9yZ0lkXCIpO1xuICBjb25zdCBuYW1lID0gY29uZmlnLmdldChcImN1cnJlbnRPcmdOYW1lXCIpO1xuICBpZiAoIWlkKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIHsgaWQsIG5hbWU6IG5hbWUgfHwgaWQsIHNsdWc6IGNvbmZpZy5nZXQoXCJjdXJyZW50T3JnU2x1Z1wiKSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDdXJyZW50T3JnKCk6IHZvaWQge1xuICBjb25maWcuZGVsZXRlKFwiY3VycmVudE9yZ0lkXCIpO1xuICBjb25maWcuZGVsZXRlKFwiY3VycmVudE9yZ05hbWVcIik7XG4gIGNvbmZpZy5kZWxldGUoXCJjdXJyZW50T3JnU2x1Z1wiKTtcbn1cblxuZXhwb3J0IHsgY29uZmlnIH07XG4iXX0=
|
package/oclif.manifest.json
CHANGED
|
@@ -264,6 +264,7 @@
|
|
|
264
264
|
"message.delivered",
|
|
265
265
|
"message.failed",
|
|
266
266
|
"message.bounced",
|
|
267
|
+
"message.retrying",
|
|
267
268
|
"message.received"
|
|
268
269
|
],
|
|
269
270
|
"required": true
|
|
@@ -1480,6 +1481,67 @@
|
|
|
1480
1481
|
"history.js"
|
|
1481
1482
|
]
|
|
1482
1483
|
},
|
|
1484
|
+
"credits:transfer": {
|
|
1485
|
+
"aliases": [],
|
|
1486
|
+
"args": {},
|
|
1487
|
+
"description": "Transfer credits between workspaces",
|
|
1488
|
+
"examples": [
|
|
1489
|
+
"<%= config.bin %> credits transfer --to org_abc123 --amount 500",
|
|
1490
|
+
"<%= config.bin %> credits transfer --amount 1000",
|
|
1491
|
+
"<%= config.bin %> credits transfer --to org_abc123 --amount 500 --yes"
|
|
1492
|
+
],
|
|
1493
|
+
"flags": {
|
|
1494
|
+
"json": {
|
|
1495
|
+
"description": "Output in JSON format",
|
|
1496
|
+
"name": "json",
|
|
1497
|
+
"allowNo": false,
|
|
1498
|
+
"type": "boolean"
|
|
1499
|
+
},
|
|
1500
|
+
"quiet": {
|
|
1501
|
+
"char": "q",
|
|
1502
|
+
"description": "Minimal output",
|
|
1503
|
+
"name": "quiet",
|
|
1504
|
+
"allowNo": false,
|
|
1505
|
+
"type": "boolean"
|
|
1506
|
+
},
|
|
1507
|
+
"to": {
|
|
1508
|
+
"description": "Target workspace ID to transfer credits to",
|
|
1509
|
+
"name": "to",
|
|
1510
|
+
"hasDynamicHelp": false,
|
|
1511
|
+
"multiple": false,
|
|
1512
|
+
"type": "option"
|
|
1513
|
+
},
|
|
1514
|
+
"amount": {
|
|
1515
|
+
"char": "a",
|
|
1516
|
+
"description": "Number of credits to transfer",
|
|
1517
|
+
"name": "amount",
|
|
1518
|
+
"hasDynamicHelp": false,
|
|
1519
|
+
"multiple": false,
|
|
1520
|
+
"type": "option"
|
|
1521
|
+
},
|
|
1522
|
+
"yes": {
|
|
1523
|
+
"char": "y",
|
|
1524
|
+
"description": "Skip confirmation prompt",
|
|
1525
|
+
"name": "yes",
|
|
1526
|
+
"allowNo": false,
|
|
1527
|
+
"type": "boolean"
|
|
1528
|
+
}
|
|
1529
|
+
},
|
|
1530
|
+
"hasDynamicHelp": false,
|
|
1531
|
+
"hiddenAliases": [],
|
|
1532
|
+
"id": "credits:transfer",
|
|
1533
|
+
"pluginAlias": "@sendly/cli",
|
|
1534
|
+
"pluginName": "@sendly/cli",
|
|
1535
|
+
"pluginType": "core",
|
|
1536
|
+
"strict": true,
|
|
1537
|
+
"isESM": true,
|
|
1538
|
+
"relativePath": [
|
|
1539
|
+
"dist",
|
|
1540
|
+
"commands",
|
|
1541
|
+
"credits",
|
|
1542
|
+
"transfer.js"
|
|
1543
|
+
]
|
|
1544
|
+
},
|
|
1483
1545
|
"keys:create": {
|
|
1484
1546
|
"aliases": [],
|
|
1485
1547
|
"args": {},
|
|
@@ -2170,7 +2232,7 @@
|
|
|
2170
2232
|
},
|
|
2171
2233
|
"status": {
|
|
2172
2234
|
"char": "s",
|
|
2173
|
-
"description": "Filter by status (queued, sent, delivered, failed)",
|
|
2235
|
+
"description": "Filter by status (queued, sent, delivered, failed, bounced, retrying)",
|
|
2174
2236
|
"name": "status",
|
|
2175
2237
|
"hasDynamicHelp": false,
|
|
2176
2238
|
"multiple": false,
|
|
@@ -3626,7 +3688,7 @@
|
|
|
3626
3688
|
"char": "e",
|
|
3627
3689
|
"description": "Comma-separated list of events to listen for",
|
|
3628
3690
|
"name": "events",
|
|
3629
|
-
"default": "message.sent,message.delivered,message.failed,message.bounced",
|
|
3691
|
+
"default": "message.sent,message.delivered,message.failed,message.bounced,message.retrying",
|
|
3630
3692
|
"hasDynamicHelp": false,
|
|
3631
3693
|
"multiple": false,
|
|
3632
3694
|
"type": "option"
|
|
@@ -4191,5 +4253,5 @@
|
|
|
4191
4253
|
]
|
|
4192
4254
|
}
|
|
4193
4255
|
},
|
|
4194
|
-
"version": "3.
|
|
4256
|
+
"version": "3.17.0"
|
|
4195
4257
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sendly/cli",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.17.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Sendly CLI - Send SMS from your terminal",
|
|
6
6
|
"author": "Sendly <support@sendly.live>",
|
|
@@ -55,6 +55,9 @@
|
|
|
55
55
|
},
|
|
56
56
|
"teams": {
|
|
57
57
|
"description": "Manage teams and organizations"
|
|
58
|
+
},
|
|
59
|
+
"credits": {
|
|
60
|
+
"description": "Manage credits and transfers"
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
},
|