@sendly/cli 3.35.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 (71) 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/business-upgrade/cancel.d.ts +12 -0
  21. package/dist/commands/business-upgrade/cancel.js +47 -0
  22. package/dist/commands/business-upgrade/disposition.d.ts +13 -0
  23. package/dist/commands/business-upgrade/disposition.js +44 -0
  24. package/dist/commands/business-upgrade/preflight.d.ts +16 -0
  25. package/dist/commands/business-upgrade/preflight.js +82 -0
  26. package/dist/commands/business-upgrade/resubmit.d.ts +24 -0
  27. package/dist/commands/business-upgrade/resubmit.js +109 -0
  28. package/dist/commands/business-upgrade/start.d.ts +38 -0
  29. package/dist/commands/business-upgrade/start.js +142 -0
  30. package/dist/commands/business-upgrade/status.d.ts +11 -0
  31. package/dist/commands/business-upgrade/status.js +38 -0
  32. package/dist/commands/enterprise/verification/get.d.ts +13 -0
  33. package/dist/commands/enterprise/verification/get.js +78 -0
  34. package/dist/commands/enterprise/verification/resubmit.d.ts +41 -0
  35. package/dist/commands/enterprise/verification/resubmit.js +87 -0
  36. package/dist/commands/enterprise/verification/submit.d.ts +77 -0
  37. package/dist/commands/enterprise/verification/submit.js +212 -0
  38. package/dist/commands/keys/rotate.js +7 -12
  39. package/dist/commands/links/create.d.ts +24 -0
  40. package/dist/commands/links/create.js +71 -0
  41. package/dist/commands/links/disable.d.ts +21 -0
  42. package/dist/commands/links/disable.js +55 -0
  43. package/dist/commands/links/list.d.ts +19 -0
  44. package/dist/commands/links/list.js +85 -0
  45. package/dist/commands/numbers/buy.d.ts +31 -0
  46. package/dist/commands/numbers/buy.js +266 -0
  47. package/dist/commands/numbers/get.d.ts +20 -0
  48. package/dist/commands/numbers/get.js +52 -0
  49. package/dist/commands/numbers/list.d.ts +10 -0
  50. package/dist/commands/numbers/list.js +70 -0
  51. package/dist/commands/numbers/release.d.ts +23 -0
  52. package/dist/commands/numbers/release.js +67 -0
  53. package/dist/commands/numbers/search.d.ts +13 -0
  54. package/dist/commands/numbers/search.js +78 -0
  55. package/dist/commands/numbers/update.d.ts +25 -0
  56. package/dist/commands/numbers/update.js +70 -0
  57. package/dist/commands/sms/group.d.ts +25 -0
  58. package/dist/commands/sms/group.js +164 -0
  59. package/dist/commands/sms/upload-media.d.ts +1 -1
  60. package/dist/commands/sms/upload-media.js +4 -4
  61. package/dist/commands/templates/enhance.js +3 -3
  62. package/dist/commands/upgrade.d.ts +1 -16
  63. package/dist/commands/upgrade.js +131 -38
  64. package/dist/lib/auth.js +2 -94
  65. package/dist/lib/config.js +31 -2
  66. package/dist/lib/detect-install-path.d.ts +11 -7
  67. package/dist/lib/detect-install-path.js +25 -9
  68. package/dist/lib/keypress.d.ts +26 -0
  69. package/dist/lib/keypress.js +103 -0
  70. package/oclif.manifest.json +5005 -2698
  71. package/package.json +22 -1
@@ -0,0 +1,78 @@
1
+ import { Args } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../../lib/base-command.js";
3
+ import { apiClient } from "../../../lib/api-client.js";
4
+ import { json, isJsonMode, header, keyValue, colors, formatStatus, } from "../../../lib/output.js";
5
+ export default class EnterpriseVerificationGet extends AuthenticatedCommand {
6
+ static description = "Show the current verification record for an enterprise workspace.";
7
+ static examples = [
8
+ "<%= config.bin %> enterprise verification get org_abc123",
9
+ "<%= config.bin %> enterprise verification get org_abc123 --json",
10
+ ];
11
+ static args = {
12
+ workspaceId: Args.string({
13
+ description: "Workspace ID",
14
+ required: true,
15
+ }),
16
+ };
17
+ static flags = {
18
+ ...AuthenticatedCommand.baseFlags,
19
+ };
20
+ async run() {
21
+ const { args } = await this.parse(EnterpriseVerificationGet);
22
+ const verification = await apiClient.get(`/api/v1/enterprise/workspaces/${encodeURIComponent(args.workspaceId)}/verification`);
23
+ if (isJsonMode()) {
24
+ json(verification);
25
+ return;
26
+ }
27
+ header("Workspace Verification");
28
+ const summary = {
29
+ Workspace: args.workspaceId,
30
+ };
31
+ if (verification.id)
32
+ summary["Verification ID"] = verification.id;
33
+ if (verification.status)
34
+ summary["Status"] = formatStatus(verification.status);
35
+ if (verification.businessName)
36
+ summary["Business Name"] = verification.businessName;
37
+ if (verification.doingBusinessAs)
38
+ summary["DBA"] = verification.doingBusinessAs;
39
+ if (verification.entityType)
40
+ summary["Entity Type"] = verification.entityType;
41
+ if (verification.website)
42
+ summary["Website"] = verification.website;
43
+ if (verification.useCase)
44
+ summary["Use Case"] = verification.useCase;
45
+ if (verification.brn)
46
+ summary["BRN"] = verification.brn;
47
+ if (verification.brnType)
48
+ summary["BRN Type"] = verification.brnType;
49
+ if (verification.brnCountry)
50
+ summary["BRN Country"] = verification.brnCountry;
51
+ if (verification.monthlyVolume)
52
+ summary["Monthly Volume"] = verification.monthlyVolume;
53
+ if (verification.privacyUrl)
54
+ summary["Privacy URL"] = verification.privacyUrl;
55
+ if (verification.termsUrl)
56
+ summary["Terms URL"] = verification.termsUrl;
57
+ if (verification.submittedAt)
58
+ summary["Submitted"] = verification.submittedAt;
59
+ if (verification.updatedAt)
60
+ summary["Updated"] = verification.updatedAt;
61
+ keyValue(summary);
62
+ if (verification.address && typeof verification.address === "object") {
63
+ console.log();
64
+ header("Address");
65
+ keyValue(verification.address);
66
+ }
67
+ if (verification.contact && typeof verification.contact === "object") {
68
+ console.log();
69
+ header("Contact");
70
+ keyValue(verification.contact);
71
+ }
72
+ if (verification.rejectionReason) {
73
+ console.log();
74
+ console.log(colors.error(`Rejection reason: ${verification.rejectionReason}`));
75
+ }
76
+ }
77
+ }
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2UvdmVyaWZpY2F0aW9uL2dldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsSUFBSSxFQUNKLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLE1BQU0sRUFDTixZQUFZLEdBQ2IsTUFBTSx3QkFBd0IsQ0FBQztBQStCaEMsTUFBTSxDQUFDLE9BQU8sT0FBTyx5QkFBMEIsU0FBUSxvQkFBb0I7SUFDekUsTUFBTSxDQUFDLFdBQVcsR0FDaEIsbUVBQW1FLENBQUM7SUFFdEUsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiwwREFBMEQ7UUFDMUQsaUVBQWlFO0tBQ2xFLENBQUM7SUFFRixNQUFNLENBQUMsSUFBSSxHQUFHO1FBQ1osV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdkIsV0FBVyxFQUFFLGNBQWM7WUFDM0IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7S0FDbEMsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRTdELE1BQU0sWUFBWSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDdEMsaUNBQWlDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUNyRixDQUFDO1FBRUYsSUFBSSxVQUFV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T0FBTyxDQUFDLEdBQUcsQ0FDVCxNQUFNLENBQUMsS0FBSyxDQUFDLHFCQUFxQixZQUFZLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FDbEUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBqc29uLFxuICBpc0pzb25Nb2RlLFxuICBoZWFkZXIsXG4gIGtleVZhbHVlLFxuICBjb2xvcnMsXG4gIGZvcm1hdFN0YXR1cyxcbn0gZnJvbSBcIi4uLy4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIFZlcmlmaWNhdGlvblJlY29yZCB7XG4gIGlkPzogc3RyaW5nO1xuICBzdGF0dXM/OiBzdHJpbmc7XG4gIGJ1c2luZXNzTmFtZT86IHN0cmluZztcbiAgZG9pbmdCdXNpbmVzc0FzPzogc3RyaW5nO1xuICB3ZWJzaXRlPzogc3RyaW5nO1xuICBlbnRpdHlUeXBlPzogc3RyaW5nO1xuICBicm4/OiBzdHJpbmcgfCBudWxsO1xuICBicm5UeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgYnJuQ291bnRyeT86IHN0cmluZyB8IG51bGw7XG4gIGFkZHJlc3M/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gIGNvbnRhY3Q/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gIHVzZUNhc2U/OiBzdHJpbmc7XG4gIHVzZUNhc2VTdW1tYXJ5Pzogc3RyaW5nO1xuICBzYW1wbGVNZXNzYWdlcz86IHN0cmluZztcbiAgb3B0SW5Xb3JrZmxvdz86IHN0cmluZztcbiAgb3B0SW5JbWFnZVVybHM/OiBzdHJpbmc7XG4gIG1vbnRobHlWb2x1bWU/OiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbj86IHN0cmluZztcbiAgYWdlR2F0ZWRDb250ZW50PzogYm9vbGVhbjtcbiAgaXN2UmVzZWxsZXI/OiBzdHJpbmc7XG4gIHByaXZhY3lVcmw/OiBzdHJpbmc7XG4gIHRlcm1zVXJsPzogc3RyaW5nO1xuICByZWplY3Rpb25SZWFzb24/OiBzdHJpbmc7XG4gIHN1Ym1pdHRlZEF0Pzogc3RyaW5nO1xuICB1cGRhdGVkQXQ/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVudGVycHJpc2VWZXJpZmljYXRpb25HZXQgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJTaG93IHRoZSBjdXJyZW50IHZlcmlmaWNhdGlvbiByZWNvcmQgZm9yIGFuIGVudGVycHJpc2Ugd29ya3NwYWNlLlwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgdmVyaWZpY2F0aW9uIGdldCBvcmdfYWJjMTIzXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHZlcmlmaWNhdGlvbiBnZXQgb3JnX2FiYzEyMyAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICB3b3Jrc3BhY2VJZDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiV29ya3NwYWNlIElEXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGFyZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoRW50ZXJwcmlzZVZlcmlmaWNhdGlvbkdldCk7XG5cbiAgICBjb25zdCB2ZXJpZmljYXRpb24gPSBhd2FpdCBhcGlDbGllbnQuZ2V0PFZlcmlmaWNhdGlvblJlY29yZD4oXG4gICAgICBgL2FwaS92MS9lbnRlcnByaXNlL3dvcmtzcGFjZXMvJHtlbmNvZGVVUklDb21wb25lbnQoYXJncy53b3Jrc3BhY2VJZCl9L3ZlcmlmaWNhdGlvbmAsXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24odmVyaWZpY2F0aW9uKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBoZWFkZXIoXCJXb3Jrc3BhY2UgVmVyaWZpY2F0aW9uXCIpO1xuXG4gICAgY29uc3Qgc3VtbWFyeTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBXb3Jrc3BhY2U6IGFyZ3Mud29ya3NwYWNlSWQsXG4gICAgfTtcbiAgICBpZiAodmVyaWZpY2F0aW9uLmlkKSBzdW1tYXJ5W1wiVmVyaWZpY2F0aW9uIElEXCJdID0gdmVyaWZpY2F0aW9uLmlkO1xuICAgIGlmICh2ZXJpZmljYXRpb24uc3RhdHVzKSBzdW1tYXJ5W1wiU3RhdHVzXCJdID0gZm9ybWF0U3RhdHVzKHZlcmlmaWNhdGlvbi5zdGF0dXMpO1xuICAgIGlmICh2ZXJpZmljYXRpb24uYnVzaW5lc3NOYW1lKVxuICAgICAgc3VtbWFyeVtcIkJ1c2luZXNzIE5hbWVcIl0gPSB2ZXJpZmljYXRpb24uYnVzaW5lc3NOYW1lO1xuICAgIGlmICh2ZXJpZmljYXRpb24uZG9pbmdCdXNpbmVzc0FzKVxuICAgICAgc3VtbWFyeVtcIkRCQVwiXSA9IHZlcmlmaWNhdGlvbi5kb2luZ0J1c2luZXNzQXM7XG4gICAgaWYgKHZlcmlmaWNhdGlvbi5lbnRpdHlUeXBlKVxuICAgICAgc3VtbWFyeVtcIkVudGl0eSBUeXBlXCJdID0gdmVyaWZpY2F0aW9uLmVudGl0eVR5cGU7XG4gICAgaWYgKHZlcmlmaWNhdGlvbi53ZWJzaXRlKSBzdW1tYXJ5W1wiV2Vic2l0ZVwiXSA9IHZlcmlmaWNhdGlvbi53ZWJzaXRlO1xuICAgIGlmICh2ZXJpZmljYXRpb24udXNlQ2FzZSkgc3VtbWFyeVtcIlVzZSBDYXNlXCJdID0gdmVyaWZpY2F0aW9uLnVzZUNhc2U7XG4gICAgaWYgKHZlcmlmaWNhdGlvbi5icm4pIHN1bW1hcnlbXCJCUk5cIl0gPSB2ZXJpZmljYXRpb24uYnJuO1xuICAgIGlmICh2ZXJpZmljYXRpb24uYnJuVHlwZSkgc3VtbWFyeVtcIkJSTiBUeXBlXCJdID0gdmVyaWZpY2F0aW9uLmJyblR5cGU7XG4gICAgaWYgKHZlcmlmaWNhdGlvbi5icm5Db3VudHJ5KVxuICAgICAgc3VtbWFyeVtcIkJSTiBDb3VudHJ5XCJdID0gdmVyaWZpY2F0aW9uLmJybkNvdW50cnk7XG4gICAgaWYgKHZlcmlmaWNhdGlvbi5tb250aGx5Vm9sdW1lKVxuICAgICAgc3VtbWFyeVtcIk1vbnRobHkgVm9sdW1lXCJdID0gdmVyaWZpY2F0aW9uLm1vbnRobHlWb2x1bWU7XG4gICAgaWYgKHZlcmlmaWNhdGlvbi5wcml2YWN5VXJsKVxuICAgICAgc3VtbWFyeVtcIlByaXZhY3kgVVJMXCJdID0gdmVyaWZpY2F0aW9uLnByaXZhY3lVcmw7XG4gICAgaWYgKHZlcmlmaWNhdGlvbi50ZXJtc1VybCkgc3VtbWFyeVtcIlRlcm1zIFVSTFwiXSA9IHZlcmlmaWNhdGlvbi50ZXJtc1VybDtcbiAgICBpZiAodmVyaWZpY2F0aW9uLnN1Ym1pdHRlZEF0KVxuICAgICAgc3VtbWFyeVtcIlN1Ym1pdHRlZFwiXSA9IHZlcmlmaWNhdGlvbi5zdWJtaXR0ZWRBdDtcbiAgICBpZiAodmVyaWZpY2F0aW9uLnVwZGF0ZWRBdCkgc3VtbWFyeVtcIlVwZGF0ZWRcIl0gPSB2ZXJpZmljYXRpb24udXBkYXRlZEF0O1xuXG4gICAga2V5VmFsdWUoc3VtbWFyeSk7XG5cbiAgICBpZiAodmVyaWZpY2F0aW9uLmFkZHJlc3MgJiYgdHlwZW9mIHZlcmlmaWNhdGlvbi5hZGRyZXNzID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgaGVhZGVyKFwiQWRkcmVzc1wiKTtcbiAgICAgIGtleVZhbHVlKHZlcmlmaWNhdGlvbi5hZGRyZXNzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpY2F0aW9uLmNvbnRhY3QgJiYgdHlwZW9mIHZlcmlmaWNhdGlvbi5jb250YWN0ID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgaGVhZGVyKFwiQ29udGFjdFwiKTtcbiAgICAgIGtleVZhbHVlKHZlcmlmaWNhdGlvbi5jb250YWN0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpY2F0aW9uLnJlamVjdGlvblJlYXNvbikge1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjb2xvcnMuZXJyb3IoYFJlamVjdGlvbiByZWFzb246ICR7dmVyaWZpY2F0aW9uLnJlamVjdGlvblJlYXNvbn1gKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { AuthenticatedCommand } from "../../../lib/base-command.js";
2
+ export default class EnterpriseVerificationResubmit extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ data: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ "business-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ "doing-business-as": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ website: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
+ "entity-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
+ "address-street": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ "address-city": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
16
+ "address-state": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
17
+ "address-zip": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
18
+ "address-country": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
19
+ "contact-first-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
20
+ "contact-last-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
21
+ "contact-email": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
22
+ "contact-phone": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
23
+ brn: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
24
+ "brn-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
25
+ "brn-country": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
26
+ "use-case": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
27
+ "use-case-summary": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
28
+ "sample-messages": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
29
+ "opt-in-workflow": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
30
+ "opt-in-image-urls": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
31
+ "monthly-volume": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
32
+ "additional-information": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
33
+ "age-gated-content": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
34
+ "isv-reseller": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
35
+ "privacy-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
36
+ "terms-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
37
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
38
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
39
+ };
40
+ run(): Promise<void>;
41
+ }
@@ -0,0 +1,87 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../../lib/base-command.js";
3
+ import { submitVerification } from "./submit.js";
4
+ export default class EnterpriseVerificationResubmit extends AuthenticatedCommand {
5
+ static description = "Resubmit a verification after rejection. Same endpoint as submit — partial-update friendly, omitted fields are preserved from the existing record.";
6
+ static examples = [
7
+ '<%= config.bin %> enterprise verification resubmit org_abc123 --contact-email new@acme.com',
8
+ '<%= config.bin %> enterprise verification resubmit org_abc123 --data ./fixes.json',
9
+ '<%= config.bin %> enterprise verification resubmit org_abc123 --use-case-summary "Updated summary"',
10
+ ];
11
+ static args = {
12
+ workspaceId: Args.string({
13
+ description: "Workspace ID",
14
+ required: true,
15
+ }),
16
+ };
17
+ static flags = {
18
+ ...AuthenticatedCommand.baseFlags,
19
+ data: Flags.string({
20
+ char: "d",
21
+ description: "Path to a JSON file containing the partial-update payload",
22
+ }),
23
+ "business-name": Flags.string({ description: "Legal business name" }),
24
+ "doing-business-as": Flags.string({ description: "DBA / trading name" }),
25
+ website: Flags.string({ description: "Business website URL" }),
26
+ "entity-type": Flags.string({
27
+ description: "Entity type (SOLE_PROPRIETOR | PRIVATE_PROFIT | PUBLIC_PROFIT | NON_PROFIT | GOVERNMENT)",
28
+ options: [
29
+ "SOLE_PROPRIETOR",
30
+ "PRIVATE_PROFIT",
31
+ "PUBLIC_PROFIT",
32
+ "NON_PROFIT",
33
+ "GOVERNMENT",
34
+ ],
35
+ }),
36
+ "address-street": Flags.string({ description: "Street address" }),
37
+ "address-city": Flags.string({ description: "City" }),
38
+ "address-state": Flags.string({ description: "State / region" }),
39
+ "address-zip": Flags.string({ description: "ZIP / postal code" }),
40
+ "address-country": Flags.string({ description: "Country code (e.g. US)" }),
41
+ "contact-first-name": Flags.string({ description: "Contact first name" }),
42
+ "contact-last-name": Flags.string({ description: "Contact last name" }),
43
+ "contact-email": Flags.string({ description: "Contact email address" }),
44
+ "contact-phone": Flags.string({
45
+ description: "Contact phone number (E.164)",
46
+ }),
47
+ brn: Flags.string({
48
+ description: "Business registration number (omit for sole proprietors; server will strip)",
49
+ }),
50
+ "brn-type": Flags.string({
51
+ description: "BRN type (EIN | SSN | DUNS | CRA | VAT | LEI | OTHER)",
52
+ options: ["EIN", "SSN", "DUNS", "CRA", "VAT", "LEI", "OTHER"],
53
+ }),
54
+ "brn-country": Flags.string({ description: "BRN country code (e.g. US)" }),
55
+ "use-case": Flags.string({
56
+ description: "Use case (Telnyx use-case enum value)",
57
+ }),
58
+ "use-case-summary": Flags.string({ description: "Use case summary" }),
59
+ "sample-messages": Flags.string({ description: "Sample messages" }),
60
+ "opt-in-workflow": Flags.string({
61
+ description: "Opt-in workflow description",
62
+ }),
63
+ "opt-in-image-urls": Flags.string({
64
+ description: "Opt-in image URLs (newline or comma separated)",
65
+ }),
66
+ "monthly-volume": Flags.string({
67
+ description: "Estimated monthly message volume",
68
+ }),
69
+ "additional-information": Flags.string({
70
+ description: "Additional information for the carrier",
71
+ }),
72
+ "age-gated-content": Flags.boolean({
73
+ description: "Mark traffic as age-gated content",
74
+ allowNo: true,
75
+ }),
76
+ "isv-reseller": Flags.string({
77
+ description: "ISV / reseller name (if applicable)",
78
+ }),
79
+ "privacy-url": Flags.string({ description: "Privacy policy URL" }),
80
+ "terms-url": Flags.string({ description: "Terms of service URL" }),
81
+ };
82
+ async run() {
83
+ const { args, flags } = await this.parse(EnterpriseVerificationResubmit);
84
+ await submitVerification(args.workspaceId, flags, "Resubmitting verification...");
85
+ }
86
+ }
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWJtaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvZW50ZXJwcmlzZS92ZXJpZmljYXRpb24vcmVzdWJtaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpELE1BQU0sQ0FBQyxPQUFPLE9BQU8sOEJBQStCLFNBQVEsb0JBQW9CO0lBQzlFLE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLG9KQUFvSixDQUFDO0lBRXZKLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsNEZBQTRGO1FBQzVGLG1GQUFtRjtRQUNuRixvR0FBb0c7S0FDckcsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN2QixXQUFXLEVBQUUsY0FBYztZQUMzQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSwyREFBMkQ7U0FDekUsQ0FBQztRQUNGLGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLENBQUM7UUFDckUsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3hFLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLHNC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QztRQUNsRSxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO0tBQ25FLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDekUsTUFBTSxrQkFBa0IsQ0FDdEIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsS0FBSyxFQUNMLDhCQUE4QixDQUMvQixDQUFDO0lBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MsIEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBzdWJtaXRWZXJpZmljYXRpb24gfSBmcm9tIFwiLi9zdWJtaXQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW50ZXJwcmlzZVZlcmlmaWNhdGlvblJlc3VibWl0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPVxuICAgIFwiUmVzdWJtaXQgYSB2ZXJpZmljYXRpb24gYWZ0ZXIgcmVqZWN0aW9uLiBTYW1lIGVuZHBvaW50IGFzIHN1Ym1pdCDigJQgcGFydGlhbC11cGRhdGUgZnJpZW5kbHksIG9taXR0ZWQgZmllbGRzIGFyZSBwcmVzZXJ2ZWQgZnJvbSB0aGUgZXhpc3RpbmcgcmVjb3JkLlwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB2ZXJpZmljYXRpb24gcmVzdWJtaXQgb3JnX2FiYzEyMyAtLWNvbnRhY3QtZW1haWwgbmV3QGFjbWUuY29tJyxcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB2ZXJpZmljYXRpb24gcmVzdWJtaXQgb3JnX2FiYzEyMyAtLWRhdGEgLi9maXhlcy5qc29uJyxcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB2ZXJpZmljYXRpb24gcmVzdWJtaXQgb3JnX2FiYzEyMyAtLXVzZS1jYXNlLXN1bW1hcnkgXCJVcGRhdGVkIHN1bW1hcnlcIicsXG4gIF07XG5cbiAgc3RhdGljIGFyZ3MgPSB7XG4gICAgd29ya3NwYWNlSWQ6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIldvcmtzcGFjZSBJRFwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBkYXRhOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJQYXRoIHRvIGEgSlNPTiBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhcnRpYWwtdXBkYXRlIHBheWxvYWRcIixcbiAgICB9KSxcbiAgICBcImJ1c2luZXNzLW5hbWVcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiTGVnYWwgYnVzaW5lc3MgbmFtZVwiIH0pLFxuICAgIFwiZG9pbmctYnVzaW5lc3MtYXNcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiREJBIC8gdHJhZGluZyBuYW1lXCIgfSksXG4gICAgd2Vic2l0ZTogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiQnVzaW5lc3Mgd2Vic2l0ZSBVUkxcIiB9KSxcbiAgICBcImVudGl0eS10eXBlXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJFbnRpdHkgdHlwZSAoU09MRV9QUk9QUklFVE9SIHwgUFJJVkFURV9QUk9GSVQgfCBQVUJMSUNfUFJPRklUIHwgTk9OX1BST0ZJVCB8IEdPVkVSTk1FTlQpXCIsXG4gICAgICBvcHRpb25zOiBbXG4gICAgICAgIFwiU09MRV9QUk9QUklFVE9SXCIsXG4gICAgICAgIFwiUFJJVkFURV9QUk9GSVRcIixcbiAgICAgICAgXCJQVUJMSUNfUFJPRklUXCIsXG4gICAgICAgIFwiTk9OX1BST0ZJVFwiLFxuICAgICAgICBcIkdPVkVSTk1FTlRcIixcbiAgICAgIF0sXG4gICAgfSksXG4gICAgXCJhZGRyZXNzLXN0cmVldFwiOiBGbGFncy5zdHJpbmcoeyBkZXNjcmlwdGlvbjogXCJTdHJlZXQgYWRkcmVzc1wiIH0pLFxuICAgIFwiYWRkcmVzcy1jaXR5XCI6IEZsYWdzLnN0cmluZyh7IGRlc2NyaXB0aW9uOiBcIkNpdHlcIiB9KSxcbiAgICBcImFkZHJlc3Mtc3RhdGVcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiU3RhdGUgLyByZWdpb25cIiB9KSxcbiAgICBcImFkZHJlc3MtemlwXCI6IEZsYWdzLnN0cmluZyh7IGRlc2NyaXB0aW9uOiBcIlpJUCAvIHBvc3RhbCBjb2RlXCIgfSksXG4gICAgXCJhZGRyZXNzLWNvdW50cnlcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiQ291bnRyeSBjb2RlIChlLmcuIFVTKVwiIH0pLFxuICAgIFwiY29udGFjdC1maXJzdC1uYW1lXCI6IEZsYWdzLnN0cmluZyh7IGRlc2NyaXB0aW9uOiBcIkNvbnRhY3QgZmlyc3QgbmFtZVwiIH0pLFxuICAgIFwiY29udGFjdC1sYXN0LW5hbWVcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiQ29udGFjdCBsYXN0IG5hbWVcIiB9KSxcbiAgICBcImNvbnRhY3QtZW1haWxcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiQ29udGFjdCBlbWFpbCBhZGRyZXNzXCIgfSksXG4gICAgXCJjb250YWN0LXBob25lXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJDb250YWN0IHBob25lIG51bWJlciAoRS4xNjQpXCIsXG4gICAgfSksXG4gICAgYnJuOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiQnVzaW5lc3MgcmVnaXN0cmF0aW9uIG51bWJlciAob21pdCBmb3Igc29sZSBwcm9wcmlldG9yczsgc2VydmVyIHdpbGwgc3RyaXApXCIsXG4gICAgfSksXG4gICAgXCJicm4tdHlwZVwiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiQlJOIHR5cGUgKEVJTiB8IFNTTiB8IERVTlMgfCBDUkEgfCBWQVQgfCBMRUkgfCBPVEhFUilcIixcbiAgICAgIG9wdGlvbnM6IFtcIkVJTlwiLCBcIlNTTlwiLCBcIkRVTlNcIiwgXCJDUkFcIiwgXCJWQVRcIiwgXCJMRUlcIiwgXCJPVEhFUlwiXSxcbiAgICB9KSxcbiAgICBcImJybi1jb3VudHJ5XCI6IEZsYWdzLnN0cmluZyh7IGRlc2NyaXB0aW9uOiBcIkJSTiBjb3VudHJ5IGNvZGUgKGUuZy4gVVMpXCIgfSksXG4gICAgXCJ1c2UtY2FzZVwiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiVXNlIGNhc2UgKFRlbG55eCB1c2UtY2FzZSBlbnVtIHZhbHVlKVwiLFxuICAgIH0pLFxuICAgIFwidXNlLWNhc2Utc3VtbWFyeVwiOiBGbGFncy5zdHJpbmcoeyBkZXNjcmlwdGlvbjogXCJVc2UgY2FzZSBzdW1tYXJ5XCIgfSksXG4gICAgXCJzYW1wbGUtbWVzc2FnZXNcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiU2FtcGxlIG1lc3NhZ2VzXCIgfSksXG4gICAgXCJvcHQtaW4td29ya2Zsb3dcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk9wdC1pbiB3b3JrZmxvdyBkZXNjcmlwdGlvblwiLFxuICAgIH0pLFxuICAgIFwib3B0LWluLWltYWdlLXVybHNcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk9wdC1pbiBpbWFnZSBVUkxzIChuZXdsaW5lIG9yIGNvbW1hIHNlcGFyYXRlZClcIixcbiAgICB9KSxcbiAgICBcIm1vbnRobHktdm9sdW1lXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJFc3RpbWF0ZWQgbW9udGhseSBtZXNzYWdlIHZvbHVtZVwiLFxuICAgIH0pLFxuICAgIFwiYWRkaXRpb25hbC1pbmZvcm1hdGlvblwiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgdGhlIGNhcnJpZXJcIixcbiAgICB9KSxcbiAgICBcImFnZS1nYXRlZC1jb250ZW50XCI6IEZsYWdzLmJvb2xlYW4oe1xuICAgICAgZGVzY3JpcHRpb246IFwiTWFyayB0cmFmZmljIGFzIGFnZS1nYXRlZCBjb250ZW50XCIsXG4gICAgICBhbGxvd05vOiB0cnVlLFxuICAgIH0pLFxuICAgIFwiaXN2LXJlc2VsbGVyXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJJU1YgLyByZXNlbGxlciBuYW1lIChpZiBhcHBsaWNhYmxlKVwiLFxuICAgIH0pLFxuICAgIFwicHJpdmFjeS11cmxcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiUHJpdmFjeSBwb2xpY3kgVVJMXCIgfSksXG4gICAgXCJ0ZXJtcy11cmxcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiVGVybXMgb2Ygc2VydmljZSBVUkxcIiB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhcmdzLCBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShFbnRlcnByaXNlVmVyaWZpY2F0aW9uUmVzdWJtaXQpO1xuICAgIGF3YWl0IHN1Ym1pdFZlcmlmaWNhdGlvbihcbiAgICAgIGFyZ3Mud29ya3NwYWNlSWQsXG4gICAgICBmbGFncyxcbiAgICAgIFwiUmVzdWJtaXR0aW5nIHZlcmlmaWNhdGlvbi4uLlwiLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,77 @@
1
+ import { AuthenticatedCommand } from "../../../lib/base-command.js";
2
+ interface VerificationSubmitInput {
3
+ businessName?: string;
4
+ doingBusinessAs?: string;
5
+ website?: string;
6
+ address?: {
7
+ street?: string;
8
+ city?: string;
9
+ state?: string;
10
+ zip?: string;
11
+ country?: string;
12
+ };
13
+ contact?: {
14
+ firstName?: string;
15
+ lastName?: string;
16
+ email?: string;
17
+ phone?: string;
18
+ };
19
+ brn?: string | null;
20
+ brnType?: string | null;
21
+ brnCountry?: string | null;
22
+ entityType?: string;
23
+ useCase?: string;
24
+ useCaseSummary?: string;
25
+ sampleMessages?: string;
26
+ optInWorkflow?: string;
27
+ optInImageUrls?: string;
28
+ monthlyVolume?: string;
29
+ additionalInformation?: string;
30
+ ageGatedContent?: boolean;
31
+ isvReseller?: string;
32
+ privacyUrl?: string;
33
+ termsUrl?: string;
34
+ }
35
+ export default class EnterpriseVerificationSubmit extends AuthenticatedCommand {
36
+ static description: string;
37
+ static examples: string[];
38
+ static args: {
39
+ workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
40
+ };
41
+ static flags: {
42
+ data: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
43
+ "business-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
44
+ "doing-business-as": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
45
+ website: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
46
+ "entity-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
47
+ "address-street": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
48
+ "address-city": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
49
+ "address-state": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
50
+ "address-zip": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
51
+ "address-country": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
52
+ "contact-first-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
53
+ "contact-last-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
54
+ "contact-email": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
55
+ "contact-phone": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
56
+ brn: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
57
+ "brn-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
58
+ "brn-country": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
59
+ "use-case": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
60
+ "use-case-summary": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
61
+ "sample-messages": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
62
+ "opt-in-workflow": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
63
+ "opt-in-image-urls": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
64
+ "monthly-volume": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
65
+ "additional-information": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
66
+ "age-gated-content": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
67
+ "isv-reseller": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
68
+ "privacy-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
69
+ "terms-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
70
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
71
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
72
+ };
73
+ run(): Promise<void>;
74
+ }
75
+ export declare function submitVerification(workspaceId: string, flags: Record<string, unknown>, spinnerText: string): Promise<void>;
76
+ export declare function buildPayload(flags: Record<string, unknown>): VerificationSubmitInput;
77
+ export {};
@@ -0,0 +1,212 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import * as fs from "node:fs";
3
+ import { AuthenticatedCommand } from "../../../lib/base-command.js";
4
+ import { apiClient } from "../../../lib/api-client.js";
5
+ import { success, json, isJsonMode, spinner, colors, keyValue, } from "../../../lib/output.js";
6
+ export default class EnterpriseVerificationSubmit extends AuthenticatedCommand {
7
+ static description = "Submit (or resubmit) a verification for an enterprise workspace. Partial-update friendly: only the fields you pass are changed.";
8
+ static examples = [
9
+ '<%= config.bin %> enterprise verification submit org_abc123 --data ./verification.json',
10
+ '<%= config.bin %> enterprise verification submit org_abc123 --business-name "Acme LLC" --website https://acme.com --use-case "Insurance Services"',
11
+ '<%= config.bin %> enterprise verification submit org_abc123 --contact-email new@acme.com',
12
+ ];
13
+ static args = {
14
+ workspaceId: Args.string({
15
+ description: "Workspace ID",
16
+ required: true,
17
+ }),
18
+ };
19
+ static flags = {
20
+ ...AuthenticatedCommand.baseFlags,
21
+ data: Flags.string({
22
+ char: "d",
23
+ description: "Path to a JSON file containing the verification payload",
24
+ }),
25
+ "business-name": Flags.string({
26
+ description: "Legal business name",
27
+ }),
28
+ "doing-business-as": Flags.string({
29
+ description: "DBA / trading name",
30
+ }),
31
+ website: Flags.string({
32
+ description: "Business website URL",
33
+ }),
34
+ "entity-type": Flags.string({
35
+ description: "Entity type (SOLE_PROPRIETOR | PRIVATE_PROFIT | PUBLIC_PROFIT | NON_PROFIT | GOVERNMENT)",
36
+ options: [
37
+ "SOLE_PROPRIETOR",
38
+ "PRIVATE_PROFIT",
39
+ "PUBLIC_PROFIT",
40
+ "NON_PROFIT",
41
+ "GOVERNMENT",
42
+ ],
43
+ }),
44
+ "address-street": Flags.string({ description: "Street address" }),
45
+ "address-city": Flags.string({ description: "City" }),
46
+ "address-state": Flags.string({ description: "State / region" }),
47
+ "address-zip": Flags.string({ description: "ZIP / postal code" }),
48
+ "address-country": Flags.string({ description: "Country code (e.g. US)" }),
49
+ "contact-first-name": Flags.string({ description: "Contact first name" }),
50
+ "contact-last-name": Flags.string({ description: "Contact last name" }),
51
+ "contact-email": Flags.string({ description: "Contact email address" }),
52
+ "contact-phone": Flags.string({
53
+ description: "Contact phone number (E.164)",
54
+ }),
55
+ brn: Flags.string({
56
+ description: "Business registration number (omit for sole proprietors; server will strip)",
57
+ }),
58
+ "brn-type": Flags.string({
59
+ description: "BRN type (EIN | SSN | DUNS | CRA | VAT | LEI | OTHER)",
60
+ options: ["EIN", "SSN", "DUNS", "CRA", "VAT", "LEI", "OTHER"],
61
+ }),
62
+ "brn-country": Flags.string({
63
+ description: "BRN country code (e.g. US)",
64
+ }),
65
+ "use-case": Flags.string({
66
+ description: "Use case (Telnyx use-case enum value)",
67
+ }),
68
+ "use-case-summary": Flags.string({
69
+ description: "Use case summary",
70
+ }),
71
+ "sample-messages": Flags.string({
72
+ description: "Sample messages",
73
+ }),
74
+ "opt-in-workflow": Flags.string({
75
+ description: "Opt-in workflow description",
76
+ }),
77
+ "opt-in-image-urls": Flags.string({
78
+ description: "Opt-in image URLs (newline or comma separated)",
79
+ }),
80
+ "monthly-volume": Flags.string({
81
+ description: "Estimated monthly message volume",
82
+ }),
83
+ "additional-information": Flags.string({
84
+ description: "Additional information for the carrier",
85
+ }),
86
+ "age-gated-content": Flags.boolean({
87
+ description: "Mark traffic as age-gated content",
88
+ allowNo: true,
89
+ }),
90
+ "isv-reseller": Flags.string({
91
+ description: "ISV / reseller name (if applicable)",
92
+ }),
93
+ "privacy-url": Flags.string({ description: "Privacy policy URL" }),
94
+ "terms-url": Flags.string({ description: "Terms of service URL" }),
95
+ };
96
+ async run() {
97
+ const { args, flags } = await this.parse(EnterpriseVerificationSubmit);
98
+ await submitVerification(args.workspaceId, flags, "Submitting verification...");
99
+ }
100
+ }
101
+ export async function submitVerification(workspaceId, flags, spinnerText) {
102
+ const payload = buildPayload(flags);
103
+ if (Object.keys(payload).length === 0) {
104
+ throw new Error("No fields provided. Pass --data <file> or one or more --* field flags.");
105
+ }
106
+ const spin = spinner(spinnerText);
107
+ spin.start();
108
+ let response;
109
+ try {
110
+ response = await apiClient.post(`/api/v1/enterprise/workspaces/${encodeURIComponent(workspaceId)}/verification/submit`, payload);
111
+ }
112
+ catch (err) {
113
+ spin.fail("Verification submit failed");
114
+ throw err;
115
+ }
116
+ spin.succeed("Verification submitted");
117
+ if (isJsonMode()) {
118
+ json(response);
119
+ return;
120
+ }
121
+ const status = response.status ||
122
+ response.verification?.status ||
123
+ "submitted";
124
+ const id = response.id || response.verification?.id;
125
+ const details = {
126
+ Workspace: workspaceId,
127
+ Status: colors.primary(status),
128
+ };
129
+ if (id)
130
+ details["Verification ID"] = id;
131
+ success("Verification submitted", details);
132
+ if (Object.keys(response).length > 0 && !id) {
133
+ keyValue(response);
134
+ }
135
+ }
136
+ export function buildPayload(flags) {
137
+ let payload = {};
138
+ const dataFlag = flags.data;
139
+ if (dataFlag) {
140
+ if (!fs.existsSync(dataFlag)) {
141
+ throw new Error(`File not found: ${dataFlag}`);
142
+ }
143
+ const content = fs.readFileSync(dataFlag, "utf-8");
144
+ try {
145
+ payload = JSON.parse(content);
146
+ }
147
+ catch {
148
+ throw new Error(`Invalid JSON in ${dataFlag}. Expected a verification payload object.`);
149
+ }
150
+ }
151
+ const setIf = (key, value) => {
152
+ if (value !== undefined) {
153
+ payload[key] = value;
154
+ }
155
+ };
156
+ setIf("businessName", flags["business-name"]);
157
+ setIf("doingBusinessAs", flags["doing-business-as"]);
158
+ setIf("website", flags.website);
159
+ setIf("entityType", flags["entity-type"]);
160
+ setIf("brn", flags.brn);
161
+ setIf("brnType", flags["brn-type"]);
162
+ setIf("brnCountry", flags["brn-country"]);
163
+ setIf("useCase", flags["use-case"]);
164
+ setIf("useCaseSummary", flags["use-case-summary"]);
165
+ setIf("sampleMessages", flags["sample-messages"]);
166
+ setIf("optInWorkflow", flags["opt-in-workflow"]);
167
+ setIf("optInImageUrls", flags["opt-in-image-urls"]);
168
+ setIf("monthlyVolume", flags["monthly-volume"]);
169
+ setIf("additionalInformation", flags["additional-information"]);
170
+ setIf("isvReseller", flags["isv-reseller"]);
171
+ setIf("privacyUrl", flags["privacy-url"]);
172
+ setIf("termsUrl", flags["terms-url"]);
173
+ if (flags["age-gated-content"] !== undefined) {
174
+ payload.ageGatedContent = flags["age-gated-content"];
175
+ }
176
+ const address = {
177
+ ...(payload.address || {}),
178
+ ...stripUndefined({
179
+ street: flags["address-street"],
180
+ city: flags["address-city"],
181
+ state: flags["address-state"],
182
+ zip: flags["address-zip"],
183
+ country: flags["address-country"],
184
+ }),
185
+ };
186
+ if (Object.keys(address).length > 0) {
187
+ payload.address = address;
188
+ }
189
+ const contact = {
190
+ ...(payload.contact || {}),
191
+ ...stripUndefined({
192
+ firstName: flags["contact-first-name"],
193
+ lastName: flags["contact-last-name"],
194
+ email: flags["contact-email"],
195
+ phone: flags["contact-phone"],
196
+ }),
197
+ };
198
+ if (Object.keys(contact).length > 0) {
199
+ payload.contact = contact;
200
+ }
201
+ return payload;
202
+ }
203
+ function stripUndefined(obj) {
204
+ const out = {};
205
+ for (const [k, v] of Object.entries(obj)) {
206
+ if (v !== undefined) {
207
+ out[k] = v;
208
+ }
209
+ }
210
+ return out;
211
+ }
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2UvdmVyaWZpY2F0aW9uL3N1Ym1pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUNMLE9BQU8sRUFDUCxJQUFJLEVBQ0osVUFBVSxFQUNWLE9BQU8sRUFDUCxNQUFNLEVBQ04sUUFBUSxHQUNULE1BQU0sd0JBQXdCLENBQUM7QUEyQ2hDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sNEJBQTZCLFNBQVEsb0JBQW9CO0lBQzVFLE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGlJQUFpSSxDQUFDO0lBRXBJLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsd0ZBQXdGO1FBQ3hGLG1KQUFtSjtRQUNuSiwwRkFBMEY7S0FDM0YsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN2QixXQUFXLEVBQUUsY0FBYztZQUMzQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSx5REFBeUQ7U0FDdkUsQ0FBQztRQUNGLGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzVCLFdBQVcsRUFBRSxxQkFBcUI7U0FDbkMsQ0FBQztRQUNGLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDaEMsV0FBVyxFQUFFLG9CQUFvQjtTQUNsQyxDQUFDO1FBQ0YsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEIsV0FBVyxFQUFFLHNCQUFzQjtTQUNwQyxDQUFDO1FBQ0YsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDMUIsV0FBVyxFQUNULDBGQUEwRjtZQUM1RixPQUFPLEVBQUU7Z0JBQ1AsaUJBQWlCO2dCQUNqQixnQkFBZ0I7Z0JBQ2hCLGVBQWU7Z0JBQ2YsWUFBWTtnQkFDWixZQUFZO2FBQ2I7U0FDRixDQUFDO1FBQ0YsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2pFLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3JELGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7UUFDaEUsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztRQUNqRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFLENBQUM7UUFDMUUsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3pFLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztRQUN2RSxlQUFlLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1FBQ3ZFLGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzVCLFdBQVcsRUFBRSw4QkFBOEI7U0FDNUMsQ0FBQztRQUNGLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2hCLFdBQVcsRUFDVCw2RUFBNkU7U0FDaEYsQ0FBQztRQUNGLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3ZCLFdBQVcsRUFBRSx1REFBdUQ7WUFDcEUsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1NBQzlELENBQUM7UUFDRixhQUFhLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUMxQixXQUFXLEVBQUUsNEJBQTRCO1NBQzFDLENBQUM7UUFDRixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN2QixXQUFXLEVBQUUsdUNBQXVDO1NBQ3JELENBQUM7UUFDRixrQkFBa0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQy9CLFdBQVcsRUFBRSxrQkFBa0I7U0FDaEMsQ0FBQztRQUNGLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDOUIsV0FBVyxFQUFFLGlCQUFpQjtTQUMvQixDQUFDO1FBQ0YsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUM5QixXQUFXLEVBQUUsNkJBQTZCO1NBQzNDLENBQUM7UUFDRixtQkFBbUIsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2hDLFdBQVcsRUFBRSxnREFBZ0Q7U0FDOUQsQ0FBQztRQUNGLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDN0IsV0FBVyxFQUFFLGtDQUFrQztTQUNoRCxDQUFDO1FBQ0Ysd0JBQXdCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNyQyxXQUFXLEVBQUUsd0NBQXdDO1NBQ3RELENBQUM7UUFDRixtQkFBbUIsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2pDLFdBQVcsRUFBRSxtQ0FBbUM7WUFDaEQsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBQ0YsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDM0IsV0FBVyxFQUFFLHFDQUFxQztTQUNuRCxDQUFDO1FBQ0YsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztRQUNsRSxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO0tBQ25FLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDdkUsTUFBTSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7O0FBR0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsV0FBbUIsRUFDbkIsS0FBOEIsRUFDOUIsV0FBbUI7SUFFbkIsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FDYix3RUFBd0UsQ0FDekUsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRWIsSUFBSSxRQUF3QixDQUFDO0lBQzdCLElBQUksQ0FBQztRQUNILFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQzdCLGlDQUFpQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQ3RGLE9BQTZDLENBQzlDLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUN4QyxNQUFNLEdBQUcsQ0FBQztJQUNaLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFdkMsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNmLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQ1YsUUFBUSxDQUFDLE1BQU07UUFDZixRQUFRLENBQUMsWUFBWSxFQUFFLE1BQU07UUFDN0IsV0FBVyxDQUFDO0lBQ2QsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztJQUVwRCxNQUFNLE9BQU8sR0FBMkI7UUFDdEMsU0FBUyxFQUFFLFdBQVc7UUFDdEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0tBQy9CLENBQUM7SUFDRixJQUFJLEVBQUU7UUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFeEMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRTNDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDNUMsUUFBUSxDQUFDLFFBQW1DLENBQUMsQ0FBQztJQUNoRCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQzFCLEtBQThCO0lBRTlCLElBQUksT0FBTyxHQUE0QixFQUFFLENBQUM7SUFFMUMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQTBCLENBQUM7SUFDbEQsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDO1lBQ0gsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUE0QixDQUFDO1FBQzNELENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxNQUFNLElBQUksS0FBSyxDQUNiLG1CQUFtQixRQUFRLDJDQUEyQyxDQUN2RSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxDQUNaLEdBQU0sRUFDTixLQUE2QyxFQUN2QyxFQUFFO1FBQ1IsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsZUFBZSxDQUF1QixDQUFDLENBQUM7SUFDcEUsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBdUIsQ0FBQyxDQUFDO0lBQzNFLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQTZCLENBQUMsQ0FBQztJQUN0RCxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQXVCLENBQUMsQ0FBQztJQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUF5QixDQUFDLENBQUM7SUFDOUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUF1QixDQUFDLENBQUM7SUFDMUQsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsYUFBYSxDQUF1QixDQUFDLENBQUM7SUFDaEUsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUF1QixDQUFDLENBQUM7SUFDMUQsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBdUIsQ0FBQyxDQUFDO0lBQ3pFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQXVCLENBQUMsQ0FBQztJQUN4RSxLQUFLLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBdUIsQ0FBQyxDQUFDO0lBQ3ZFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQXVCLENBQUMsQ0FBQztJQUMxRSxLQUFLLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBdUIsQ0FBQyxDQUFDO0lBQ3RFLEtBQUssQ0FDSCx1QkFBdUIsRUFDdkIsS0FBSyxDQUFDLHdCQUF3QixDQUF1QixDQUN0RCxDQUFDO0lBQ0YsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUF1QixDQUFDLENBQUM7SUFDbEUsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsYUFBYSxDQUF1QixDQUFDLENBQUM7SUFDaEUsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUF1QixDQUFDLENBQUM7SUFFNUQsSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM3QyxPQUFPLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBWSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRztRQUNkLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUMxQixHQUFHLGNBQWMsQ0FBQztZQUNoQixNQUFNLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUF1QjtZQUNyRCxJQUFJLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBdUI7WUFDakQsS0FBSyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQXVCO1lBQ25ELEdBQUcsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUF1QjtZQUMvQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUF1QjtTQUN4RCxDQUFDO0tBQ0gsQ0FBQztJQUNGLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEMsT0FBTyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHO1FBQ2QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzFCLEdBQUcsY0FBYyxDQUFDO1lBQ2hCLFNBQVMsRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQXVCO1lBQzVELFFBQVEsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQXVCO1lBQzFELEtBQUssRUFBRSxLQUFLLENBQUMsZUFBZSxDQUF1QjtZQUNuRCxLQUFLLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBdUI7U0FDcEQsQ0FBQztLQUNILENBQUM7SUFDRixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxjQUFjLENBQW9DLEdBQU07SUFDL0QsTUFBTSxHQUFHLEdBQWUsRUFBRSxDQUFDO0lBQzNCLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbkIsR0FBK0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmdzLCBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAgc3VjY2VzcyxcbiAganNvbixcbiAgaXNKc29uTW9kZSxcbiAgc3Bpbm5lcixcbiAgY29sb3JzLFxuICBrZXlWYWx1ZSxcbn0gZnJvbSBcIi4uLy4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIFZlcmlmaWNhdGlvblN1Ym1pdElucHV0IHtcbiAgYnVzaW5lc3NOYW1lPzogc3RyaW5nO1xuICBkb2luZ0J1c2luZXNzQXM/OiBzdHJpbmc7XG4gIHdlYnNpdGU/OiBzdHJpbmc7XG4gIGFkZHJlc3M/OiB7XG4gICAgc3RyZWV0Pzogc3RyaW5nO1xuICAgIGNpdHk/OiBzdHJpbmc7XG4gICAgc3RhdGU/OiBzdHJpbmc7XG4gICAgemlwPzogc3RyaW5nO1xuICAgIGNvdW50cnk/OiBzdHJpbmc7XG4gIH07XG4gIGNvbnRhY3Q/OiB7XG4gICAgZmlyc3ROYW1lPzogc3RyaW5nO1xuICAgIGxhc3ROYW1lPzogc3RyaW5nO1xuICAgIGVtYWlsPzogc3RyaW5nO1xuICAgIHBob25lPzogc3RyaW5nO1xuICB9O1xuICBicm4/OiBzdHJpbmcgfCBudWxsO1xuICBicm5UeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgYnJuQ291bnRyeT86IHN0cmluZyB8IG51bGw7XG4gIGVudGl0eVR5cGU/OiBzdHJpbmc7XG4gIHVzZUNhc2U/OiBzdHJpbmc7XG4gIHVzZUNhc2VTdW1tYXJ5Pzogc3RyaW5nO1xuICBzYW1wbGVNZXNzYWdlcz86IHN0cmluZztcbiAgb3B0SW5Xb3JrZmxvdz86IHN0cmluZztcbiAgb3B0SW5JbWFnZVVybHM/OiBzdHJpbmc7XG4gIG1vbnRobHlWb2x1bWU/OiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbj86IHN0cmluZztcbiAgYWdlR2F0ZWRDb250ZW50PzogYm9vbGVhbjtcbiAgaXN2UmVzZWxsZXI/OiBzdHJpbmc7XG4gIHByaXZhY3lVcmw/OiBzdHJpbmc7XG4gIHRlcm1zVXJsPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU3VibWl0UmVzcG9uc2Uge1xuICBzdGF0dXM/OiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbj86IHsgaWQ/OiBzdHJpbmc7IHN0YXR1cz86IHN0cmluZyB9O1xuICBpZD86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW50ZXJwcmlzZVZlcmlmaWNhdGlvblN1Ym1pdCBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIlN1Ym1pdCAob3IgcmVzdWJtaXQpIGEgdmVyaWZpY2F0aW9uIGZvciBhbiBlbnRlcnByaXNlIHdvcmtzcGFjZS4gUGFydGlhbC11cGRhdGUgZnJpZW5kbHk6IG9ubHkgdGhlIGZpZWxkcyB5b3UgcGFzcyBhcmUgY2hhbmdlZC5cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgJzwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgdmVyaWZpY2F0aW9uIHN1Ym1pdCBvcmdfYWJjMTIzIC0tZGF0YSAuL3ZlcmlmaWNhdGlvbi5qc29uJyxcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB2ZXJpZmljYXRpb24gc3VibWl0IG9yZ19hYmMxMjMgLS1idXNpbmVzcy1uYW1lIFwiQWNtZSBMTENcIiAtLXdlYnNpdGUgaHR0cHM6Ly9hY21lLmNvbSAtLXVzZS1jYXNlIFwiSW5zdXJhbmNlIFNlcnZpY2VzXCInLFxuICAgICc8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHZlcmlmaWNhdGlvbiBzdWJtaXQgb3JnX2FiYzEyMyAtLWNvbnRhY3QtZW1haWwgbmV3QGFjbWUuY29tJyxcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICB3b3Jrc3BhY2VJZDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiV29ya3NwYWNlIElEXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIGRhdGE6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcImRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlBhdGggdG8gYSBKU09OIGZpbGUgY29udGFpbmluZyB0aGUgdmVyaWZpY2F0aW9uIHBheWxvYWRcIixcbiAgICB9KSxcbiAgICBcImJ1c2luZXNzLW5hbWVcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkxlZ2FsIGJ1c2luZXNzIG5hbWVcIixcbiAgICB9KSxcbiAgICBcImRvaW5nLWJ1c2luZXNzLWFzXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJEQkEgLyB0cmFkaW5nIG5hbWVcIixcbiAgICB9KSxcbiAgICB3ZWJzaXRlOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiQnVzaW5lc3Mgd2Vic2l0ZSBVUkxcIixcbiAgICB9KSxcbiAgICBcImVudGl0eS10eXBlXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJFbnRpdHkgdHlwZSAoU09MRV9QUk9QUklFVE9SIHwgUFJJVkFURV9QUk9GSVQgfCBQVUJMSUNfUFJPRklUIHwgTk9OX1BST0ZJVCB8IEdPVkVSTk1FTlQpXCIsXG4gICAgICBvcHRpb25zOiBbXG4gICAgICAgIFwiU09MRV9QUk9QUklFVE9SXCIsXG4gICAgICAgIFwiUFJJVkFURV9QUk9GSVRcIixcbiAgICAgICAgXCJQVUJMSUNfUFJPRklUXCIsXG4gICAgICAgIFwiTk9OX1BST0ZJVFwiLFxuICAgICAgICBcIkdPVkVSTk1FTlRcIixcbiAgICAgIF0sXG4gICAgfSksXG4gICAgXCJhZGRyZXNzLXN0cmVldFwiOiBGbGFncy5zdHJpbmcoeyBkZXNjcmlwdGlvbjogXCJTdHJlZXQgYWRkcmVzc1wiIH0pLFxuICAgIFwiYWRkcmVzcy1jaXR5XCI6IEZsYWdzLnN0cmluZyh7IGRlc2NyaXB0aW9uOiBcIkNpdHlcIiB9KSxcbiAgICBcImFkZHJlc3Mtc3RhdGVcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiU3RhdGUgLyByZWdpb25cIiB9KSxcbiAgICBcImFkZHJlc3MtemlwXCI6IEZsYWdzLnN0cmluZyh7IGRlc2NyaXB0aW9uOiBcIlpJUCAvIHBvc3RhbCBjb2RlXCIgfSksXG4gICAgXCJhZGRyZXNzLWNvdW50cnlcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiQ291bnRyeSBjb2RlIChlLmcuIFVTKVwiIH0pLFxuICAgIFwiY29udGFjdC1maXJzdC1uYW1lXCI6IEZsYWdzLnN0cmluZyh7IGRlc2NyaXB0aW9uOiBcIkNvbnRhY3QgZmlyc3QgbmFtZVwiIH0pLFxuICAgIFwiY29udGFjdC1sYXN0LW5hbWVcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiQ29udGFjdCBsYXN0IG5hbWVcIiB9KSxcbiAgICBcImNvbnRhY3QtZW1haWxcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiQ29udGFjdCBlbWFpbCBhZGRyZXNzXCIgfSksXG4gICAgXCJjb250YWN0LXBob25lXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJDb250YWN0IHBob25lIG51bWJlciAoRS4xNjQpXCIsXG4gICAgfSksXG4gICAgYnJuOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiQnVzaW5lc3MgcmVnaXN0cmF0aW9uIG51bWJlciAob21pdCBmb3Igc29sZSBwcm9wcmlldG9yczsgc2VydmVyIHdpbGwgc3RyaXApXCIsXG4gICAgfSksXG4gICAgXCJicm4tdHlwZVwiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiQlJOIHR5cGUgKEVJTiB8IFNTTiB8IERVTlMgfCBDUkEgfCBWQVQgfCBMRUkgfCBPVEhFUilcIixcbiAgICAgIG9wdGlvbnM6IFtcIkVJTlwiLCBcIlNTTlwiLCBcIkRVTlNcIiwgXCJDUkFcIiwgXCJWQVRcIiwgXCJMRUlcIiwgXCJPVEhFUlwiXSxcbiAgICB9KSxcbiAgICBcImJybi1jb3VudHJ5XCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJCUk4gY291bnRyeSBjb2RlIChlLmcuIFVTKVwiLFxuICAgIH0pLFxuICAgIFwidXNlLWNhc2VcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlVzZSBjYXNlIChUZWxueXggdXNlLWNhc2UgZW51bSB2YWx1ZSlcIixcbiAgICB9KSxcbiAgICBcInVzZS1jYXNlLXN1bW1hcnlcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlVzZSBjYXNlIHN1bW1hcnlcIixcbiAgICB9KSxcbiAgICBcInNhbXBsZS1tZXNzYWdlc1wiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiU2FtcGxlIG1lc3NhZ2VzXCIsXG4gICAgfSksXG4gICAgXCJvcHQtaW4td29ya2Zsb3dcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk9wdC1pbiB3b3JrZmxvdyBkZXNjcmlwdGlvblwiLFxuICAgIH0pLFxuICAgIFwib3B0LWluLWltYWdlLXVybHNcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk9wdC1pbiBpbWFnZSBVUkxzIChuZXdsaW5lIG9yIGNvbW1hIHNlcGFyYXRlZClcIixcbiAgICB9KSxcbiAgICBcIm1vbnRobHktdm9sdW1lXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJFc3RpbWF0ZWQgbW9udGhseSBtZXNzYWdlIHZvbHVtZVwiLFxuICAgIH0pLFxuICAgIFwiYWRkaXRpb25hbC1pbmZvcm1hdGlvblwiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgdGhlIGNhcnJpZXJcIixcbiAgICB9KSxcbiAgICBcImFnZS1nYXRlZC1jb250ZW50XCI6IEZsYWdzLmJvb2xlYW4oe1xuICAgICAgZGVzY3JpcHRpb246IFwiTWFyayB0cmFmZmljIGFzIGFnZS1nYXRlZCBjb250ZW50XCIsXG4gICAgICBhbGxvd05vOiB0cnVlLFxuICAgIH0pLFxuICAgIFwiaXN2LXJlc2VsbGVyXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJJU1YgLyByZXNlbGxlciBuYW1lIChpZiBhcHBsaWNhYmxlKVwiLFxuICAgIH0pLFxuICAgIFwicHJpdmFjeS11cmxcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiUHJpdmFjeSBwb2xpY3kgVVJMXCIgfSksXG4gICAgXCJ0ZXJtcy11cmxcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiVGVybXMgb2Ygc2VydmljZSBVUkxcIiB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhcmdzLCBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShFbnRlcnByaXNlVmVyaWZpY2F0aW9uU3VibWl0KTtcbiAgICBhd2FpdCBzdWJtaXRWZXJpZmljYXRpb24oYXJncy53b3Jrc3BhY2VJZCwgZmxhZ3MsIFwiU3VibWl0dGluZyB2ZXJpZmljYXRpb24uLi5cIik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN1Ym1pdFZlcmlmaWNhdGlvbihcbiAgd29ya3NwYWNlSWQ6IHN0cmluZyxcbiAgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBzcGlubmVyVGV4dDogc3RyaW5nLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBheWxvYWQgPSBidWlsZFBheWxvYWQoZmxhZ3MpO1xuXG4gIGlmIChPYmplY3Qua2V5cyhwYXlsb2FkKS5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIk5vIGZpZWxkcyBwcm92aWRlZC4gUGFzcyAtLWRhdGEgPGZpbGU+IG9yIG9uZSBvciBtb3JlIC0tKiBmaWVsZCBmbGFncy5cIixcbiAgICApO1xuICB9XG5cbiAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoc3Bpbm5lclRleHQpO1xuICBzcGluLnN0YXJ0KCk7XG5cbiAgbGV0IHJlc3BvbnNlOiBTdWJtaXRSZXNwb25zZTtcbiAgdHJ5IHtcbiAgICByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PFN1Ym1pdFJlc3BvbnNlPihcbiAgICAgIGAvYXBpL3YxL2VudGVycHJpc2Uvd29ya3NwYWNlcy8ke2VuY29kZVVSSUNvbXBvbmVudCh3b3Jrc3BhY2VJZCl9L3ZlcmlmaWNhdGlvbi9zdWJtaXRgLFxuICAgICAgcGF5bG9hZCBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHNwaW4uZmFpbChcIlZlcmlmaWNhdGlvbiBzdWJtaXQgZmFpbGVkXCIpO1xuICAgIHRocm93IGVycjtcbiAgfVxuXG4gIHNwaW4uc3VjY2VlZChcIlZlcmlmaWNhdGlvbiBzdWJtaXR0ZWRcIik7XG5cbiAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgIGpzb24ocmVzcG9uc2UpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHN0YXR1cyA9XG4gICAgcmVzcG9uc2Uuc3RhdHVzIHx8XG4gICAgcmVzcG9uc2UudmVyaWZpY2F0aW9uPy5zdGF0dXMgfHxcbiAgICBcInN1Ym1pdHRlZFwiO1xuICBjb25zdCBpZCA9IHJlc3BvbnNlLmlkIHx8IHJlc3BvbnNlLnZlcmlmaWNhdGlvbj8uaWQ7XG5cbiAgY29uc3QgZGV0YWlsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBXb3Jrc3BhY2U6IHdvcmtzcGFjZUlkLFxuICAgIFN0YXR1czogY29sb3JzLnByaW1hcnkoc3RhdHVzKSxcbiAgfTtcbiAgaWYgKGlkKSBkZXRhaWxzW1wiVmVyaWZpY2F0aW9uIElEXCJdID0gaWQ7XG5cbiAgc3VjY2VzcyhcIlZlcmlmaWNhdGlvbiBzdWJtaXR0ZWRcIiwgZGV0YWlscyk7XG5cbiAgaWYgKE9iamVjdC5rZXlzKHJlc3BvbnNlKS5sZW5ndGggPiAwICYmICFpZCkge1xuICAgIGtleVZhbHVlKHJlc3BvbnNlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQYXlsb2FkKFxuICBmbGFnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4pOiBWZXJpZmljYXRpb25TdWJtaXRJbnB1dCB7XG4gIGxldCBwYXlsb2FkOiBWZXJpZmljYXRpb25TdWJtaXRJbnB1dCA9IHt9O1xuXG4gIGNvbnN0IGRhdGFGbGFnID0gZmxhZ3MuZGF0YSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGlmIChkYXRhRmxhZykge1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhkYXRhRmxhZykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmlsZSBub3QgZm91bmQ6ICR7ZGF0YUZsYWd9YCk7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoZGF0YUZsYWcsIFwidXRmLThcIik7XG4gICAgdHJ5IHtcbiAgICAgIHBheWxvYWQgPSBKU09OLnBhcnNlKGNvbnRlbnQpIGFzIFZlcmlmaWNhdGlvblN1Ym1pdElucHV0O1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCBKU09OIGluICR7ZGF0YUZsYWd9LiBFeHBlY3RlZCBhIHZlcmlmaWNhdGlvbiBwYXlsb2FkIG9iamVjdC5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBzZXRJZiA9IDxLIGV4dGVuZHMga2V5b2YgVmVyaWZpY2F0aW9uU3VibWl0SW5wdXQ+KFxuICAgIGtleTogSyxcbiAgICB2YWx1ZTogVmVyaWZpY2F0aW9uU3VibWl0SW5wdXRbS10gfCB1bmRlZmluZWQsXG4gICk6IHZvaWQgPT4ge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXlsb2FkW2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH07XG5cbiAgc2V0SWYoXCJidXNpbmVzc05hbWVcIiwgZmxhZ3NbXCJidXNpbmVzcy1uYW1lXCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gIHNldElmKFwiZG9pbmdCdXNpbmVzc0FzXCIsIGZsYWdzW1wiZG9pbmctYnVzaW5lc3MtYXNcIl0gYXMgc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgc2V0SWYoXCJ3ZWJzaXRlXCIsIGZsYWdzLndlYnNpdGUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgc2V0SWYoXCJlbnRpdHlUeXBlXCIsIGZsYWdzW1wiZW50aXR5LXR5cGVcIl0gYXMgc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgc2V0SWYoXCJicm5cIiwgZmxhZ3MuYnJuIGFzIHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gIHNldElmKFwiYnJuVHlwZVwiLCBmbGFnc1tcImJybi10eXBlXCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gIHNldElmKFwiYnJuQ291bnRyeVwiLCBmbGFnc1tcImJybi1jb3VudHJ5XCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gIHNldElmKFwidXNlQ2FzZVwiLCBmbGFnc1tcInVzZS1jYXNlXCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gIHNldElmKFwidXNlQ2FzZVN1bW1hcnlcIiwgZmxhZ3NbXCJ1c2UtY2FzZS1zdW1tYXJ5XCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gIHNldElmKFwic2FtcGxlTWVzc2FnZXNcIiwgZmxhZ3NbXCJzYW1wbGUtbWVzc2FnZXNcIl0gYXMgc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgc2V0SWYoXCJvcHRJbldvcmtmbG93XCIsIGZsYWdzW1wib3B0LWluLXdvcmtmbG93XCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gIHNldElmKFwib3B0SW5JbWFnZVVybHNcIiwgZmxhZ3NbXCJvcHQtaW4taW1hZ2UtdXJsc1wiXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpO1xuICBzZXRJZihcIm1vbnRobHlWb2x1bWVcIiwgZmxhZ3NbXCJtb250aGx5LXZvbHVtZVwiXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpO1xuICBzZXRJZihcbiAgICBcImFkZGl0aW9uYWxJbmZvcm1hdGlvblwiLFxuICAgIGZsYWdzW1wiYWRkaXRpb25hbC1pbmZvcm1hdGlvblwiXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICk7XG4gIHNldElmKFwiaXN2UmVzZWxsZXJcIiwgZmxhZ3NbXCJpc3YtcmVzZWxsZXJcIl0gYXMgc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgc2V0SWYoXCJwcml2YWN5VXJsXCIsIGZsYWdzW1wicHJpdmFjeS11cmxcIl0gYXMgc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgc2V0SWYoXCJ0ZXJtc1VybFwiLCBmbGFnc1tcInRlcm1zLXVybFwiXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpO1xuXG4gIGlmIChmbGFnc1tcImFnZS1nYXRlZC1jb250ZW50XCJdICE9PSB1bmRlZmluZWQpIHtcbiAgICBwYXlsb2FkLmFnZUdhdGVkQ29udGVudCA9IGZsYWdzW1wiYWdlLWdhdGVkLWNvbnRlbnRcIl0gYXMgYm9vbGVhbjtcbiAgfVxuXG4gIGNvbnN0IGFkZHJlc3MgPSB7XG4gICAgLi4uKHBheWxvYWQuYWRkcmVzcyB8fCB7fSksXG4gICAgLi4uc3RyaXBVbmRlZmluZWQoe1xuICAgICAgc3RyZWV0OiBmbGFnc1tcImFkZHJlc3Mtc3RyZWV0XCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgIGNpdHk6IGZsYWdzW1wiYWRkcmVzcy1jaXR5XCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgIHN0YXRlOiBmbGFnc1tcImFkZHJlc3Mtc3RhdGVcIl0gYXMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgemlwOiBmbGFnc1tcImFkZHJlc3MtemlwXCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgIGNvdW50cnk6IGZsYWdzW1wiYWRkcmVzcy1jb3VudHJ5XCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICB9KSxcbiAgfTtcbiAgaWYgKE9iamVjdC5rZXlzKGFkZHJlc3MpLmxlbmd0aCA+IDApIHtcbiAgICBwYXlsb2FkLmFkZHJlc3MgPSBhZGRyZXNzO1xuICB9XG5cbiAgY29uc3QgY29udGFjdCA9IHtcbiAgICAuLi4ocGF5bG9hZC5jb250YWN0IHx8IHt9KSxcbiAgICAuLi5zdHJpcFVuZGVmaW5lZCh7XG4gICAgICBmaXJzdE5hbWU6IGZsYWdzW1wiY29udGFjdC1maXJzdC1uYW1lXCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgIGxhc3ROYW1lOiBmbGFnc1tcImNvbnRhY3QtbGFzdC1uYW1lXCJdIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgIGVtYWlsOiBmbGFnc1tcImNvbnRhY3QtZW1haWxcIl0gYXMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgcGhvbmU6IGZsYWdzW1wiY29udGFjdC1waG9uZVwiXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgfSksXG4gIH07XG4gIGlmIChPYmplY3Qua2V5cyhjb250YWN0KS5sZW5ndGggPiAwKSB7XG4gICAgcGF5bG9hZC5jb250YWN0ID0gY29udGFjdDtcbiAgfVxuXG4gIHJldHVybiBwYXlsb2FkO1xufVxuXG5mdW5jdGlvbiBzdHJpcFVuZGVmaW5lZDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KG9iajogVCk6IFBhcnRpYWw8VD4ge1xuICBjb25zdCBvdXQ6IFBhcnRpYWw8VD4gPSB7fTtcbiAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkge1xuICAgIGlmICh2ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIChvdXQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tdID0gdjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiJdfQ==