@sendly/cli 3.36.0 → 3.37.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.
Files changed (43) hide show
  1. package/README.md +204 -1
  2. package/dist/commands/10dlc/assignments/list.d.ts +10 -0
  3. package/dist/commands/10dlc/assignments/list.js +67 -0
  4. package/dist/commands/10dlc/brands/create.d.ts +25 -0
  5. package/dist/commands/10dlc/brands/create.js +89 -0
  6. package/dist/commands/10dlc/brands/get.d.ts +13 -0
  7. package/dist/commands/10dlc/brands/get.js +63 -0
  8. package/dist/commands/10dlc/brands/list.d.ts +10 -0
  9. package/dist/commands/10dlc/brands/list.js +63 -0
  10. package/dist/commands/10dlc/campaigns/assign.d.ts +14 -0
  11. package/dist/commands/10dlc/campaigns/assign.js +64 -0
  12. package/dist/commands/10dlc/campaigns/create.d.ts +24 -0
  13. package/dist/commands/10dlc/campaigns/create.js +118 -0
  14. package/dist/commands/10dlc/campaigns/get.d.ts +13 -0
  15. package/dist/commands/10dlc/campaigns/get.js +84 -0
  16. package/dist/commands/10dlc/campaigns/list.d.ts +10 -0
  17. package/dist/commands/10dlc/campaigns/list.js +70 -0
  18. package/dist/commands/10dlc/qualify.d.ts +14 -0
  19. package/dist/commands/10dlc/qualify.js +56 -0
  20. package/dist/commands/keys/rotate.js +7 -12
  21. package/dist/commands/links/create.d.ts +24 -0
  22. package/dist/commands/links/create.js +71 -0
  23. package/dist/commands/links/disable.d.ts +21 -0
  24. package/dist/commands/links/disable.js +55 -0
  25. package/dist/commands/links/list.d.ts +19 -0
  26. package/dist/commands/links/list.js +85 -0
  27. package/dist/commands/numbers/buy.js +15 -1
  28. package/dist/commands/numbers/get.d.ts +20 -0
  29. package/dist/commands/numbers/get.js +52 -0
  30. package/dist/commands/numbers/list.js +18 -1
  31. package/dist/commands/numbers/release.d.ts +23 -0
  32. package/dist/commands/numbers/release.js +67 -0
  33. package/dist/commands/numbers/update.d.ts +25 -0
  34. package/dist/commands/numbers/update.js +70 -0
  35. package/dist/commands/sms/group.d.ts +25 -0
  36. package/dist/commands/sms/group.js +164 -0
  37. package/dist/commands/sms/upload-media.d.ts +1 -1
  38. package/dist/commands/sms/upload-media.js +4 -4
  39. package/dist/commands/templates/enhance.js +3 -3
  40. package/dist/commands/upgrade.d.ts +1 -16
  41. package/dist/commands/upgrade.js +131 -38
  42. package/oclif.manifest.json +3964 -2966
  43. package/package.json +16 -1
@@ -0,0 +1,24 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ /**
3
+ * `sendly links create <url>` — mint a branded short link.
4
+ *
5
+ * Wraps `POST /api/v1/links`. Uses your workspace's brand slug when one is
6
+ * configured. Branded, owned-domain short links improve deliverability
7
+ * (carriers filter public shorteners) and give you click analytics.
8
+ *
9
+ * Gated behind the `url_shortener` rollout flag — until it's enabled for your
10
+ * account the server returns `404 not_found` and this command surfaces it.
11
+ */
12
+ export default class LinksCreate extends AuthenticatedCommand {
13
+ static description: string;
14
+ static examples: string[];
15
+ static args: {
16
+ url: import("@oclif/core/lib/interfaces/parser.js").Arg<string | undefined, Record<string, unknown>>;
17
+ };
18
+ static flags: {
19
+ url: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
20
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
21
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
22
+ };
23
+ run(): Promise<void>;
24
+ }
@@ -0,0 +1,71 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { success, error, spinner, colors, json, isJsonMode, } from "../../lib/output.js";
5
+ /**
6
+ * `sendly links create <url>` — mint a branded short link.
7
+ *
8
+ * Wraps `POST /api/v1/links`. Uses your workspace's brand slug when one is
9
+ * configured. Branded, owned-domain short links improve deliverability
10
+ * (carriers filter public shorteners) and give you click analytics.
11
+ *
12
+ * Gated behind the `url_shortener` rollout flag — until it's enabled for your
13
+ * account the server returns `404 not_found` and this command surfaces it.
14
+ */
15
+ export default class LinksCreate extends AuthenticatedCommand {
16
+ static description = "Shorten a URL into a branded short link. Requires the url_shortener feature to be enabled for your account.";
17
+ static examples = [
18
+ "<%= config.bin %> links create https://example.com/spring-sale",
19
+ '<%= config.bin %> links create --url "https://example.com/welcome?utm_source=sms"',
20
+ "<%= config.bin %> links create https://example.com/welcome --json",
21
+ ];
22
+ static args = {
23
+ url: Args.string({
24
+ description: "Destination URL to shorten (http/https, alternative to --url)",
25
+ required: false,
26
+ }),
27
+ };
28
+ static flags = {
29
+ ...AuthenticatedCommand.baseFlags,
30
+ url: Flags.string({
31
+ char: "u",
32
+ description: "Destination URL to shorten (http/https)",
33
+ }),
34
+ };
35
+ async run() {
36
+ const { args, flags } = await this.parse(LinksCreate);
37
+ const url = flags.url ?? args.url;
38
+ if (!url) {
39
+ error("A destination URL is required", {
40
+ hint: "Pass a URL: sendly links create https://example.com",
41
+ });
42
+ this.exit(1);
43
+ }
44
+ if (!/^https?:\/\//i.test(url)) {
45
+ error("URL must start with http:// or https://");
46
+ this.exit(1);
47
+ }
48
+ const spin = spinner("Shortening URL...");
49
+ spin.start();
50
+ try {
51
+ const response = await apiClient.post("/api/v1/links", {
52
+ url,
53
+ });
54
+ spin.stop();
55
+ if (isJsonMode()) {
56
+ json(response);
57
+ return;
58
+ }
59
+ success("Short link created", {
60
+ Code: response.code,
61
+ "Short URL": colors.code(response.shortUrl),
62
+ Destination: response.destinationUrl,
63
+ });
64
+ }
65
+ catch (err) {
66
+ spin.stop();
67
+ throw err;
68
+ }
69
+ }
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2xpbmtzL2NyZWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsT0FBTyxFQUNQLE1BQU0sRUFDTixJQUFJLEVBQ0osVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFRN0I7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxXQUFZLFNBQVEsb0JBQW9CO0lBQzNELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLDZHQUE2RyxDQUFDO0lBRWhILE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsZ0VBQWdFO1FBQ2hFLG1GQUFtRjtRQUNuRixtRUFBbUU7S0FDcEUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNmLFdBQVcsRUFBRSwrREFBK0Q7WUFDNUUsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2hCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLHlDQUF5QztTQUN2RCxDQUFDO0tBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdEQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULEtBQUssQ0FBQywrQkFBK0IsRUFBRTtnQkFDckMsSUFBSSxFQUFFLHFEQUFxRDthQUM1RCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQVksZUFBZSxFQUFFO2dCQUNoRSxHQUFHO2FBQ0osQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRVosSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2YsT0FBTztZQUNULENBQUM7WUFFRCxPQUFPLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzVCLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtnQkFDbkIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDM0MsV0FBVyxFQUFFLFFBQVEsQ0FBQyxjQUFjO2FBQ3JDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MsIEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGVycm9yLFxuICBzcGlubmVyLFxuICBjb2xvcnMsXG4gIGpzb24sXG4gIGlzSnNvbk1vZGUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBTaG9ydExpbmsge1xuICBjb2RlOiBzdHJpbmc7XG4gIHNob3J0VXJsOiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogYHNlbmRseSBsaW5rcyBjcmVhdGUgPHVybD5gIOKAlCBtaW50IGEgYnJhbmRlZCBzaG9ydCBsaW5rLlxuICpcbiAqIFdyYXBzIGBQT1NUIC9hcGkvdjEvbGlua3NgLiBVc2VzIHlvdXIgd29ya3NwYWNlJ3MgYnJhbmQgc2x1ZyB3aGVuIG9uZSBpc1xuICogY29uZmlndXJlZC4gQnJhbmRlZCwgb3duZWQtZG9tYWluIHNob3J0IGxpbmtzIGltcHJvdmUgZGVsaXZlcmFiaWxpdHlcbiAqIChjYXJyaWVycyBmaWx0ZXIgcHVibGljIHNob3J0ZW5lcnMpIGFuZCBnaXZlIHlvdSBjbGljayBhbmFseXRpY3MuXG4gKlxuICogR2F0ZWQgYmVoaW5kIHRoZSBgdXJsX3Nob3J0ZW5lcmAgcm9sbG91dCBmbGFnIOKAlCB1bnRpbCBpdCdzIGVuYWJsZWQgZm9yIHlvdXJcbiAqIGFjY291bnQgdGhlIHNlcnZlciByZXR1cm5zIGA0MDQgbm90X2ZvdW5kYCBhbmQgdGhpcyBjb21tYW5kIHN1cmZhY2VzIGl0LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaW5rc0NyZWF0ZSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIlNob3J0ZW4gYSBVUkwgaW50byBhIGJyYW5kZWQgc2hvcnQgbGluay4gUmVxdWlyZXMgdGhlIHVybF9zaG9ydGVuZXIgZmVhdHVyZSB0byBiZSBlbmFibGVkIGZvciB5b3VyIGFjY291bnQuXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbGlua3MgY3JlYXRlIGh0dHBzOi8vZXhhbXBsZS5jb20vc3ByaW5nLXNhbGVcIixcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gbGlua3MgY3JlYXRlIC0tdXJsIFwiaHR0cHM6Ly9leGFtcGxlLmNvbS93ZWxjb21lP3V0bV9zb3VyY2U9c21zXCInLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbGlua3MgY3JlYXRlIGh0dHBzOi8vZXhhbXBsZS5jb20vd2VsY29tZSAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICB1cmw6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkRlc3RpbmF0aW9uIFVSTCB0byBzaG9ydGVuIChodHRwL2h0dHBzLCBhbHRlcm5hdGl2ZSB0byAtLXVybClcIixcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIHVybDogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwidVwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiRGVzdGluYXRpb24gVVJMIHRvIHNob3J0ZW4gKGh0dHAvaHR0cHMpXCIsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncywgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoTGlua3NDcmVhdGUpO1xuXG4gICAgY29uc3QgdXJsID0gZmxhZ3MudXJsID8/IGFyZ3MudXJsO1xuICAgIGlmICghdXJsKSB7XG4gICAgICBlcnJvcihcIkEgZGVzdGluYXRpb24gVVJMIGlzIHJlcXVpcmVkXCIsIHtcbiAgICAgICAgaGludDogXCJQYXNzIGEgVVJMOiBzZW5kbHkgbGlua3MgY3JlYXRlIGh0dHBzOi8vZXhhbXBsZS5jb21cIixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGlmICghL15odHRwcz86XFwvXFwvL2kudGVzdCh1cmwhKSkge1xuICAgICAgZXJyb3IoXCJVUkwgbXVzdCBzdGFydCB3aXRoIGh0dHA6Ly8gb3IgaHR0cHM6Ly9cIik7XG4gICAgICB0aGlzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoXCJTaG9ydGVuaW5nIFVSTC4uLlwiKTtcbiAgICBzcGluLnN0YXJ0KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxTaG9ydExpbms+KFwiL2FwaS92MS9saW5rc1wiLCB7XG4gICAgICAgIHVybCxcbiAgICAgIH0pO1xuXG4gICAgICBzcGluLnN0b3AoKTtcblxuICAgICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzdWNjZXNzKFwiU2hvcnQgbGluayBjcmVhdGVkXCIsIHtcbiAgICAgICAgQ29kZTogcmVzcG9uc2UuY29kZSxcbiAgICAgICAgXCJTaG9ydCBVUkxcIjogY29sb3JzLmNvZGUocmVzcG9uc2Uuc2hvcnRVcmwpLFxuICAgICAgICBEZXN0aW5hdGlvbjogcmVzcG9uc2UuZGVzdGluYXRpb25VcmwsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNwaW4uc3RvcCgpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ /**
3
+ * `sendly links disable <code>` — the per-link kill switch. A disabled link's
4
+ * redirect returns 404 until it is re-enabled. Pass `--enable` to re-enable.
5
+ *
6
+ * Wraps `PATCH /api/v1/links/:code`. Gated behind the `url_shortener` rollout
7
+ * flag — until it's enabled the server returns `404 not_found`.
8
+ */
9
+ export default class LinksDisable extends AuthenticatedCommand {
10
+ static description: string;
11
+ static examples: string[];
12
+ static args: {
13
+ code: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
14
+ };
15
+ static flags: {
16
+ enable: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
17
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
18
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
19
+ };
20
+ run(): Promise<void>;
21
+ }
@@ -0,0 +1,55 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { success, spinner, json, isJsonMode } from "../../lib/output.js";
5
+ /**
6
+ * `sendly links disable <code>` — the per-link kill switch. A disabled link's
7
+ * redirect returns 404 until it is re-enabled. Pass `--enable` to re-enable.
8
+ *
9
+ * Wraps `PATCH /api/v1/links/:code`. Gated behind the `url_shortener` rollout
10
+ * flag — until it's enabled the server returns `404 not_found`.
11
+ */
12
+ export default class LinksDisable extends AuthenticatedCommand {
13
+ static description = "Disable a short link so its redirect returns 404 (use --enable to re-enable)";
14
+ static examples = [
15
+ "<%= config.bin %> links disable Ab3xY7",
16
+ "<%= config.bin %> links disable Ab3xY7 --enable",
17
+ "<%= config.bin %> links disable Ab3xY7 --json",
18
+ ];
19
+ static args = {
20
+ code: Args.string({
21
+ description: "Short link code (the segment after the domain)",
22
+ required: true,
23
+ }),
24
+ };
25
+ static flags = {
26
+ ...AuthenticatedCommand.baseFlags,
27
+ enable: Flags.boolean({
28
+ description: "Re-enable the link instead of disabling it",
29
+ default: false,
30
+ }),
31
+ };
32
+ async run() {
33
+ const { args, flags } = await this.parse(LinksDisable);
34
+ const disabled = !flags.enable;
35
+ const spin = spinner(disabled ? "Disabling link..." : "Re-enabling link...");
36
+ spin.start();
37
+ try {
38
+ const response = await apiClient.patch(`/api/v1/links/${encodeURIComponent(args.code)}`, { disabled });
39
+ spin.stop();
40
+ if (isJsonMode()) {
41
+ json(response);
42
+ return;
43
+ }
44
+ success(response.disabled ? "Link disabled" : "Link re-enabled", {
45
+ Code: response.code,
46
+ State: response.disabled ? "disabled" : "active",
47
+ });
48
+ }
49
+ catch (err) {
50
+ spin.stop();
51
+ throw err;
52
+ }
53
+ }
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9saW5rcy9kaXNhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFPekU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxZQUFhLFNBQVEsb0JBQW9CO0lBQzVELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLDhFQUE4RSxDQUFDO0lBRWpGLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsd0NBQXdDO1FBQ3hDLGlEQUFpRDtRQUNqRCwrQ0FBK0M7S0FDaEQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNoQixXQUFXLEVBQUUsZ0RBQWdEO1lBQzdELFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3BCLFdBQVcsRUFBRSw0Q0FBNEM7WUFDekQsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBRS9CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssQ0FDcEMsaUJBQWlCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUNoRCxFQUFFLFFBQVEsRUFBRSxDQUNiLENBQUM7WUFFRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFWixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDZixPQUFPO1lBQ1QsQ0FBQztZQUVELE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFO2dCQUMvRCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQ25CLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVE7YUFDakQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncywgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHsgc3VjY2Vzcywgc3Bpbm5lciwganNvbiwgaXNKc29uTW9kZSB9IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBTaG9ydExpbmtEaXNhYmxlZFJlc3BvbnNlIHtcbiAgY29kZTogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBgc2VuZGx5IGxpbmtzIGRpc2FibGUgPGNvZGU+YCDigJQgdGhlIHBlci1saW5rIGtpbGwgc3dpdGNoLiBBIGRpc2FibGVkIGxpbmsnc1xuICogcmVkaXJlY3QgcmV0dXJucyA0MDQgdW50aWwgaXQgaXMgcmUtZW5hYmxlZC4gUGFzcyBgLS1lbmFibGVgIHRvIHJlLWVuYWJsZS5cbiAqXG4gKiBXcmFwcyBgUEFUQ0ggL2FwaS92MS9saW5rcy86Y29kZWAuIEdhdGVkIGJlaGluZCB0aGUgYHVybF9zaG9ydGVuZXJgIHJvbGxvdXRcbiAqIGZsYWcg4oCUIHVudGlsIGl0J3MgZW5hYmxlZCB0aGUgc2VydmVyIHJldHVybnMgYDQwNCBub3RfZm91bmRgLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaW5rc0Rpc2FibGUgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJEaXNhYmxlIGEgc2hvcnQgbGluayBzbyBpdHMgcmVkaXJlY3QgcmV0dXJucyA0MDQgKHVzZSAtLWVuYWJsZSB0byByZS1lbmFibGUpXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbGlua3MgZGlzYWJsZSBBYjN4WTdcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGxpbmtzIGRpc2FibGUgQWIzeFk3IC0tZW5hYmxlXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBsaW5rcyBkaXNhYmxlIEFiM3hZNyAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICBjb2RlOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJTaG9ydCBsaW5rIGNvZGUgKHRoZSBzZWdtZW50IGFmdGVyIHRoZSBkb21haW4pXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIGVuYWJsZTogRmxhZ3MuYm9vbGVhbih7XG4gICAgICBkZXNjcmlwdGlvbjogXCJSZS1lbmFibGUgdGhlIGxpbmsgaW5zdGVhZCBvZiBkaXNhYmxpbmcgaXRcIixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGFyZ3MsIGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKExpbmtzRGlzYWJsZSk7XG4gICAgY29uc3QgZGlzYWJsZWQgPSAhZmxhZ3MuZW5hYmxlO1xuXG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoZGlzYWJsZWQgPyBcIkRpc2FibGluZyBsaW5rLi4uXCIgOiBcIlJlLWVuYWJsaW5nIGxpbmsuLi5cIik7XG4gICAgc3Bpbi5zdGFydCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBhdGNoPFNob3J0TGlua0Rpc2FibGVkUmVzcG9uc2U+KFxuICAgICAgICBgL2FwaS92MS9saW5rcy8ke2VuY29kZVVSSUNvbXBvbmVudChhcmdzLmNvZGUpfWAsXG4gICAgICAgIHsgZGlzYWJsZWQgfSxcbiAgICAgICk7XG5cbiAgICAgIHNwaW4uc3RvcCgpO1xuXG4gICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHN1Y2Nlc3MocmVzcG9uc2UuZGlzYWJsZWQgPyBcIkxpbmsgZGlzYWJsZWRcIiA6IFwiTGluayByZS1lbmFibGVkXCIsIHtcbiAgICAgICAgQ29kZTogcmVzcG9uc2UuY29kZSxcbiAgICAgICAgU3RhdGU6IHJlc3BvbnNlLmRpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJhY3RpdmVcIixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc3Bpbi5zdG9wKCk7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ /**
3
+ * `sendly links list` — list the branded short links your workspace has
4
+ * created, newest first, with click counts.
5
+ *
6
+ * Wraps `GET /api/v1/links`. Gated behind the `url_shortener` rollout flag —
7
+ * until it's enabled the server returns `404 not_found`.
8
+ */
9
+ export default class LinksList extends AuthenticatedCommand {
10
+ static description: string;
11
+ static examples: string[];
12
+ static flags: {
13
+ limit: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
+ offset: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
16
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
17
+ };
18
+ run(): Promise<void>;
19
+ }
@@ -0,0 +1,85 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { table, json, info, colors, formatRelativeTime, isJsonMode, } from "../../lib/output.js";
5
+ /**
6
+ * `sendly links list` — list the branded short links your workspace has
7
+ * created, newest first, with click counts.
8
+ *
9
+ * Wraps `GET /api/v1/links`. Gated behind the `url_shortener` rollout flag —
10
+ * until it's enabled the server returns `404 not_found`.
11
+ */
12
+ export default class LinksList extends AuthenticatedCommand {
13
+ static description = "List your branded short links with click counts";
14
+ static examples = [
15
+ "<%= config.bin %> links list",
16
+ "<%= config.bin %> links list --limit 20",
17
+ "<%= config.bin %> links list --json",
18
+ ];
19
+ static flags = {
20
+ ...AuthenticatedCommand.baseFlags,
21
+ limit: Flags.integer({
22
+ char: "l",
23
+ description: "Maximum number of links to return (1-200)",
24
+ default: 50,
25
+ }),
26
+ offset: Flags.integer({
27
+ description: "Number of links to skip for pagination",
28
+ default: 0,
29
+ }),
30
+ };
31
+ async run() {
32
+ const { flags } = await this.parse(LinksList);
33
+ const response = await apiClient.get("/api/v1/links", {
34
+ limit: flags.limit,
35
+ offset: flags.offset,
36
+ });
37
+ if (isJsonMode()) {
38
+ json(response);
39
+ return;
40
+ }
41
+ if (!response.links || response.links.length === 0) {
42
+ info("No short links yet. Create one with: sendly links create <url>");
43
+ return;
44
+ }
45
+ console.log();
46
+ console.log(colors.dim(`Showing ${response.links.length} of ${response.total} links`));
47
+ console.log();
48
+ table(response.links, [
49
+ {
50
+ header: "Short URL",
51
+ key: "shortUrl",
52
+ width: 34,
53
+ formatter: (v) => colors.code(String(v)),
54
+ },
55
+ {
56
+ header: "Destination",
57
+ key: "destinationUrl",
58
+ width: 34,
59
+ formatter: (v) => {
60
+ const text = String(v ?? "-");
61
+ return text.length > 31 ? text.slice(0, 31) + "..." : text;
62
+ },
63
+ },
64
+ {
65
+ header: "Clicks",
66
+ key: "clickCount",
67
+ width: 8,
68
+ formatter: (v) => String(v ?? 0),
69
+ },
70
+ {
71
+ header: "State",
72
+ key: "disabled",
73
+ width: 10,
74
+ formatter: (v) => (v ? colors.error("disabled") : colors.success("active")),
75
+ },
76
+ {
77
+ header: "Last click",
78
+ key: "lastClickedAt",
79
+ width: 14,
80
+ formatter: (v) => (v ? formatRelativeTime(String(v)) : colors.dim("never")),
81
+ },
82
+ ]);
83
+ }
84
+ }
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9saW5rcy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFDTCxLQUFLLEVBQ0wsSUFBSSxFQUNKLElBQUksRUFDSixNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLFVBQVUsR0FDWCxNQUFNLHFCQUFxQixDQUFDO0FBb0I3Qjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLFNBQVUsU0FBUSxvQkFBb0I7SUFDekQsTUFBTSxDQUFDLFdBQVcsR0FBRyxpREFBaUQsQ0FBQztJQUV2RSxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDhCQUE4QjtRQUM5Qix5Q0FBeUM7UUFDekMscUNBQXFDO0tBQ3RDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDJDQUEyQztZQUN4RCxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNwQixXQUFXLEVBQUUsd0NBQXdDO1lBQ3JELE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQztLQUNILENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUNsQyxlQUFlLEVBQ2Y7WUFDRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1NBQ3JCLENBQ0YsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1lBQ3ZFLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLE9BQU8sUUFBUSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQzFFLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFZCxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRTtZQUNwQjtnQkFDRSxNQUFNLEVBQUUsV0FBVztnQkFDbkIsR0FBRyxFQUFFLFVBQVU7Z0JBQ2YsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6QztZQUNEO2dCQUNFLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixHQUFHLEVBQUUsZ0JBQWdCO2dCQUNyQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDZixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO29CQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDN0QsQ0FBQzthQUNGO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLEdBQUcsRUFBRSxZQUFZO2dCQUNqQixLQUFLLEVBQUUsQ0FBQztnQkFDUixTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pDO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsR0FBRyxFQUFFLFVBQVU7Z0JBQ2YsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM1RTtZQUNEO2dCQUNFLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixHQUFHLEVBQUUsZUFBZTtnQkFDcEIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDNUU7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAgdGFibGUsXG4gIGpzb24sXG4gIGluZm8sXG4gIGNvbG9ycyxcbiAgZm9ybWF0UmVsYXRpdmVUaW1lLFxuICBpc0pzb25Nb2RlLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgU2hvcnRMaW5rTGlzdEl0ZW0ge1xuICBjb2RlOiBzdHJpbmc7XG4gIHNob3J0VXJsOiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uVXJsOiBzdHJpbmc7XG4gIGJyYW5kU2x1Zzogc3RyaW5nIHwgbnVsbDtcbiAgY2xpY2tDb3VudDogbnVtYmVyO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgbGFzdENvdW50cnk6IHN0cmluZyB8IG51bGw7XG4gIGxhc3RDbGlja2VkQXQ6IHN0cmluZyB8IG51bGw7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICBzcGFyazogbnVtYmVyW107XG59XG5cbmludGVyZmFjZSBTaG9ydExpbmtMaXN0UmVzcG9uc2Uge1xuICBsaW5rczogU2hvcnRMaW5rTGlzdEl0ZW1bXTtcbiAgdG90YWw6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBgc2VuZGx5IGxpbmtzIGxpc3RgIOKAlCBsaXN0IHRoZSBicmFuZGVkIHNob3J0IGxpbmtzIHlvdXIgd29ya3NwYWNlIGhhc1xuICogY3JlYXRlZCwgbmV3ZXN0IGZpcnN0LCB3aXRoIGNsaWNrIGNvdW50cy5cbiAqXG4gKiBXcmFwcyBgR0VUIC9hcGkvdjEvbGlua3NgLiBHYXRlZCBiZWhpbmQgdGhlIGB1cmxfc2hvcnRlbmVyYCByb2xsb3V0IGZsYWcg4oCUXG4gKiB1bnRpbCBpdCdzIGVuYWJsZWQgdGhlIHNlcnZlciByZXR1cm5zIGA0MDQgbm90X2ZvdW5kYC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlua3NMaXN0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkxpc3QgeW91ciBicmFuZGVkIHNob3J0IGxpbmtzIHdpdGggY2xpY2sgY291bnRzXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbGlua3MgbGlzdFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbGlua3MgbGlzdCAtLWxpbWl0IDIwXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBsaW5rcyBsaXN0IC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgbGltaXQ6IEZsYWdzLmludGVnZXIoe1xuICAgICAgY2hhcjogXCJsXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJNYXhpbXVtIG51bWJlciBvZiBsaW5rcyB0byByZXR1cm4gKDEtMjAwKVwiLFxuICAgICAgZGVmYXVsdDogNTAsXG4gICAgfSksXG4gICAgb2Zmc2V0OiBGbGFncy5pbnRlZ2VyKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk51bWJlciBvZiBsaW5rcyB0byBza2lwIGZvciBwYWdpbmF0aW9uXCIsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKExpbmtzTGlzdCk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8U2hvcnRMaW5rTGlzdFJlc3BvbnNlPihcbiAgICAgIFwiL2FwaS92MS9saW5rc1wiLFxuICAgICAge1xuICAgICAgICBsaW1pdDogZmxhZ3MubGltaXQsXG4gICAgICAgIG9mZnNldDogZmxhZ3Mub2Zmc2V0LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFyZXNwb25zZS5saW5rcyB8fCByZXNwb25zZS5saW5rcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8oXCJObyBzaG9ydCBsaW5rcyB5ZXQuIENyZWF0ZSBvbmUgd2l0aDogc2VuZGx5IGxpbmtzIGNyZWF0ZSA8dXJsPlwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgY29sb3JzLmRpbShgU2hvd2luZyAke3Jlc3BvbnNlLmxpbmtzLmxlbmd0aH0gb2YgJHtyZXNwb25zZS50b3RhbH0gbGlua3NgKSxcbiAgICApO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICB0YWJsZShyZXNwb25zZS5saW5rcywgW1xuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiU2hvcnQgVVJMXCIsXG4gICAgICAgIGtleTogXCJzaG9ydFVybFwiLFxuICAgICAgICB3aWR0aDogMzQsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGNvbG9ycy5jb2RlKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiRGVzdGluYXRpb25cIixcbiAgICAgICAga2V5OiBcImRlc3RpbmF0aW9uVXJsXCIsXG4gICAgICAgIHdpZHRoOiAzNCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4ge1xuICAgICAgICAgIGNvbnN0IHRleHQgPSBTdHJpbmcodiA/PyBcIi1cIik7XG4gICAgICAgICAgcmV0dXJuIHRleHQubGVuZ3RoID4gMzEgPyB0ZXh0LnNsaWNlKDAsIDMxKSArIFwiLi4uXCIgOiB0ZXh0O1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkNsaWNrc1wiLFxuICAgICAgICBrZXk6IFwiY2xpY2tDb3VudFwiLFxuICAgICAgICB3aWR0aDogOCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gU3RyaW5nKHYgPz8gMCksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiU3RhdGVcIixcbiAgICAgICAga2V5OiBcImRpc2FibGVkXCIsXG4gICAgICAgIHdpZHRoOiAxMCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gKHYgPyBjb2xvcnMuZXJyb3IoXCJkaXNhYmxlZFwiKSA6IGNvbG9ycy5zdWNjZXNzKFwiYWN0aXZlXCIpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJMYXN0IGNsaWNrXCIsXG4gICAgICAgIGtleTogXCJsYXN0Q2xpY2tlZEF0XCIsXG4gICAgICAgIHdpZHRoOiAxNCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gKHYgPyBmb3JtYXRSZWxhdGl2ZVRpbWUoU3RyaW5nKHYpKSA6IGNvbG9ycy5kaW0oXCJuZXZlclwiKSksXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG59XG4iXX0=
@@ -78,6 +78,20 @@ export default class NumbersBuy extends AuthenticatedCommand {
78
78
  buyBody.actionCode = action.actionCode;
79
79
  response = await apiClient.post("/api/v1/numbers/buy", buyBody);
80
80
  }
81
+ // Document-required country: details submitted, number reserved + under
82
+ // review. No carrier order is placed until our team verifies + registers
83
+ // it, so there's nothing to poll for here.
84
+ if (response.status === "under_review") {
85
+ if (isJsonMode()) {
86
+ json(response);
87
+ return;
88
+ }
89
+ success("Number reserved — your details are under review", {
90
+ number: response.number?.phoneNumber,
91
+ note: "We verify your documents and register the number, usually within a few business days. It can't send until it's active — check `sendly numbers list`.",
92
+ });
93
+ return;
94
+ }
81
95
  // status === "provisioning"
82
96
  if (isJsonMode()) {
83
97
  // Wait for activation then emit the final number record.
@@ -249,4 +263,4 @@ export default class NumbersBuy extends AuthenticatedCommand {
249
263
  return undefined;
250
264
  }
251
265
  }
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL251bWJlcnMvYnV5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFDTCxJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksRUFDSixJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFvRG5FLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLENBQUMsWUFBWTtBQUMvQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQyxDQUFDLGNBQWM7QUFDL0MsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxZQUFZO0FBQ2xELE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUMsYUFBYTtBQUVoRCxTQUFTLEtBQUssQ0FBQyxFQUFVO0lBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxVQUFXLFNBQVEsb0JBQW9CO0lBQzFELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGdHQUFnRyxDQUFDO0lBRW5HLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsMERBQTBEO1FBQzFELCtFQUErRTtRQUMvRSxpRUFBaUU7S0FDbEUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsZ0NBQWdDO1lBQzdDLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztRQUNGLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDZDQUE2QztZQUMxRCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNuQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSwwREFBMEQ7U0FDeEUsQ0FBQztLQUNILENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUV0Qix3RUFBd0U7UUFDeEUsOERBQThEO1FBQzlELE1BQU0sT0FBTyxHQUE0QjtZQUN2QyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7WUFDakMsV0FBVyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQzFCLGVBQWUsRUFBRSxLQUFLLENBQUMsSUFBSTtZQUMzQixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7U0FDbEMsQ0FBQztRQUVGLElBQUksUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDakMscUJBQXFCLEVBQ3JCLE9BQU8sQ0FDUixDQUFDO1FBRUYsNEVBQTRFO1FBQzVFLE9BQ0UsUUFBUSxDQUFDLE1BQU0sS0FBSyxvQkFBb0I7WUFDeEMsUUFBUSxDQUFDLE1BQU0sS0FBSyxrQkFBa0IsRUFDdEMsQ0FBQztZQUNELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDL0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLHFFQUFxRTtnQkFDckUsaUNBQWlDO2dCQUNqQyxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7b0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDZixPQUFPO2dCQUNULENBQUM7Z0JBQ0QsS0FBSyxDQUNILHFCQUFxQixRQUFRLENBQUMsTUFBTSxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsbUNBQW1DLEVBQ3hIO29CQUNFLElBQUksRUFBRSwrREFBK0Q7aUJBQ3RFLENBQ0YsQ0FBQztnQkFDRixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztZQUVELElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDakIsa0VBQWtFO2dCQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2YsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsU0FBUztnQkFBRSxPQUFPLENBQUMseUNBQXlDO1lBRWpFLDRFQUE0RTtZQUM1RSxPQUFPLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDdkMsUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDN0IscUJBQXFCLEVBQ3JCLE9BQU8sQ0FDUixDQUFDO1FBQ0osQ0FBQztRQUVELDRCQUE0QjtRQUM1QixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIseURBQXlEO1lBQ3pELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsQ0FBQztZQUN6QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxzQkFBc0IsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEYsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5RCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLGtCQUFrQixFQUFFO2dCQUMxQixNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVc7Z0JBQzFCLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDYixPQUFPLEVBQUUsTUFBTSxDQUFDLFdBQVc7Z0JBQzNCLElBQUksRUFBRSxNQUFNLENBQUMsZUFBZTthQUM3QixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FDRix3R0FBd0csQ0FDekcsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FJM0I7UUFDQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixJQUFJLFNBQTRCLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUNoQywyQkFBMkIsRUFDM0I7Z0JBQ0UsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0JBQ2hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ25FLENBQ0YsQ0FBQztZQUNGLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUM5QyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0saUNBQWlDLEVBQUU7b0JBQ3RELElBQUksRUFBRSx3Q0FBd0MsS0FBSyxDQUFDLE9BQU8sV0FBVyxLQUFLLENBQUMsSUFBSSxFQUFFO2lCQUNuRixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNmLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGtDQUFrQyxLQUFLLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ3pFLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCwwREFBMEQ7UUFDMUQsSUFBSSxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDdkM7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLDJCQUEyQixLQUFLLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUk7Z0JBQ3BFLE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxXQUFXLFFBQVEsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLO29CQUM5RCxLQUFLLEVBQUUsQ0FBQyxDQUFDLFdBQVc7aUJBQ3JCLENBQUMsQ0FBQzthQUNKO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssS0FBSyxDQUFDLGVBQWUsQ0FDM0IsSUFBK0MsRUFDL0MsTUFBaUI7UUFFakIsTUFBTSxLQUFLLEdBQ1QsSUFBSSxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7UUFFMUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxJQUFJLEtBQUssa0JBQWtCO1lBQ3pCLENBQUMsQ0FBQyxpRUFBaUU7WUFDbkUsQ0FBQyxDQUFDLGdGQUFnRixDQUNyRixDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDakYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFZCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsT0FBTyxRQUFRLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xDLFFBQVEsRUFBRSxDQUFDO1lBRVgsSUFBSSxNQUE0QixDQUFDO1lBQ2pDLElBQUksQ0FBQztnQkFDSCxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUMxQixtQkFBbUIsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQzNELENBQUM7WUFDSixDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixJQUFJLEdBQUcsWUFBWSxhQUFhLEVBQUUsQ0FBQztvQkFDakMscUVBQXFFO29CQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQy9CLGVBQWUsRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQ0YsNkZBQTZGLENBQzlGLENBQUM7b0JBQ0YsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztnQkFDRCxrQ0FBa0M7Z0JBQ2xDLFNBQVM7WUFDWCxDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMxQixlQUFlLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQy9CLGVBQWUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQ0YsNkZBQTZGLENBQzlGLENBQUM7Z0JBQ0YsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0Qsc0NBQXNDO1FBQ3hDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDOUMsZUFBZSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUNGLG9IQUFvSCxDQUNySCxDQUFDO1FBQ0YsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLEtBQUssQ0FBQyxhQUFhLENBQ3pCLFdBQW1CO1FBRW5CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNqQixPQUFPLFFBQVEsR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3pDLElBQUksSUFBeUIsQ0FBQztZQUM5QixJQUFJLENBQUM7Z0JBQ0gsSUFBSSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBc0IsaUJBQWlCLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ3JDLFFBQVEsRUFBRSxDQUFDO2dCQUNYLFNBQVM7WUFDWCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDckMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUNyQyxDQUFDO1lBQ0YsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsTUFBTSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNyQyxRQUFRLEVBQUUsQ0FBQztRQUNiLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCBvcGVuIGZyb20gXCJvcGVuXCI7XG5pbXBvcnQgaW5xdWlyZXIgZnJvbSBcImlucXVpcmVyXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIHN1Y2Nlc3MsXG4gIGluZm8sXG4gIHdhcm4sXG4gIGVycm9yLFxuICBjb2xvcnMsXG4gIHNwaW5uZXIsXG4gIGlzSnNvbk1vZGUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgeyBhdHRhY2hMb2dpbktleXByZXNzSGFuZGxlciB9IGZyb20gXCIuLi8uLi9saWIva2V5cHJlc3MuanNcIjtcblxuaW50ZXJmYWNlIEF2YWlsYWJsZU51bWJlciB7XG4gIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIGNvdW50cnk6IHN0cmluZztcbiAgbnVtYmVyVHlwZTogc3RyaW5nO1xuICBtb250aGx5Q29zdDogc3RyaW5nO1xuICBjdXJyZW5jeTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2VhcmNoTnVtYmVyc1Jlc3BvbnNlIHtcbiAgbnVtYmVyczogQXZhaWxhYmxlTnVtYmVyW107XG59XG5cbmludGVyZmFjZSBCdXlBY3Rpb24ge1xuICB1cmw6IHN0cmluZztcbiAgLy8gYWN0aW9uQ29kZSAoMzItaGV4KSBpZGVudGlmaWVzIHRoZSBhY3Rpb24g4oCUIHVzZWQgdG8gUE9MTCBhbmQgdG8gUkUtQlVZLlxuICBhY3Rpb25Db2RlOiBzdHJpbmc7XG4gIC8vIGNvZGUgKDgtY2hhciB1c2VyQ29kZSkgaXMgc2hvd24gdG8gdGhlIGh1bWFuIHRvIHR5cGUgb24gdGhlIGhvc3RlZCBwYWdlXG4gIC8vIHRvIHByb3ZlIHRlcm1pbmFsIGFjY2Vzcy4gRElTUExBWSBvbmx5IOKAlCBuZXZlciB1c2VkIGFzIGFjdGlvbkNvZGUuXG4gIGNvZGU6IHN0cmluZztcbiAgZXhwaXJlc0F0OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBPd25lZE51bWJlciB7XG4gIGlkOiBzdHJpbmc7XG4gIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBzb3VyY2U6IHN0cmluZztcbiAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgcGhvbmVOdW1iZXJUeXBlOiBzdHJpbmc7XG4gIG1vbnRobHlDb3N0Q2VudHM6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIEJ1eVJlc3BvbnNlIHtcbiAgc3RhdHVzOiBcInByb3Zpc2lvbmluZ1wiIHwgXCJkb2N1bWVudHNfcmVxdWlyZWRcIiB8IFwicGF5bWVudF9yZXF1aXJlZFwiO1xuICBudW1iZXI/OiBPd25lZE51bWJlcjtcbiAgcmVxdWlyZW1lbnRzPzogdW5rbm93bjtcbiAgYWN0aW9uPzogQnV5QWN0aW9uO1xufVxuXG5pbnRlcmZhY2UgTGlzdE51bWJlcnNSZXNwb25zZSB7XG4gIG51bWJlcnM6IE93bmVkTnVtYmVyW107XG59XG5cbmludGVyZmFjZSBBY3Rpb25TdGF0dXNSZXNwb25zZSB7XG4gIHN0YXR1czogXCJwZW5kaW5nXCIgfCBcImF1dGhvcml6ZWRcIiB8IFwiY29tcGxldGVkXCIgfCBcImV4cGlyZWRcIjtcbiAgYWN0aW9uVHlwZTogc3RyaW5nO1xuICByZXN1bHQ/OiB1bmtub3duO1xuICBleHBpcmVzQXQ6IHN0cmluZztcbn1cblxuY29uc3QgQUNUSU9OX1BPTExfSU5URVJWQUwgPSAyMDAwOyAvLyAyIHNlY29uZHNcbmNvbnN0IEFDVElPTl9NQVhfQVRURU1QVFMgPSA2MDA7IC8vIH4yMCBtaW51dGVzXG5jb25zdCBQUk9WSVNJT05fUE9MTF9JTlRFUlZBTCA9IDMwMDA7IC8vIDMgc2Vjb25kc1xuY29uc3QgUFJPVklTSU9OX01BWF9BVFRFTVBUUyA9IDYwOyAvLyB+MyBtaW51dGVzXG5cbmZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE51bWJlcnNCdXkgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJCdXkgYSBwaG9uZSBudW1iZXIuIEhhbmRsZXMgZG9jdW1lbnQvcGF5bWVudCBzdGVwcyBpbnRlcmFjdGl2ZWx5IHdoZW4gYSBjb3VudHJ5IHJlcXVpcmVzIHRoZW0uXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbnVtYmVycyBidXkgLS1jb3VudHJ5IEdCIC0tdHlwZSBtb2JpbGVcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IG51bWJlcnMgYnV5IC0tY291bnRyeSBVUyAtLXR5cGUgbG9jYWwgLS1udW1iZXIgKzE1NTUxMjM0NTY3XCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBudW1iZXJzIGJ1eSAtLWNvdW50cnkgR0IgLS10eXBlIG1vYmlsZSAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIGNvdW50cnk6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcImNcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIklTTyBjb3VudHJ5IGNvZGUgKGUuZy4gR0IsIFVTKVwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgdHlwZTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwidFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiTnVtYmVyIHR5cGUgKGUuZy4gbW9iaWxlLCBsb2NhbCwgdG9sbC1mcmVlKVwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgbnVtYmVyOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJuXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJTcGVjaWZpYyBudW1iZXIgdG8gYnV5IGluIEUuMTY0IGZvcm1hdCAoc2tpcHMgc2VsZWN0aW9uKVwiLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKE51bWJlcnNCdXkpO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBhd2FpdCB0aGlzLnJlc29sdmVOdW1iZXIoZmxhZ3MpO1xuICAgIGlmICghc2VsZWN0ZWQpIHJldHVybjtcblxuICAgIC8vIFRoZSBidXkgYm9keSBpcyByZXVzZWQgdmVyYmF0aW0gYWNyb3NzIGV2ZXJ5IHJlLVBPU1Q7IG9ubHkgYWN0aW9uQ29kZVxuICAgIC8vIGlzIGFkZGVkIG9uY2UgYSBob3N0ZWQgYWN0aW9uIChkb2NzL3BheW1lbnQpIGhhcyBjb21wbGV0ZWQuXG4gICAgY29uc3QgYnV5Qm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBwaG9uZU51bWJlcjogc2VsZWN0ZWQucGhvbmVOdW1iZXIsXG4gICAgICBjb3VudHJ5Q29kZTogZmxhZ3MuY291bnRyeSxcbiAgICAgIHBob25lTnVtYmVyVHlwZTogZmxhZ3MudHlwZSxcbiAgICAgIG1vbnRobHlDb3N0OiBzZWxlY3RlZC5tb250aGx5Q29zdCxcbiAgICB9O1xuXG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8QnV5UmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL251bWJlcnMvYnV5XCIsXG4gICAgICBidXlCb2R5LFxuICAgICk7XG5cbiAgICAvLyBEcml2ZSB0aGUgYWN0aW9uIGxvb3AgdW50aWwgdGhlIGNhcnJpZXIgYWNjZXB0cyB0aGUgb3JkZXIgKHByb3Zpc2lvbmluZykuXG4gICAgd2hpbGUgKFxuICAgICAgcmVzcG9uc2Uuc3RhdHVzID09PSBcImRvY3VtZW50c19yZXF1aXJlZFwiIHx8XG4gICAgICByZXNwb25zZS5zdGF0dXMgPT09IFwicGF5bWVudF9yZXF1aXJlZFwiXG4gICAgKSB7XG4gICAgICBjb25zdCBhY3Rpb24gPSByZXNwb25zZS5hY3Rpb247XG4gICAgICBpZiAoIWFjdGlvbikge1xuICAgICAgICAvLyBCYWNrZW5kIHNheXMgZG9jcy9wYXltZW50IHJlcXVpcmVkIGJ1dCBnYXZlIHVzIG5vd2hlcmUgdG8gc2VuZCB0aGVcbiAgICAgICAgLy8gdXNlciDigJQgbm90aGluZyB0aGUgQ0xJIGNhbiBkby5cbiAgICAgICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlcnJvcihcbiAgICAgICAgICBgVGhpcyBudW1iZXIgbmVlZHMgJHtyZXNwb25zZS5zdGF0dXMgPT09IFwicGF5bWVudF9yZXF1aXJlZFwiID8gXCJwYXltZW50XCIgOiBcImRvY3VtZW50c1wifSBidXQgbm8gYWN0aW9uIGxpbmsgd2FzIHJldHVybmVkLmAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGludDogXCJUcnkgYWdhaW4sIG9yIGNvbXBsZXRlIHRoaXMgbnVtYmVyIGZyb20gdGhlIFNlbmRseSBkYXNoYm9hcmQuXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5leGl0KDEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgIC8vIE5vbi1pbnRlcmFjdGl2ZTogc3VyZmFjZSB0aGUgYWN0aW9uIHNvIHRoZSBjYWxsZXIgY2FuIGRyaXZlIGl0LlxuICAgICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb21wbGV0ZWQgPSBhd2FpdCB0aGlzLnJ1bkhvc3RlZEFjdGlvbihyZXNwb25zZS5zdGF0dXMsIGFjdGlvbik7XG4gICAgICBpZiAoIWNvbXBsZXRlZCkgcmV0dXJuOyAvLyBleHBpcmVkIC8gY2FuY2VsbGVkIOKAlCBhbHJlYWR5IG1lc3NhZ2VkXG5cbiAgICAgIC8vIFJlLWJ1eSB3aXRoIHRoZSBhY3Rpb24gaWRlbnRpZmllciAoYWN0aW9uQ29kZSksIE5PVCB0aGUgZGlzcGxheSB1c2VyQ29kZS5cbiAgICAgIGJ1eUJvZHkuYWN0aW9uQ29kZSA9IGFjdGlvbi5hY3Rpb25Db2RlO1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxCdXlSZXNwb25zZT4oXG4gICAgICAgIFwiL2FwaS92MS9udW1iZXJzL2J1eVwiLFxuICAgICAgICBidXlCb2R5LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBzdGF0dXMgPT09IFwicHJvdmlzaW9uaW5nXCJcbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAvLyBXYWl0IGZvciBhY3RpdmF0aW9uIHRoZW4gZW1pdCB0aGUgZmluYWwgbnVtYmVyIHJlY29yZC5cbiAgICAgIGNvbnN0IGFjdGl2ZSA9IGF3YWl0IHRoaXMud2FpdEZvckFjdGl2ZShzZWxlY3RlZC5waG9uZU51bWJlcik7XG4gICAgICBqc29uKGFjdGl2ZSA/PyByZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW5mbyhgT3JkZXIgYWNjZXB0ZWQgZm9yICR7Y29sb3JzLmNvZGUoc2VsZWN0ZWQucGhvbmVOdW1iZXIpfSDigJQgcHJvdmlzaW9uaW5nLi4uYCk7XG4gICAgY29uc3QgYWN0aXZlID0gYXdhaXQgdGhpcy53YWl0Rm9yQWN0aXZlKHNlbGVjdGVkLnBob25lTnVtYmVyKTtcblxuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHN1Y2Nlc3MoXCJOdW1iZXIgaXMgYWN0aXZlXCIsIHtcbiAgICAgICAgbnVtYmVyOiBhY3RpdmUucGhvbmVOdW1iZXIsXG4gICAgICAgIGlkOiBhY3RpdmUuaWQsXG4gICAgICAgIGNvdW50cnk6IGFjdGl2ZS5jb3VudHJ5Q29kZSxcbiAgICAgICAgdHlwZTogYWN0aXZlLnBob25lTnVtYmVyVHlwZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB3YXJuKFxuICAgICAgICBcIk51bWJlciBpcyBzdGlsbCBwcm92aXNpb25pbmcuIEl0IHVzdWFsbHkgYWN0aXZhdGVzIHdpdGhpbiBhIGZldyBtaW51dGVzIOKAlCBjaGVjayBgc2VuZGx5IG51bWJlcnMgbGlzdGAuXCIsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHdoaWNoIG51bWJlciB0byBidXkuIElmIC0tbnVtYmVyIGlzIGdpdmVuIHdlIHRydXN0IGl0IChhbmRcbiAgICogc3RpbGwgbmVlZCBpdHMgbW9udGhseUNvc3QsIHNvIHdlIGxvb2sgaXQgdXAgYW1vbmcgYXZhaWxhYmxlIG51bWJlcnMpLlxuICAgKiBPdGhlcndpc2Ugd2Ugc2VhcmNoIGFuZCBwcm9tcHQgdGhlIHVzZXIgdG8gcGljayBvbmUuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlc29sdmVOdW1iZXIoZmxhZ3M6IHtcbiAgICBjb3VudHJ5OiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG51bWJlcj86IHN0cmluZztcbiAgfSk6IFByb21pc2U8QXZhaWxhYmxlTnVtYmVyIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoXCJGaW5kaW5nIGF2YWlsYWJsZSBudW1iZXJzLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGxldCBhdmFpbGFibGU6IEF2YWlsYWJsZU51bWJlcltdO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZWFyY2ggPSBhd2FpdCBhcGlDbGllbnQuZ2V0PFNlYXJjaE51bWJlcnNSZXNwb25zZT4oXG4gICAgICAgIFwiL2FwaS92MS9udW1iZXJzL2F2YWlsYWJsZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgY291bnRyeTogZmxhZ3MuY291bnRyeSxcbiAgICAgICAgICB0eXBlOiBmbGFncy50eXBlLFxuICAgICAgICAgIC4uLihmbGFncy5udW1iZXIgJiYgeyBjb250YWluczogZmxhZ3MubnVtYmVyLnJlcGxhY2UoL15cXCsvLCBcIlwiKSB9KSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgICBhdmFpbGFibGUgPSBzZWFyY2gubnVtYmVycyA/PyBbXTtcbiAgICAgIHNwaW4uc3RvcCgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc3Bpbi5mYWlsKFwiQ291bGQgbm90IGxvYWQgYXZhaWxhYmxlIG51bWJlcnNcIik7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgaWYgKGZsYWdzLm51bWJlcikge1xuICAgICAgY29uc3QgbWF0Y2ggPSBhdmFpbGFibGUuZmluZCgobikgPT4gbi5waG9uZU51bWJlciA9PT0gZmxhZ3MubnVtYmVyKTtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgZXJyb3IoYCR7ZmxhZ3MubnVtYmVyfSBpcyBub3QgYXZhaWxhYmxlIGZvciBwdXJjaGFzZS5gLCB7XG4gICAgICAgICAgaGludDogYFJ1bjogc2VuZGx5IG51bWJlcnMgc2VhcmNoIC0tY291bnRyeSAke2ZsYWdzLmNvdW50cnl9IC0tdHlwZSAke2ZsYWdzLnR5cGV9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtYXRjaDtcbiAgICB9XG5cbiAgICBpZiAoYXZhaWxhYmxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5mbyhgTm8gYXZhaWxhYmxlIG51bWJlcnMgZm91bmQgZm9yICR7ZmxhZ3MuY291bnRyeX0gKCR7ZmxhZ3MudHlwZX0pLmApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBOb24taW50ZXJhY3RpdmUgKG5vIFRUWSAvIGpzb24pOiB0YWtlIHRoZSBmaXJzdCByZXN1bHQuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSB8fCAhcHJvY2Vzcy5zdGRvdXQuaXNUVFkpIHtcbiAgICAgIHJldHVybiBhdmFpbGFibGVbMF07XG4gICAgfVxuXG4gICAgY29uc3QgeyBjaG9pY2UgfSA9IGF3YWl0IGlucXVpcmVyLnByb21wdChbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibGlzdFwiLFxuICAgICAgICBuYW1lOiBcImNob2ljZVwiLFxuICAgICAgICBtZXNzYWdlOiBgQ2hvb3NlIGEgbnVtYmVyIHRvIGJ1eSAoJHtmbGFncy5jb3VudHJ5fSwgJHtmbGFncy50eXBlfSk6YCxcbiAgICAgICAgY2hvaWNlczogYXZhaWxhYmxlLnNsaWNlKDAsIDI1KS5tYXAoKG4pID0+ICh7XG4gICAgICAgICAgbmFtZTogYCR7bi5waG9uZU51bWJlcn0gIOKAlCAgJHtuLm1vbnRobHlDb3N0fSAke24uY3VycmVuY3l9L21vYCxcbiAgICAgICAgICB2YWx1ZTogbi5waG9uZU51bWJlcixcbiAgICAgICAgfSkpLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIHJldHVybiBhdmFpbGFibGUuZmluZCgobikgPT4gbi5waG9uZU51bWJlciA9PT0gY2hvaWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEcml2ZSBhIGhvc3RlZCBkb2N1bWVudC11cGxvYWQgLyBwYXltZW50IGFjdGlvbjogcHJpbnQgdGhlIGxpbmsgKyBjb2RlLFxuICAgKiBhdXRvLW9wZW4gaXQsIHdpcmUgcHJlc3MtW2NdLXRvLWNvcHkgLyBbcV0gdG8gY2FuY2VsLCB0aGVuIHBvbGwgdW50aWxcbiAgICogdGhlIGFjdGlvbiBjb21wbGV0ZXMgKHJlc29sdmVzIHRydWUpIG9yIGV4cGlyZXMgKHJlc29sdmVzIGZhbHNlKS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcnVuSG9zdGVkQWN0aW9uKFxuICAgIGtpbmQ6IFwiZG9jdW1lbnRzX3JlcXVpcmVkXCIgfCBcInBheW1lbnRfcmVxdWlyZWRcIixcbiAgICBhY3Rpb246IEJ1eUFjdGlvbixcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgbGFiZWwgPVxuICAgICAga2luZCA9PT0gXCJwYXltZW50X3JlcXVpcmVkXCIgPyBcIlBheW1lbnQgcmVxdWlyZWRcIiA6IFwiRG9jdW1lbnRzIHJlcXVpcmVkXCI7XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKGNvbG9ycy5ib2xkKGxhYmVsKSk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGtpbmQgPT09IFwicGF5bWVudF9yZXF1aXJlZFwiXG4gICAgICAgID8gXCJUaGlzIG51bWJlciBuZWVkcyBhIHBheW1lbnQgdG8gY29tcGxldGUuIE9wZW4gdGhpcyBzZWN1cmUgcGFnZTpcIlxuICAgICAgICA6IFwiVGhpcyBudW1iZXIgbmVlZHMgZG9jdW1lbnRzIGJlZm9yZSBpdCBjYW4gYmUgYWN0aXZhdGVkLiBPcGVuIHRoaXMgc2VjdXJlIHBhZ2U6XCIsXG4gICAgKTtcbiAgICBjb25zb2xlLmxvZyhjb2xvcnMucHJpbWFyeShgICAke2FjdGlvbi51cmx9YCkpO1xuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coXCJDb25maXJtYXRpb24gY29kZSAoc2hvd24gc28geW91IGNhbiB2ZXJpZnkgdGhpcyBpcyB5b3VyIHNlc3Npb24pOlwiKTtcbiAgICBjb25zb2xlLmxvZyhjb2xvcnMuYm9sZChjb2xvcnMucHJpbWFyeShgICAke2FjdGlvbi5jb2RlfWApKSk7XG4gICAgY29uc29sZS5sb2coKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBvcGVuKGFjdGlvbi51cmwpO1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmRpbShcIkJyb3dzZXIgb3BlbmVkIGF1dG9tYXRpY2FsbHlcIikpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmRpbShcIlBsZWFzZSBvcGVuIHRoZSBVUkwgbWFudWFsbHlcIikpO1xuICAgIH1cblxuICAgIGNvbnN0IGtleXByZXNzQ2xlYW51cCA9IGF0dGFjaExvZ2luS2V5cHJlc3NIYW5kbGVyKGFjdGlvbi51cmwpO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIldhaXRpbmcgZm9yIHlvdSB0byBmaW5pc2ggb24gdGhlIHNlY3VyZSBwYWdlLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGxldCBhdHRlbXB0cyA9IDA7XG4gICAgd2hpbGUgKGF0dGVtcHRzIDwgQUNUSU9OX01BWF9BVFRFTVBUUykge1xuICAgICAgYXdhaXQgc2xlZXAoQUNUSU9OX1BPTExfSU5URVJWQUwpO1xuICAgICAgYXR0ZW1wdHMrKztcblxuICAgICAgbGV0IHN0YXR1czogQWN0aW9uU3RhdHVzUmVzcG9uc2U7XG4gICAgICB0cnkge1xuICAgICAgICBzdGF0dXMgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PEFjdGlvblN0YXR1c1Jlc3BvbnNlPihcbiAgICAgICAgICBgL2FwaS9jbGkvYWN0aW9uLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGFjdGlvbi5hY3Rpb25Db2RlKX1gLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgICAgLy8gVGhlIGFjdGlvbiBpcyBnb25lIChleHBpcmVkL2NsZWFuZWQgdXApIOKAlCB0ZXJtaW5hbCwgbm90IHRyYW5zaWVudC5cbiAgICAgICAgICBzcGluLmZhaWwoXCJUaGlzIHN0ZXAgZXhwaXJlZFwiKTtcbiAgICAgICAgICBrZXlwcmVzc0NsZWFudXAoKTtcbiAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgXCJUaGUgc2VjdXJlIHBhZ2UgZXhwaXJlZCBiZWZvcmUgaXQgd2FzIGNvbXBsZXRlZC4gUmUtcnVuIGBzZW5kbHkgbnVtYmVycyBidXlgIHRvIHN0YXJ0IG92ZXIuXCIsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHJhbnNpZW50IGVycm9yIOKAlCBrZWVwIHBvbGxpbmcuXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdHVzLnN0YXR1cyA9PT0gXCJjb21wbGV0ZWRcIikge1xuICAgICAgICBzcGluLnN1Y2NlZWQoXCJDb21wbGV0ZWRcIik7XG4gICAgICAgIGtleXByZXNzQ2xlYW51cCgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXR1cy5zdGF0dXMgPT09IFwiZXhwaXJlZFwiKSB7XG4gICAgICAgIHNwaW4uZmFpbChcIlRoaXMgc3RlcCBleHBpcmVkXCIpO1xuICAgICAgICBrZXlwcmVzc0NsZWFudXAoKTtcbiAgICAgICAgd2FybihcbiAgICAgICAgICBcIlRoZSBzZWN1cmUgcGFnZSBleHBpcmVkIGJlZm9yZSBpdCB3YXMgY29tcGxldGVkLiBSZS1ydW4gYHNlbmRseSBudW1iZXJzIGJ1eWAgdG8gc3RhcnQgb3Zlci5cIixcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gcGVuZGluZyAvIGF1dGhvcml6ZWQg4oCUIGtlZXAgcG9sbGluZ1xuICAgIH1cblxuICAgIHNwaW4uZmFpbChcIlRpbWVkIG91dCB3YWl0aW5nIGZvciBjb21wbGV0aW9uXCIpO1xuICAgIGtleXByZXNzQ2xlYW51cCgpO1xuICAgIHdhcm4oXG4gICAgICBcIldlIHN0b3BwZWQgd2FpdGluZy4gSWYgeW91IGZpbmlzaGVkIG9uIHRoZSBwYWdlLCByZS1ydW4gYHNlbmRseSBudW1iZXJzIGJ1eWAgYW5kIHdlJ2xsIHBpY2sgdXAgd2hlcmUgeW91IGxlZnQgb2ZmLlwiLFxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvbGwgdGhlIG93bmVkLW51bWJlcnMgbGlzdCB1bnRpbCB0aGUganVzdC1vcmRlcmVkIG51bWJlciByZXBvcnRzXG4gICAqIGBhY3RpdmVgLiBSZXR1cm5zIHRoZSBhY3RpdmUgcmVjb3JkLCBvciB1bmRlZmluZWQgaWYgaXQgaGFzbid0XG4gICAqIGFjdGl2YXRlZCB3aXRoaW4gdGhlIHBvbGxpbmcgd2luZG93LlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB3YWl0Rm9yQWN0aXZlKFxuICAgIHBob25lTnVtYmVyOiBzdHJpbmcsXG4gICk6IFByb21pc2U8T3duZWROdW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIkFjdGl2YXRpbmcgbnVtYmVyLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGxldCBhdHRlbXB0cyA9IDA7XG4gICAgd2hpbGUgKGF0dGVtcHRzIDwgUFJPVklTSU9OX01BWF9BVFRFTVBUUykge1xuICAgICAgbGV0IGxpc3Q6IExpc3ROdW1iZXJzUmVzcG9uc2U7XG4gICAgICB0cnkge1xuICAgICAgICBsaXN0ID0gYXdhaXQgYXBpQ2xpZW50LmdldDxMaXN0TnVtYmVyc1Jlc3BvbnNlPihcIi9hcGkvdjEvbnVtYmVyc1wiKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBhd2FpdCBzbGVlcChQUk9WSVNJT05fUE9MTF9JTlRFUlZBTCk7XG4gICAgICAgIGF0dGVtcHRzKys7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmb3VuZCA9IChsaXN0Lm51bWJlcnMgPz8gW10pLmZpbmQoXG4gICAgICAgIChuKSA9PiBuLnBob25lTnVtYmVyID09PSBwaG9uZU51bWJlcixcbiAgICAgICk7XG4gICAgICBpZiAoZm91bmQgJiYgZm91bmQuc3RhdHVzID09PSBcImFjdGl2ZVwiKSB7XG4gICAgICAgIHNwaW4uc3VjY2VlZChcIkFjdGl2ZVwiKTtcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBzbGVlcChQUk9WSVNJT05fUE9MTF9JTlRFUlZBTCk7XG4gICAgICBhdHRlbXB0cysrO1xuICAgIH1cblxuICAgIHNwaW4uc3RvcCgpO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL251bWJlcnMvYnV5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFDTCxJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksRUFDSixJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUF3RG5FLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLENBQUMsWUFBWTtBQUMvQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQyxDQUFDLGNBQWM7QUFDL0MsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxZQUFZO0FBQ2xELE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUMsYUFBYTtBQUVoRCxTQUFTLEtBQUssQ0FBQyxFQUFVO0lBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxVQUFXLFNBQVEsb0JBQW9CO0lBQzFELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGdHQUFnRyxDQUFDO0lBRW5HLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsMERBQTBEO1FBQzFELCtFQUErRTtRQUMvRSxpRUFBaUU7S0FDbEUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsZ0NBQWdDO1lBQzdDLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztRQUNGLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDZDQUE2QztZQUMxRCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNuQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSwwREFBMEQ7U0FDeEUsQ0FBQztLQUNILENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUV0Qix3RUFBd0U7UUFDeEUsOERBQThEO1FBQzlELE1BQU0sT0FBTyxHQUE0QjtZQUN2QyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7WUFDakMsV0FBVyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQzFCLGVBQWUsRUFBRSxLQUFLLENBQUMsSUFBSTtZQUMzQixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7U0FDbEMsQ0FBQztRQUVGLElBQUksUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDakMscUJBQXFCLEVBQ3JCLE9BQU8sQ0FDUixDQUFDO1FBRUYsNEVBQTRFO1FBQzVFLE9BQ0UsUUFBUSxDQUFDLE1BQU0sS0FBSyxvQkFBb0I7WUFDeEMsUUFBUSxDQUFDLE1BQU0sS0FBSyxrQkFBa0IsRUFDdEMsQ0FBQztZQUNELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDL0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLHFFQUFxRTtnQkFDckUsaUNBQWlDO2dCQUNqQyxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7b0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDZixPQUFPO2dCQUNULENBQUM7Z0JBQ0QsS0FBSyxDQUNILHFCQUFxQixRQUFRLENBQUMsTUFBTSxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsbUNBQW1DLEVBQ3hIO29CQUNFLElBQUksRUFBRSwrREFBK0Q7aUJBQ3RFLENBQ0YsQ0FBQztnQkFDRixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztZQUVELElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDakIsa0VBQWtFO2dCQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2YsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsU0FBUztnQkFBRSxPQUFPLENBQUMseUNBQXlDO1lBRWpFLDRFQUE0RTtZQUM1RSxPQUFPLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDdkMsUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDN0IscUJBQXFCLEVBQ3JCLE9BQU8sQ0FDUixDQUFDO1FBQ0osQ0FBQztRQUVELHdFQUF3RTtRQUN4RSx5RUFBeUU7UUFDekUsMkNBQTJDO1FBQzNDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxjQUFjLEVBQUUsQ0FBQztZQUN2QyxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDZixPQUFPO1lBQ1QsQ0FBQztZQUNELE9BQU8sQ0FBQyxpREFBaUQsRUFBRTtnQkFDekQsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBVztnQkFDcEMsSUFBSSxFQUFFLHNKQUFzSjthQUM3SixDQUFDLENBQUM7WUFDSCxPQUFPO1FBQ1QsQ0FBQztRQUVELDRCQUE0QjtRQUM1QixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIseURBQXlEO1lBQ3pELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsQ0FBQztZQUN6QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxzQkFBc0IsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEYsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5RCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLGtCQUFrQixFQUFFO2dCQUMxQixNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVc7Z0JBQzFCLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDYixPQUFPLEVBQUUsTUFBTSxDQUFDLFdBQVc7Z0JBQzNCLElBQUksRUFBRSxNQUFNLENBQUMsZUFBZTthQUM3QixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FDRix3R0FBd0csQ0FDekcsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FJM0I7UUFDQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixJQUFJLFNBQTRCLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUNoQywyQkFBMkIsRUFDM0I7Z0JBQ0UsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0JBQ2hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ25FLENBQ0YsQ0FBQztZQUNGLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUM5QyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0saUNBQWlDLEVBQUU7b0JBQ3RELElBQUksRUFBRSx3Q0FBd0MsS0FBSyxDQUFDLE9BQU8sV0FBVyxLQUFLLENBQUMsSUFBSSxFQUFFO2lCQUNuRixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNmLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGtDQUFrQyxLQUFLLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ3pFLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCwwREFBMEQ7UUFDMUQsSUFBSSxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDdkM7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLDJCQUEyQixLQUFLLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUk7Z0JBQ3BFLE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxXQUFXLFFBQVEsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLO29CQUM5RCxLQUFLLEVBQUUsQ0FBQyxDQUFDLFdBQVc7aUJBQ3JCLENBQUMsQ0FBQzthQUNKO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssS0FBSyxDQUFDLGVBQWUsQ0FDM0IsSUFBK0MsRUFDL0MsTUFBaUI7UUFFakIsTUFBTSxLQUFLLEdBQ1QsSUFBSSxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7UUFFMUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxJQUFJLEtBQUssa0JBQWtCO1lBQ3pCLENBQUMsQ0FBQyxpRUFBaUU7WUFDbkUsQ0FBQyxDQUFDLGdGQUFnRixDQUNyRixDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDakYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFZCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsT0FBTyxRQUFRLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xDLFFBQVEsRUFBRSxDQUFDO1lBRVgsSUFBSSxNQUE0QixDQUFDO1lBQ2pDLElBQUksQ0FBQztnQkFDSCxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUMxQixtQkFBbUIsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQzNELENBQUM7WUFDSixDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixJQUFJLEdBQUcsWUFBWSxhQUFhLEVBQUUsQ0FBQztvQkFDakMscUVBQXFFO29CQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQy9CLGVBQWUsRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQ0YsNkZBQTZGLENBQzlGLENBQUM7b0JBQ0YsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztnQkFDRCxrQ0FBa0M7Z0JBQ2xDLFNBQVM7WUFDWCxDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMxQixlQUFlLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQy9CLGVBQWUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQ0YsNkZBQTZGLENBQzlGLENBQUM7Z0JBQ0YsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0Qsc0NBQXNDO1FBQ3hDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDOUMsZUFBZSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUNGLG9IQUFvSCxDQUNySCxDQUFDO1FBQ0YsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLEtBQUssQ0FBQyxhQUFhLENBQ3pCLFdBQW1CO1FBRW5CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNqQixPQUFPLFFBQVEsR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3pDLElBQUksSUFBeUIsQ0FBQztZQUM5QixJQUFJLENBQUM7Z0JBQ0gsSUFBSSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBc0IsaUJBQWlCLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ3JDLFFBQVEsRUFBRSxDQUFDO2dCQUNYLFNBQVM7WUFDWCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDckMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUNyQyxDQUFDO1lBQ0YsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsTUFBTSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNyQyxRQUFRLEVBQUUsQ0FBQztRQUNiLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCBvcGVuIGZyb20gXCJvcGVuXCI7XG5pbXBvcnQgaW5xdWlyZXIgZnJvbSBcImlucXVpcmVyXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIHN1Y2Nlc3MsXG4gIGluZm8sXG4gIHdhcm4sXG4gIGVycm9yLFxuICBjb2xvcnMsXG4gIHNwaW5uZXIsXG4gIGlzSnNvbk1vZGUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgeyBhdHRhY2hMb2dpbktleXByZXNzSGFuZGxlciB9IGZyb20gXCIuLi8uLi9saWIva2V5cHJlc3MuanNcIjtcblxuaW50ZXJmYWNlIEF2YWlsYWJsZU51bWJlciB7XG4gIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIGNvdW50cnk6IHN0cmluZztcbiAgbnVtYmVyVHlwZTogc3RyaW5nO1xuICBtb250aGx5Q29zdDogc3RyaW5nO1xuICBjdXJyZW5jeTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2VhcmNoTnVtYmVyc1Jlc3BvbnNlIHtcbiAgbnVtYmVyczogQXZhaWxhYmxlTnVtYmVyW107XG59XG5cbmludGVyZmFjZSBCdXlBY3Rpb24ge1xuICB1cmw6IHN0cmluZztcbiAgLy8gYWN0aW9uQ29kZSAoMzItaGV4KSBpZGVudGlmaWVzIHRoZSBhY3Rpb24g4oCUIHVzZWQgdG8gUE9MTCBhbmQgdG8gUkUtQlVZLlxuICBhY3Rpb25Db2RlOiBzdHJpbmc7XG4gIC8vIGNvZGUgKDgtY2hhciB1c2VyQ29kZSkgaXMgc2hvd24gdG8gdGhlIGh1bWFuIHRvIHR5cGUgb24gdGhlIGhvc3RlZCBwYWdlXG4gIC8vIHRvIHByb3ZlIHRlcm1pbmFsIGFjY2Vzcy4gRElTUExBWSBvbmx5IOKAlCBuZXZlciB1c2VkIGFzIGFjdGlvbkNvZGUuXG4gIGNvZGU6IHN0cmluZztcbiAgZXhwaXJlc0F0OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBPd25lZE51bWJlciB7XG4gIGlkOiBzdHJpbmc7XG4gIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBzb3VyY2U6IHN0cmluZztcbiAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgcGhvbmVOdW1iZXJUeXBlOiBzdHJpbmc7XG4gIG1vbnRobHlDb3N0Q2VudHM6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIEJ1eVJlc3BvbnNlIHtcbiAgc3RhdHVzOlxuICAgIHwgXCJwcm92aXNpb25pbmdcIlxuICAgIHwgXCJkb2N1bWVudHNfcmVxdWlyZWRcIlxuICAgIHwgXCJ1bmRlcl9yZXZpZXdcIlxuICAgIHwgXCJwYXltZW50X3JlcXVpcmVkXCI7XG4gIG51bWJlcj86IE93bmVkTnVtYmVyO1xuICByZXF1aXJlbWVudHM/OiB1bmtub3duO1xuICBhY3Rpb24/OiBCdXlBY3Rpb247XG59XG5cbmludGVyZmFjZSBMaXN0TnVtYmVyc1Jlc3BvbnNlIHtcbiAgbnVtYmVyczogT3duZWROdW1iZXJbXTtcbn1cblxuaW50ZXJmYWNlIEFjdGlvblN0YXR1c1Jlc3BvbnNlIHtcbiAgc3RhdHVzOiBcInBlbmRpbmdcIiB8IFwiYXV0aG9yaXplZFwiIHwgXCJjb21wbGV0ZWRcIiB8IFwiZXhwaXJlZFwiO1xuICBhY3Rpb25UeXBlOiBzdHJpbmc7XG4gIHJlc3VsdD86IHVua25vd247XG4gIGV4cGlyZXNBdDogc3RyaW5nO1xufVxuXG5jb25zdCBBQ1RJT05fUE9MTF9JTlRFUlZBTCA9IDIwMDA7IC8vIDIgc2Vjb25kc1xuY29uc3QgQUNUSU9OX01BWF9BVFRFTVBUUyA9IDYwMDsgLy8gfjIwIG1pbnV0ZXNcbmNvbnN0IFBST1ZJU0lPTl9QT0xMX0lOVEVSVkFMID0gMzAwMDsgLy8gMyBzZWNvbmRzXG5jb25zdCBQUk9WSVNJT05fTUFYX0FUVEVNUFRTID0gNjA7IC8vIH4zIG1pbnV0ZXNcblxuZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnVtYmVyc0J1eSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIkJ1eSBhIHBob25lIG51bWJlci4gSGFuZGxlcyBkb2N1bWVudC9wYXltZW50IHN0ZXBzIGludGVyYWN0aXZlbHkgd2hlbiBhIGNvdW50cnkgcmVxdWlyZXMgdGhlbS5cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBudW1iZXJzIGJ1eSAtLWNvdW50cnkgR0IgLS10eXBlIG1vYmlsZVwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbnVtYmVycyBidXkgLS1jb3VudHJ5IFVTIC0tdHlwZSBsb2NhbCAtLW51bWJlciArMTU1NTEyMzQ1NjdcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IG51bWJlcnMgYnV5IC0tY291bnRyeSBHQiAtLXR5cGUgbW9iaWxlIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgY291bnRyeTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwiY1wiLFxuICAgICAgZGVzY3JpcHRpb246IFwiSVNPIGNvdW50cnkgY29kZSAoZS5nLiBHQiwgVVMpXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgICB0eXBlOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJ0XCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJOdW1iZXIgdHlwZSAoZS5nLiBtb2JpbGUsIGxvY2FsLCB0b2xsLWZyZWUpXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgICBudW1iZXI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcIm5cIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNwZWNpZmljIG51bWJlciB0byBidXkgaW4gRS4xNjQgZm9ybWF0IChza2lwcyBzZWxlY3Rpb24pXCIsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoTnVtYmVyc0J1eSk7XG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IGF3YWl0IHRoaXMucmVzb2x2ZU51bWJlcihmbGFncyk7XG4gICAgaWYgKCFzZWxlY3RlZCkgcmV0dXJuO1xuXG4gICAgLy8gVGhlIGJ1eSBib2R5IGlzIHJldXNlZCB2ZXJiYXRpbSBhY3Jvc3MgZXZlcnkgcmUtUE9TVDsgb25seSBhY3Rpb25Db2RlXG4gICAgLy8gaXMgYWRkZWQgb25jZSBhIGhvc3RlZCBhY3Rpb24gKGRvY3MvcGF5bWVudCkgaGFzIGNvbXBsZXRlZC5cbiAgICBjb25zdCBidXlCb2R5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIHBob25lTnVtYmVyOiBzZWxlY3RlZC5waG9uZU51bWJlcixcbiAgICAgIGNvdW50cnlDb2RlOiBmbGFncy5jb3VudHJ5LFxuICAgICAgcGhvbmVOdW1iZXJUeXBlOiBmbGFncy50eXBlLFxuICAgICAgbW9udGhseUNvc3Q6IHNlbGVjdGVkLm1vbnRobHlDb3N0LFxuICAgIH07XG5cbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxCdXlSZXNwb25zZT4oXG4gICAgICBcIi9hcGkvdjEvbnVtYmVycy9idXlcIixcbiAgICAgIGJ1eUJvZHksXG4gICAgKTtcblxuICAgIC8vIERyaXZlIHRoZSBhY3Rpb24gbG9vcCB1bnRpbCB0aGUgY2FycmllciBhY2NlcHRzIHRoZSBvcmRlciAocHJvdmlzaW9uaW5nKS5cbiAgICB3aGlsZSAoXG4gICAgICByZXNwb25zZS5zdGF0dXMgPT09IFwiZG9jdW1lbnRzX3JlcXVpcmVkXCIgfHxcbiAgICAgIHJlc3BvbnNlLnN0YXR1cyA9PT0gXCJwYXltZW50X3JlcXVpcmVkXCJcbiAgICApIHtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IHJlc3BvbnNlLmFjdGlvbjtcbiAgICAgIGlmICghYWN0aW9uKSB7XG4gICAgICAgIC8vIEJhY2tlbmQgc2F5cyBkb2NzL3BheW1lbnQgcmVxdWlyZWQgYnV0IGdhdmUgdXMgbm93aGVyZSB0byBzZW5kIHRoZVxuICAgICAgICAvLyB1c2VyIOKAlCBub3RoaW5nIHRoZSBDTEkgY2FuIGRvLlxuICAgICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVycm9yKFxuICAgICAgICAgIGBUaGlzIG51bWJlciBuZWVkcyAke3Jlc3BvbnNlLnN0YXR1cyA9PT0gXCJwYXltZW50X3JlcXVpcmVkXCIgPyBcInBheW1lbnRcIiA6IFwiZG9jdW1lbnRzXCJ9IGJ1dCBubyBhY3Rpb24gbGluayB3YXMgcmV0dXJuZWQuYCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBoaW50OiBcIlRyeSBhZ2Fpbiwgb3IgY29tcGxldGUgdGhpcyBudW1iZXIgZnJvbSB0aGUgU2VuZGx5IGRhc2hib2FyZC5cIixcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmV4aXQoMSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgICAgLy8gTm9uLWludGVyYWN0aXZlOiBzdXJmYWNlIHRoZSBhY3Rpb24gc28gdGhlIGNhbGxlciBjYW4gZHJpdmUgaXQuXG4gICAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbXBsZXRlZCA9IGF3YWl0IHRoaXMucnVuSG9zdGVkQWN0aW9uKHJlc3BvbnNlLnN0YXR1cywgYWN0aW9uKTtcbiAgICAgIGlmICghY29tcGxldGVkKSByZXR1cm47IC8vIGV4cGlyZWQgLyBjYW5jZWxsZWQg4oCUIGFscmVhZHkgbWVzc2FnZWRcblxuICAgICAgLy8gUmUtYnV5IHdpdGggdGhlIGFjdGlvbiBpZGVudGlmaWVyIChhY3Rpb25Db2RlKSwgTk9UIHRoZSBkaXNwbGF5IHVzZXJDb2RlLlxuICAgICAgYnV5Qm9keS5hY3Rpb25Db2RlID0gYWN0aW9uLmFjdGlvbkNvZGU7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PEJ1eVJlc3BvbnNlPihcbiAgICAgICAgXCIvYXBpL3YxL251bWJlcnMvYnV5XCIsXG4gICAgICAgIGJ1eUJvZHksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIERvY3VtZW50LXJlcXVpcmVkIGNvdW50cnk6IGRldGFpbHMgc3VibWl0dGVkLCBudW1iZXIgcmVzZXJ2ZWQgKyB1bmRlclxuICAgIC8vIHJldmlldy4gTm8gY2FycmllciBvcmRlciBpcyBwbGFjZWQgdW50aWwgb3VyIHRlYW0gdmVyaWZpZXMgKyByZWdpc3RlcnNcbiAgICAvLyBpdCwgc28gdGhlcmUncyBub3RoaW5nIHRvIHBvbGwgZm9yIGhlcmUuXG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gXCJ1bmRlcl9yZXZpZXdcIikge1xuICAgICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgc3VjY2VzcyhcIk51bWJlciByZXNlcnZlZCDigJQgeW91ciBkZXRhaWxzIGFyZSB1bmRlciByZXZpZXdcIiwge1xuICAgICAgICBudW1iZXI6IHJlc3BvbnNlLm51bWJlcj8ucGhvbmVOdW1iZXIsXG4gICAgICAgIG5vdGU6IFwiV2UgdmVyaWZ5IHlvdXIgZG9jdW1lbnRzIGFuZCByZWdpc3RlciB0aGUgbnVtYmVyLCB1c3VhbGx5IHdpdGhpbiBhIGZldyBidXNpbmVzcyBkYXlzLiBJdCBjYW4ndCBzZW5kIHVudGlsIGl0J3MgYWN0aXZlIOKAlCBjaGVjayBgc2VuZGx5IG51bWJlcnMgbGlzdGAuXCIsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBzdGF0dXMgPT09IFwicHJvdmlzaW9uaW5nXCJcbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAvLyBXYWl0IGZvciBhY3RpdmF0aW9uIHRoZW4gZW1pdCB0aGUgZmluYWwgbnVtYmVyIHJlY29yZC5cbiAgICAgIGNvbnN0IGFjdGl2ZSA9IGF3YWl0IHRoaXMud2FpdEZvckFjdGl2ZShzZWxlY3RlZC5waG9uZU51bWJlcik7XG4gICAgICBqc29uKGFjdGl2ZSA/PyByZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW5mbyhgT3JkZXIgYWNjZXB0ZWQgZm9yICR7Y29sb3JzLmNvZGUoc2VsZWN0ZWQucGhvbmVOdW1iZXIpfSDigJQgcHJvdmlzaW9uaW5nLi4uYCk7XG4gICAgY29uc3QgYWN0aXZlID0gYXdhaXQgdGhpcy53YWl0Rm9yQWN0aXZlKHNlbGVjdGVkLnBob25lTnVtYmVyKTtcblxuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHN1Y2Nlc3MoXCJOdW1iZXIgaXMgYWN0aXZlXCIsIHtcbiAgICAgICAgbnVtYmVyOiBhY3RpdmUucGhvbmVOdW1iZXIsXG4gICAgICAgIGlkOiBhY3RpdmUuaWQsXG4gICAgICAgIGNvdW50cnk6IGFjdGl2ZS5jb3VudHJ5Q29kZSxcbiAgICAgICAgdHlwZTogYWN0aXZlLnBob25lTnVtYmVyVHlwZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB3YXJuKFxuICAgICAgICBcIk51bWJlciBpcyBzdGlsbCBwcm92aXNpb25pbmcuIEl0IHVzdWFsbHkgYWN0aXZhdGVzIHdpdGhpbiBhIGZldyBtaW51dGVzIOKAlCBjaGVjayBgc2VuZGx5IG51bWJlcnMgbGlzdGAuXCIsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHdoaWNoIG51bWJlciB0byBidXkuIElmIC0tbnVtYmVyIGlzIGdpdmVuIHdlIHRydXN0IGl0IChhbmRcbiAgICogc3RpbGwgbmVlZCBpdHMgbW9udGhseUNvc3QsIHNvIHdlIGxvb2sgaXQgdXAgYW1vbmcgYXZhaWxhYmxlIG51bWJlcnMpLlxuICAgKiBPdGhlcndpc2Ugd2Ugc2VhcmNoIGFuZCBwcm9tcHQgdGhlIHVzZXIgdG8gcGljayBvbmUuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlc29sdmVOdW1iZXIoZmxhZ3M6IHtcbiAgICBjb3VudHJ5OiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG51bWJlcj86IHN0cmluZztcbiAgfSk6IFByb21pc2U8QXZhaWxhYmxlTnVtYmVyIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoXCJGaW5kaW5nIGF2YWlsYWJsZSBudW1iZXJzLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGxldCBhdmFpbGFibGU6IEF2YWlsYWJsZU51bWJlcltdO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZWFyY2ggPSBhd2FpdCBhcGlDbGllbnQuZ2V0PFNlYXJjaE51bWJlcnNSZXNwb25zZT4oXG4gICAgICAgIFwiL2FwaS92MS9udW1iZXJzL2F2YWlsYWJsZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgY291bnRyeTogZmxhZ3MuY291bnRyeSxcbiAgICAgICAgICB0eXBlOiBmbGFncy50eXBlLFxuICAgICAgICAgIC4uLihmbGFncy5udW1iZXIgJiYgeyBjb250YWluczogZmxhZ3MubnVtYmVyLnJlcGxhY2UoL15cXCsvLCBcIlwiKSB9KSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgICBhdmFpbGFibGUgPSBzZWFyY2gubnVtYmVycyA/PyBbXTtcbiAgICAgIHNwaW4uc3RvcCgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc3Bpbi5mYWlsKFwiQ291bGQgbm90IGxvYWQgYXZhaWxhYmxlIG51bWJlcnNcIik7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgaWYgKGZsYWdzLm51bWJlcikge1xuICAgICAgY29uc3QgbWF0Y2ggPSBhdmFpbGFibGUuZmluZCgobikgPT4gbi5waG9uZU51bWJlciA9PT0gZmxhZ3MubnVtYmVyKTtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgZXJyb3IoYCR7ZmxhZ3MubnVtYmVyfSBpcyBub3QgYXZhaWxhYmxlIGZvciBwdXJjaGFzZS5gLCB7XG4gICAgICAgICAgaGludDogYFJ1bjogc2VuZGx5IG51bWJlcnMgc2VhcmNoIC0tY291bnRyeSAke2ZsYWdzLmNvdW50cnl9IC0tdHlwZSAke2ZsYWdzLnR5cGV9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtYXRjaDtcbiAgICB9XG5cbiAgICBpZiAoYXZhaWxhYmxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5mbyhgTm8gYXZhaWxhYmxlIG51bWJlcnMgZm91bmQgZm9yICR7ZmxhZ3MuY291bnRyeX0gKCR7ZmxhZ3MudHlwZX0pLmApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBOb24taW50ZXJhY3RpdmUgKG5vIFRUWSAvIGpzb24pOiB0YWtlIHRoZSBmaXJzdCByZXN1bHQuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSB8fCAhcHJvY2Vzcy5zdGRvdXQuaXNUVFkpIHtcbiAgICAgIHJldHVybiBhdmFpbGFibGVbMF07XG4gICAgfVxuXG4gICAgY29uc3QgeyBjaG9pY2UgfSA9IGF3YWl0IGlucXVpcmVyLnByb21wdChbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibGlzdFwiLFxuICAgICAgICBuYW1lOiBcImNob2ljZVwiLFxuICAgICAgICBtZXNzYWdlOiBgQ2hvb3NlIGEgbnVtYmVyIHRvIGJ1eSAoJHtmbGFncy5jb3VudHJ5fSwgJHtmbGFncy50eXBlfSk6YCxcbiAgICAgICAgY2hvaWNlczogYXZhaWxhYmxlLnNsaWNlKDAsIDI1KS5tYXAoKG4pID0+ICh7XG4gICAgICAgICAgbmFtZTogYCR7bi5waG9uZU51bWJlcn0gIOKAlCAgJHtuLm1vbnRobHlDb3N0fSAke24uY3VycmVuY3l9L21vYCxcbiAgICAgICAgICB2YWx1ZTogbi5waG9uZU51bWJlcixcbiAgICAgICAgfSkpLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIHJldHVybiBhdmFpbGFibGUuZmluZCgobikgPT4gbi5waG9uZU51bWJlciA9PT0gY2hvaWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEcml2ZSBhIGhvc3RlZCBkb2N1bWVudC11cGxvYWQgLyBwYXltZW50IGFjdGlvbjogcHJpbnQgdGhlIGxpbmsgKyBjb2RlLFxuICAgKiBhdXRvLW9wZW4gaXQsIHdpcmUgcHJlc3MtW2NdLXRvLWNvcHkgLyBbcV0gdG8gY2FuY2VsLCB0aGVuIHBvbGwgdW50aWxcbiAgICogdGhlIGFjdGlvbiBjb21wbGV0ZXMgKHJlc29sdmVzIHRydWUpIG9yIGV4cGlyZXMgKHJlc29sdmVzIGZhbHNlKS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcnVuSG9zdGVkQWN0aW9uKFxuICAgIGtpbmQ6IFwiZG9jdW1lbnRzX3JlcXVpcmVkXCIgfCBcInBheW1lbnRfcmVxdWlyZWRcIixcbiAgICBhY3Rpb246IEJ1eUFjdGlvbixcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgbGFiZWwgPVxuICAgICAga2luZCA9PT0gXCJwYXltZW50X3JlcXVpcmVkXCIgPyBcIlBheW1lbnQgcmVxdWlyZWRcIiA6IFwiRG9jdW1lbnRzIHJlcXVpcmVkXCI7XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKGNvbG9ycy5ib2xkKGxhYmVsKSk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGtpbmQgPT09IFwicGF5bWVudF9yZXF1aXJlZFwiXG4gICAgICAgID8gXCJUaGlzIG51bWJlciBuZWVkcyBhIHBheW1lbnQgdG8gY29tcGxldGUuIE9wZW4gdGhpcyBzZWN1cmUgcGFnZTpcIlxuICAgICAgICA6IFwiVGhpcyBudW1iZXIgbmVlZHMgZG9jdW1lbnRzIGJlZm9yZSBpdCBjYW4gYmUgYWN0aXZhdGVkLiBPcGVuIHRoaXMgc2VjdXJlIHBhZ2U6XCIsXG4gICAgKTtcbiAgICBjb25zb2xlLmxvZyhjb2xvcnMucHJpbWFyeShgICAke2FjdGlvbi51cmx9YCkpO1xuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coXCJDb25maXJtYXRpb24gY29kZSAoc2hvd24gc28geW91IGNhbiB2ZXJpZnkgdGhpcyBpcyB5b3VyIHNlc3Npb24pOlwiKTtcbiAgICBjb25zb2xlLmxvZyhjb2xvcnMuYm9sZChjb2xvcnMucHJpbWFyeShgICAke2FjdGlvbi5jb2RlfWApKSk7XG4gICAgY29uc29sZS5sb2coKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBvcGVuKGFjdGlvbi51cmwpO1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmRpbShcIkJyb3dzZXIgb3BlbmVkIGF1dG9tYXRpY2FsbHlcIikpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmRpbShcIlBsZWFzZSBvcGVuIHRoZSBVUkwgbWFudWFsbHlcIikpO1xuICAgIH1cblxuICAgIGNvbnN0IGtleXByZXNzQ2xlYW51cCA9IGF0dGFjaExvZ2luS2V5cHJlc3NIYW5kbGVyKGFjdGlvbi51cmwpO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIldhaXRpbmcgZm9yIHlvdSB0byBmaW5pc2ggb24gdGhlIHNlY3VyZSBwYWdlLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGxldCBhdHRlbXB0cyA9IDA7XG4gICAgd2hpbGUgKGF0dGVtcHRzIDwgQUNUSU9OX01BWF9BVFRFTVBUUykge1xuICAgICAgYXdhaXQgc2xlZXAoQUNUSU9OX1BPTExfSU5URVJWQUwpO1xuICAgICAgYXR0ZW1wdHMrKztcblxuICAgICAgbGV0IHN0YXR1czogQWN0aW9uU3RhdHVzUmVzcG9uc2U7XG4gICAgICB0cnkge1xuICAgICAgICBzdGF0dXMgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PEFjdGlvblN0YXR1c1Jlc3BvbnNlPihcbiAgICAgICAgICBgL2FwaS9jbGkvYWN0aW9uLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGFjdGlvbi5hY3Rpb25Db2RlKX1gLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgICAgLy8gVGhlIGFjdGlvbiBpcyBnb25lIChleHBpcmVkL2NsZWFuZWQgdXApIOKAlCB0ZXJtaW5hbCwgbm90IHRyYW5zaWVudC5cbiAgICAgICAgICBzcGluLmZhaWwoXCJUaGlzIHN0ZXAgZXhwaXJlZFwiKTtcbiAgICAgICAgICBrZXlwcmVzc0NsZWFudXAoKTtcbiAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgXCJUaGUgc2VjdXJlIHBhZ2UgZXhwaXJlZCBiZWZvcmUgaXQgd2FzIGNvbXBsZXRlZC4gUmUtcnVuIGBzZW5kbHkgbnVtYmVycyBidXlgIHRvIHN0YXJ0IG92ZXIuXCIsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHJhbnNpZW50IGVycm9yIOKAlCBrZWVwIHBvbGxpbmcuXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdHVzLnN0YXR1cyA9PT0gXCJjb21wbGV0ZWRcIikge1xuICAgICAgICBzcGluLnN1Y2NlZWQoXCJDb21wbGV0ZWRcIik7XG4gICAgICAgIGtleXByZXNzQ2xlYW51cCgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXR1cy5zdGF0dXMgPT09IFwiZXhwaXJlZFwiKSB7XG4gICAgICAgIHNwaW4uZmFpbChcIlRoaXMgc3RlcCBleHBpcmVkXCIpO1xuICAgICAgICBrZXlwcmVzc0NsZWFudXAoKTtcbiAgICAgICAgd2FybihcbiAgICAgICAgICBcIlRoZSBzZWN1cmUgcGFnZSBleHBpcmVkIGJlZm9yZSBpdCB3YXMgY29tcGxldGVkLiBSZS1ydW4gYHNlbmRseSBudW1iZXJzIGJ1eWAgdG8gc3RhcnQgb3Zlci5cIixcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gcGVuZGluZyAvIGF1dGhvcml6ZWQg4oCUIGtlZXAgcG9sbGluZ1xuICAgIH1cblxuICAgIHNwaW4uZmFpbChcIlRpbWVkIG91dCB3YWl0aW5nIGZvciBjb21wbGV0aW9uXCIpO1xuICAgIGtleXByZXNzQ2xlYW51cCgpO1xuICAgIHdhcm4oXG4gICAgICBcIldlIHN0b3BwZWQgd2FpdGluZy4gSWYgeW91IGZpbmlzaGVkIG9uIHRoZSBwYWdlLCByZS1ydW4gYHNlbmRseSBudW1iZXJzIGJ1eWAgYW5kIHdlJ2xsIHBpY2sgdXAgd2hlcmUgeW91IGxlZnQgb2ZmLlwiLFxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvbGwgdGhlIG93bmVkLW51bWJlcnMgbGlzdCB1bnRpbCB0aGUganVzdC1vcmRlcmVkIG51bWJlciByZXBvcnRzXG4gICAqIGBhY3RpdmVgLiBSZXR1cm5zIHRoZSBhY3RpdmUgcmVjb3JkLCBvciB1bmRlZmluZWQgaWYgaXQgaGFzbid0XG4gICAqIGFjdGl2YXRlZCB3aXRoaW4gdGhlIHBvbGxpbmcgd2luZG93LlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB3YWl0Rm9yQWN0aXZlKFxuICAgIHBob25lTnVtYmVyOiBzdHJpbmcsXG4gICk6IFByb21pc2U8T3duZWROdW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIkFjdGl2YXRpbmcgbnVtYmVyLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGxldCBhdHRlbXB0cyA9IDA7XG4gICAgd2hpbGUgKGF0dGVtcHRzIDwgUFJPVklTSU9OX01BWF9BVFRFTVBUUykge1xuICAgICAgbGV0IGxpc3Q6IExpc3ROdW1iZXJzUmVzcG9uc2U7XG4gICAgICB0cnkge1xuICAgICAgICBsaXN0ID0gYXdhaXQgYXBpQ2xpZW50LmdldDxMaXN0TnVtYmVyc1Jlc3BvbnNlPihcIi9hcGkvdjEvbnVtYmVyc1wiKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBhd2FpdCBzbGVlcChQUk9WSVNJT05fUE9MTF9JTlRFUlZBTCk7XG4gICAgICAgIGF0dGVtcHRzKys7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmb3VuZCA9IChsaXN0Lm51bWJlcnMgPz8gW10pLmZpbmQoXG4gICAgICAgIChuKSA9PiBuLnBob25lTnVtYmVyID09PSBwaG9uZU51bWJlcixcbiAgICAgICk7XG4gICAgICBpZiAoZm91bmQgJiYgZm91bmQuc3RhdHVzID09PSBcImFjdGl2ZVwiKSB7XG4gICAgICAgIHNwaW4uc3VjY2VlZChcIkFjdGl2ZVwiKTtcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBzbGVlcChQUk9WSVNJT05fUE9MTF9JTlRFUlZBTCk7XG4gICAgICBhdHRlbXB0cysrO1xuICAgIH1cblxuICAgIHNwaW4uc3RvcCgpO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ /**
3
+ * `sendly numbers get <id>` — show one phone number you own, including whether
4
+ * it's the workspace default sender.
5
+ *
6
+ * Wraps `GET /api/v1/numbers/:id`. Returns 404 when the id isn't one of your
7
+ * numbers.
8
+ */
9
+ export default class NumbersGet extends AuthenticatedCommand {
10
+ static description: string;
11
+ static examples: string[];
12
+ static args: {
13
+ id: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
14
+ };
15
+ static flags: {
16
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
17
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
18
+ };
19
+ run(): Promise<void>;
20
+ }
@@ -0,0 +1,52 @@
1
+ import { Args } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { success, json, colors, formatStatus, formatRelativeTime, isJsonMode, } from "../../lib/output.js";
5
+ /**
6
+ * `sendly numbers get <id>` — show one phone number you own, including whether
7
+ * it's the workspace default sender.
8
+ *
9
+ * Wraps `GET /api/v1/numbers/:id`. Returns 404 when the id isn't one of your
10
+ * numbers.
11
+ */
12
+ export default class NumbersGet extends AuthenticatedCommand {
13
+ static description = "Show details for one phone number you own";
14
+ static examples = [
15
+ "<%= config.bin %> numbers get num_abc123",
16
+ "<%= config.bin %> numbers get num_abc123 --json",
17
+ ];
18
+ static args = {
19
+ id: Args.string({
20
+ description: "Phone number ID (from `sendly numbers list`)",
21
+ required: true,
22
+ }),
23
+ };
24
+ static flags = {
25
+ ...AuthenticatedCommand.baseFlags,
26
+ };
27
+ async run() {
28
+ const { args } = await this.parse(NumbersGet);
29
+ const number = await apiClient.get(`/api/v1/numbers/${encodeURIComponent(args.id)}`);
30
+ if (isJsonMode()) {
31
+ json(number);
32
+ return;
33
+ }
34
+ success("Number details", {
35
+ ID: number.id,
36
+ Number: colors.code(number.phoneNumber),
37
+ Status: formatStatus(number.status),
38
+ Country: number.countryCode,
39
+ Type: number.phoneNumberType,
40
+ Source: number.source,
41
+ Default: number.isDefault ? colors.success("yes") : "no",
42
+ "Monthly cost": `$${(number.monthlyCostCents / 100).toFixed(2)}`,
43
+ ...(number.pendingCancellation && {
44
+ "Pending release": colors.warning("yes"),
45
+ }),
46
+ ...(number.scheduledReleaseAt && {
47
+ "Scheduled release": formatRelativeTime(number.scheduledReleaseAt),
48
+ }),
49
+ });
50
+ }
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL251bWJlcnMvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFDTCxPQUFPLEVBQ1AsSUFBSSxFQUNKLE1BQU0sRUFDTixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLFVBQVUsR0FDWCxNQUFNLHFCQUFxQixDQUFDO0FBZ0I3Qjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLFVBQVcsU0FBUSxvQkFBb0I7SUFDMUQsTUFBTSxDQUFDLFdBQVcsR0FBRywyQ0FBMkMsQ0FBQztJQUVqRSxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDBDQUEwQztRQUMxQyxpREFBaUQ7S0FDbEQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNkLFdBQVcsRUFBRSw4Q0FBOEM7WUFDM0QsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7S0FDbEMsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQ2hDLG1CQUFtQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FDakQsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDYixNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNuQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDM0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1lBQzVCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtZQUNyQixPQUFPLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN4RCxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSTtnQkFDaEMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7YUFDekMsQ0FBQztZQUNGLEdBQUcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLElBQUk7Z0JBQy9CLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQzthQUNuRSxDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAgc3VjY2VzcyxcbiAganNvbixcbiAgY29sb3JzLFxuICBmb3JtYXRTdGF0dXMsXG4gIGZvcm1hdFJlbGF0aXZlVGltZSxcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIE93bmVkTnVtYmVyIHtcbiAgaWQ6IHN0cmluZztcbiAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICBwaG9uZU51bWJlclR5cGU6IHN0cmluZztcbiAgbW9udGhseUNvc3RDZW50czogbnVtYmVyO1xuICBpc0RlZmF1bHQ/OiBib29sZWFuO1xuICByZXF1aXJlbWVudHNTdWJtaXR0ZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgcGVuZGluZ0NhbmNlbGxhdGlvbjogYm9vbGVhbjtcbiAgc2NoZWR1bGVkUmVsZWFzZUF0OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKipcbiAqIGBzZW5kbHkgbnVtYmVycyBnZXQgPGlkPmAg4oCUIHNob3cgb25lIHBob25lIG51bWJlciB5b3Ugb3duLCBpbmNsdWRpbmcgd2hldGhlclxuICogaXQncyB0aGUgd29ya3NwYWNlIGRlZmF1bHQgc2VuZGVyLlxuICpcbiAqIFdyYXBzIGBHRVQgL2FwaS92MS9udW1iZXJzLzppZGAuIFJldHVybnMgNDA0IHdoZW4gdGhlIGlkIGlzbid0IG9uZSBvZiB5b3VyXG4gKiBudW1iZXJzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOdW1iZXJzR2V0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIlNob3cgZGV0YWlscyBmb3Igb25lIHBob25lIG51bWJlciB5b3Ugb3duXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbnVtYmVycyBnZXQgbnVtX2FiYzEyM1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbnVtYmVycyBnZXQgbnVtX2FiYzEyMyAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICBpZDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiUGhvbmUgbnVtYmVyIElEIChmcm9tIGBzZW5kbHkgbnVtYmVycyBsaXN0YClcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShOdW1iZXJzR2V0KTtcblxuICAgIGNvbnN0IG51bWJlciA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8T3duZWROdW1iZXI+KFxuICAgICAgYC9hcGkvdjEvbnVtYmVycy8ke2VuY29kZVVSSUNvbXBvbmVudChhcmdzLmlkKX1gLFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKG51bWJlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcIk51bWJlciBkZXRhaWxzXCIsIHtcbiAgICAgIElEOiBudW1iZXIuaWQsXG4gICAgICBOdW1iZXI6IGNvbG9ycy5jb2RlKG51bWJlci5waG9uZU51bWJlciksXG4gICAgICBTdGF0dXM6IGZvcm1hdFN0YXR1cyhudW1iZXIuc3RhdHVzKSxcbiAgICAgIENvdW50cnk6IG51bWJlci5jb3VudHJ5Q29kZSxcbiAgICAgIFR5cGU6IG51bWJlci5waG9uZU51bWJlclR5cGUsXG4gICAgICBTb3VyY2U6IG51bWJlci5zb3VyY2UsXG4gICAgICBEZWZhdWx0OiBudW1iZXIuaXNEZWZhdWx0ID8gY29sb3JzLnN1Y2Nlc3MoXCJ5ZXNcIikgOiBcIm5vXCIsXG4gICAgICBcIk1vbnRobHkgY29zdFwiOiBgJCR7KG51bWJlci5tb250aGx5Q29zdENlbnRzIC8gMTAwKS50b0ZpeGVkKDIpfWAsXG4gICAgICAuLi4obnVtYmVyLnBlbmRpbmdDYW5jZWxsYXRpb24gJiYge1xuICAgICAgICBcIlBlbmRpbmcgcmVsZWFzZVwiOiBjb2xvcnMud2FybmluZyhcInllc1wiKSxcbiAgICAgIH0pLFxuICAgICAgLi4uKG51bWJlci5zY2hlZHVsZWRSZWxlYXNlQXQgJiYge1xuICAgICAgICBcIlNjaGVkdWxlZCByZWxlYXNlXCI6IGZvcm1hdFJlbGF0aXZlVGltZShudW1iZXIuc2NoZWR1bGVkUmVsZWFzZUF0KSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -47,7 +47,24 @@ export default class NumbersList extends AuthenticatedCommand {
47
47
  key: "phoneNumberType",
48
48
  width: 12,
49
49
  },
50
+ {
51
+ header: "Source",
52
+ key: "source",
53
+ width: 12,
54
+ formatter: (v) => {
55
+ const s = String(v);
56
+ return s === "purchased"
57
+ ? "Bought"
58
+ : s === "ported_hosted_sms"
59
+ ? "Hosted SMS"
60
+ : s === "ported_full"
61
+ ? "Ported"
62
+ : s === "provisioned"
63
+ ? "Provisioned"
64
+ : s;
65
+ },
66
+ },
50
67
  ]);
51
68
  }
52
69
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9udW1iZXJzL2xpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFDTCxLQUFLLEVBQ0wsSUFBSSxFQUNKLElBQUksRUFDSixZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLHFCQUFxQixDQUFDO0FBZ0I3QixNQUFNLENBQUMsT0FBTyxPQUFPLFdBQVksU0FBUSxvQkFBb0I7SUFDM0QsTUFBTSxDQUFDLFdBQVcsR0FBRyx3Q0FBd0MsQ0FBQztJQUU5RCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLGdDQUFnQztRQUNoQyx1Q0FBdUM7S0FDeEMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7S0FDbEMsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDbEMsaUJBQWlCLENBQ2xCLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsd0VBQXdFLENBQUMsQ0FBQztZQUMvRSxPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVkLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1lBQ3RCO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsYUFBYTtnQkFDbEIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6QztZQUNEO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsUUFBUTtnQkFDYixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUM7WUFDRDtnQkFDRSxNQUFNLEVBQUUsU0FBUztnQkFDakIsR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLEtBQUssRUFBRSxDQUFDO2FBQ1Q7WUFDRDtnQkFDRSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxHQUFHLEVBQUUsaUJBQWlCO2dCQUN0QixLQUFLLEVBQUUsRUFBRTthQUNWO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAgdGFibGUsXG4gIGpzb24sXG4gIGluZm8sXG4gIGZvcm1hdFN0YXR1cyxcbiAgY29sb3JzLFxuICBpc0pzb25Nb2RlLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgT3duZWROdW1iZXIge1xuICBpZDogc3RyaW5nO1xuICBwaG9uZU51bWJlcjogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIGNvdW50cnlDb2RlOiBzdHJpbmc7XG4gIHBob25lTnVtYmVyVHlwZTogc3RyaW5nO1xuICBtb250aGx5Q29zdENlbnRzOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBMaXN0TnVtYmVyc1Jlc3BvbnNlIHtcbiAgbnVtYmVyczogT3duZWROdW1iZXJbXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnVtYmVyc0xpc3QgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiTGlzdCB0aGUgcGhvbmUgbnVtYmVycyBvbiB5b3VyIGFjY291bnRcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBudW1iZXJzIGxpc3RcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IG51bWJlcnMgbGlzdCAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhcnNlKE51bWJlcnNMaXN0KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LmdldDxMaXN0TnVtYmVyc1Jlc3BvbnNlPihcbiAgICAgIFwiL2FwaS92MS9udW1iZXJzXCIsXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghcmVzcG9uc2UubnVtYmVycyB8fCByZXNwb25zZS5udW1iZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5mbyhcIk5vIHBob25lIG51bWJlcnMgb24geW91ciBhY2NvdW50IHlldC4gQnV5IG9uZSB3aXRoOiBzZW5kbHkgbnVtYmVycyBidXlcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKGBTaG93aW5nICR7cmVzcG9uc2UubnVtYmVycy5sZW5ndGh9IG51bWJlcnNgKSk7XG4gICAgY29uc29sZS5sb2coKTtcblxuICAgIHRhYmxlKHJlc3BvbnNlLm51bWJlcnMsIFtcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIk51bWJlclwiLFxuICAgICAgICBrZXk6IFwicGhvbmVOdW1iZXJcIixcbiAgICAgICAgd2lkdGg6IDE4LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBjb2xvcnMuY29kZShTdHJpbmcodikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlN0YXR1c1wiLFxuICAgICAgICBrZXk6IFwic3RhdHVzXCIsXG4gICAgICAgIHdpZHRoOiAxNCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gZm9ybWF0U3RhdHVzKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiQ291bnRyeVwiLFxuICAgICAgICBrZXk6IFwiY291bnRyeUNvZGVcIixcbiAgICAgICAgd2lkdGg6IDksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiVHlwZVwiLFxuICAgICAgICBrZXk6IFwicGhvbmVOdW1iZXJUeXBlXCIsXG4gICAgICAgIHdpZHRoOiAxMixcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9udW1iZXJzL2xpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFDTCxLQUFLLEVBQ0wsSUFBSSxFQUNKLElBQUksRUFDSixZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLHFCQUFxQixDQUFDO0FBbUI3QixNQUFNLENBQUMsT0FBTyxPQUFPLFdBQVksU0FBUSxvQkFBb0I7SUFDM0QsTUFBTSxDQUFDLFdBQVcsR0FBRyx3Q0FBd0MsQ0FBQztJQUU5RCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLGdDQUFnQztRQUNoQyx1Q0FBdUM7S0FDeEMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7S0FDbEMsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDbEMsaUJBQWlCLENBQ2xCLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsd0VBQXdFLENBQUMsQ0FBQztZQUMvRSxPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVkLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1lBQ3RCO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsYUFBYTtnQkFDbEIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6QztZQUNEO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsUUFBUTtnQkFDYixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUM7WUFDRDtnQkFDRSxNQUFNLEVBQUUsU0FBUztnQkFDakIsR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLEtBQUssRUFBRSxDQUFDO2FBQ1Q7WUFDRDtnQkFDRSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxHQUFHLEVBQUUsaUJBQWlCO2dCQUN0QixLQUFLLEVBQUUsRUFBRTthQUNWO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLEdBQUcsRUFBRSxRQUFRO2dCQUNiLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNmLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEIsT0FBTyxDQUFDLEtBQUssV0FBVzt3QkFDdEIsQ0FBQyxDQUFDLFFBQVE7d0JBQ1YsQ0FBQyxDQUFDLENBQUMsS0FBSyxtQkFBbUI7NEJBQ3pCLENBQUMsQ0FBQyxZQUFZOzRCQUNkLENBQUMsQ0FBQyxDQUFDLEtBQUssYUFBYTtnQ0FDbkIsQ0FBQyxDQUFDLFFBQVE7Z0NBQ1YsQ0FBQyxDQUFDLENBQUMsS0FBSyxhQUFhO29DQUNuQixDQUFDLENBQUMsYUFBYTtvQ0FDZixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNkLENBQUM7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHRhYmxlLFxuICBqc29uLFxuICBpbmZvLFxuICBmb3JtYXRTdGF0dXMsXG4gIGNvbG9ycyxcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIE93bmVkTnVtYmVyIHtcbiAgaWQ6IHN0cmluZztcbiAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICBwaG9uZU51bWJlclR5cGU6IHN0cmluZztcbiAgbW9udGhseUNvc3RDZW50czogbnVtYmVyO1xuICByZXF1aXJlbWVudHNTdWJtaXR0ZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgcGVuZGluZ0NhbmNlbGxhdGlvbjogYm9vbGVhbjtcbiAgc2NoZWR1bGVkUmVsZWFzZUF0OiBzdHJpbmcgfCBudWxsO1xufVxuXG5pbnRlcmZhY2UgTGlzdE51bWJlcnNSZXNwb25zZSB7XG4gIG51bWJlcnM6IE93bmVkTnVtYmVyW107XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE51bWJlcnNMaXN0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkxpc3QgdGhlIHBob25lIG51bWJlcnMgb24geW91ciBhY2NvdW50XCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbnVtYmVycyBsaXN0XCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBudW1iZXJzIGxpc3QgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wYXJzZShOdW1iZXJzTGlzdCk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8TGlzdE51bWJlcnNSZXNwb25zZT4oXG4gICAgICBcIi9hcGkvdjEvbnVtYmVyc1wiLFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlLm51bWJlcnMgfHwgcmVzcG9uc2UubnVtYmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8oXCJObyBwaG9uZSBudW1iZXJzIG9uIHlvdXIgYWNjb3VudCB5ZXQuIEJ1eSBvbmUgd2l0aDogc2VuZGx5IG51bWJlcnMgYnV5XCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coY29sb3JzLmRpbShgU2hvd2luZyAke3Jlc3BvbnNlLm51bWJlcnMubGVuZ3RofSBudW1iZXJzYCkpO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICB0YWJsZShyZXNwb25zZS5udW1iZXJzLCBbXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJOdW1iZXJcIixcbiAgICAgICAga2V5OiBcInBob25lTnVtYmVyXCIsXG4gICAgICAgIHdpZHRoOiAxOCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gY29sb3JzLmNvZGUoU3RyaW5nKHYpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJTdGF0dXNcIixcbiAgICAgICAga2V5OiBcInN0YXR1c1wiLFxuICAgICAgICB3aWR0aDogMTQsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGZvcm1hdFN0YXR1cyhTdHJpbmcodikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkNvdW50cnlcIixcbiAgICAgICAga2V5OiBcImNvdW50cnlDb2RlXCIsXG4gICAgICAgIHdpZHRoOiA5LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlR5cGVcIixcbiAgICAgICAga2V5OiBcInBob25lTnVtYmVyVHlwZVwiLFxuICAgICAgICB3aWR0aDogMTIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiU291cmNlXCIsXG4gICAgICAgIGtleTogXCJzb3VyY2VcIixcbiAgICAgICAgd2lkdGg6IDEyLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiB7XG4gICAgICAgICAgY29uc3QgcyA9IFN0cmluZyh2KTtcbiAgICAgICAgICByZXR1cm4gcyA9PT0gXCJwdXJjaGFzZWRcIlxuICAgICAgICAgICAgPyBcIkJvdWdodFwiXG4gICAgICAgICAgICA6IHMgPT09IFwicG9ydGVkX2hvc3RlZF9zbXNcIlxuICAgICAgICAgICAgICA/IFwiSG9zdGVkIFNNU1wiXG4gICAgICAgICAgICAgIDogcyA9PT0gXCJwb3J0ZWRfZnVsbFwiXG4gICAgICAgICAgICAgICAgPyBcIlBvcnRlZFwiXG4gICAgICAgICAgICAgICAgOiBzID09PSBcInByb3Zpc2lvbmVkXCJcbiAgICAgICAgICAgICAgICAgID8gXCJQcm92aXNpb25lZFwiXG4gICAgICAgICAgICAgICAgICA6IHM7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ /**
3
+ * `sendly numbers release <id>` — give up a number you own. A live paid
4
+ * purchase is scheduled to release at the end of the current billing period
5
+ * (undo with `sendly numbers update <id> --keep`); anything else is released at
6
+ * the carrier immediately.
7
+ *
8
+ * Wraps `DELETE /api/v1/numbers/:id`. Prompts for confirmation unless --yes is
9
+ * passed. Returns 404 when the id isn't one of your numbers.
10
+ */
11
+ export default class NumbersRelease extends AuthenticatedCommand {
12
+ static description: string;
13
+ static examples: string[];
14
+ static args: {
15
+ id: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
16
+ };
17
+ static flags: {
18
+ yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
19
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
20
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
21
+ };
22
+ run(): Promise<void>;
23
+ }