@sendly/cli 3.27.1 → 3.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,12 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class ContactsBulkMarkValid extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ ids: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ list: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
9
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,46 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { success, json, isJsonMode, error } from "../../lib/output.js";
5
+ export default class ContactsBulkMarkValid extends AuthenticatedCommand {
6
+ static description = "Clear the invalid flag on many contacts at once. Pass --ids (comma-separated, up to 10,000) OR --list <id>, not both. Escape hatch for when auto-mark misclassifies at scale.";
7
+ static examples = [
8
+ "<%= config.bin %> contacts bulk-mark-valid --ids cnt_abc,cnt_def,cnt_ghi",
9
+ "<%= config.bin %> contacts bulk-mark-valid --list lst_xxx",
10
+ ];
11
+ static flags = {
12
+ ...AuthenticatedCommand.baseFlags,
13
+ ids: Flags.string({
14
+ description: "Comma-separated contact IDs to clear (max 10,000 per call)",
15
+ exclusive: ["list"],
16
+ }),
17
+ list: Flags.string({
18
+ description: "Clear every flagged member of this list ID",
19
+ exclusive: ["ids"],
20
+ }),
21
+ };
22
+ async run() {
23
+ const { flags } = await this.parse(ContactsBulkMarkValid);
24
+ if (!flags.ids && !flags.list) {
25
+ error("Provide either --ids or --list");
26
+ this.exit(1);
27
+ }
28
+ const body = flags.ids
29
+ ? {
30
+ ids: flags.ids
31
+ .split(",")
32
+ .map((s) => s.trim())
33
+ .filter(Boolean),
34
+ }
35
+ : { listId: flags.list };
36
+ const result = await apiClient.post("/api/contacts/bulk-mark-valid", body);
37
+ if (isJsonMode()) {
38
+ json(result);
39
+ return;
40
+ }
41
+ success(result.cleared === 0
42
+ ? "No flagged contacts matched the selection"
43
+ : `${result.cleared} contact${result.cleared === 1 ? "" : "s"} marked as valid`, { Cleared: result.cleared });
44
+ }
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1tYXJrLXZhbGlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2NvbnRhY3RzL2J1bGstbWFyay12YWxpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkUsTUFBTSxDQUFDLE9BQU8sT0FBTyxxQkFBc0IsU0FBUSxvQkFBb0I7SUFDckUsTUFBTSxDQUFDLFdBQVcsR0FDaEIsK0tBQStLLENBQUM7SUFFbEwsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiwwRUFBMEU7UUFDMUUsMkRBQTJEO0tBQzVELENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2hCLFdBQVcsRUFDVCw0REFBNEQ7WUFDOUQsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDO1NBQ3BCLENBQUM7UUFDRixJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqQixXQUFXLEVBQUUsNENBQTRDO1lBQ3pELFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQztTQUNuQixDQUFDO0tBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzlCLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQXdDLEtBQUssQ0FBQyxHQUFHO1lBQ3pELENBQUMsQ0FBQztnQkFDRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7cUJBQ1gsS0FBSyxDQUFDLEdBQUcsQ0FBQztxQkFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztxQkFDcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNuQjtZQUNILENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFM0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUNqQywrQkFBK0IsRUFDL0IsSUFBSSxDQUNMLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLENBQ0wsTUFBTSxDQUFDLE9BQU8sS0FBSyxDQUFDO1lBQ2xCLENBQUMsQ0FBQywyQ0FBMkM7WUFDN0MsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sV0FBVyxNQUFNLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixFQUNqRixFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQzVCLENBQUM7SUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHsgc3VjY2VzcywganNvbiwgaXNKc29uTW9kZSwgZXJyb3IgfSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250YWN0c0J1bGtNYXJrVmFsaWQgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJDbGVhciB0aGUgaW52YWxpZCBmbGFnIG9uIG1hbnkgY29udGFjdHMgYXQgb25jZS4gUGFzcyAtLWlkcyAoY29tbWEtc2VwYXJhdGVkLCB1cCB0byAxMCwwMDApIE9SIC0tbGlzdCA8aWQ+LCBub3QgYm90aC4gRXNjYXBlIGhhdGNoIGZvciB3aGVuIGF1dG8tbWFyayBtaXNjbGFzc2lmaWVzIGF0IHNjYWxlLlwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGNvbnRhY3RzIGJ1bGstbWFyay12YWxpZCAtLWlkcyBjbnRfYWJjLGNudF9kZWYsY250X2doaVwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY29udGFjdHMgYnVsay1tYXJrLXZhbGlkIC0tbGlzdCBsc3RfeHh4XCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBpZHM6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJDb21tYS1zZXBhcmF0ZWQgY29udGFjdCBJRHMgdG8gY2xlYXIgKG1heCAxMCwwMDAgcGVyIGNhbGwpXCIsXG4gICAgICBleGNsdXNpdmU6IFtcImxpc3RcIl0sXG4gICAgfSksXG4gICAgbGlzdDogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkNsZWFyIGV2ZXJ5IGZsYWdnZWQgbWVtYmVyIG9mIHRoaXMgbGlzdCBJRFwiLFxuICAgICAgZXhjbHVzaXZlOiBbXCJpZHNcIl0sXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoQ29udGFjdHNCdWxrTWFya1ZhbGlkKTtcblxuICAgIGlmICghZmxhZ3MuaWRzICYmICFmbGFncy5saXN0KSB7XG4gICAgICBlcnJvcihcIlByb3ZpZGUgZWl0aGVyIC0taWRzIG9yIC0tbGlzdFwiKTtcbiAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBjb25zdCBib2R5OiB7IGlkcz86IHN0cmluZ1tdOyBsaXN0SWQ/OiBzdHJpbmcgfSA9IGZsYWdzLmlkc1xuICAgICAgPyB7XG4gICAgICAgICAgaWRzOiBmbGFncy5pZHNcbiAgICAgICAgICAgIC5zcGxpdChcIixcIilcbiAgICAgICAgICAgIC5tYXAoKHMpID0+IHMudHJpbSgpKVxuICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgfVxuICAgICAgOiB7IGxpc3RJZDogZmxhZ3MubGlzdCB9O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8eyBjbGVhcmVkOiBudW1iZXIgfT4oXG4gICAgICBcIi9hcGkvY29udGFjdHMvYnVsay1tYXJrLXZhbGlkXCIsXG4gICAgICBib2R5LFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3VsdCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcbiAgICAgIHJlc3VsdC5jbGVhcmVkID09PSAwXG4gICAgICAgID8gXCJObyBmbGFnZ2VkIGNvbnRhY3RzIG1hdGNoZWQgdGhlIHNlbGVjdGlvblwiXG4gICAgICAgIDogYCR7cmVzdWx0LmNsZWFyZWR9IGNvbnRhY3Qke3Jlc3VsdC5jbGVhcmVkID09PSAxID8gXCJcIiA6IFwic1wifSBtYXJrZWQgYXMgdmFsaWRgLFxuICAgICAgeyBDbGVhcmVkOiByZXN1bHQuY2xlYXJlZCB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class ContactsCheckNumbers extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ list: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ force: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
8
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
9
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,41 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { success, json, isJsonMode, info } from "../../lib/output.js";
5
+ export default class ContactsCheckNumbers extends AuthenticatedCommand {
6
+ static description = "Trigger a background carrier lookup across your contacts. Landlines and other non-SMS-capable numbers are auto-excluded from future campaigns. Runs asynchronously — results populate line_type / carrier_name / invalid_reason on affected contacts within a few minutes.";
7
+ static examples = [
8
+ "<%= config.bin %> contacts check-numbers",
9
+ "<%= config.bin %> contacts check-numbers --list lst_xxx",
10
+ "<%= config.bin %> contacts check-numbers --force",
11
+ ];
12
+ static flags = {
13
+ ...AuthenticatedCommand.baseFlags,
14
+ list: Flags.string({
15
+ char: "l",
16
+ description: "Scope the lookup to a single contact list",
17
+ }),
18
+ force: Flags.boolean({
19
+ description: "Re-check contacts even if already looked up",
20
+ default: false,
21
+ }),
22
+ };
23
+ async run() {
24
+ const { flags } = await this.parse(ContactsCheckNumbers);
25
+ const response = await apiClient.post("/api/contacts/lookup", {
26
+ listId: flags.list ?? null,
27
+ force: flags.force,
28
+ });
29
+ if (isJsonMode()) {
30
+ json(response);
31
+ return;
32
+ }
33
+ success("Carrier lookup started", {
34
+ Scope: flags.list ? `list ${flags.list}` : "all un-checked contacts",
35
+ Force: flags.force ? "yes" : "no",
36
+ });
37
+ info(response.message ??
38
+ "Results will appear on contacts within a few minutes. Run `sendly contacts list` to check progress.");
39
+ }
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stbnVtYmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9jb250YWN0cy9jaGVjay1udW1iZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RSxNQUFNLENBQUMsT0FBTyxPQUFPLG9CQUFxQixTQUFRLG9CQUFvQjtJQUNwRSxNQUFNLENBQUMsV0FBVyxHQUNoQiw0UUFBNFEsQ0FBQztJQUUvUSxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDBDQUEwQztRQUMxQyx5REFBeUQ7UUFDekQsa0RBQWtEO0tBQ25ELENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDJDQUEyQztTQUN6RCxDQUFDO1FBQ0YsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDbkIsV0FBVyxFQUFFLDZDQUE2QztZQUMxRCxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFekQsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUdsQyxzQkFBc0IsRUFBRTtZQUN6QixNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJO1lBQzFCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztTQUNuQixDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLENBQUMsd0JBQXdCLEVBQUU7WUFDaEMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7WUFDcEUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNsQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQ0YsUUFBUSxDQUFDLE9BQU87WUFDZCxxR0FBcUcsQ0FDeEcsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQgeyBzdWNjZXNzLCBqc29uLCBpc0pzb25Nb2RlLCBpbmZvIH0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGFjdHNDaGVja051bWJlcnMgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJUcmlnZ2VyIGEgYmFja2dyb3VuZCBjYXJyaWVyIGxvb2t1cCBhY3Jvc3MgeW91ciBjb250YWN0cy4gTGFuZGxpbmVzIGFuZCBvdGhlciBub24tU01TLWNhcGFibGUgbnVtYmVycyBhcmUgYXV0by1leGNsdWRlZCBmcm9tIGZ1dHVyZSBjYW1wYWlnbnMuIFJ1bnMgYXN5bmNocm9ub3VzbHkg4oCUIHJlc3VsdHMgcG9wdWxhdGUgbGluZV90eXBlIC8gY2Fycmllcl9uYW1lIC8gaW52YWxpZF9yZWFzb24gb24gYWZmZWN0ZWQgY29udGFjdHMgd2l0aGluIGEgZmV3IG1pbnV0ZXMuXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY29udGFjdHMgY2hlY2stbnVtYmVyc1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY29udGFjdHMgY2hlY2stbnVtYmVycyAtLWxpc3QgbHN0X3h4eFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY29udGFjdHMgY2hlY2stbnVtYmVycyAtLWZvcmNlXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBsaXN0OiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJsXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJTY29wZSB0aGUgbG9va3VwIHRvIGEgc2luZ2xlIGNvbnRhY3QgbGlzdFwiLFxuICAgIH0pLFxuICAgIGZvcmNlOiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlJlLWNoZWNrIGNvbnRhY3RzIGV2ZW4gaWYgYWxyZWFkeSBsb29rZWQgdXBcIixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKENvbnRhY3RzQ2hlY2tOdW1iZXJzKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8e1xuICAgICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgfT4oXCIvYXBpL2NvbnRhY3RzL2xvb2t1cFwiLCB7XG4gICAgICBsaXN0SWQ6IGZsYWdzLmxpc3QgPz8gbnVsbCxcbiAgICAgIGZvcmNlOiBmbGFncy5mb3JjZSxcbiAgICB9KTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1Y2Nlc3MoXCJDYXJyaWVyIGxvb2t1cCBzdGFydGVkXCIsIHtcbiAgICAgIFNjb3BlOiBmbGFncy5saXN0ID8gYGxpc3QgJHtmbGFncy5saXN0fWAgOiBcImFsbCB1bi1jaGVja2VkIGNvbnRhY3RzXCIsXG4gICAgICBGb3JjZTogZmxhZ3MuZm9yY2UgPyBcInllc1wiIDogXCJub1wiLFxuICAgIH0pO1xuICAgIGluZm8oXG4gICAgICByZXNwb25zZS5tZXNzYWdlID8/XG4gICAgICAgIFwiUmVzdWx0cyB3aWxsIGFwcGVhciBvbiBjb250YWN0cyB3aXRoaW4gYSBmZXcgbWludXRlcy4gUnVuIGBzZW5kbHkgY29udGFjdHMgbGlzdGAgdG8gY2hlY2sgcHJvZ3Jlc3MuXCIsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,13 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class ContactsMarkValid extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ id: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,32 @@
1
+ import { Args } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { success, json, isJsonMode } from "../../lib/output.js";
5
+ export default class ContactsMarkValid extends AuthenticatedCommand {
6
+ static description = "Clear the invalid flag on a contact so future campaigns include it again. Use when you disagree with an auto-exclusion (e.g. the recipient ported from a landline to mobile).";
7
+ static examples = [
8
+ "<%= config.bin %> contacts mark-valid cnt_xxx",
9
+ ];
10
+ static args = {
11
+ id: Args.string({
12
+ description: "Contact ID to clear the invalid flag on",
13
+ required: true,
14
+ }),
15
+ };
16
+ static flags = {
17
+ ...AuthenticatedCommand.baseFlags,
18
+ };
19
+ async run() {
20
+ const { args } = await this.parse(ContactsMarkValid);
21
+ const contact = await apiClient.post(`/api/contacts/${args.id}/mark-valid`);
22
+ if (isJsonMode()) {
23
+ json(contact);
24
+ return;
25
+ }
26
+ success("Contact marked as valid — future campaigns will include it", {
27
+ ID: contact.id,
28
+ Phone: contact.phoneNumber ?? contact.phone_number ?? "—",
29
+ });
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay12YWxpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9jb250YWN0cy9tYXJrLXZhbGlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhFLE1BQU0sQ0FBQyxPQUFPLE9BQU8saUJBQWtCLFNBQVEsb0JBQW9CO0lBQ2pFLE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLCtLQUErSyxDQUFDO0lBRWxMLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsK0NBQStDO0tBQ2hELENBQUM7SUFFRixNQUFNLENBQUMsSUFBSSxHQUFHO1FBQ1osRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDZCxXQUFXLEVBQUUseUNBQXlDO1lBQ3RELFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVyRCxNQUFNLE9BQU8sR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBTWpDLGlCQUFpQixJQUFJLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUUxQyxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2QsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLENBQUMsNERBQTRELEVBQUU7WUFDcEUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ2QsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFlBQVksSUFBSSxHQUFHO1NBQzFELENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7IHN1Y2Nlc3MsIGpzb24sIGlzSnNvbk1vZGUgfSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250YWN0c01hcmtWYWxpZCBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIkNsZWFyIHRoZSBpbnZhbGlkIGZsYWcgb24gYSBjb250YWN0IHNvIGZ1dHVyZSBjYW1wYWlnbnMgaW5jbHVkZSBpdCBhZ2Fpbi4gVXNlIHdoZW4geW91IGRpc2FncmVlIHdpdGggYW4gYXV0by1leGNsdXNpb24gKGUuZy4gdGhlIHJlY2lwaWVudCBwb3J0ZWQgZnJvbSBhIGxhbmRsaW5lIHRvIG1vYmlsZSkuXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY29udGFjdHMgbWFyay12YWxpZCBjbnRfeHh4XCIsXG4gIF07XG5cbiAgc3RhdGljIGFyZ3MgPSB7XG4gICAgaWQ6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkNvbnRhY3QgSUQgdG8gY2xlYXIgdGhlIGludmFsaWQgZmxhZyBvblwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhcmdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKENvbnRhY3RzTWFya1ZhbGlkKTtcblxuICAgIGNvbnN0IGNvbnRhY3QgPSBhd2FpdCBhcGlDbGllbnQucG9zdDx7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgcGhvbmVOdW1iZXI/OiBzdHJpbmc7XG4gICAgICBwaG9uZV9udW1iZXI/OiBzdHJpbmc7XG4gICAgICBpbnZhbGlkUmVhc29uPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIGludmFsaWRfcmVhc29uPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9PihgL2FwaS9jb250YWN0cy8ke2FyZ3MuaWR9L21hcmstdmFsaWRgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24oY29udGFjdCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcIkNvbnRhY3QgbWFya2VkIGFzIHZhbGlkIOKAlCBmdXR1cmUgY2FtcGFpZ25zIHdpbGwgaW5jbHVkZSBpdFwiLCB7XG4gICAgICBJRDogY29udGFjdC5pZCxcbiAgICAgIFBob25lOiBjb250YWN0LnBob25lTnVtYmVyID8/IGNvbnRhY3QucGhvbmVfbnVtYmVyID8/IFwi4oCUXCIsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -4,8 +4,6 @@ export default class VerifyList extends AuthenticatedCommand {
4
4
  static examples: string[];
5
5
  static flags: {
6
6
  limit: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
- page: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
- offset: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
7
  status: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
8
  json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
11
9
  quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
@@ -6,8 +6,7 @@ export default class VerifyList extends AuthenticatedCommand {
6
6
  static description = "List recent verifications";
7
7
  static examples = [
8
8
  "<%= config.bin %> verify list",
9
- "<%= config.bin %> verify list --limit 10",
10
- "<%= config.bin %> verify list --page 2",
9
+ "<%= config.bin %> verify list --limit 50",
11
10
  "<%= config.bin %> verify list --status verified",
12
11
  "<%= config.bin %> verify list --json",
13
12
  ];
@@ -15,16 +14,9 @@ export default class VerifyList extends AuthenticatedCommand {
15
14
  ...AuthenticatedCommand.baseFlags,
16
15
  limit: Flags.integer({
17
16
  char: "l",
18
- description: "Number of verifications per page",
17
+ description: "Number of verifications to fetch (max 100)",
19
18
  default: 20,
20
19
  }),
21
- page: Flags.integer({
22
- char: "p",
23
- description: "Page number (starts at 1)",
24
- }),
25
- offset: Flags.integer({
26
- description: "Offset from start (alternative to --page)",
27
- }),
28
20
  status: Flags.string({
29
21
  char: "s",
30
22
  description: "Filter by status (pending, verified, expired, failed)",
@@ -39,8 +31,6 @@ export default class VerifyList extends AuthenticatedCommand {
39
31
  try {
40
32
  const response = await apiClient.get("/api/v1/verify", {
41
33
  limit: flags.limit,
42
- ...(flags.page && { page: flags.page }),
43
- ...(flags.offset && { offset: flags.offset }),
44
34
  ...(flags.status && { status: flags.status }),
45
35
  });
46
36
  listSpinner.stop();
@@ -54,13 +44,11 @@ export default class VerifyList extends AuthenticatedCommand {
54
44
  return;
55
45
  }
56
46
  const pagination = response.pagination || {
57
- total: response.verifications.length,
58
- page: 1,
59
- totalPages: 1,
60
- hasMore: false,
47
+ limit: response.verifications.length,
48
+ has_more: false,
61
49
  };
62
50
  console.log();
63
- console.log(colors.dim(`Showing ${response.verifications.length} verifications (page ${pagination.page} of ${pagination.totalPages}, ${pagination.total} total)`));
51
+ console.log(colors.dim(`Showing ${response.verifications.length} verifications${pagination.has_more ? " (more available)" : ""}`));
64
52
  console.log();
65
53
  const statusColor = (status) => {
66
54
  switch (status) {
@@ -86,9 +74,9 @@ export default class VerifyList extends AuthenticatedCommand {
86
74
  { header: "Sandbox", key: "sandbox", width: 8, formatter: (v) => v ? colors.dim("yes") : "" },
87
75
  { header: "Created", key: "created_at", width: 20, formatter: (v) => new Date(String(v)).toLocaleString() },
88
76
  ]);
89
- if (pagination.hasMore) {
77
+ if (pagination.has_more) {
90
78
  console.log();
91
- console.log(colors.dim(` Use ${colors.code(`--page ${pagination.page + 1}`)} to see more`));
79
+ console.log(colors.dim(` Use ${colors.code(`--limit ${pagination.limit + 20}`)} to see more`));
92
80
  }
93
81
  }
94
82
  catch (err) {
@@ -97,4 +85,4 @@ export default class VerifyList extends AuthenticatedCommand {
97
85
  }
98
86
  }
99
87
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy92ZXJpZnkvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBNkIvRSxNQUFNLENBQUMsT0FBTyxPQUFPLFVBQVcsU0FBUSxvQkFBb0I7SUFDMUQsTUFBTSxDQUFDLFdBQVcsR0FBRywyQkFBMkIsQ0FBQztJQUVqRCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLCtCQUErQjtRQUMvQiwwQ0FBMEM7UUFDMUMsd0NBQXdDO1FBQ3hDLGlEQUFpRDtRQUNqRCxzQ0FBc0M7S0FDdkMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDbkIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsa0NBQWtDO1lBQy9DLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztRQUNGLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2xCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDJCQUEyQjtTQUN6QyxDQUFDO1FBQ0YsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDcEIsV0FBVyxFQUFFLDJDQUEyQztTQUN6RCxDQUFDO1FBQ0YsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbkIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFX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QUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTthQUM1RyxDQUFDLENBQUM7WUFFSCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsTUFBTSxDQUFDLEdBQUcsQ0FDUixTQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FDcEUsQ0FDRixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHsganNvbiwgY29sb3JzLCBzcGlubmVyLCBpc0pzb25Nb2RlLCB0YWJsZSB9IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBWZXJpZmljYXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgcGhvbmU6IHN0cmluZztcbiAgZGVsaXZlcnlfc3RhdHVzOiBzdHJpbmc7XG4gIGF0dGVtcHRzOiBudW1iZXI7XG4gIG1heF9hdHRlbXB0czogbnVtYmVyO1xuICBleHBpcmVzX2F0OiBzdHJpbmc7XG4gIHZlcmlmaWVkX2F0OiBzdHJpbmcgfCBudWxsO1xuICBjcmVhdGVkX2F0OiBzdHJpbmc7XG4gIHNhbmRib3g6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBQYWdpbmF0aW9uIHtcbiAgdG90YWw6IG51bWJlcjtcbiAgbGltaXQ6IG51bWJlcjtcbiAgb2Zmc2V0OiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbiAgdG90YWxQYWdlczogbnVtYmVyO1xuICBoYXNNb3JlOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgTGlzdFJlc3BvbnNlIHtcbiAgdmVyaWZpY2F0aW9uczogVmVyaWZpY2F0aW9uW107XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlcmlmeUxpc3QgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiTGlzdCByZWNlbnQgdmVyaWZpY2F0aW9uc1wiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHZlcmlmeSBsaXN0XCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB2ZXJpZnkgbGlzdCAtLWxpbWl0IDEwXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB2ZXJpZnkgbGlzdCAtLXBhZ2UgMlwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdmVyaWZ5IGxpc3QgLS1zdGF0dXMgdmVyaWZpZWRcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHZlcmlmeSBsaXN0IC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgbGltaXQ6IEZsYWdzLmludGVnZXIoe1xuICAgICAgY2hhcjogXCJsXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJOdW1iZXIgb2YgdmVyaWZpY2F0aW9ucyBwZXIgcGFnZVwiLFxuICAgICAgZGVmYXVsdDogMjAsXG4gICAgfSksXG4gICAgcGFnZTogRmxhZ3MuaW50ZWdlcih7XG4gICAgICBjaGFyOiBcInBcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlBhZ2UgbnVtYmVyIChzdGFydHMgYXQgMSlcIixcbiAgICB9KSxcbiAgICBvZmZzZXQ6IEZsYWdzLmludGVnZXIoe1xuICAgICAgZGVzY3JpcHRpb246IFwiT2Zmc2V0IGZyb20gc3RhcnQgKGFsdGVybmF0aXZlIHRvIC0tcGFnZSlcIixcbiAgICB9KSxcbiAgICBzdGF0dXM6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcInNcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkZpbHRlciBieSBzdGF0dXMgKHBlbmRpbmcsIHZlcmlmaWVkLCBleHBpcmVkLCBmYWlsZWQpXCIsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoVmVyaWZ5TGlzdCk7XG5cbiAgICBjb25zdCBsaXN0U3Bpbm5lciA9IHNwaW5uZXIoXCJGZXRjaGluZyB2ZXJpZmljYXRpb25zLi4uXCIpO1xuXG4gICAgaWYgKCFpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGxpc3RTcGlubmVyLnN0YXJ0KCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LmdldDxMaXN0UmVzcG9uc2U+KFwiL2FwaS92MS92ZXJpZnlcIiwge1xuICAgICAgICBsaW1pdDogZmxhZ3MubGltaXQsXG4gICAgICAgIC4uLihmbGFncy5wYWdlICYmIHsgcGFnZTogZmxhZ3MucGFnZSB9KSxcbiAgICAgICAgLi4uKGZsYWdzLm9mZnNldCAmJiB7IG9mZnNldDogZmxhZ3Mub2Zmc2V0IH0pLFxuICAgICAgICAuLi4oZmxhZ3Muc3RhdHVzICYmIHsgc3RhdHVzOiBmbGFncy5zdGF0dXMgfSksXG4gICAgICB9KTtcblxuICAgICAgbGlzdFNwaW5uZXIuc3RvcCgpO1xuXG4gICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNwb25zZS52ZXJpZmljYXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwiTm8gdmVyaWZpY2F0aW9ucyBmb3VuZC5cIikpO1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgICAgYFNlbmQgb25lIHdpdGg6ICR7Y29sb3JzLmNvZGUoJ3NlbmRseSB2ZXJpZnkgc2VuZCAtLXRvIFwiKzEyMzQ1Njc4OTBcIicpfWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYWdpbmF0aW9uID0gcmVzcG9uc2UucGFnaW5hdGlvbiB8fCB7XG4gICAgICAgIHRvdGFsOiByZXNwb25zZS52ZXJpZmljYXRpb25zLmxlbmd0aCxcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgdG90YWxQYWdlczogMSxcbiAgICAgICAgaGFzTW9yZTogZmFsc2UsXG4gICAgICB9O1xuXG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGNvbG9ycy5kaW0oXG4gICAgICAgICAgYFNob3dpbmcgJHtyZXNwb25zZS52ZXJpZmljYXRpb25zLmxlbmd0aH0gdmVyaWZpY2F0aW9ucyAocGFnZSAke3BhZ2luYXRpb24ucGFnZX0gb2YgJHtwYWdpbmF0aW9uLnRvdGFsUGFnZXN9LCAke3BhZ2luYXRpb24udG90YWx9IHRvdGFsKWAsXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgY29uc29sZS5sb2coKTtcblxuICAgICAgY29uc3Qgc3RhdHVzQ29sb3IgPSAoc3RhdHVzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgICAgICBjYXNlIFwidmVyaWZpZWRcIjpcbiAgICAgICAgICAgIHJldHVybiBjb2xvcnMuc3VjY2VzcyhzdGF0dXMpO1xuICAgICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgICAgICByZXR1cm4gY29sb3JzLnByaW1hcnkoc3RhdHVzKTtcbiAgICAgICAgICBjYXNlIFwiZXhwaXJlZFwiOlxuICAgICAgICAgICAgcmV0dXJuIGNvbG9ycy5kaW0oc3RhdHVzKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGNvbG9ycy5lcnJvcihzdGF0dXMpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCByb3dzID0gcmVzcG9uc2UudmVyaWZpY2F0aW9ucy5tYXAoKHYpID0+ICh7XG4gICAgICAgIC4uLnYsXG4gICAgICAgIGF0dGVtcHRzRGlzcGxheTogYCR7di5hdHRlbXB0c30vJHt2Lm1heF9hdHRlbXB0c31gLFxuICAgICAgfSkpO1xuXG4gICAgICB0YWJsZShyb3dzLCBbXG4gICAgICAgIHsgaGVhZGVyOiBcIklEXCIsIGtleTogXCJpZFwiLCB3aWR0aDogMjAsIGZvcm1hdHRlcjogKHYpID0+IGNvbG9ycy5jb2RlKFN0cmluZyh2KS5zbGljZSgwLCAxNikgKyBcIi4uLlwiKSB9LFxuICAgICAgICB7IGhlYWRlcjogXCJQaG9uZVwiLCBrZXk6IFwicGhvbmVcIiwgd2lkdGg6IDE2IH0sXG4gICAgICAgIHsgaGVhZGVyOiBcIlN0YXR1c1wiLCBrZXk6IFwic3RhdHVzXCIsIHdpZHRoOiAxMiwgZm9ybWF0dGVyOiAodikgPT4gc3RhdHVzQ29sb3IoU3RyaW5nKHYpKSB9LFxuICAgICAgICB7IGhlYWRlcjogXCJBdHRlbXB0c1wiLCBrZXk6IFwiYXR0ZW1wdHNEaXNwbGF5XCIsIHdpZHRoOiAxMCB9LFxuICAgICAgICB7IGhlYWRlcjogXCJTYW5kYm94XCIsIGtleTogXCJzYW5kYm94XCIsIHdpZHRoOiA4LCBmb3JtYXR0ZXI6ICh2KSA9PiB2ID8gY29sb3JzLmRpbShcInllc1wiKSA6IFwiXCIgfSxcbiAgICAgICAgeyBoZWFkZXI6IFwiQ3JlYXRlZFwiLCBrZXk6IFwiY3JlYXRlZF9hdFwiLCB3aWR0aDogMjAsIGZvcm1hdHRlcjogKHYpID0+IG5ldyBEYXRlKFN0cmluZyh2KSkudG9Mb2NhbGVTdHJpbmcoKSB9LFxuICAgICAgXSk7XG5cbiAgICAgIGlmIChwYWdpbmF0aW9uLmhhc01vcmUpIHtcbiAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgICAgIGAgIFVzZSAke2NvbG9ycy5jb2RlKGAtLXBhZ2UgJHtwYWdpbmF0aW9uLnBhZ2UgKyAxfWApfSB0byBzZWUgbW9yZWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgbGlzdFNwaW5uZXIuc3RvcCgpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxufVxuIl19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy92ZXJpZnkvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBNEIvRSxNQUFNLENBQUMsT0FBTyxPQUFPLFVBQVcsU0FBUSxvQkFBb0I7SUFDMUQsTUFBTSxDQUFDLFdBQVcsR0FBRywyQkFBMkIsQ0FBQztJQUVqRCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLCtCQUErQjtRQUMvQiwwQ0FBMEM7UUFDMUMsaURBQWlEO1FBQ2pELHNDQUFzQztLQUN2QyxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNuQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSw0Q0FBNEM7WUFDekQsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBQ0YsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbkIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsdURBQXVEO1NBQ3JFLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRS9DLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFD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Q29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQgeyBqc29uLCBjb2xvcnMsIHNwaW5uZXIsIGlzSnNvbk1vZGUsIHRhYmxlIH0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIFZlcmlmaWNhdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBwaG9uZTogc3RyaW5nO1xuICBkZWxpdmVyeV9zdGF0dXM6IHN0cmluZztcbiAgYXR0ZW1wdHM6IG51bWJlcjtcbiAgbWF4X2F0dGVtcHRzOiBudW1iZXI7XG4gIGV4cGlyZXNfYXQ6IHN0cmluZztcbiAgdmVyaWZpZWRfYXQ6IHN0cmluZyB8IG51bGw7XG4gIGNyZWF0ZWRfYXQ6IHN0cmluZztcbiAgc2FuZGJveDogYm9vbGVhbjtcbiAgYXBwX25hbWU/OiBzdHJpbmc7XG4gIHRlbXBsYXRlX2lkPzogc3RyaW5nO1xuICBwcm9maWxlX2lkPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUGFnaW5hdGlvbiB7XG4gIGxpbWl0OiBudW1iZXI7XG4gIGhhc19tb3JlOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgTGlzdFJlc3BvbnNlIHtcbiAgdmVyaWZpY2F0aW9uczogVmVyaWZpY2F0aW9uW107XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlcmlmeUxpc3QgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiTGlzdCByZWNlbnQgdmVyaWZpY2F0aW9uc1wiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHZlcmlmeSBsaXN0XCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB2ZXJpZnkgbGlzdCAtLWxpbWl0IDUwXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB2ZXJpZnkgbGlzdCAtLXN0YXR1cyB2ZXJpZmllZFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdmVyaWZ5IGxpc3QgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBsaW1pdDogRmxhZ3MuaW50ZWdlcih7XG4gICAgICBjaGFyOiBcImxcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk51bWJlciBvZiB2ZXJpZmljYXRpb25zIHRvIGZldGNoIChtYXggMTAwKVwiLFxuICAgICAgZGVmYXVsdDogMjAsXG4gICAgfSksXG4gICAgc3RhdHVzOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJzXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJGaWx0ZXIgYnkgc3RhdHVzIChwZW5kaW5nLCB2ZXJpZmllZCwgZXhwaXJlZCwgZmFpbGVkKVwiLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKFZlcmlmeUxpc3QpO1xuXG4gICAgY29uc3QgbGlzdFNwaW5uZXIgPSBzcGlubmVyKFwiRmV0Y2hpbmcgdmVyaWZpY2F0aW9ucy4uLlwiKTtcblxuICAgIGlmICghaXNKc29uTW9kZSgpKSB7XG4gICAgICBsaXN0U3Bpbm5lci5zdGFydCgpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8TGlzdFJlc3BvbnNlPihcIi9hcGkvdjEvdmVyaWZ5XCIsIHtcbiAgICAgICAgbGltaXQ6IGZsYWdzLmxpbWl0LFxuICAgICAgICAuLi4oZmxhZ3Muc3RhdHVzICYmIHsgc3RhdHVzOiBmbGFncy5zdGF0dXMgfSksXG4gICAgICB9KTtcblxuICAgICAgbGlzdFNwaW5uZXIuc3RvcCgpO1xuXG4gICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNwb25zZS52ZXJpZmljYXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwiTm8gdmVyaWZpY2F0aW9ucyBmb3VuZC5cIikpO1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgICAgYFNlbmQgb25lIHdpdGg6ICR7Y29sb3JzLmNvZGUoJ3NlbmRseSB2ZXJpZnkgc2VuZCAtLXRvIFwiKzEyMzQ1Njc4OTBcIicpfWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYWdpbmF0aW9uID0gcmVzcG9uc2UucGFnaW5hdGlvbiB8fCB7XG4gICAgICAgIGxpbWl0OiByZXNwb25zZS52ZXJpZmljYXRpb25zLmxlbmd0aCxcbiAgICAgICAgaGFzX21vcmU6IGZhbHNlLFxuICAgICAgfTtcblxuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgIGBTaG93aW5nICR7cmVzcG9uc2UudmVyaWZpY2F0aW9ucy5sZW5ndGh9IHZlcmlmaWNhdGlvbnMke3BhZ2luYXRpb24uaGFzX21vcmUgPyBcIiAobW9yZSBhdmFpbGFibGUpXCIgOiBcIlwifWAsXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgY29uc29sZS5sb2coKTtcblxuICAgICAgY29uc3Qgc3RhdHVzQ29sb3IgPSAoc3RhdHVzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgICAgICBjYXNlIFwidmVyaWZpZWRcIjpcbiAgICAgICAgICAgIHJldHVybiBjb2xvcnMuc3VjY2VzcyhzdGF0dXMpO1xuICAgICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgICAgICByZXR1cm4gY29sb3JzLnByaW1hcnkoc3RhdHVzKTtcbiAgICAgICAgICBjYXNlIFwiZXhwaXJlZFwiOlxuICAgICAgICAgICAgcmV0dXJuIGNvbG9ycy5kaW0oc3RhdHVzKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGNvbG9ycy5lcnJvcihzdGF0dXMpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCByb3dzID0gcmVzcG9uc2UudmVyaWZpY2F0aW9ucy5tYXAoKHYpID0+ICh7XG4gICAgICAgIC4uLnYsXG4gICAgICAgIGF0dGVtcHRzRGlzcGxheTogYCR7di5hdHRlbXB0c30vJHt2Lm1heF9hdHRlbXB0c31gLFxuICAgICAgfSkpO1xuXG4gICAgICB0YWJsZShyb3dzLCBbXG4gICAgICAgIHsgaGVhZGVyOiBcIklEXCIsIGtleTogXCJpZFwiLCB3aWR0aDogMjAsIGZvcm1hdHRlcjogKHYpID0+IGNvbG9ycy5jb2RlKFN0cmluZyh2KS5zbGljZSgwLCAxNikgKyBcIi4uLlwiKSB9LFxuICAgICAgICB7IGhlYWRlcjogXCJQaG9uZVwiLCBrZXk6IFwicGhvbmVcIiwgd2lkdGg6IDE2IH0sXG4gICAgICAgIHsgaGVhZGVyOiBcIlN0YXR1c1wiLCBrZXk6IFwic3RhdHVzXCIsIHdpZHRoOiAxMiwgZm9ybWF0dGVyOiAodikgPT4gc3RhdHVzQ29sb3IoU3RyaW5nKHYpKSB9LFxuICAgICAgICB7IGhlYWRlcjogXCJBdHRlbXB0c1wiLCBrZXk6IFwiYXR0ZW1wdHNEaXNwbGF5XCIsIHdpZHRoOiAxMCB9LFxuICAgICAgICB7IGhlYWRlcjogXCJTYW5kYm94XCIsIGtleTogXCJzYW5kYm94XCIsIHdpZHRoOiA4LCBmb3JtYXR0ZXI6ICh2KSA9PiB2ID8gY29sb3JzLmRpbShcInllc1wiKSA6IFwiXCIgfSxcbiAgICAgICAgeyBoZWFkZXI6IFwiQ3JlYXRlZFwiLCBrZXk6IFwiY3JlYXRlZF9hdFwiLCB3aWR0aDogMjAsIGZvcm1hdHRlcjogKHYpID0+IG5ldyBEYXRlKFN0cmluZyh2KSkudG9Mb2NhbGVTdHJpbmcoKSB9LFxuICAgICAgXSk7XG5cbiAgICAgIGlmIChwYWdpbmF0aW9uLmhhc19tb3JlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGNvbG9ycy5kaW0oXG4gICAgICAgICAgICBgICBVc2UgJHtjb2xvcnMuY29kZShgLS1saW1pdCAke3BhZ2luYXRpb24ubGltaXQgKyAyMH1gKX0gdG8gc2VlIG1vcmVgLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGxpc3RTcGlubmVyLnN0b3AoKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -54,4 +54,4 @@ export default class VerifyStatus extends AuthenticatedCommand {
54
54
  }
55
55
  }
56
56
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3ZlcmlmeS9zdGF0dXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWVqRixNQUFNLENBQUMsT0FBTyxPQUFPLFlBQWEsU0FBUSxvQkFBb0I7SUFDNUQsTUFBTSxDQUFDLFdBQVcsR0FBRyx5QkFBeUIsQ0FBQztJQUUvQyxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLHlDQUF5QztRQUN6QyxnREFBZ0Q7S0FDakQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNkLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7S0FDbEMsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVoRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUVqRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNsQixhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDbEMsa0JBQWtCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FDNUIsQ0FBQztZQUVGLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVyQixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDZixPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sV0FBVyxHQUNmLFFBQVEsQ0FBQyxNQUFNLEtBQUssVUFBVTtnQkFDNUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPO2dCQUNoQixDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxTQUFTO29CQUM3QixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU87b0JBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBRXJCLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRTtnQkFDN0IsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3JCLE1BQU0sRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDcEMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGVBQWU7Z0JBQzNDLFFBQVEsRUFBRSxHQUFHLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRTtnQkFDekQsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxjQUFjLEVBQUU7Z0JBQzVELEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJO29CQUMxQixhQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsRUFBRTtpQkFDL0QsQ0FBQztnQkFDRixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTthQUNyRCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztZQUNsQixhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHsgc3VjY2VzcywganNvbiwgY29sb3JzLCBzcGlubmVyLCBpc0pzb25Nb2RlIH0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIFN0YXR1c1Jlc3BvbnNlIHtcbiAgaWQ6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHBob25lOiBzdHJpbmc7XG4gIGRlbGl2ZXJ5X3N0YXR1czogc3RyaW5nO1xuICBhdHRlbXB0czogbnVtYmVyO1xuICBtYXhfYXR0ZW1wdHM6IG51bWJlcjtcbiAgZXhwaXJlc19hdDogc3RyaW5nO1xuICB2ZXJpZmllZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgY3JlYXRlZF9hdDogc3RyaW5nO1xuICBzYW5kYm94OiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZXJpZnlTdGF0dXMgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiR2V0IHZlcmlmaWNhdGlvbiBzdGF0dXNcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB2ZXJpZnkgc3RhdHVzIHZlcl94eHhcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHZlcmlmeSBzdGF0dXMgdmVyX3h4eCAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICBpZDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiVmVyaWZpY2F0aW9uIElEXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGFyZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoVmVyaWZ5U3RhdHVzKTtcblxuICAgIGNvbnN0IHN0YXR1c1NwaW5uZXIgPSBzcGlubmVyKFwiRmV0Y2hpbmcgdmVyaWZpY2F0aW9uIHN0YXR1cy4uLlwiKTtcblxuICAgIGlmICghaXNKc29uTW9kZSgpKSB7XG4gICAgICBzdGF0dXNTcGlubmVyLnN0YXJ0KCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LmdldDxTdGF0dXNSZXNwb25zZT4oXG4gICAgICAgIGAvYXBpL3YxL3ZlcmlmeS8ke2FyZ3MuaWR9YCxcbiAgICAgICk7XG5cbiAgICAgIHN0YXR1c1NwaW5uZXIuc3RvcCgpO1xuXG4gICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YXR1c0NvbG9yID1cbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID09PSBcInZlcmlmaWVkXCJcbiAgICAgICAgICA/IGNvbG9ycy5zdWNjZXNzXG4gICAgICAgICAgOiByZXNwb25zZS5zdGF0dXMgPT09IFwicGVuZGluZ1wiXG4gICAgICAgICAgICA/IGNvbG9ycy5wcmltYXJ5XG4gICAgICAgICAgICA6IGNvbG9ycy5lcnJvcjtcblxuICAgICAgc3VjY2VzcyhcIlZlcmlmaWNhdGlvbiBzdGF0dXNcIiwge1xuICAgICAgICBcIlZlcmlmaWNhdGlvbiBJRFwiOiBjb2xvcnMuY29kZShyZXNwb25zZS5pZCksXG4gICAgICAgIFBob25lOiByZXNwb25zZS5waG9uZSxcbiAgICAgICAgU3RhdHVzOiBzdGF0dXNDb2xvcihyZXNwb25zZS5zdGF0dXMpLFxuICAgICAgICBcIkRlbGl2ZXJ5IFN0YXR1c1wiOiByZXNwb25zZS5kZWxpdmVyeV9zdGF0dXMsXG4gICAgICAgIEF0dGVtcHRzOiBgJHtyZXNwb25zZS5hdHRlbXB0c30vJHtyZXNwb25zZS5tYXhfYXR0ZW1wdHN9YCxcbiAgICAgICAgXCJFeHBpcmVzIEF0XCI6IG5ldyBEYXRlKHJlc3BvbnNlLmV4cGlyZXNfYXQpLnRvTG9jYWxlU3RyaW5nKCksXG4gICAgICAgIC4uLihyZXNwb25zZS52ZXJpZmllZF9hdCAmJiB7XG4gICAgICAgICAgXCJWZXJpZmllZCBBdFwiOiBuZXcgRGF0ZShyZXNwb25zZS52ZXJpZmllZF9hdCkudG9Mb2NhbGVTdHJpbmcoKSxcbiAgICAgICAgfSksXG4gICAgICAgIFNhbmRib3g6IHJlc3BvbnNlLnNhbmRib3ggPyBjb2xvcnMuZGltKFwieWVzXCIpIDogXCJub1wiLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIHN0YXR1c1NwaW5uZXIuc3RvcCgpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxufVxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3ZlcmlmeS9zdGF0dXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWtCakYsTUFBTSxDQUFDLE9BQU8sT0FBTyxZQUFhLFNBQVEsb0JBQW9CO0lBQzVELE1BQU0sQ0FBQyxXQUFXLEdBQUcseUJBQXlCLENBQUM7SUFFL0MsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQix5Q0FBeUM7UUFDekMsZ0RBQWdEO0tBQ2pELENBQUM7SUFFRixNQUFNLENBQUMsSUFBSSxHQUFHO1FBQ1osRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDZCxXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFaEQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDbEIsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQ2xDLGtCQUFrQixJQUFJLENBQUMsRUFBRSxFQUFFLENBQzVCLENBQUM7WUFFRixhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFckIsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2YsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLFdBQVcsR0FDZixRQUFRLENBQUMsTUFBTSxLQUFLLFVBQVU7Z0JBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTztnQkFDaEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssU0FBUztvQkFDN0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPO29CQUNoQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUVyQixPQUFPLENBQUMscUJBQXFCLEVBQUU7Z0JBQzdCLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO2dCQUNyQixNQUFNLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3BDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxlQUFlO2dCQUMzQyxRQUFRLEVBQUUsR0FBRyxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxZQUFZLEVBQUU7Z0JBQ3pELFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsY0FBYyxFQUFFO2dCQUM1RCxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSTtvQkFDMUIsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxjQUFjLEVBQUU7aUJBQy9ELENBQUM7Z0JBQ0YsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDckQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7WUFDbEIsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7IHN1Y2Nlc3MsIGpzb24sIGNvbG9ycywgc3Bpbm5lciwgaXNKc29uTW9kZSB9IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBTdGF0dXNSZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBwaG9uZTogc3RyaW5nO1xuICBkZWxpdmVyeV9zdGF0dXM6IHN0cmluZztcbiAgYXR0ZW1wdHM6IG51bWJlcjtcbiAgbWF4X2F0dGVtcHRzOiBudW1iZXI7XG4gIGV4cGlyZXNfYXQ6IHN0cmluZztcbiAgdmVyaWZpZWRfYXQ6IHN0cmluZyB8IG51bGw7XG4gIGNyZWF0ZWRfYXQ6IHN0cmluZztcbiAgc2FuZGJveDogYm9vbGVhbjtcbiAgYXBwX25hbWU/OiBzdHJpbmc7XG4gIHRlbXBsYXRlX2lkPzogc3RyaW5nO1xuICBwcm9maWxlX2lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZXJpZnlTdGF0dXMgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiR2V0IHZlcmlmaWNhdGlvbiBzdGF0dXNcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB2ZXJpZnkgc3RhdHVzIHZlcl94eHhcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHZlcmlmeSBzdGF0dXMgdmVyX3h4eCAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICBpZDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiVmVyaWZpY2F0aW9uIElEXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGFyZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoVmVyaWZ5U3RhdHVzKTtcblxuICAgIGNvbnN0IHN0YXR1c1NwaW5uZXIgPSBzcGlubmVyKFwiRmV0Y2hpbmcgdmVyaWZpY2F0aW9uIHN0YXR1cy4uLlwiKTtcblxuICAgIGlmICghaXNKc29uTW9kZSgpKSB7XG4gICAgICBzdGF0dXNTcGlubmVyLnN0YXJ0KCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LmdldDxTdGF0dXNSZXNwb25zZT4oXG4gICAgICAgIGAvYXBpL3YxL3ZlcmlmeS8ke2FyZ3MuaWR9YCxcbiAgICAgICk7XG5cbiAgICAgIHN0YXR1c1NwaW5uZXIuc3RvcCgpO1xuXG4gICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YXR1c0NvbG9yID1cbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID09PSBcInZlcmlmaWVkXCJcbiAgICAgICAgICA/IGNvbG9ycy5zdWNjZXNzXG4gICAgICAgICAgOiByZXNwb25zZS5zdGF0dXMgPT09IFwicGVuZGluZ1wiXG4gICAgICAgICAgICA/IGNvbG9ycy5wcmltYXJ5XG4gICAgICAgICAgICA6IGNvbG9ycy5lcnJvcjtcblxuICAgICAgc3VjY2VzcyhcIlZlcmlmaWNhdGlvbiBzdGF0dXNcIiwge1xuICAgICAgICBcIlZlcmlmaWNhdGlvbiBJRFwiOiBjb2xvcnMuY29kZShyZXNwb25zZS5pZCksXG4gICAgICAgIFBob25lOiByZXNwb25zZS5waG9uZSxcbiAgICAgICAgU3RhdHVzOiBzdGF0dXNDb2xvcihyZXNwb25zZS5zdGF0dXMpLFxuICAgICAgICBcIkRlbGl2ZXJ5IFN0YXR1c1wiOiByZXNwb25zZS5kZWxpdmVyeV9zdGF0dXMsXG4gICAgICAgIEF0dGVtcHRzOiBgJHtyZXNwb25zZS5hdHRlbXB0c30vJHtyZXNwb25zZS5tYXhfYXR0ZW1wdHN9YCxcbiAgICAgICAgXCJFeHBpcmVzIEF0XCI6IG5ldyBEYXRlKHJlc3BvbnNlLmV4cGlyZXNfYXQpLnRvTG9jYWxlU3RyaW5nKCksXG4gICAgICAgIC4uLihyZXNwb25zZS52ZXJpZmllZF9hdCAmJiB7XG4gICAgICAgICAgXCJWZXJpZmllZCBBdFwiOiBuZXcgRGF0ZShyZXNwb25zZS52ZXJpZmllZF9hdCkudG9Mb2NhbGVTdHJpbmcoKSxcbiAgICAgICAgfSksXG4gICAgICAgIFNhbmRib3g6IHJlc3BvbnNlLnNhbmRib3ggPyBjb2xvcnMuZGltKFwieWVzXCIpIDogXCJub1wiLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIHN0YXR1c1NwaW5uZXIuc3RvcCgpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -20,8 +20,8 @@ export default class WebhooksListen extends AuthenticatedCommand {
20
20
  }),
21
21
  events: Flags.string({
22
22
  char: "e",
23
- description: "Comma-separated list of events to listen for",
24
- default: "message.sent,message.delivered,message.failed,message.bounced,message.retrying",
23
+ description: "Comma-separated list of events to listen for. Default subscribes to all message.* and contact.* / contacts.* events so nothing is missed during local dev.",
24
+ default: "message.sent,message.delivered,message.failed,message.bounced,message.retrying,message.received,message.opt_out,message.opt_in,contact.auto_flagged,contact.marked_valid,contacts.lookup_completed,contacts.bulk_marked_valid",
25
25
  }),
26
26
  };
27
27
  ws = null;
@@ -208,4 +208,4 @@ export default class WebhooksListen extends AuthenticatedCommand {
208
208
  }
209
209
  }
210
210
  }
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3dlYmhvb2tzL2xpc3Rlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBRUwsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sU0FBUyxNQUFNLElBQUksQ0FBQztBQUMzQixPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQztBQStCdEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBQzlELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGlIQUFpSCxDQUFDO0lBRXBILE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsbUNBQW1DO1FBQ25DLDJFQUEyRTtRQUMzRSw2RUFBNkU7S0FDOUUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsZ0NBQWdDO1lBQzdDLE9BQU8sRUFBRSwrQkFBK0I7U0FDekMsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDhDQUE4QztZQUMzRCxPQUFPLEVBQUUsZ0ZBQWdGO1NBQzFGLENBQUM7S0FDSCxDQUFDO0lBRU0sRUFBRSxHQUFxQixJQUFJLENBQUM7SUFDNUIsU0FBUyxHQUFrQixJQUFJLENB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TSxHQUFHLENBQzNFLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLG9CQUFvQixRQUFRLENBQUMsTUFBTSxHQUFHLENBQzdELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsR0FBRyxDQUNULEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsbUJBQW9CLEdBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FDbEUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPO1FBQ25CLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDakIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQztnQkFDSCxNQUFNLFNBQVMsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1Asd0JBQXdCO1lBQzFCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGVycm9yLFxuICBpbmZvLFxuICB3YXJuLFxuICBjb2xvcnMsXG4gIHNwaW5uZXIsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgeyBnZXRDb25maWdWYWx1ZSB9IGZyb20gXCIuLi8uLi9saWIvY29uZmlnLmpzXCI7XG5pbXBvcnQgV2ViU29ja2V0IGZyb20gXCJ3c1wiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gXCJub2RlOmNyeXB0b1wiO1xuXG5pbnRlcmZhY2UgV2ViaG9va0V2ZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBhcGlfdmVyc2lvbjogc3RyaW5nO1xuICBjcmVhdGVkOiBudW1iZXI7XG4gIGxpdmVtb2RlOiBib29sZWFuO1xuICBkYXRhOiB7XG4gICAgb2JqZWN0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFdlYlNvY2tldE1lc3NhZ2Uge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRpbWVzdGFtcD86IG51bWJlcjtcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xuICBldmVudD86IFdlYmhvb2tFdmVudDtcbiAgc2Vzc2lvbklkPzogc3RyaW5nO1xuICBldmVudHM/OiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIExpc3RlblN0YXJ0UmVzcG9uc2Uge1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgd3NUb2tlbjogc3RyaW5nO1xuICBzZWNyZXQ6IHN0cmluZztcbiAgd3NVcmw6IHN0cmluZztcbiAgZXZlbnRzOiBzdHJpbmdbXTtcbiAgZm9yd2FyZFVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXZWJob29rc0xpc3RlbiBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIkxpc3RlbiBmb3Igd2ViaG9va3MgbG9jYWxseS4gUmVjZWl2ZXMgZXZlbnRzIGluIHJlYWwtdGltZSB2aWEgV2ViU29ja2V0IGFuZCBmb3J3YXJkcyB0aGVtIHRvIHlvdXIgbG9jYWwgc2VydmVyLlwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHdlYmhvb2tzIGxpc3RlblwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gd2ViaG9va3MgbGlzdGVuIC0tZm9yd2FyZCBodHRwOi8vbG9jYWxob3N0OjMwMDAvd2ViaG9va1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gd2ViaG9va3MgbGlzdGVuIC0tZXZlbnRzIG1lc3NhZ2UuZGVsaXZlcmVkLG1lc3NhZ2UuZmFpbGVkXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBmb3J3YXJkOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJmXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJMb2NhbCBVUkwgdG8gZm9yd2FyZCBldmVudHMgdG9cIixcbiAgICAgIGRlZmF1bHQ6IFwiaHR0cDovL2xvY2FsaG9zdDozMDAwL3dlYmhvb2tcIixcbiAgICB9KSxcbiAgICBldmVudHM6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcImVcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGV2ZW50cyB0byBsaXN0ZW4gZm9yXCIsXG4gICAgICBkZWZhdWx0OiBcIm1lc3NhZ2Uuc2VudCxtZXNzYWdlLmRlbGl2ZXJlZCxtZXNzYWdlLmZhaWxlZCxtZXNzYWdlLmJvdW5jZWQsbWVzc2FnZS5yZXRyeWluZ1wiLFxuICAgIH0pLFxuICB9O1xuXG4gIHByaXZhdGUgd3M6IFdlYlNvY2tldCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHNlc3Npb25JZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc2VjcmV0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShXZWJob29rc0xpc3Rlbik7XG5cbiAgICB0cnkge1xuICAgICAgbmV3IFVSTChmbGFncy5mb3J3YXJkKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuZXJyb3IoYEludmFsaWQgZm9yd2FyZCBVUkw6ICR7ZmxhZ3MuZm9yd2FyZH0uIE11c3QgYmUgYSB2YWxpZCBVUkwgKGUuZy4sIGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC93ZWJob29rKS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBldmVudHMgPSBmbGFncy5ldmVudHMuc3BsaXQoXCIsXCIpLm1hcCgoZSkgPT4gZS50cmltKCkpO1xuXG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoXCJTdGFydGluZyB3ZWJob29rIGxpc3RlbmVyLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PExpc3RlblN0YXJ0UmVzcG9uc2U+KFxuICAgICAgICBcIi9hcGkvY2xpL2xpc3Rlbi9zdGFydFwiLFxuICAgICAgICB7XG4gICAgICAgICAgZXZlbnRzLFxuICAgICAgICAgIGZvcndhcmRVcmw6IGZsYWdzLmZvcndhcmQsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICB0aGlzLnNlc3Npb25JZCA9IHJlc3BvbnNlLnNlc3Npb25JZDtcbiAgICAgIHRoaXMuc2VjcmV0ID0gcmVzcG9uc2Uuc2VjcmV0O1xuXG4gICAgICBzcGluLnN1Y2NlZWQoXCJMaXN0ZW5lciByZWdpc3RlcmVkXCIpO1xuXG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmJvbGQoY29sb3JzLnByaW1hcnkoXCJXZWJob29rIGxpc3RlbmVyIHJlYWR5IVwiKSkpO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgICAke2NvbG9ycy5kaW0oXCJGb3J3YXJkaW5nIHRvOlwiKX0gJHtjb2xvcnMuY29kZShmbGFncy5mb3J3YXJkKX1gLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLmRpbShcIkV2ZW50czpcIil9ICAgICAgICAke2V2ZW50cy5qb2luKFwiLCBcIil9YCk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKFwiV2ViaG9vayBTZWNyZXQ6XCIpfWApO1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMucHJpbWFyeShyZXNwb25zZS5zZWNyZXQpfWApO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjb2xvcnMuZGltKFwiVXNlIHRoaXMgc2VjcmV0IHRvIHZlcmlmeSB3ZWJob29rIHNpZ25hdHVyZXMgaW4geW91ciBhcHAuXCIpLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICAgIGNvbnN0IHNwaW4yID0gc3Bpbm5lcihcIkNvbm5lY3RpbmcgdG8gU2VuZGx5Li4uXCIpO1xuICAgICAgc3BpbjIuc3RhcnQoKTtcblxuICAgICAgYXdhaXQgdGhpcy5jb25uZWN0V2ViU29ja2V0KHJlc3BvbnNlLndzVXJsLCBmbGFncy5mb3J3YXJkKTtcblxuICAgICAgc3BpbjIuc3VjY2VlZChcIkNvbm5lY3RlZFwiKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhjb2xvcnMuYm9sZChcIldhaXRpbmcgZm9yIGV2ZW50cy4uLiAoQ3RybCtDIHRvIHF1aXQpXCIpKTtcbiAgICAgIGNvbnNvbGUubG9nKGNvbG9ycy5kaW0oXCLilIBcIi5yZXBlYXQoNjApKSk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuXG4gICAgICBjb25zdCBjbGVhbnVwID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgICBpbmZvKFwiU2h1dHRpbmcgZG93bi4uLlwiKTtcbiAgICAgICAgYXdhaXQgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICAgIH07XG5cbiAgICAgIHByb2Nlc3Mub24oXCJTSUdJTlRcIiwgY2xlYW51cCk7XG4gICAgICBwcm9jZXNzLm9uKFwiU0lHVEVSTVwiLCBjbGVhbnVwKTtcblxuICAgICAgYXdhaXQgbmV3IFByb21pc2UoKCkgPT4ge30pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc3Bpbi5mYWlsKFwiRmFpbGVkIHRvIHN0YXJ0IGxpc3RlbmVyXCIpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29ubmVjdFdlYlNvY2tldCh3c1VybDogc3RyaW5nLCBmb3J3YXJkVXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy53cyA9IG5ldyBXZWJTb2NrZXQod3NVcmwpO1xuXG4gICAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoXCJXZWJTb2NrZXQgY29ubmVjdGlvbiB0aW1lb3V0XCIpKTtcbiAgICAgIH0sIDMwMDAwKTtcblxuICAgICAgdGhpcy53cy5vbihcIm9wZW5cIiwgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy53cy5vbihcIm1lc3NhZ2VcIiwgYXN5bmMgKGRhdGEpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlOiBXZWJTb2NrZXRNZXNzYWdlID0gSlNPTi5wYXJzZShkYXRhLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJjbGlfY29ubmVjdGVkXCIpIHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobWVzc2FnZS50eXBlID09PSBcIndlYmhvb2tfZXZlbnRcIiAmJiBtZXNzYWdlLmV2ZW50KSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUV2ZW50KG1lc3NhZ2UsIGZvcndhcmRVcmwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBwYXJzZSBXZWJTb2NrZXQgbWVzc2FnZTpcIiwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMud3Mub24oXCJjbG9zZVwiLCAoY29kZSwgcmVhc29uKSA9PiB7XG4gICAgICAgIGlmIChjb2RlICE9PSAxMDAwKSB7XG4gICAgICAgICAgd2FybihgV2ViU29ja2V0IGRpc2Nvbm5lY3RlZDogJHtyZWFzb24gfHwgY29kZX1gKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMud3Mub24oXCJlcnJvclwiLCAoZXJyKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgZXJyb3IoYFdlYlNvY2tldCBlcnJvcjogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlRXZlbnQoXG4gICAgbWVzc2FnZTogV2ViU29ja2V0TWVzc2FnZSxcbiAgICBmb3J3YXJkVXJsOiBzdHJpbmcsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGV2ZW50ID0gbWVzc2FnZS5ldmVudCE7XG4gICAgY29uc3QgdGltZXN0YW1wID0gbWVzc2FnZS50aW1lc3RhbXAhO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IG1lc3NhZ2Uuc2lnbmF0dXJlITtcblxuICAgIHRoaXMuZGlzcGxheUV2ZW50KGV2ZW50KTtcblxuICAgIGlmICh0aGlzLnZlcmlmeVNpZ25hdHVyZShldmVudCwgdGltZXN0YW1wLCBzaWduYXR1cmUpKSB7XG4gICAgICBhd2FpdCB0aGlzLmZvcndhcmRFdmVudChmb3J3YXJkVXJsLCBldmVudCwgdGltZXN0YW1wLCBzaWduYXR1cmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5lcnJvcihcIuKcl1wiKX0gU2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBmYWlsZWRgKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlTaWduYXR1cmUoXG4gICAgZXZlbnQ6IFdlYmhvb2tFdmVudCxcbiAgICB0aW1lc3RhbXA6IG51bWJlcixcbiAgICBzaWduYXR1cmU6IHN0cmluZyxcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnNlY3JldCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KGV2ZW50KTtcbiAgICBjb25zdCBzaWduZWRQYXlsb2FkID0gYCR7dGltZXN0YW1wfS4ke3BheWxvYWR9YDtcbiAgICBjb25zdCBleHBlY3RlZFNpZ25hdHVyZSA9IGBzaGEyNTY9JHtjcnlwdG9cbiAgICAgIC5jcmVhdGVIbWFjKFwic2hhMjU2XCIsIHRoaXMuc2VjcmV0KVxuICAgICAgLnVwZGF0ZShzaWduZWRQYXlsb2FkLCBcInV0ZjhcIilcbiAgICAgIC5kaWdlc3QoXCJoZXhcIil9YDtcblxuICAgIHJldHVybiBzaWduYXR1cmUgPT09IGV4cGVjdGVkU2lnbmF0dXJlO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5RXZlbnQoZXZlbnQ6IFdlYmhvb2tFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IG5ldyBEYXRlKGV2ZW50LmNyZWF0ZWQgKiAxMDAwKS50b0xvY2FsZVRpbWVTdHJpbmcoKTtcbiAgICBjb25zdCBldmVudFR5cGUgPSBldmVudC50eXBlO1xuXG4gICAgbGV0IHN0YXR1c0NvbG9yID0gY29sb3JzLmluZm87XG4gICAgaWYgKGV2ZW50VHlwZS5pbmNsdWRlcyhcImRlbGl2ZXJlZFwiKSkgc3RhdHVzQ29sb3IgPSBjb2xvcnMuc3VjY2VzcztcbiAgICBpZiAoZXZlbnRUeXBlLmluY2x1ZGVzKFwiZmFpbGVkXCIpIHx8IGV2ZW50VHlwZS5pbmNsdWRlcyhcImJvdW5jZWRcIikpIHN0YXR1c0NvbG9yID0gY29sb3JzLmVycm9yO1xuICAgIGlmIChldmVudFR5cGUuaW5jbHVkZXMoXCJyZXRyeWluZ1wiKSkgc3RhdHVzQ29sb3IgPSBjb2xvcnMud2FybmluZztcblxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYCR7Y29sb3JzLmRpbSh0aW1lc3RhbXApfSAke3N0YXR1c0NvbG9yKFwi4oaSXCIpfSAke2NvbG9ycy5ib2xkKGV2ZW50VHlwZSl9YCxcbiAgICApO1xuXG4gICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGE/Lm9iamVjdDtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgY29uc3QgbWVzc2FnZUlkID0gZGF0YS5pZCBhcyBzdHJpbmc7XG4gICAgICBjb25zdCB0byA9IGRhdGEudG8gYXMgc3RyaW5nO1xuICAgICAgY29uc3QgYmF0Y2hJZCA9IChkYXRhIGFzIGFueSkuYmF0Y2hfaWQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKG1lc3NhZ2VJZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJpZDpcIil9ICR7bWVzc2FnZUlkfWApO1xuICAgICAgfVxuICAgICAgaWYgKHRvKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLmRpbShcInRvOlwiKX0gJHt0b31gKTtcbiAgICAgIH1cbiAgICAgIGlmIChiYXRjaElkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLmRpbShcImJhdGNoOlwiKX0gJHtiYXRjaElkfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZm9yd2FyZEV2ZW50KFxuICAgIGZvcndhcmRVcmw6IHN0cmluZyxcbiAgICBldmVudDogV2ViaG9va0V2ZW50LFxuICAgIHRpbWVzdGFtcDogbnVtYmVyLFxuICAgIHNpZ25hdHVyZTogc3RyaW5nLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KGV2ZW50KTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChmb3J3YXJkVXJsLCB7XG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICBcIlgtU2VuZGx5LVNpZ25hdHVyZVwiOiBzaWduYXR1cmUsXG4gICAgICAgICAgXCJYLVNlbmRseS1UaW1lc3RhbXBcIjogdGltZXN0YW1wLnRvU3RyaW5nKCksXG4gICAgICAgICAgXCJYLVNlbmRseS1FdmVudFwiOiBldmVudC50eXBlLFxuICAgICAgICAgIFwiWC1TZW5kbHktRXZlbnQtSWRcIjogZXZlbnQuaWQsXG4gICAgICAgIH0sXG4gICAgICAgIGJvZHk6IHBheWxvYWQsXG4gICAgICB9KTtcblxuICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGAgICR7Y29sb3JzLnN1Y2Nlc3MoXCLinJNcIil9IEZvcndhcmRlZCB0byAke2ZvcndhcmRVcmx9ICgke3Jlc3BvbnNlLnN0YXR1c30pYCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGAgICR7Y29sb3JzLmVycm9yKFwi4pyXXCIpfSBGb3J3YXJkIGZhaWxlZCAoJHtyZXNwb25zZS5zdGF0dXN9KWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCAgJHtjb2xvcnMuZXJyb3IoXCLinJdcIil9IEZvcndhcmQgZXJyb3I6ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc29sZS5sb2coKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2xlYW51cCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy53cykge1xuICAgICAgdGhpcy53cy5jbG9zZSgxMDAwLCBcIkNsaWVudCBzaHV0ZG93blwiKTtcbiAgICAgIHRoaXMud3MgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlc3Npb25JZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgYXBpQ2xpZW50LmRlbGV0ZShgL2FwaS9jbGkvbGlzdGVuL3N0b3AvJHt0aGlzLnNlc3Npb25JZH1gKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBJZ25vcmUgY2xlYW51cCBlcnJvcnNcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3dlYmhvb2tzL2xpc3Rlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBRUwsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sU0FBUyxNQUFNLElBQUksQ0FBQztBQUMzQixPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQztBQStCdEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBQzlELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGlIQUFpSCxDQUFDO0lBRXBILE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsbUNBQW1DO1FBQ25DLDJFQUEyRTtRQUMzRSw2RUFBNkU7S0FDOUUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsZ0NBQWdDO1lBQzdDLE9BQU8sRUFBRSwrQkFBK0I7U0FDekMsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUNULDRKQUE0SjtZQUM5SixPQUFPLEVBQ0wsK05BQStOO1NBQ2xPLENBQUM7S0FDSCxDQUFDO0lBRU0sRUFBRSxHQUFxQixJQUFJLENBQUM7SUFDNUIsU0FBUyxHQUFrQixJQUFJLENBQUM7SUFDaEMsTUFBTSxHQUFrQixJQUFJLENBQUM7SUFFckMsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQztZQUNILElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsS0FBSyxDQUFDLE9BQU8sOERBQThELENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU1RCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQ25DLHVCQUF1QixFQUN2QjtnQkFDRSxNQUFNO2dCQUNOLFVBQVUsRUFBRSxLQUFLLENBQUMsT0FBTzthQUMxQixDQUNGLENBQUM7WUFFRixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBRTlCLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUVwQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ2xFLENBQUM7WUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0RSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsRCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsTUFBTSxDQUFDLEdBQUcsQ0FBQywyREFBMkQsQ0FBQyxDQUN4RSxDQUFDO1lBQ0YsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRWQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDakQsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRWQsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFM0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzQixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFZCxNQUFNLE9BQU8sR0FBRyxLQUFLLElBQUksRUFBRTtnQkFDekIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUN6QixNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixDQUFDLENBQUM7WUFFRixPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM5QixPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUUvQixNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsVUFBa0I7UUFDeEQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRS9CLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQzlCLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUM7WUFDcEQsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRVYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDdEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDO29CQUNILE1BQU0sT0FBTyxHQUFxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO29CQUU5RCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7d0JBQ3JDLE9BQU8sRUFBRSxDQUFDO3dCQUNWLE9BQU87b0JBQ1QsQ0FBQztvQkFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssZUFBZSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDdEQsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFDOUMsQ0FBQztnQkFDSCxDQUFDO2dCQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7b0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNuQyxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLDJCQUEyQixNQUFNLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzFCLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdEIsS0FBSyxDQUFDLG9CQUFvQixHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsV0FBVyxDQUN2QixPQUF5QixFQUN6QixVQUFrQjtRQUVsQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBTSxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFVLENBQUM7UUFDckMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVUsQ0FBQztRQUVyQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDcEUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUNyQixLQUFtQixFQUNuQixTQUFpQixFQUNqQixTQUFpQjtRQUVqQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLEdBQUcsU0FBUyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2hELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxNQUFNO2FBQ3ZDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUNqQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQzthQUM3QixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUVuQixPQUFPLFNBQVMsS0FBSyxpQkFBaUIsQ0FBQztJQUN6QyxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQW1CO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN0RSxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBRTdCLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDOUIsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztZQUFFLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ2xFLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztZQUFFLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzlGLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFBRSxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUVqRSxPQUFPLENBQUMsR0FBRyxDQUNULEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUN6RSxDQUFDO1FBRUYsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDaEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFZLENBQUM7WUFDcEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQVksQ0FBQztZQUM3QixNQUFNLE9BQU8sR0FBSSxJQUFZLENBQUMsUUFBOEIsQ0FBQztZQUM3RCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDckQsQ0FBQztZQUNELElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM5QyxDQUFDO1lBQ0QsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZLENBQ3hCLFVBQWtCLEVBQ2xCLEtBQW1CLEVBQ25CLFNBQWlCLEVBQ2pCLFNBQWlCO1FBRWpCLElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsVUFBVSxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsTUFBTTtnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsY0FBYyxFQUFFLGtCQUFrQjtvQkFDbEMsb0JBQW9CLEVBQUUsU0FBUztvQkFDL0Isb0JBQW9CLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRTtvQkFDMUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLElBQUk7b0JBQzVCLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxFQUFFO2lCQUM5QjtnQkFDRCxJQUFJLEVBQUUsT0FBTzthQUNkLENBQUMsQ0FBQztZQUVILElBQUksUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixPQUFPLENBQUMsR0FBRyxDQUNULEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLFVBQVUsS0FBSyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQzNFLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLG9CQUFvQixRQUFRLENBQUMsTUFBTSxHQUFHLENBQzdELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsR0FBRyxDQUNULEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsbUJBQW9CLEdBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FDbEUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPO1FBQ25CLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDakIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQztnQkFDSCxNQUFNLFNBQVMsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1Asd0JBQXdCO1lBQzFCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGVycm9yLFxuICBpbmZvLFxuICB3YXJuLFxuICBjb2xvcnMsXG4gIHNwaW5uZXIsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgeyBnZXRDb25maWdWYWx1ZSB9IGZyb20gXCIuLi8uLi9saWIvY29uZmlnLmpzXCI7XG5pbXBvcnQgV2ViU29ja2V0IGZyb20gXCJ3c1wiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gXCJub2RlOmNyeXB0b1wiO1xuXG5pbnRlcmZhY2UgV2ViaG9va0V2ZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBhcGlfdmVyc2lvbjogc3RyaW5nO1xuICBjcmVhdGVkOiBudW1iZXI7XG4gIGxpdmVtb2RlOiBib29sZWFuO1xuICBkYXRhOiB7XG4gICAgb2JqZWN0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFdlYlNvY2tldE1lc3NhZ2Uge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRpbWVzdGFtcD86IG51bWJlcjtcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xuICBldmVudD86IFdlYmhvb2tFdmVudDtcbiAgc2Vzc2lvbklkPzogc3RyaW5nO1xuICBldmVudHM/OiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIExpc3RlblN0YXJ0UmVzcG9uc2Uge1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgd3NUb2tlbjogc3RyaW5nO1xuICBzZWNyZXQ6IHN0cmluZztcbiAgd3NVcmw6IHN0cmluZztcbiAgZXZlbnRzOiBzdHJpbmdbXTtcbiAgZm9yd2FyZFVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXZWJob29rc0xpc3RlbiBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIkxpc3RlbiBmb3Igd2ViaG9va3MgbG9jYWxseS4gUmVjZWl2ZXMgZXZlbnRzIGluIHJlYWwtdGltZSB2aWEgV2ViU29ja2V0IGFuZCBmb3J3YXJkcyB0aGVtIHRvIHlvdXIgbG9jYWwgc2VydmVyLlwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHdlYmhvb2tzIGxpc3RlblwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gd2ViaG9va3MgbGlzdGVuIC0tZm9yd2FyZCBodHRwOi8vbG9jYWxob3N0OjMwMDAvd2ViaG9va1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gd2ViaG9va3MgbGlzdGVuIC0tZXZlbnRzIG1lc3NhZ2UuZGVsaXZlcmVkLG1lc3NhZ2UuZmFpbGVkXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBmb3J3YXJkOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJmXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJMb2NhbCBVUkwgdG8gZm9yd2FyZCBldmVudHMgdG9cIixcbiAgICAgIGRlZmF1bHQ6IFwiaHR0cDovL2xvY2FsaG9zdDozMDAwL3dlYmhvb2tcIixcbiAgICB9KSxcbiAgICBldmVudHM6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcImVcIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGV2ZW50cyB0byBsaXN0ZW4gZm9yLiBEZWZhdWx0IHN1YnNjcmliZXMgdG8gYWxsIG1lc3NhZ2UuKiBhbmQgY29udGFjdC4qIC8gY29udGFjdHMuKiBldmVudHMgc28gbm90aGluZyBpcyBtaXNzZWQgZHVyaW5nIGxvY2FsIGRldi5cIixcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIFwibWVzc2FnZS5zZW50LG1lc3NhZ2UuZGVsaXZlcmVkLG1lc3NhZ2UuZmFpbGVkLG1lc3NhZ2UuYm91bmNlZCxtZXNzYWdlLnJldHJ5aW5nLG1lc3NhZ2UucmVjZWl2ZWQsbWVzc2FnZS5vcHRfb3V0LG1lc3NhZ2Uub3B0X2luLGNvbnRhY3QuYXV0b19mbGFnZ2VkLGNvbnRhY3QubWFya2VkX3ZhbGlkLGNvbnRhY3RzLmxvb2t1cF9jb21wbGV0ZWQsY29udGFjdHMuYnVsa19tYXJrZWRfdmFsaWRcIixcbiAgICB9KSxcbiAgfTtcblxuICBwcml2YXRlIHdzOiBXZWJTb2NrZXQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzZXNzaW9uSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHNlY3JldDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoV2ViaG9va3NMaXN0ZW4pO1xuXG4gICAgdHJ5IHtcbiAgICAgIG5ldyBVUkwoZmxhZ3MuZm9yd2FyZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmVycm9yKGBJbnZhbGlkIGZvcndhcmQgVVJMOiAke2ZsYWdzLmZvcndhcmR9LiBNdXN0IGJlIGEgdmFsaWQgVVJMIChlLmcuLCBodHRwOi8vbG9jYWxob3N0OjMwMDAvd2ViaG9vaykuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgZXZlbnRzID0gZmxhZ3MuZXZlbnRzLnNwbGl0KFwiLFwiKS5tYXAoKGUpID0+IGUudHJpbSgpKTtcblxuICAgIGNvbnN0IHNwaW4gPSBzcGlubmVyKFwiU3RhcnRpbmcgd2ViaG9vayBsaXN0ZW5lci4uLlwiKTtcbiAgICBzcGluLnN0YXJ0KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxMaXN0ZW5TdGFydFJlc3BvbnNlPihcbiAgICAgICAgXCIvYXBpL2NsaS9saXN0ZW4vc3RhcnRcIixcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50cyxcbiAgICAgICAgICBmb3J3YXJkVXJsOiBmbGFncy5mb3J3YXJkLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy5zZXNzaW9uSWQgPSByZXNwb25zZS5zZXNzaW9uSWQ7XG4gICAgICB0aGlzLnNlY3JldCA9IHJlc3BvbnNlLnNlY3JldDtcblxuICAgICAgc3Bpbi5zdWNjZWVkKFwiTGlzdGVuZXIgcmVnaXN0ZXJlZFwiKTtcblxuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKGNvbG9ycy5ib2xkKGNvbG9ycy5wcmltYXJ5KFwiV2ViaG9vayBsaXN0ZW5lciByZWFkeSFcIikpKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCAgJHtjb2xvcnMuZGltKFwiRm9yd2FyZGluZyB0bzpcIil9ICR7Y29sb3JzLmNvZGUoZmxhZ3MuZm9yd2FyZCl9YCxcbiAgICAgICk7XG4gICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJFdmVudHM6XCIpfSAgICAgICAgJHtldmVudHMuam9pbihcIiwgXCIpfWApO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLmRpbShcIldlYmhvb2sgU2VjcmV0OlwiKX1gKTtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLnByaW1hcnkocmVzcG9uc2Uuc2VjcmV0KX1gKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLmRpbShcIlVzZSB0aGlzIHNlY3JldCB0byB2ZXJpZnkgd2ViaG9vayBzaWduYXR1cmVzIGluIHlvdXIgYXBwLlwiKSxcbiAgICAgICk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuXG4gICAgICBjb25zdCBzcGluMiA9IHNwaW5uZXIoXCJDb25uZWN0aW5nIHRvIFNlbmRseS4uLlwiKTtcbiAgICAgIHNwaW4yLnN0YXJ0KCk7XG5cbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdFdlYlNvY2tldChyZXNwb25zZS53c1VybCwgZmxhZ3MuZm9yd2FyZCk7XG5cbiAgICAgIHNwaW4yLnN1Y2NlZWQoXCJDb25uZWN0ZWRcIik7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmJvbGQoXCJXYWl0aW5nIGZvciBldmVudHMuLi4gKEN0cmwrQyB0byBxdWl0KVwiKSk7XG4gICAgICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwi4pSAXCIucmVwZWF0KDYwKSkpO1xuICAgICAgY29uc29sZS5sb2coKTtcblxuICAgICAgY29uc3QgY2xlYW51cCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgaW5mbyhcIlNodXR0aW5nIGRvd24uLi5cIik7XG4gICAgICAgIGF3YWl0IHRoaXMuY2xlYW51cCgpO1xuICAgICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgICB9O1xuXG4gICAgICBwcm9jZXNzLm9uKFwiU0lHSU5UXCIsIGNsZWFudXApO1xuICAgICAgcHJvY2Vzcy5vbihcIlNJR1RFUk1cIiwgY2xlYW51cCk7XG5cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKCgpID0+IHt9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNwaW4uZmFpbChcIkZhaWxlZCB0byBzdGFydCBsaXN0ZW5lclwiKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbm5lY3RXZWJTb2NrZXQod3NVcmw6IHN0cmluZywgZm9yd2FyZFVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMud3MgPSBuZXcgV2ViU29ja2V0KHdzVXJsKTtcblxuICAgICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKFwiV2ViU29ja2V0IGNvbm5lY3Rpb24gdGltZW91dFwiKSk7XG4gICAgICB9LCAzMDAwMCk7XG5cbiAgICAgIHRoaXMud3Mub24oXCJvcGVuXCIsICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMud3Mub24oXCJtZXNzYWdlXCIsIGFzeW5jIChkYXRhKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZTogV2ViU29ja2V0TWVzc2FnZSA9IEpTT04ucGFyc2UoZGF0YS50b1N0cmluZygpKTtcblxuICAgICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IFwiY2xpX2Nvbm5lY3RlZFwiKSB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJ3ZWJob29rX2V2ZW50XCIgJiYgbWVzc2FnZS5ldmVudCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFdmVudChtZXNzYWdlLCBmb3J3YXJkVXJsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gcGFyc2UgV2ViU29ja2V0IG1lc3NhZ2U6XCIsIGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLndzLm9uKFwiY2xvc2VcIiwgKGNvZGUsIHJlYXNvbikgPT4ge1xuICAgICAgICBpZiAoY29kZSAhPT0gMTAwMCkge1xuICAgICAgICAgIHdhcm4oYFdlYlNvY2tldCBkaXNjb25uZWN0ZWQ6ICR7cmVhc29uIHx8IGNvZGV9YCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLndzLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIGVycm9yKGBXZWJTb2NrZXQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUV2ZW50KFxuICAgIG1lc3NhZ2U6IFdlYlNvY2tldE1lc3NhZ2UsXG4gICAgZm9yd2FyZFVybDogc3RyaW5nLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBldmVudCA9IG1lc3NhZ2UuZXZlbnQhO1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IG1lc3NhZ2UudGltZXN0YW1wITtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBtZXNzYWdlLnNpZ25hdHVyZSE7XG5cbiAgICB0aGlzLmRpc3BsYXlFdmVudChldmVudCk7XG5cbiAgICBpZiAodGhpcy52ZXJpZnlTaWduYXR1cmUoZXZlbnQsIHRpbWVzdGFtcCwgc2lnbmF0dXJlKSkge1xuICAgICAgYXdhaXQgdGhpcy5mb3J3YXJkRXZlbnQoZm9yd2FyZFVybCwgZXZlbnQsIHRpbWVzdGFtcCwgc2lnbmF0dXJlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZXJyb3IoXCLinJdcIil9IFNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZmFpbGVkYCk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5U2lnbmF0dXJlKFxuICAgIGV2ZW50OiBXZWJob29rRXZlbnQsXG4gICAgdGltZXN0YW1wOiBudW1iZXIsXG4gICAgc2lnbmF0dXJlOiBzdHJpbmcsXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5zZWNyZXQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShldmVudCk7XG4gICAgY29uc3Qgc2lnbmVkUGF5bG9hZCA9IGAke3RpbWVzdGFtcH0uJHtwYXlsb2FkfWA7XG4gICAgY29uc3QgZXhwZWN0ZWRTaWduYXR1cmUgPSBgc2hhMjU2PSR7Y3J5cHRvXG4gICAgICAuY3JlYXRlSG1hYyhcInNoYTI1NlwiLCB0aGlzLnNlY3JldClcbiAgICAgIC51cGRhdGUoc2lnbmVkUGF5bG9hZCwgXCJ1dGY4XCIpXG4gICAgICAuZGlnZXN0KFwiaGV4XCIpfWA7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlID09PSBleHBlY3RlZFNpZ25hdHVyZTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheUV2ZW50KGV2ZW50OiBXZWJob29rRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZShldmVudC5jcmVhdGVkICogMTAwMCkudG9Mb2NhbGVUaW1lU3RyaW5nKCk7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gZXZlbnQudHlwZTtcblxuICAgIGxldCBzdGF0dXNDb2xvciA9IGNvbG9ycy5pbmZvO1xuICAgIGlmIChldmVudFR5cGUuaW5jbHVkZXMoXCJkZWxpdmVyZWRcIikpIHN0YXR1c0NvbG9yID0gY29sb3JzLnN1Y2Nlc3M7XG4gICAgaWYgKGV2ZW50VHlwZS5pbmNsdWRlcyhcImZhaWxlZFwiKSB8fCBldmVudFR5cGUuaW5jbHVkZXMoXCJib3VuY2VkXCIpKSBzdGF0dXNDb2xvciA9IGNvbG9ycy5lcnJvcjtcbiAgICBpZiAoZXZlbnRUeXBlLmluY2x1ZGVzKFwicmV0cnlpbmdcIikpIHN0YXR1c0NvbG9yID0gY29sb3JzLndhcm5pbmc7XG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAke2NvbG9ycy5kaW0odGltZXN0YW1wKX0gJHtzdGF0dXNDb2xvcihcIuKGklwiKX0gJHtjb2xvcnMuYm9sZChldmVudFR5cGUpfWAsXG4gICAgKTtcblxuICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhPy5vYmplY3Q7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VJZCA9IGRhdGEuaWQgYXMgc3RyaW5nO1xuICAgICAgY29uc3QgdG8gPSBkYXRhLnRvIGFzIHN0cmluZztcbiAgICAgIGNvbnN0IGJhdGNoSWQgPSAoZGF0YSBhcyBhbnkpLmJhdGNoX2lkIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGlmIChtZXNzYWdlSWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKFwiaWQ6XCIpfSAke21lc3NhZ2VJZH1gKTtcbiAgICAgIH1cbiAgICAgIGlmICh0bykge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJ0bzpcIil9ICR7dG99YCk7XG4gICAgICB9XG4gICAgICBpZiAoYmF0Y2hJZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJiYXRjaDpcIil9ICR7YmF0Y2hJZH1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZvcndhcmRFdmVudChcbiAgICBmb3J3YXJkVXJsOiBzdHJpbmcsXG4gICAgZXZlbnQ6IFdlYmhvb2tFdmVudCxcbiAgICB0aW1lc3RhbXA6IG51bWJlcixcbiAgICBzaWduYXR1cmU6IHN0cmluZyxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShldmVudCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZm9yd2FyZFVybCwge1xuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgXCJYLVNlbmRseS1TaWduYXR1cmVcIjogc2lnbmF0dXJlLFxuICAgICAgICAgIFwiWC1TZW5kbHktVGltZXN0YW1wXCI6IHRpbWVzdGFtcC50b1N0cmluZygpLFxuICAgICAgICAgIFwiWC1TZW5kbHktRXZlbnRcIjogZXZlbnQudHlwZSxcbiAgICAgICAgICBcIlgtU2VuZGx5LUV2ZW50LUlkXCI6IGV2ZW50LmlkLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBwYXlsb2FkLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgICAke2NvbG9ycy5zdWNjZXNzKFwi4pyTXCIpfSBGb3J3YXJkZWQgdG8gJHtmb3J3YXJkVXJsfSAoJHtyZXNwb25zZS5zdGF0dXN9KWAsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgICAke2NvbG9ycy5lcnJvcihcIuKcl1wiKX0gRm9yd2FyZCBmYWlsZWQgKCR7cmVzcG9uc2Uuc3RhdHVzfSlgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGAgICR7Y29sb3JzLmVycm9yKFwi4pyXXCIpfSBGb3J3YXJkIGVycm9yOiAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNsZWFudXAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMud3MpIHtcbiAgICAgIHRoaXMud3MuY2xvc2UoMTAwMCwgXCJDbGllbnQgc2h1dGRvd25cIik7XG4gICAgICB0aGlzLndzID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZXNzaW9uSWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGFwaUNsaWVudC5kZWxldGUoYC9hcGkvY2xpL2xpc3Rlbi9zdG9wLyR7dGhpcy5zZXNzaW9uSWR9YCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gSWdub3JlIGNsZWFudXAgZXJyb3JzXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1049,6 +1049,117 @@
1049
1049
  "set.js"
1050
1050
  ]
1051
1051
  },
1052
+ "contacts:bulk-mark-valid": {
1053
+ "aliases": [],
1054
+ "args": {},
1055
+ "description": "Clear the invalid flag on many contacts at once. Pass --ids (comma-separated, up to 10,000) OR --list <id>, not both. Escape hatch for when auto-mark misclassifies at scale.",
1056
+ "examples": [
1057
+ "<%= config.bin %> contacts bulk-mark-valid --ids cnt_abc,cnt_def,cnt_ghi",
1058
+ "<%= config.bin %> contacts bulk-mark-valid --list lst_xxx"
1059
+ ],
1060
+ "flags": {
1061
+ "json": {
1062
+ "description": "Output in JSON format",
1063
+ "name": "json",
1064
+ "allowNo": false,
1065
+ "type": "boolean"
1066
+ },
1067
+ "quiet": {
1068
+ "char": "q",
1069
+ "description": "Minimal output",
1070
+ "name": "quiet",
1071
+ "allowNo": false,
1072
+ "type": "boolean"
1073
+ },
1074
+ "ids": {
1075
+ "description": "Comma-separated contact IDs to clear (max 10,000 per call)",
1076
+ "exclusive": [
1077
+ "list"
1078
+ ],
1079
+ "name": "ids",
1080
+ "hasDynamicHelp": false,
1081
+ "multiple": false,
1082
+ "type": "option"
1083
+ },
1084
+ "list": {
1085
+ "description": "Clear every flagged member of this list ID",
1086
+ "exclusive": [
1087
+ "ids"
1088
+ ],
1089
+ "name": "list",
1090
+ "hasDynamicHelp": false,
1091
+ "multiple": false,
1092
+ "type": "option"
1093
+ }
1094
+ },
1095
+ "hasDynamicHelp": false,
1096
+ "hiddenAliases": [],
1097
+ "id": "contacts:bulk-mark-valid",
1098
+ "pluginAlias": "@sendly/cli",
1099
+ "pluginName": "@sendly/cli",
1100
+ "pluginType": "core",
1101
+ "strict": true,
1102
+ "isESM": true,
1103
+ "relativePath": [
1104
+ "dist",
1105
+ "commands",
1106
+ "contacts",
1107
+ "bulk-mark-valid.js"
1108
+ ]
1109
+ },
1110
+ "contacts:check-numbers": {
1111
+ "aliases": [],
1112
+ "args": {},
1113
+ "description": "Trigger a background carrier lookup across your contacts. Landlines and other non-SMS-capable numbers are auto-excluded from future campaigns. Runs asynchronously — results populate line_type / carrier_name / invalid_reason on affected contacts within a few minutes.",
1114
+ "examples": [
1115
+ "<%= config.bin %> contacts check-numbers",
1116
+ "<%= config.bin %> contacts check-numbers --list lst_xxx",
1117
+ "<%= config.bin %> contacts check-numbers --force"
1118
+ ],
1119
+ "flags": {
1120
+ "json": {
1121
+ "description": "Output in JSON format",
1122
+ "name": "json",
1123
+ "allowNo": false,
1124
+ "type": "boolean"
1125
+ },
1126
+ "quiet": {
1127
+ "char": "q",
1128
+ "description": "Minimal output",
1129
+ "name": "quiet",
1130
+ "allowNo": false,
1131
+ "type": "boolean"
1132
+ },
1133
+ "list": {
1134
+ "char": "l",
1135
+ "description": "Scope the lookup to a single contact list",
1136
+ "name": "list",
1137
+ "hasDynamicHelp": false,
1138
+ "multiple": false,
1139
+ "type": "option"
1140
+ },
1141
+ "force": {
1142
+ "description": "Re-check contacts even if already looked up",
1143
+ "name": "force",
1144
+ "allowNo": false,
1145
+ "type": "boolean"
1146
+ }
1147
+ },
1148
+ "hasDynamicHelp": false,
1149
+ "hiddenAliases": [],
1150
+ "id": "contacts:check-numbers",
1151
+ "pluginAlias": "@sendly/cli",
1152
+ "pluginName": "@sendly/cli",
1153
+ "pluginType": "core",
1154
+ "strict": true,
1155
+ "isESM": true,
1156
+ "relativePath": [
1157
+ "dist",
1158
+ "commands",
1159
+ "contacts",
1160
+ "check-numbers.js"
1161
+ ]
1162
+ },
1052
1163
  "contacts:create": {
1053
1164
  "aliases": [],
1054
1165
  "args": {},
@@ -1335,20 +1446,18 @@
1335
1446
  "list.js"
1336
1447
  ]
1337
1448
  },
1338
- "contacts:update": {
1449
+ "contacts:mark-valid": {
1339
1450
  "aliases": [],
1340
1451
  "args": {
1341
1452
  "id": {
1342
- "description": "Contact ID",
1453
+ "description": "Contact ID to clear the invalid flag on",
1343
1454
  "name": "id",
1344
1455
  "required": true
1345
1456
  }
1346
1457
  },
1347
- "description": "Update a contact",
1458
+ "description": "Clear the invalid flag on a contact so future campaigns include it again. Use when you disagree with an auto-exclusion (e.g. the recipient ported from a landline to mobile).",
1348
1459
  "examples": [
1349
- "<%= config.bin %> contacts update cnt_xxx --name \"John Doe\"",
1350
- "<%= config.bin %> contacts update cnt_xxx --email john@example.com",
1351
- "<%= config.bin %> contacts update cnt_xxx --name \"John\" --email john@example.com"
1460
+ "<%= config.bin %> contacts mark-valid cnt_xxx"
1352
1461
  ],
1353
1462
  "flags": {
1354
1463
  "json": {
@@ -1363,27 +1472,11 @@
1363
1472
  "name": "quiet",
1364
1473
  "allowNo": false,
1365
1474
  "type": "boolean"
1366
- },
1367
- "name": {
1368
- "char": "n",
1369
- "description": "Contact name",
1370
- "name": "name",
1371
- "hasDynamicHelp": false,
1372
- "multiple": false,
1373
- "type": "option"
1374
- },
1375
- "email": {
1376
- "char": "e",
1377
- "description": "Contact email",
1378
- "name": "email",
1379
- "hasDynamicHelp": false,
1380
- "multiple": false,
1381
- "type": "option"
1382
1475
  }
1383
1476
  },
1384
1477
  "hasDynamicHelp": false,
1385
1478
  "hiddenAliases": [],
1386
- "id": "contacts:update",
1479
+ "id": "contacts:mark-valid",
1387
1480
  "pluginAlias": "@sendly/cli",
1388
1481
  "pluginName": "@sendly/cli",
1389
1482
  "pluginType": "core",
@@ -1393,103 +1486,23 @@
1393
1486
  "dist",
1394
1487
  "commands",
1395
1488
  "contacts",
1396
- "update.js"
1489
+ "mark-valid.js"
1397
1490
  ]
1398
1491
  },
1399
- "credits:balance": {
1400
- "aliases": [],
1401
- "args": {},
1402
- "description": "Check your credit balance",
1403
- "examples": [
1404
- "<%= config.bin %> credits balance",
1405
- "<%= config.bin %> credits balance --json"
1406
- ],
1407
- "flags": {
1408
- "json": {
1409
- "description": "Output in JSON format",
1410
- "name": "json",
1411
- "allowNo": false,
1412
- "type": "boolean"
1413
- },
1414
- "quiet": {
1415
- "char": "q",
1416
- "description": "Minimal output",
1417
- "name": "quiet",
1418
- "allowNo": false,
1419
- "type": "boolean"
1420
- }
1421
- },
1422
- "hasDynamicHelp": false,
1423
- "hiddenAliases": [],
1424
- "id": "credits:balance",
1425
- "pluginAlias": "@sendly/cli",
1426
- "pluginName": "@sendly/cli",
1427
- "pluginType": "core",
1428
- "strict": true,
1429
- "isESM": true,
1430
- "relativePath": [
1431
- "dist",
1432
- "commands",
1433
- "credits",
1434
- "balance.js"
1435
- ]
1436
- },
1437
- "credits:history": {
1492
+ "contacts:update": {
1438
1493
  "aliases": [],
1439
- "args": {},
1440
- "description": "View credit transaction history",
1441
- "examples": [
1442
- "<%= config.bin %> credits history",
1443
- "<%= config.bin %> credits history --limit 10",
1444
- "<%= config.bin %> credits history --json"
1445
- ],
1446
- "flags": {
1447
- "json": {
1448
- "description": "Output in JSON format",
1449
- "name": "json",
1450
- "allowNo": false,
1451
- "type": "boolean"
1452
- },
1453
- "quiet": {
1454
- "char": "q",
1455
- "description": "Minimal output",
1456
- "name": "quiet",
1457
- "allowNo": false,
1458
- "type": "boolean"
1459
- },
1460
- "limit": {
1461
- "char": "l",
1462
- "description": "Number of transactions to show",
1463
- "name": "limit",
1464
- "default": 20,
1465
- "hasDynamicHelp": false,
1466
- "multiple": false,
1467
- "type": "option"
1494
+ "args": {
1495
+ "id": {
1496
+ "description": "Contact ID",
1497
+ "name": "id",
1498
+ "required": true
1468
1499
  }
1469
1500
  },
1470
- "hasDynamicHelp": false,
1471
- "hiddenAliases": [],
1472
- "id": "credits:history",
1473
- "pluginAlias": "@sendly/cli",
1474
- "pluginName": "@sendly/cli",
1475
- "pluginType": "core",
1476
- "strict": true,
1477
- "isESM": true,
1478
- "relativePath": [
1479
- "dist",
1480
- "commands",
1481
- "credits",
1482
- "history.js"
1483
- ]
1484
- },
1485
- "credits:transfer": {
1486
- "aliases": [],
1487
- "args": {},
1488
- "description": "Transfer credits between workspaces",
1501
+ "description": "Update a contact",
1489
1502
  "examples": [
1490
- "<%= config.bin %> credits transfer --to org_abc123 --amount 500",
1491
- "<%= config.bin %> credits transfer --amount 1000",
1492
- "<%= config.bin %> credits transfer --to org_abc123 --amount 500 --yes"
1503
+ "<%= config.bin %> contacts update cnt_xxx --name \"John Doe\"",
1504
+ "<%= config.bin %> contacts update cnt_xxx --email john@example.com",
1505
+ "<%= config.bin %> contacts update cnt_xxx --name \"John\" --email john@example.com"
1493
1506
  ],
1494
1507
  "flags": {
1495
1508
  "json": {
@@ -1505,32 +1518,26 @@
1505
1518
  "allowNo": false,
1506
1519
  "type": "boolean"
1507
1520
  },
1508
- "to": {
1509
- "description": "Target workspace ID to transfer credits to",
1510
- "name": "to",
1521
+ "name": {
1522
+ "char": "n",
1523
+ "description": "Contact name",
1524
+ "name": "name",
1511
1525
  "hasDynamicHelp": false,
1512
1526
  "multiple": false,
1513
1527
  "type": "option"
1514
1528
  },
1515
- "amount": {
1516
- "char": "a",
1517
- "description": "Number of credits to transfer",
1518
- "name": "amount",
1529
+ "email": {
1530
+ "char": "e",
1531
+ "description": "Contact email",
1532
+ "name": "email",
1519
1533
  "hasDynamicHelp": false,
1520
1534
  "multiple": false,
1521
1535
  "type": "option"
1522
- },
1523
- "yes": {
1524
- "char": "y",
1525
- "description": "Skip confirmation prompt",
1526
- "name": "yes",
1527
- "allowNo": false,
1528
- "type": "boolean"
1529
1536
  }
1530
1537
  },
1531
1538
  "hasDynamicHelp": false,
1532
1539
  "hiddenAliases": [],
1533
- "id": "credits:transfer",
1540
+ "id": "contacts:update",
1534
1541
  "pluginAlias": "@sendly/cli",
1535
1542
  "pluginName": "@sendly/cli",
1536
1543
  "pluginType": "core",
@@ -1539,8 +1546,8 @@
1539
1546
  "relativePath": [
1540
1547
  "dist",
1541
1548
  "commands",
1542
- "credits",
1543
- "transfer.js"
1549
+ "contacts",
1550
+ "update.js"
1544
1551
  ]
1545
1552
  },
1546
1553
  "conversations:close": {
@@ -2058,6 +2065,153 @@
2058
2065
  "update.js"
2059
2066
  ]
2060
2067
  },
2068
+ "credits:balance": {
2069
+ "aliases": [],
2070
+ "args": {},
2071
+ "description": "Check your credit balance",
2072
+ "examples": [
2073
+ "<%= config.bin %> credits balance",
2074
+ "<%= config.bin %> credits balance --json"
2075
+ ],
2076
+ "flags": {
2077
+ "json": {
2078
+ "description": "Output in JSON format",
2079
+ "name": "json",
2080
+ "allowNo": false,
2081
+ "type": "boolean"
2082
+ },
2083
+ "quiet": {
2084
+ "char": "q",
2085
+ "description": "Minimal output",
2086
+ "name": "quiet",
2087
+ "allowNo": false,
2088
+ "type": "boolean"
2089
+ }
2090
+ },
2091
+ "hasDynamicHelp": false,
2092
+ "hiddenAliases": [],
2093
+ "id": "credits:balance",
2094
+ "pluginAlias": "@sendly/cli",
2095
+ "pluginName": "@sendly/cli",
2096
+ "pluginType": "core",
2097
+ "strict": true,
2098
+ "isESM": true,
2099
+ "relativePath": [
2100
+ "dist",
2101
+ "commands",
2102
+ "credits",
2103
+ "balance.js"
2104
+ ]
2105
+ },
2106
+ "credits:history": {
2107
+ "aliases": [],
2108
+ "args": {},
2109
+ "description": "View credit transaction history",
2110
+ "examples": [
2111
+ "<%= config.bin %> credits history",
2112
+ "<%= config.bin %> credits history --limit 10",
2113
+ "<%= config.bin %> credits history --json"
2114
+ ],
2115
+ "flags": {
2116
+ "json": {
2117
+ "description": "Output in JSON format",
2118
+ "name": "json",
2119
+ "allowNo": false,
2120
+ "type": "boolean"
2121
+ },
2122
+ "quiet": {
2123
+ "char": "q",
2124
+ "description": "Minimal output",
2125
+ "name": "quiet",
2126
+ "allowNo": false,
2127
+ "type": "boolean"
2128
+ },
2129
+ "limit": {
2130
+ "char": "l",
2131
+ "description": "Number of transactions to show",
2132
+ "name": "limit",
2133
+ "default": 20,
2134
+ "hasDynamicHelp": false,
2135
+ "multiple": false,
2136
+ "type": "option"
2137
+ }
2138
+ },
2139
+ "hasDynamicHelp": false,
2140
+ "hiddenAliases": [],
2141
+ "id": "credits:history",
2142
+ "pluginAlias": "@sendly/cli",
2143
+ "pluginName": "@sendly/cli",
2144
+ "pluginType": "core",
2145
+ "strict": true,
2146
+ "isESM": true,
2147
+ "relativePath": [
2148
+ "dist",
2149
+ "commands",
2150
+ "credits",
2151
+ "history.js"
2152
+ ]
2153
+ },
2154
+ "credits:transfer": {
2155
+ "aliases": [],
2156
+ "args": {},
2157
+ "description": "Transfer credits between workspaces",
2158
+ "examples": [
2159
+ "<%= config.bin %> credits transfer --to org_abc123 --amount 500",
2160
+ "<%= config.bin %> credits transfer --amount 1000",
2161
+ "<%= config.bin %> credits transfer --to org_abc123 --amount 500 --yes"
2162
+ ],
2163
+ "flags": {
2164
+ "json": {
2165
+ "description": "Output in JSON format",
2166
+ "name": "json",
2167
+ "allowNo": false,
2168
+ "type": "boolean"
2169
+ },
2170
+ "quiet": {
2171
+ "char": "q",
2172
+ "description": "Minimal output",
2173
+ "name": "quiet",
2174
+ "allowNo": false,
2175
+ "type": "boolean"
2176
+ },
2177
+ "to": {
2178
+ "description": "Target workspace ID to transfer credits to",
2179
+ "name": "to",
2180
+ "hasDynamicHelp": false,
2181
+ "multiple": false,
2182
+ "type": "option"
2183
+ },
2184
+ "amount": {
2185
+ "char": "a",
2186
+ "description": "Number of credits to transfer",
2187
+ "name": "amount",
2188
+ "hasDynamicHelp": false,
2189
+ "multiple": false,
2190
+ "type": "option"
2191
+ },
2192
+ "yes": {
2193
+ "char": "y",
2194
+ "description": "Skip confirmation prompt",
2195
+ "name": "yes",
2196
+ "allowNo": false,
2197
+ "type": "boolean"
2198
+ }
2199
+ },
2200
+ "hasDynamicHelp": false,
2201
+ "hiddenAliases": [],
2202
+ "id": "credits:transfer",
2203
+ "pluginAlias": "@sendly/cli",
2204
+ "pluginName": "@sendly/cli",
2205
+ "pluginType": "core",
2206
+ "strict": true,
2207
+ "isESM": true,
2208
+ "relativePath": [
2209
+ "dist",
2210
+ "commands",
2211
+ "credits",
2212
+ "transfer.js"
2213
+ ]
2214
+ },
2061
2215
  "drafts:approve": {
2062
2216
  "aliases": [],
2063
2217
  "args": {
@@ -4954,8 +5108,7 @@
4954
5108
  "description": "List recent verifications",
4955
5109
  "examples": [
4956
5110
  "<%= config.bin %> verify list",
4957
- "<%= config.bin %> verify list --limit 10",
4958
- "<%= config.bin %> verify list --page 2",
5111
+ "<%= config.bin %> verify list --limit 50",
4959
5112
  "<%= config.bin %> verify list --status verified",
4960
5113
  "<%= config.bin %> verify list --json"
4961
5114
  ],
@@ -4975,28 +5128,13 @@
4975
5128
  },
4976
5129
  "limit": {
4977
5130
  "char": "l",
4978
- "description": "Number of verifications per page",
5131
+ "description": "Number of verifications to fetch (max 100)",
4979
5132
  "name": "limit",
4980
5133
  "default": 20,
4981
5134
  "hasDynamicHelp": false,
4982
5135
  "multiple": false,
4983
5136
  "type": "option"
4984
5137
  },
4985
- "page": {
4986
- "char": "p",
4987
- "description": "Page number (starts at 1)",
4988
- "name": "page",
4989
- "hasDynamicHelp": false,
4990
- "multiple": false,
4991
- "type": "option"
4992
- },
4993
- "offset": {
4994
- "description": "Offset from start (alternative to --page)",
4995
- "name": "offset",
4996
- "hasDynamicHelp": false,
4997
- "multiple": false,
4998
- "type": "option"
4999
- },
5000
5138
  "status": {
5001
5139
  "char": "s",
5002
5140
  "description": "Filter by status (pending, verified, expired, failed)",
@@ -5504,9 +5642,9 @@
5504
5642
  },
5505
5643
  "events": {
5506
5644
  "char": "e",
5507
- "description": "Comma-separated list of events to listen for",
5645
+ "description": "Comma-separated list of events to listen for. Default subscribes to all message.* and contact.* / contacts.* events so nothing is missed during local dev.",
5508
5646
  "name": "events",
5509
- "default": "message.sent,message.delivered,message.failed,message.bounced,message.retrying",
5647
+ "default": "message.sent,message.delivered,message.failed,message.bounced,message.retrying,message.received,message.opt_out,message.opt_in,contact.auto_flagged,contact.marked_valid,contacts.lookup_completed,contacts.bulk_marked_valid",
5510
5648
  "hasDynamicHelp": false,
5511
5649
  "multiple": false,
5512
5650
  "type": "option"
@@ -6998,5 +7136,5 @@
6998
7136
  ]
6999
7137
  }
7000
7138
  },
7001
- "version": "3.27.1"
7139
+ "version": "3.29.0"
7002
7140
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sendly/cli",
3
- "version": "3.27.1",
3
+ "version": "3.29.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Sendly CLI - Send SMS from your terminal",