@sendly/cli 3.37.1 → 3.39.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 (86) hide show
  1. package/README.md +268 -0
  2. package/dist/commands/business-upgrade/resubmit.js +3 -3
  3. package/dist/commands/business-upgrade/start.js +3 -3
  4. package/dist/commands/config/list.js +14 -2
  5. package/dist/commands/config/set.js +16 -3
  6. package/dist/commands/countries.js +2 -2
  7. package/dist/commands/credits/index.d.ts +1 -0
  8. package/dist/commands/credits/index.js +4 -0
  9. package/dist/commands/doctor.d.ts +12 -0
  10. package/dist/commands/doctor.js +51 -8
  11. package/dist/commands/enterprise/upload-verification-document.js +3 -3
  12. package/dist/commands/enterprise/verification/resubmit.js +2 -2
  13. package/dist/commands/enterprise/verification/submit.js +2 -2
  14. package/dist/commands/events/listen.js +3 -3
  15. package/dist/commands/numbers/buy.js +19 -4
  16. package/dist/commands/rcs/agents/create.d.ts +44 -0
  17. package/dist/commands/rcs/agents/create.js +71 -0
  18. package/dist/commands/rcs/agents/devices/set.d.ts +16 -0
  19. package/dist/commands/rcs/agents/devices/set.js +77 -0
  20. package/dist/commands/rcs/agents/get.d.ts +13 -0
  21. package/dist/commands/rcs/agents/get.js +51 -0
  22. package/dist/commands/rcs/agents/request-launch.d.ts +16 -0
  23. package/dist/commands/rcs/agents/request-launch.js +71 -0
  24. package/dist/commands/rcs/agents/submit.d.ts +14 -0
  25. package/dist/commands/rcs/agents/submit.js +56 -0
  26. package/dist/commands/rcs/agents/update.d.ts +48 -0
  27. package/dist/commands/rcs/agents/update.js +81 -0
  28. package/dist/commands/rcs/agents.d.ts +10 -0
  29. package/dist/commands/rcs/agents.js +97 -0
  30. package/dist/commands/rcs/brands/create.d.ts +30 -0
  31. package/dist/commands/rcs/brands/create.js +55 -0
  32. package/dist/commands/rcs/brands/update.d.ts +33 -0
  33. package/dist/commands/rcs/brands/update.js +62 -0
  34. package/dist/commands/rcs/capability.d.ts +12 -0
  35. package/dist/commands/rcs/capability.js +85 -0
  36. package/dist/commands/rcs/dossier.d.ts +10 -0
  37. package/dist/commands/rcs/dossier.js +73 -0
  38. package/dist/commands/rcs/registration.d.ts +10 -0
  39. package/dist/commands/rcs/registration.js +59 -0
  40. package/dist/commands/rcs/send.d.ts +21 -0
  41. package/dist/commands/rcs/send.js +240 -0
  42. package/dist/commands/send.d.ts +1 -0
  43. package/dist/commands/send.js +5 -2
  44. package/dist/commands/sms/batch.d.ts +1 -0
  45. package/dist/commands/sms/batch.js +11 -1
  46. package/dist/commands/sms/group.d.ts +1 -0
  47. package/dist/commands/sms/group.js +5 -2
  48. package/dist/commands/sms/schedule.d.ts +1 -0
  49. package/dist/commands/sms/schedule.js +5 -2
  50. package/dist/commands/sms/send.d.ts +1 -0
  51. package/dist/commands/sms/send.js +5 -2
  52. package/dist/commands/whatsapp/connect.d.ts +17 -0
  53. package/dist/commands/whatsapp/connect.js +166 -0
  54. package/dist/commands/whatsapp/profile/get.d.ts +13 -0
  55. package/dist/commands/whatsapp/profile/get.js +67 -0
  56. package/dist/commands/whatsapp/profile/update.d.ts +20 -0
  57. package/dist/commands/whatsapp/profile/update.js +109 -0
  58. package/dist/commands/whatsapp/send.d.ts +17 -0
  59. package/dist/commands/whatsapp/send.js +151 -0
  60. package/dist/commands/whatsapp/senders.d.ts +10 -0
  61. package/dist/commands/whatsapp/senders.js +74 -0
  62. package/dist/commands/whatsapp/status.d.ts +13 -0
  63. package/dist/commands/whatsapp/status.js +92 -0
  64. package/dist/commands/whatsapp/templates/create.d.ts +19 -0
  65. package/dist/commands/whatsapp/templates/create.js +205 -0
  66. package/dist/commands/whatsapp/templates/delete.d.ts +14 -0
  67. package/dist/commands/whatsapp/templates/delete.js +69 -0
  68. package/dist/commands/whatsapp/templates/list.d.ts +10 -0
  69. package/dist/commands/whatsapp/templates/list.js +77 -0
  70. package/dist/commands/whatsapp/templates/update.d.ts +18 -0
  71. package/dist/commands/whatsapp/templates/update.js +160 -0
  72. package/dist/commands/whoami.js +32 -6
  73. package/dist/hooks/command-not-found.js +46 -61
  74. package/dist/lib/api-client.d.ts +20 -3
  75. package/dist/lib/api-client.js +96 -17
  76. package/dist/lib/auth.js +10 -6
  77. package/dist/lib/base-command.js +13 -2
  78. package/dist/lib/config.d.ts +50 -1
  79. package/dist/lib/config.js +144 -7
  80. package/dist/lib/help.d.ts +10 -0
  81. package/dist/lib/help.js +23 -0
  82. package/dist/lib/onboarding.js +3 -3
  83. package/dist/lib/rcs-registration.d.ts +231 -0
  84. package/dist/lib/rcs-registration.js +734 -0
  85. package/oclif.manifest.json +2603 -350
  86. package/package.json +17 -1
@@ -0,0 +1,14 @@
1
+ import { AuthenticatedCommand } from "../../../lib/base-command.js";
2
+ export default class RcsAgentsSubmit extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ id: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ "idempotency-key": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
11
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,56 @@
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, success, colors, spinner, isJsonMode, keyValue, } from "../../../lib/output.js";
5
+ import { formatStage, idempotencyKeyFlag, nextStepFor, printNextSteps, reportRcsError, } from "../../../lib/rcs-registration.js";
6
+ export default class RcsAgentsSubmit extends AuthenticatedCommand {
7
+ static description = "Submit the brand and agent for review (Sendly checks them, then sends them on to the carrier network)";
8
+ static examples = [
9
+ "<%= config.bin %> rcs agents submit 3f6a1c9e-0000-0000-0000-000000000000",
10
+ "<%= config.bin %> rcs agents submit 3f6a1c9e-0000-0000-0000-000000000000 --idempotency-key acme-rcs-submit-1 --json",
11
+ ];
12
+ static args = {
13
+ id: Args.string({
14
+ description: "Agent ID",
15
+ required: true,
16
+ }),
17
+ };
18
+ static flags = {
19
+ ...AuthenticatedCommand.baseFlags,
20
+ "idempotency-key": idempotencyKeyFlag,
21
+ };
22
+ async run() {
23
+ const { args, flags } = await this.parse(RcsAgentsSubmit);
24
+ const submitSpinner = spinner("Submitting for review...");
25
+ if (!isJsonMode()) {
26
+ submitSpinner.start();
27
+ }
28
+ let response;
29
+ try {
30
+ response = await apiClient.post(`/api/v1/rcs/agents/${encodeURIComponent(args.id)}/submit`, {}, true, { idempotencyKey: flags["idempotency-key"] });
31
+ submitSpinner.stop();
32
+ }
33
+ catch (err) {
34
+ submitSpinner.stop();
35
+ if (reportRcsError(err))
36
+ this.exit(1);
37
+ throw err;
38
+ }
39
+ if (isJsonMode()) {
40
+ json(response);
41
+ return;
42
+ }
43
+ const agent = response.agent;
44
+ const stage = response.stage ?? agent.customerStage;
45
+ success(`Submitted for review: ${agent.displayName || agent.id}`);
46
+ console.log();
47
+ keyValue([
48
+ ["Agent", agent.id],
49
+ ["Brand", agent.brandId ?? colors.dim("—")],
50
+ ["Stage", formatStage(stage)],
51
+ ["Review", agent.reviewStatus],
52
+ ]);
53
+ printNextSteps(nextStepFor(stage, { brandId: agent.brandId, agentId: agent.id }));
54
+ }
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Jjcy9hZ2VudHMvc3VibWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxJQUFJLEVBQ0osT0FBTyxFQUNQLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLFFBQVEsR0FDVCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxjQUFjLEVBQ2QsY0FBYyxHQUdmLE1BQU0sa0NBQWtDLENBQUM7QUFPMUMsTUFBTSxDQUFDLE9BQU8sT0FBTyxlQUFnQixTQUFRLG9CQUFvQjtJQUMvRCxNQUFNLENBQUMsV0FBVyxHQUNoQix1R0FBdUcsQ0FBQztJQUUxRyxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDBFQUEwRTtRQUMxRSxxSEFBcUg7S0FDdEgsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNkLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLGlCQUFpQixFQUFFLGtCQUFrQjtLQUN0QyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUxRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNsQixhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksUUFBNkIsQ0FBQztRQUNsQyxJQUFJLENBQUM7WUFDSCxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUM3QixzQkFBc0Isa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQzFELEVBQUUsRUFDRixJQUFJLEVBQ0osRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FDN0MsQ0FBQztZQUNGLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUNwRCxPQUFPLENBQUMseUJBQXlCLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsUUFBUSxDQUFDO1lBQ1AsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUM7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsY0FBYyxDQUNaLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ2xFLENBQUM7SUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBqc29uLFxuICBzdWNjZXNzLFxuICBjb2xvcnMsXG4gIHNwaW5uZXIsXG4gIGlzSnNvbk1vZGUsXG4gIGtleVZhbHVlLFxufSBmcm9tIFwiLi4vLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IHtcbiAgZm9ybWF0U3RhZ2UsXG4gIGlkZW1wb3RlbmN5S2V5RmxhZyxcbiAgbmV4dFN0ZXBGb3IsXG4gIHByaW50TmV4dFN0ZXBzLFxuICByZXBvcnRSY3NFcnJvcixcbiAgdHlwZSBDdXN0b21lclN0YWdlLFxuICB0eXBlIFB1YmxpY1Jjc0FnZW50LFxufSBmcm9tIFwiLi4vLi4vLi4vbGliL3Jjcy1yZWdpc3RyYXRpb24uanNcIjtcblxuaW50ZXJmYWNlIFN1Ym1pdEFnZW50UmVzcG9uc2Uge1xuICBhZ2VudDogUHVibGljUmNzQWdlbnQ7XG4gIHN0YWdlOiBDdXN0b21lclN0YWdlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSY3NBZ2VudHNTdWJtaXQgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJTdWJtaXQgdGhlIGJyYW5kIGFuZCBhZ2VudCBmb3IgcmV2aWV3IChTZW5kbHkgY2hlY2tzIHRoZW0sIHRoZW4gc2VuZHMgdGhlbSBvbiB0byB0aGUgY2FycmllciBuZXR3b3JrKVwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHJjcyBhZ2VudHMgc3VibWl0IDNmNmExYzllLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gcmNzIGFnZW50cyBzdWJtaXQgM2Y2YTFjOWUtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIC0taWRlbXBvdGVuY3kta2V5IGFjbWUtcmNzLXN1Ym1pdC0xIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIGlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJBZ2VudCBJRFwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBcImlkZW1wb3RlbmN5LWtleVwiOiBpZGVtcG90ZW5jeUtleUZsYWcsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncywgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoUmNzQWdlbnRzU3VibWl0KTtcblxuICAgIGNvbnN0IHN1Ym1pdFNwaW5uZXIgPSBzcGlubmVyKFwiU3VibWl0dGluZyBmb3IgcmV2aWV3Li4uXCIpO1xuICAgIGlmICghaXNKc29uTW9kZSgpKSB7XG4gICAgICBzdWJtaXRTcGlubmVyLnN0YXJ0KCk7XG4gICAgfVxuXG4gICAgbGV0IHJlc3BvbnNlOiBTdWJtaXRBZ2VudFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PFN1Ym1pdEFnZW50UmVzcG9uc2U+KFxuICAgICAgICBgL2FwaS92MS9yY3MvYWdlbnRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3MuaWQpfS9zdWJtaXRgLFxuICAgICAgICB7fSxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgeyBpZGVtcG90ZW5jeUtleTogZmxhZ3NbXCJpZGVtcG90ZW5jeS1rZXlcIl0gfSxcbiAgICAgICk7XG4gICAgICBzdWJtaXRTcGlubmVyLnN0b3AoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHN1Ym1pdFNwaW5uZXIuc3RvcCgpO1xuICAgICAgaWYgKHJlcG9ydFJjc0Vycm9yKGVycikpIHRoaXMuZXhpdCgxKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhZ2VudCA9IHJlc3BvbnNlLmFnZW50O1xuICAgIGNvbnN0IHN0YWdlID0gcmVzcG9uc2Uuc3RhZ2UgPz8gYWdlbnQuY3VzdG9tZXJTdGFnZTtcbiAgICBzdWNjZXNzKGBTdWJtaXR0ZWQgZm9yIHJldmlldzogJHthZ2VudC5kaXNwbGF5TmFtZSB8fCBhZ2VudC5pZH1gKTtcbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGtleVZhbHVlKFtcbiAgICAgIFtcIkFnZW50XCIsIGFnZW50LmlkXSxcbiAgICAgIFtcIkJyYW5kXCIsIGFnZW50LmJyYW5kSWQgPz8gY29sb3JzLmRpbShcIuKAlFwiKV0sXG4gICAgICBbXCJTdGFnZVwiLCBmb3JtYXRTdGFnZShzdGFnZSldLFxuICAgICAgW1wiUmV2aWV3XCIsIGFnZW50LnJldmlld1N0YXR1c10sXG4gICAgXSk7XG4gICAgcHJpbnROZXh0U3RlcHMoXG4gICAgICBuZXh0U3RlcEZvcihzdGFnZSwgeyBicmFuZElkOiBhZ2VudC5icmFuZElkLCBhZ2VudElkOiBhZ2VudC5pZCB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { AuthenticatedCommand } from "../../../lib/base-command.js";
2
+ export default class RcsAgentsUpdate extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ id: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ "clear-campaign": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ "clear-testing": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
11
+ "from-json": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ "idempotency-key": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
+ "test-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
+ "test-message-id": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ "testing-info": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
16
+ "company-overview": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
17
+ "agent-overview": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
18
+ "campaign-info": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
19
+ interaction: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
20
+ "message-example": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
21
+ "opt-in-method": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
22
+ "call-to-action": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
23
+ "call-to-action-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
24
+ "call-to-action-media-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
25
+ "double-opt-in": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
26
+ "double-opt-in-message": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
27
+ "opt-in-message": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
28
+ "help-response": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
29
+ "opt-out-response": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
30
+ "display-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
31
+ "use-case": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
32
+ description: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
33
+ "logo-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
34
+ "hero-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
35
+ "brand-color": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
36
+ "privacy-policy-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
37
+ "terms-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
38
+ phone: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
39
+ "phone-label": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
40
+ website: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
41
+ "website-label": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
42
+ email: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
43
+ "email-label": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
44
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
45
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
46
+ };
47
+ run(): Promise<void>;
48
+ }
@@ -0,0 +1,81 @@
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 { json, success, error, spinner, isJsonMode, } from "../../../lib/output.js";
5
+ import { AGENT_BASICS_FLAGS, AGENT_CAMPAIGN_FLAGS, AGENT_TESTING_FLAGS, buildAgentBody, idempotencyKeyFlag, nextStepFor, printAgent, printNextSteps, reportRcsError, } from "../../../lib/rcs-registration.js";
6
+ export default class RcsAgentsUpdate extends AuthenticatedCommand {
7
+ static description = "Update a drafted RCS agent — basics, campaign details for launch, or testing notes (only the flags you pass change; pass an empty value to clear an optional field)";
8
+ static examples = [
9
+ '<%= config.bin %> rcs agents update 3f6a1c9e-0000-0000-0000-000000000000 --description "Order updates from Acme" --brand-color "#1E90FF"',
10
+ '<%= config.bin %> rcs agents update 3f6a1c9e-0000-0000-0000-000000000000 --company-overview "Acme sells widgets online" --agent-overview "Order and delivery updates" --interaction TRANSACTIONAL_UPDATES --message-example "Your Acme order #4821 has shipped. Reply STOP to opt out." --message-example "Your order is out for delivery today." --message-example "Delivered! Reply HELP for help." --opt-in-method "WEBSITE=Checkbox at checkout" --call-to-action "Get order updates by text" --call-to-action-url https://acme.com/checkout --call-to-action-media-url https://acme.com/optin.png --no-double-opt-in --opt-in-message "Welcome to Acme updates. Reply STOP to opt out." --help-response "Acme support: help@acme.com" --opt-out-response "You are unsubscribed from Acme updates."',
11
+ "<%= config.bin %> rcs agents update 3f6a1c9e-0000-0000-0000-000000000000 --from-json agent.json --json",
12
+ ];
13
+ static args = {
14
+ id: Args.string({
15
+ description: "Agent ID",
16
+ required: true,
17
+ }),
18
+ };
19
+ static flags = {
20
+ ...AuthenticatedCommand.baseFlags,
21
+ ...AGENT_BASICS_FLAGS,
22
+ ...AGENT_CAMPAIGN_FLAGS,
23
+ ...AGENT_TESTING_FLAGS,
24
+ "clear-campaign": Flags.boolean({
25
+ description: "Remove the campaign section entirely",
26
+ default: false,
27
+ }),
28
+ "clear-testing": Flags.boolean({
29
+ description: "Remove the testing section entirely",
30
+ default: false,
31
+ }),
32
+ "from-json": Flags.string({
33
+ description: "Path to a JSON file with the fields to change ({ basics, campaign, testing }, or the output of `rcs agents get --json`); flags override fields in the file",
34
+ }),
35
+ "idempotency-key": idempotencyKeyFlag,
36
+ };
37
+ async run() {
38
+ const { args, flags } = await this.parse(RcsAgentsUpdate);
39
+ const built = buildAgentBody(flags, { clearEmpty: true });
40
+ if (typeof built === "string") {
41
+ error(built);
42
+ this.exit(1);
43
+ }
44
+ const body = built;
45
+ delete body.brandId;
46
+ if (Object.keys(body).length === 0) {
47
+ error("Nothing to update", {
48
+ hint: "Pass at least one field flag or --from-json <file>; see --help for the list",
49
+ });
50
+ this.exit(1);
51
+ }
52
+ const saveSpinner = spinner("Updating agent...");
53
+ if (!isJsonMode()) {
54
+ saveSpinner.start();
55
+ }
56
+ let response;
57
+ try {
58
+ response = await apiClient.patch(`/api/v1/rcs/agents/${encodeURIComponent(args.id)}`, body, true, { idempotencyKey: flags["idempotency-key"] });
59
+ saveSpinner.stop();
60
+ }
61
+ catch (err) {
62
+ saveSpinner.stop();
63
+ if (reportRcsError(err))
64
+ this.exit(1);
65
+ throw err;
66
+ }
67
+ if (isJsonMode()) {
68
+ json(response);
69
+ return;
70
+ }
71
+ const agent = response.agent;
72
+ success(`Agent updated: ${agent.id}`);
73
+ console.log();
74
+ printAgent(agent);
75
+ printNextSteps(nextStepFor(agent.customerStage, {
76
+ brandId: agent.brandId,
77
+ agentId: agent.id,
78
+ }));
79
+ }
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Jjcy9hZ2VudHMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsSUFBSSxFQUNKLE9BQU8sRUFDUCxLQUFLLEVBQ0wsT0FBTyxFQUNQLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxVQUFVLEVBQ1YsY0FBYyxFQUNkLGNBQWMsR0FFZixNQUFNLGtDQUFrQyxDQUFDO0FBTTFDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sZUFBZ0IsU0FBUSxvQkFBb0I7SUFDL0QsTUFBTSxDQUFDLFdBQVcsR0FDaEIscUtBQXFLLENBQUM7SUFFeEssTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiwwSUFBMEk7UUFDMUkseXdCQUF5d0I7UUFDendCLHdHQUF3RztLQUN6RyxDQUFDO0lBRUYsTUFBTSxDQUFDLElBQUksR0FBRztRQUNaLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2QsV0FBVyxFQUFFLFVBQVU7WUFDdkIsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsR0FBRyxrQkFBa0I7UUFDckIsR0FBRyxvQkFBb0I7UUFDdkIsR0FBRyxtQkFBbUI7UUFDdEIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUM5QixXQUFXLEVBQUUsc0NBQXNDO1lBQ25ELE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQztRQUNGLGVBQWUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQzdCLFdBQVcsRUFBRSxxQ0FBcUM7WUFDbEQsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDO1FBQ0YsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDeEIsV0FBVyxFQUNULDRKQUE0SjtTQUMvSixDQUFDO1FBQ0YsaUJBQWlCLEVBQUUsa0JBQWtCO0tBQ3RDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTFELE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsS0FBZ0MsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDcEIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxLQUFLLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ3pCLElBQUksRUFBRSw2RUFBNkU7YUFDcEYsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNsQixXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksUUFBNkIsQ0FBQztRQUNsQyxJQUFJLENBQUM7WUFDSCxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxDQUM5QixzQkFBc0Isa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQ25ELElBQUksRUFDSixJQUFJLEVBQ0osRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FDN0MsQ0FBQztZQUNGLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxrQkFBa0IsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLGNBQWMsQ0FDWixXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUMvQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFO1NBQ2xCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MsIEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIHN1Y2Nlc3MsXG4gIGVycm9yLFxuICBzcGlubmVyLFxuICBpc0pzb25Nb2RlLFxufSBmcm9tIFwiLi4vLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IHtcbiAgQUdFTlRfQkFTSUNTX0ZMQUdTLFxuICBBR0VOVF9DQU1QQUlHTl9GTEFHUyxcbiAgQUdFTlRfVEVTVElOR19GTEFHUyxcbiAgYnVpbGRBZ2VudEJvZHksXG4gIGlkZW1wb3RlbmN5S2V5RmxhZyxcbiAgbmV4dFN0ZXBGb3IsXG4gIHByaW50QWdlbnQsXG4gIHByaW50TmV4dFN0ZXBzLFxuICByZXBvcnRSY3NFcnJvcixcbiAgdHlwZSBQdWJsaWNSY3NBZ2VudCxcbn0gZnJvbSBcIi4uLy4uLy4uL2xpYi9yY3MtcmVnaXN0cmF0aW9uLmpzXCI7XG5cbmludGVyZmFjZSBVcGRhdGVBZ2VudFJlc3BvbnNlIHtcbiAgYWdlbnQ6IFB1YmxpY1Jjc0FnZW50O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSY3NBZ2VudHNVcGRhdGUgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJVcGRhdGUgYSBkcmFmdGVkIFJDUyBhZ2VudCDigJQgYmFzaWNzLCBjYW1wYWlnbiBkZXRhaWxzIGZvciBsYXVuY2gsIG9yIHRlc3Rpbmcgbm90ZXMgKG9ubHkgdGhlIGZsYWdzIHlvdSBwYXNzIGNoYW5nZTsgcGFzcyBhbiBlbXB0eSB2YWx1ZSB0byBjbGVhciBhbiBvcHRpb25hbCBmaWVsZClcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgJzwlPSBjb25maWcuYmluICU+IHJjcyBhZ2VudHMgdXBkYXRlIDNmNmExYzllLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCAtLWRlc2NyaXB0aW9uIFwiT3JkZXIgdXBkYXRlcyBmcm9tIEFjbWVcIiAtLWJyYW5kLWNvbG9yIFwiIzFFOTBGRlwiJyxcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gcmNzIGFnZW50cyB1cGRhdGUgM2Y2YTFjOWUtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIC0tY29tcGFueS1vdmVydmlldyBcIkFjbWUgc2VsbHMgd2lkZ2V0cyBvbmxpbmVcIiAtLWFnZW50LW92ZXJ2aWV3IFwiT3JkZXIgYW5kIGRlbGl2ZXJ5IHVwZGF0ZXNcIiAtLWludGVyYWN0aW9uIFRSQU5TQUNUSU9OQUxfVVBEQVRFUyAtLW1lc3NhZ2UtZXhhbXBsZSBcIllvdXIgQWNtZSBvcmRlciAjNDgyMSBoYXMgc2hpcHBlZC4gUmVwbHkgU1RPUCB0byBvcHQgb3V0LlwiIC0tbWVzc2FnZS1leGFtcGxlIFwiWW91ciBvcmRlciBpcyBvdXQgZm9yIGRlbGl2ZXJ5IHRvZGF5LlwiIC0tbWVzc2FnZS1leGFtcGxlIFwiRGVsaXZlcmVkISBSZXBseSBIRUxQIGZvciBoZWxwLlwiIC0tb3B0LWluLW1ldGhvZCBcIldFQlNJVEU9Q2hlY2tib3ggYXQgY2hlY2tvdXRcIiAtLWNhbGwtdG8tYWN0aW9uIFwiR2V0IG9yZGVyIHVwZGF0ZXMgYnkgdGV4dFwiIC0tY2FsbC10by1hY3Rpb24tdXJsIGh0dHBzOi8vYWNtZS5jb20vY2hlY2tvdXQgLS1jYWxsLXRvLWFjdGlvbi1tZWRpYS11cmwgaHR0cHM6Ly9hY21lLmNvbS9vcHRpbi5wbmcgLS1uby1kb3VibGUtb3B0LWluIC0tb3B0LWluLW1lc3NhZ2UgXCJXZWxjb21lIHRvIEFjbWUgdXBkYXRlcy4gUmVwbHkgU1RPUCB0byBvcHQgb3V0LlwiIC0taGVscC1yZXNwb25zZSBcIkFjbWUgc3VwcG9ydDogaGVscEBhY21lLmNvbVwiIC0tb3B0LW91dC1yZXNwb25zZSBcIllvdSBhcmUgdW5zdWJzY3JpYmVkIGZyb20gQWNtZSB1cGRhdGVzLlwiJyxcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHJjcyBhZ2VudHMgdXBkYXRlIDNmNmExYzllLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCAtLWZyb20tanNvbiBhZ2VudC5qc29uIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIGlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJBZ2VudCBJRFwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICAuLi5BR0VOVF9CQVNJQ1NfRkxBR1MsXG4gICAgLi4uQUdFTlRfQ0FNUEFJR05fRkxBR1MsXG4gICAgLi4uQUdFTlRfVEVTVElOR19GTEFHUyxcbiAgICBcImNsZWFyLWNhbXBhaWduXCI6IEZsYWdzLmJvb2xlYW4oe1xuICAgICAgZGVzY3JpcHRpb246IFwiUmVtb3ZlIHRoZSBjYW1wYWlnbiBzZWN0aW9uIGVudGlyZWx5XCIsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9KSxcbiAgICBcImNsZWFyLXRlc3RpbmdcIjogRmxhZ3MuYm9vbGVhbih7XG4gICAgICBkZXNjcmlwdGlvbjogXCJSZW1vdmUgdGhlIHRlc3Rpbmcgc2VjdGlvbiBlbnRpcmVseVwiLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSksXG4gICAgXCJmcm9tLWpzb25cIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlBhdGggdG8gYSBKU09OIGZpbGUgd2l0aCB0aGUgZmllbGRzIHRvIGNoYW5nZSAoeyBiYXNpY3MsIGNhbXBhaWduLCB0ZXN0aW5nIH0sIG9yIHRoZSBvdXRwdXQgb2YgYHJjcyBhZ2VudHMgZ2V0IC0tanNvbmApOyBmbGFncyBvdmVycmlkZSBmaWVsZHMgaW4gdGhlIGZpbGVcIixcbiAgICB9KSxcbiAgICBcImlkZW1wb3RlbmN5LWtleVwiOiBpZGVtcG90ZW5jeUtleUZsYWcsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncywgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoUmNzQWdlbnRzVXBkYXRlKTtcblxuICAgIGNvbnN0IGJ1aWx0ID0gYnVpbGRBZ2VudEJvZHkoZmxhZ3MsIHsgY2xlYXJFbXB0eTogdHJ1ZSB9KTtcbiAgICBpZiAodHlwZW9mIGJ1aWx0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBlcnJvcihidWlsdCk7XG4gICAgICB0aGlzLmV4aXQoMSk7XG4gICAgfVxuICAgIGNvbnN0IGJvZHkgPSBidWlsdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBkZWxldGUgYm9keS5icmFuZElkO1xuICAgIGlmIChPYmplY3Qua2V5cyhib2R5KS5sZW5ndGggPT09IDApIHtcbiAgICAgIGVycm9yKFwiTm90aGluZyB0byB1cGRhdGVcIiwge1xuICAgICAgICBoaW50OiBcIlBhc3MgYXQgbGVhc3Qgb25lIGZpZWxkIGZsYWcgb3IgLS1mcm9tLWpzb24gPGZpbGU+OyBzZWUgLS1oZWxwIGZvciB0aGUgbGlzdFwiLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2F2ZVNwaW5uZXIgPSBzcGlubmVyKFwiVXBkYXRpbmcgYWdlbnQuLi5cIik7XG4gICAgaWYgKCFpc0pzb25Nb2RlKCkpIHtcbiAgICAgIHNhdmVTcGlubmVyLnN0YXJ0KCk7XG4gICAgfVxuXG4gICAgbGV0IHJlc3BvbnNlOiBVcGRhdGVBZ2VudFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wYXRjaDxVcGRhdGVBZ2VudFJlc3BvbnNlPihcbiAgICAgICAgYC9hcGkvdjEvcmNzL2FnZW50cy8ke2VuY29kZVVSSUNvbXBvbmVudChhcmdzLmlkKX1gLFxuICAgICAgICBib2R5LFxuICAgICAgICB0cnVlLFxuICAgICAgICB7IGlkZW1wb3RlbmN5S2V5OiBmbGFnc1tcImlkZW1wb3RlbmN5LWtleVwiXSB9LFxuICAgICAgKTtcbiAgICAgIHNhdmVTcGlubmVyLnN0b3AoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNhdmVTcGlubmVyLnN0b3AoKTtcbiAgICAgIGlmIChyZXBvcnRSY3NFcnJvcihlcnIpKSB0aGlzLmV4aXQoMSk7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYWdlbnQgPSByZXNwb25zZS5hZ2VudDtcbiAgICBzdWNjZXNzKGBBZ2VudCB1cGRhdGVkOiAke2FnZW50LmlkfWApO1xuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgcHJpbnRBZ2VudChhZ2VudCk7XG4gICAgcHJpbnROZXh0U3RlcHMoXG4gICAgICBuZXh0U3RlcEZvcihhZ2VudC5jdXN0b21lclN0YWdlLCB7XG4gICAgICAgIGJyYW5kSWQ6IGFnZW50LmJyYW5kSWQsXG4gICAgICAgIGFnZW50SWQ6IGFnZW50LmlkLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,10 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class RcsAgents extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
7
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
8
+ };
9
+ run(): Promise<void>;
10
+ }
@@ -0,0 +1,97 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ import { apiClient, NotFoundError } from "../../lib/api-client.js";
3
+ import { json, info, error, table, colors, spinner, isJsonMode, formatRelativeTime, } from "../../lib/output.js";
4
+ import { formatStage } from "../../lib/rcs-registration.js";
5
+ function formatAgentStatus(status) {
6
+ switch (String(status).toLowerCase()) {
7
+ case "approved":
8
+ return colors.success(status);
9
+ case "rejected":
10
+ case "suspended":
11
+ return colors.error(status);
12
+ case "testing":
13
+ case "pending":
14
+ return colors.warning(status);
15
+ default:
16
+ return status;
17
+ }
18
+ }
19
+ export default class RcsAgents extends AuthenticatedCommand {
20
+ static description = "List the RCS agents on your workspace";
21
+ static examples = [
22
+ "<%= config.bin %> rcs agents",
23
+ "<%= config.bin %> rcs agents --json",
24
+ ];
25
+ static flags = {
26
+ ...AuthenticatedCommand.baseFlags,
27
+ };
28
+ async run() {
29
+ await this.parse(RcsAgents);
30
+ const listSpinner = spinner("Fetching RCS agents...");
31
+ if (!isJsonMode()) {
32
+ listSpinner.start();
33
+ }
34
+ let response;
35
+ try {
36
+ response = await apiClient.get("/api/v1/rcs/agents");
37
+ listSpinner.stop();
38
+ }
39
+ catch (err) {
40
+ listSpinner.stop();
41
+ if (err instanceof NotFoundError) {
42
+ error("RCS isn't available on your workspace yet.", {
43
+ hint: "RCS is rolling out gradually — contact support@sendly.live for early access.",
44
+ });
45
+ this.exit(1);
46
+ }
47
+ throw err;
48
+ }
49
+ if (isJsonMode()) {
50
+ json(response);
51
+ return;
52
+ }
53
+ const agents = response.agents ?? [];
54
+ if (agents.length === 0) {
55
+ info("No RCS agents yet");
56
+ console.log(colors.dim(`Register one: ${colors.code("sendly rcs brands create ...")} then ${colors.code("sendly rcs agents create --brand <brandId> ...")}; track it with ${colors.code("sendly rcs registration")}.`));
57
+ return;
58
+ }
59
+ table(agents, [
60
+ { header: "ID", key: "id", formatter: (v) => colors.code(String(v)) },
61
+ { header: "Name", key: "name" },
62
+ {
63
+ header: "Status",
64
+ key: "status",
65
+ formatter: (v) => formatAgentStatus(String(v)),
66
+ },
67
+ {
68
+ header: "Use case",
69
+ key: "useCase",
70
+ formatter: (v) => (v ? String(v) : colors.dim("—")),
71
+ },
72
+ {
73
+ header: "Sendable",
74
+ key: "sendable",
75
+ formatter: (v) => (v ? colors.success("yes") : colors.dim("no")),
76
+ },
77
+ {
78
+ header: "Stage",
79
+ key: "stage",
80
+ formatter: (v) => (v ? formatStage(String(v)) : colors.dim("—")),
81
+ },
82
+ {
83
+ header: "Created",
84
+ key: "createdAt",
85
+ formatter: (v) => formatRelativeTime(String(v)),
86
+ },
87
+ ]);
88
+ const testing = agents.filter((a) => String(a.status).toLowerCase() === "testing");
89
+ if (testing.length > 0) {
90
+ console.log();
91
+ console.log(colors.dim("Agents in testing can only reach invited test devices — approved agents reach everyone."));
92
+ }
93
+ console.log();
94
+ console.log(colors.dim(`Details and next steps: ${colors.code("sendly rcs agents get <agentId>")} or ${colors.code("sendly rcs registration")}.`));
95
+ }
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Jjcy9hZ2VudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLGtCQUFrQixHQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxXQUFXLEVBQXNCLE1BQU0sK0JBQStCLENBQUM7QUFnQmhGLFNBQVMsaUJBQWlCLENBQUMsTUFBYztJQUN2QyxRQUFRLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3JDLEtBQUssVUFBVTtZQUNiLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLFdBQVc7WUFDZCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFNBQVM7WUFDWixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEM7WUFDRSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLE9BQU8sU0FBVSxTQUFRLG9CQUFvQjtJQUN6RCxNQUFNLENBQUMsV0FBVyxHQUFHLHVDQUF1QyxDQUFDO0lBRTdELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsOEJBQThCO1FBQzlCLHFDQUFxQztLQUN0QyxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDbEIsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLFFBQTRCLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0gsUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBcUIsb0JBQW9CLENBQUMsQ0FBQztZQUN6RSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7WUFDbEIsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksR0FBRyxZQUFZLGFBQWEsRUFBRSxDQUFDO2dCQUNqQyxLQUFLLENBQUMsNENBQTRDLEVBQUU7b0JBQ2xELElBQUksRUFBRSw4RUFBOEU7aUJBQ3JGLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztZQUNELE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztRQUVELElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMxQixPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxHQUFHLENBQ1IsaUJBQWlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsU0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLG1CQUFtQixNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FDL0wsQ0FDRixDQUFDO1lBQ0YsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1osRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO1lBQy9CO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsUUFBUTtnQkFDYixTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvQztZQUNEO2dCQUNFLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixHQUFHLEVBQUUsU0FBUztnQkFDZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDcEQ7WUFDRDtnQkFDRSxNQUFNLEVBQUUsVUFBVTtnQkFDbEIsR0FBRyxFQUFFLFVBQVU7Z0JBQ2YsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNqRTtZQUNEO2dCQUNFLE1BQU0sRUFBRSxPQUFPO2dCQUNmLEdBQUcsRUFBRSxPQUFPO2dCQUNaLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNqRTtZQUNEO2dCQUNFLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixHQUFHLEVBQUUsV0FBVztnQkFDaEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEQ7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUMzQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxTQUFTLENBQ3BELENBQUM7UUFDRixJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxNQUFNLENBQUMsR0FBRyxDQUNSLHlGQUF5RixDQUMxRixDQUNGLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxNQUFNLENBQUMsR0FBRyxDQUNSLDJCQUEyQixNQUFNLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQzFILENBQ0YsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIGluZm8sXG4gIGVycm9yLFxuICB0YWJsZSxcbiAgY29sb3JzLFxuICBzcGlubmVyLFxuICBpc0pzb25Nb2RlLFxuICBmb3JtYXRSZWxhdGl2ZVRpbWUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgeyBmb3JtYXRTdGFnZSwgdHlwZSBDdXN0b21lclN0YWdlIH0gZnJvbSBcIi4uLy4uL2xpYi9yY3MtcmVnaXN0cmF0aW9uLmpzXCI7XG5cbmludGVyZmFjZSBSY3NBZ2VudCB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHVzZUNhc2U6IHN0cmluZyB8IG51bGw7XG4gIHNlbmRhYmxlOiBib29sZWFuO1xuICBzdGFnZT86IEN1c3RvbWVyU3RhZ2U7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTGlzdEFnZW50c1Jlc3BvbnNlIHtcbiAgYWdlbnRzOiBSY3NBZ2VudFtdO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRBZ2VudFN0YXR1cyhzdGF0dXM6IHN0cmluZyk6IHN0cmluZyB7XG4gIHN3aXRjaCAoU3RyaW5nKHN0YXR1cykudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgXCJhcHByb3ZlZFwiOlxuICAgICAgcmV0dXJuIGNvbG9ycy5zdWNjZXNzKHN0YXR1cyk7XG4gICAgY2FzZSBcInJlamVjdGVkXCI6XG4gICAgY2FzZSBcInN1c3BlbmRlZFwiOlxuICAgICAgcmV0dXJuIGNvbG9ycy5lcnJvcihzdGF0dXMpO1xuICAgIGNhc2UgXCJ0ZXN0aW5nXCI6XG4gICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgIHJldHVybiBjb2xvcnMud2FybmluZyhzdGF0dXMpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdHVzO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJjc0FnZW50cyBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJMaXN0IHRoZSBSQ1MgYWdlbnRzIG9uIHlvdXIgd29ya3NwYWNlXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gcmNzIGFnZW50c1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gcmNzIGFnZW50cyAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhcnNlKFJjc0FnZW50cyk7XG5cbiAgICBjb25zdCBsaXN0U3Bpbm5lciA9IHNwaW5uZXIoXCJGZXRjaGluZyBSQ1MgYWdlbnRzLi4uXCIpO1xuICAgIGlmICghaXNKc29uTW9kZSgpKSB7XG4gICAgICBsaXN0U3Bpbm5lci5zdGFydCgpO1xuICAgIH1cblxuICAgIGxldCByZXNwb25zZTogTGlzdEFnZW50c1Jlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8TGlzdEFnZW50c1Jlc3BvbnNlPihcIi9hcGkvdjEvcmNzL2FnZW50c1wiKTtcbiAgICAgIGxpc3RTcGlubmVyLnN0b3AoKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgbGlzdFNwaW5uZXIuc3RvcCgpO1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpIHtcbiAgICAgICAgZXJyb3IoXCJSQ1MgaXNuJ3QgYXZhaWxhYmxlIG9uIHlvdXIgd29ya3NwYWNlIHlldC5cIiwge1xuICAgICAgICAgIGhpbnQ6IFwiUkNTIGlzIHJvbGxpbmcgb3V0IGdyYWR1YWxseSDigJQgY29udGFjdCBzdXBwb3J0QHNlbmRseS5saXZlIGZvciBlYXJseSBhY2Nlc3MuXCIsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmV4aXQoMSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYWdlbnRzID0gcmVzcG9uc2UuYWdlbnRzID8/IFtdO1xuICAgIGlmIChhZ2VudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBpbmZvKFwiTm8gUkNTIGFnZW50cyB5ZXRcIik7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgICBgUmVnaXN0ZXIgb25lOiAke2NvbG9ycy5jb2RlKFwic2VuZGx5IHJjcyBicmFuZHMgY3JlYXRlIC4uLlwiKX0gdGhlbiAke2NvbG9ycy5jb2RlKFwic2VuZGx5IHJjcyBhZ2VudHMgY3JlYXRlIC0tYnJhbmQgPGJyYW5kSWQ+IC4uLlwiKX07IHRyYWNrIGl0IHdpdGggJHtjb2xvcnMuY29kZShcInNlbmRseSByY3MgcmVnaXN0cmF0aW9uXCIpfS5gLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0YWJsZShhZ2VudHMsIFtcbiAgICAgIHsgaGVhZGVyOiBcIklEXCIsIGtleTogXCJpZFwiLCBmb3JtYXR0ZXI6ICh2KSA9PiBjb2xvcnMuY29kZShTdHJpbmcodikpIH0sXG4gICAgICB7IGhlYWRlcjogXCJOYW1lXCIsIGtleTogXCJuYW1lXCIgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlN0YXR1c1wiLFxuICAgICAgICBrZXk6IFwic3RhdHVzXCIsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGZvcm1hdEFnZW50U3RhdHVzKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiVXNlIGNhc2VcIixcbiAgICAgICAga2V5OiBcInVzZUNhc2VcIixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gKHYgPyBTdHJpbmcodikgOiBjb2xvcnMuZGltKFwi4oCUXCIpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJTZW5kYWJsZVwiLFxuICAgICAgICBrZXk6IFwic2VuZGFibGVcIixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gKHYgPyBjb2xvcnMuc3VjY2VzcyhcInllc1wiKSA6IGNvbG9ycy5kaW0oXCJub1wiKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiU3RhZ2VcIixcbiAgICAgICAga2V5OiBcInN0YWdlXCIsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+ICh2ID8gZm9ybWF0U3RhZ2UoU3RyaW5nKHYpKSA6IGNvbG9ycy5kaW0oXCLigJRcIikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkNyZWF0ZWRcIixcbiAgICAgICAga2V5OiBcImNyZWF0ZWRBdFwiLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBmb3JtYXRSZWxhdGl2ZVRpbWUoU3RyaW5nKHYpKSxcbiAgICAgIH0sXG4gICAgXSk7XG5cbiAgICBjb25zdCB0ZXN0aW5nID0gYWdlbnRzLmZpbHRlcihcbiAgICAgIChhKSA9PiBTdHJpbmcoYS5zdGF0dXMpLnRvTG93ZXJDYXNlKCkgPT09IFwidGVzdGluZ1wiLFxuICAgICk7XG4gICAgaWYgKHRlc3RpbmcubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgIFwiQWdlbnRzIGluIHRlc3RpbmcgY2FuIG9ubHkgcmVhY2ggaW52aXRlZCB0ZXN0IGRldmljZXMg4oCUIGFwcHJvdmVkIGFnZW50cyByZWFjaCBldmVyeW9uZS5cIixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBjb2xvcnMuZGltKFxuICAgICAgICBgRGV0YWlscyBhbmQgbmV4dCBzdGVwczogJHtjb2xvcnMuY29kZShcInNlbmRseSByY3MgYWdlbnRzIGdldCA8YWdlbnRJZD5cIil9IG9yICR7Y29sb3JzLmNvZGUoXCJzZW5kbHkgcmNzIHJlZ2lzdHJhdGlvblwiKX0uYCxcbiAgICAgICksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,30 @@
1
+ import { AuthenticatedCommand } from "../../../lib/base-command.js";
2
+ export default class RcsBrandsCreate extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ "from-json": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ "idempotency-key": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ "display-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ "legal-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ "legal-entity-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ "organization-type": 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
+ ein: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
+ "stock-symbol": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ "address-line1": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
16
+ "address-line2": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
17
+ city: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
18
+ state: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
19
+ "postal-code": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
20
+ country: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
21
+ "contact-first-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
22
+ "contact-last-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
23
+ "contact-title": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
24
+ "contact-email": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
25
+ "contact-phone": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
26
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
27
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
28
+ };
29
+ run(): Promise<void>;
30
+ }
@@ -0,0 +1,55 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../../lib/base-command.js";
3
+ import { apiClient } from "../../../lib/api-client.js";
4
+ import { json, success, colors, spinner, isJsonMode, } from "../../../lib/output.js";
5
+ import { BRAND_FLAGS, buildBrandBody, getPath, idempotencyKeyFlag, nextStepFor, printBrand, printNextSteps, reportRcsError, setPath, } from "../../../lib/rcs-registration.js";
6
+ export default class RcsBrandsCreate extends AuthenticatedCommand {
7
+ static description = "Draft the brand behind your RCS registration (step 1; nothing goes for review until `rcs agents submit`)";
8
+ static examples = [
9
+ '<%= config.bin %> rcs brands create --display-name "Acme" --legal-name "Acme Inc" --legal-entity-type CORPORATION --organization-type PRIVATE_PROFIT --ein 12-3456789 --website https://acme.com --address-line1 "1 Main St" --city Austin --state TX --postal-code 78701 --contact-first-name Jane --contact-last-name Doe --contact-email jane@acme.com --contact-phone +15125550100',
10
+ "<%= config.bin %> rcs brands create --from-json brand.json",
11
+ '<%= config.bin %> rcs brands create --from-json brand.json --display-name "Acme" --json',
12
+ ];
13
+ static flags = {
14
+ ...AuthenticatedCommand.baseFlags,
15
+ ...BRAND_FLAGS,
16
+ "from-json": Flags.string({
17
+ description: "Path to a JSON file with the brand (a plain brand object, or the output of `rcs dossier --json`); flags override fields in the file",
18
+ }),
19
+ "idempotency-key": idempotencyKeyFlag,
20
+ };
21
+ async run() {
22
+ const { flags } = await this.parse(RcsBrandsCreate);
23
+ const body = buildBrandBody(flags, { clearEmpty: false });
24
+ if (getPath(body, ["address", "countryCode"]) === undefined) {
25
+ setPath(body, ["address", "countryCode"], "US");
26
+ }
27
+ const saveSpinner = spinner("Saving brand draft...");
28
+ if (!isJsonMode()) {
29
+ saveSpinner.start();
30
+ }
31
+ let response;
32
+ try {
33
+ response = await apiClient.post("/api/v1/rcs/brands", body, true, { idempotencyKey: flags["idempotency-key"] });
34
+ saveSpinner.stop();
35
+ }
36
+ catch (err) {
37
+ saveSpinner.stop();
38
+ if (reportRcsError(err))
39
+ this.exit(1);
40
+ throw err;
41
+ }
42
+ if (isJsonMode()) {
43
+ json(response);
44
+ return;
45
+ }
46
+ const brand = response.brand;
47
+ success(`Brand draft saved: ${brand.id}`);
48
+ console.log();
49
+ printBrand(brand);
50
+ console.log();
51
+ console.log(colors.dim("Missing fields are checked when you submit; fill them in any time with `sendly rcs brands update`."));
52
+ printNextSteps(nextStepFor("draft", { brandId: brand.id }));
53
+ }
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Jjcy9icmFuZHMvY3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxJQUFJLEVBQ0osT0FBTyxFQUNQLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUNMLFdBQVcsRUFDWCxjQUFjLEVBQ2QsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEVBQ2QsT0FBTyxHQUVSLE1BQU0sa0NBQWtDLENBQUM7QUFNMUMsTUFBTSxDQUFDLE9BQU8sT0FBTyxlQUFnQixTQUFRLG9CQUFvQjtJQUMvRCxNQUFNLENBQUMsV0FBVyxHQUNoQiwwR0FBMEcsQ0FBQztJQUU3RyxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLHdYQUF3WDtRQUN4WCw0REFBNEQ7UUFDNUQseUZBQXlGO0tBQzFGLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLEdBQUcsV0FBVztRQUNkLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3hCLFdBQVcsRUFDVCxxSUFBcUk7U0FDeEksQ0FBQztRQUNGLGlCQUFpQixFQUFFLGtCQUFrQjtLQUN0QyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXBELE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1RCxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNsQixXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksUUFBNkIsQ0FBQztRQUNsQyxJQUFJLENBQUM7WUFDSCxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUM3QixvQkFBb0IsRUFDcEIsSUFBSSxFQUNKLElBQUksRUFDSixFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUM3QyxDQUFDO1lBQ0YsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQztnQkFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztRQUVELElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDN0IsT0FBTyxDQUFDLHNCQUFzQixLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxNQUFNLENBQUMsR0FBRyxDQUNSLG9HQUFvRyxDQUNyRyxDQUNGLENBQUM7UUFDRixjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBqc29uLFxuICBzdWNjZXNzLFxuICBjb2xvcnMsXG4gIHNwaW5uZXIsXG4gIGlzSnNvbk1vZGUsXG59IGZyb20gXCIuLi8uLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQge1xuICBCUkFORF9GTEFHUyxcbiAgYnVpbGRCcmFuZEJvZHksXG4gIGdldFBhdGgsXG4gIGlkZW1wb3RlbmN5S2V5RmxhZyxcbiAgbmV4dFN0ZXBGb3IsXG4gIHByaW50QnJhbmQsXG4gIHByaW50TmV4dFN0ZXBzLFxuICByZXBvcnRSY3NFcnJvcixcbiAgc2V0UGF0aCxcbiAgdHlwZSBQdWJsaWNSY3NCcmFuZCxcbn0gZnJvbSBcIi4uLy4uLy4uL2xpYi9yY3MtcmVnaXN0cmF0aW9uLmpzXCI7XG5cbmludGVyZmFjZSBDcmVhdGVCcmFuZFJlc3BvbnNlIHtcbiAgYnJhbmQ6IFB1YmxpY1Jjc0JyYW5kO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSY3NCcmFuZHNDcmVhdGUgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJEcmFmdCB0aGUgYnJhbmQgYmVoaW5kIHlvdXIgUkNTIHJlZ2lzdHJhdGlvbiAoc3RlcCAxOyBub3RoaW5nIGdvZXMgZm9yIHJldmlldyB1bnRpbCBgcmNzIGFnZW50cyBzdWJtaXRgKVwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gcmNzIGJyYW5kcyBjcmVhdGUgLS1kaXNwbGF5LW5hbWUgXCJBY21lXCIgLS1sZWdhbC1uYW1lIFwiQWNtZSBJbmNcIiAtLWxlZ2FsLWVudGl0eS10eXBlIENPUlBPUkFUSU9OIC0tb3JnYW5pemF0aW9uLXR5cGUgUFJJVkFURV9QUk9GSVQgLS1laW4gMTItMzQ1Njc4OSAtLXdlYnNpdGUgaHR0cHM6Ly9hY21lLmNvbSAtLWFkZHJlc3MtbGluZTEgXCIxIE1haW4gU3RcIiAtLWNpdHkgQXVzdGluIC0tc3RhdGUgVFggLS1wb3N0YWwtY29kZSA3ODcwMSAtLWNvbnRhY3QtZmlyc3QtbmFtZSBKYW5lIC0tY29udGFjdC1sYXN0LW5hbWUgRG9lIC0tY29udGFjdC1lbWFpbCBqYW5lQGFjbWUuY29tIC0tY29udGFjdC1waG9uZSArMTUxMjU1NTAxMDAnLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gcmNzIGJyYW5kcyBjcmVhdGUgLS1mcm9tLWpzb24gYnJhbmQuanNvblwiLFxuICAgICc8JT0gY29uZmlnLmJpbiAlPiByY3MgYnJhbmRzIGNyZWF0ZSAtLWZyb20tanNvbiBicmFuZC5qc29uIC0tZGlzcGxheS1uYW1lIFwiQWNtZVwiIC0tanNvbicsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICAuLi5CUkFORF9GTEFHUyxcbiAgICBcImZyb20tanNvblwiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUGF0aCB0byBhIEpTT04gZmlsZSB3aXRoIHRoZSBicmFuZCAoYSBwbGFpbiBicmFuZCBvYmplY3QsIG9yIHRoZSBvdXRwdXQgb2YgYHJjcyBkb3NzaWVyIC0tanNvbmApOyBmbGFncyBvdmVycmlkZSBmaWVsZHMgaW4gdGhlIGZpbGVcIixcbiAgICB9KSxcbiAgICBcImlkZW1wb3RlbmN5LWtleVwiOiBpZGVtcG90ZW5jeUtleUZsYWcsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoUmNzQnJhbmRzQ3JlYXRlKTtcblxuICAgIGNvbnN0IGJvZHkgPSBidWlsZEJyYW5kQm9keShmbGFncywgeyBjbGVhckVtcHR5OiBmYWxzZSB9KTtcbiAgICBpZiAoZ2V0UGF0aChib2R5LCBbXCJhZGRyZXNzXCIsIFwiY291bnRyeUNvZGVcIl0pID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHNldFBhdGgoYm9keSwgW1wiYWRkcmVzc1wiLCBcImNvdW50cnlDb2RlXCJdLCBcIlVTXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHNhdmVTcGlubmVyID0gc3Bpbm5lcihcIlNhdmluZyBicmFuZCBkcmFmdC4uLlwiKTtcbiAgICBpZiAoIWlzSnNvbk1vZGUoKSkge1xuICAgICAgc2F2ZVNwaW5uZXIuc3RhcnQoKTtcbiAgICB9XG5cbiAgICBsZXQgcmVzcG9uc2U6IENyZWF0ZUJyYW5kUmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8Q3JlYXRlQnJhbmRSZXNwb25zZT4oXG4gICAgICAgIFwiL2FwaS92MS9yY3MvYnJhbmRzXCIsXG4gICAgICAgIGJvZHksXG4gICAgICAgIHRydWUsXG4gICAgICAgIHsgaWRlbXBvdGVuY3lLZXk6IGZsYWdzW1wiaWRlbXBvdGVuY3kta2V5XCJdIH0sXG4gICAgICApO1xuICAgICAgc2F2ZVNwaW5uZXIuc3RvcCgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc2F2ZVNwaW5uZXIuc3RvcCgpO1xuICAgICAgaWYgKHJlcG9ydFJjc0Vycm9yKGVycikpIHRoaXMuZXhpdCgxKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBicmFuZCA9IHJlc3BvbnNlLmJyYW5kO1xuICAgIHN1Y2Nlc3MoYEJyYW5kIGRyYWZ0IHNhdmVkOiAke2JyYW5kLmlkfWApO1xuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgcHJpbnRCcmFuZChicmFuZCk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGNvbG9ycy5kaW0oXG4gICAgICAgIFwiTWlzc2luZyBmaWVsZHMgYXJlIGNoZWNrZWQgd2hlbiB5b3Ugc3VibWl0OyBmaWxsIHRoZW0gaW4gYW55IHRpbWUgd2l0aCBgc2VuZGx5IHJjcyBicmFuZHMgdXBkYXRlYC5cIixcbiAgICAgICksXG4gICAgKTtcbiAgICBwcmludE5leHRTdGVwcyhuZXh0U3RlcEZvcihcImRyYWZ0XCIsIHsgYnJhbmRJZDogYnJhbmQuaWQgfSkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { AuthenticatedCommand } from "../../../lib/base-command.js";
2
+ export default class RcsBrandsUpdate extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ id: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ "from-json": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ "idempotency-key": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ "display-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ "legal-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
+ "legal-entity-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
+ "organization-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ website: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
16
+ ein: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
17
+ "stock-symbol": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
18
+ "address-line1": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
19
+ "address-line2": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
20
+ city: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
21
+ state: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
22
+ "postal-code": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
23
+ country: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
24
+ "contact-first-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
25
+ "contact-last-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
26
+ "contact-title": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
27
+ "contact-email": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
28
+ "contact-phone": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
29
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
30
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
31
+ };
32
+ run(): Promise<void>;
33
+ }
@@ -0,0 +1,62 @@
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 { json, success, error, spinner, isJsonMode, } from "../../../lib/output.js";
5
+ import { BRAND_FLAGS, buildBrandBody, idempotencyKeyFlag, nextStepFor, printBrand, printNextSteps, reportRcsError, } from "../../../lib/rcs-registration.js";
6
+ export default class RcsBrandsUpdate extends AuthenticatedCommand {
7
+ static description = "Update fields on a drafted RCS brand (only the flags you pass change; pass an empty value to clear an optional field)";
8
+ static examples = [
9
+ "<%= config.bin %> rcs brands update 3f6a1c9e-0000-0000-0000-000000000000 --ein 12-3456789 --website https://acme.com",
10
+ '<%= config.bin %> rcs brands update 3f6a1c9e-0000-0000-0000-000000000000 --stock-symbol ""',
11
+ "<%= config.bin %> rcs brands update 3f6a1c9e-0000-0000-0000-000000000000 --from-json brand.json --json",
12
+ ];
13
+ static args = {
14
+ id: Args.string({
15
+ description: "Brand ID",
16
+ required: true,
17
+ }),
18
+ };
19
+ static flags = {
20
+ ...AuthenticatedCommand.baseFlags,
21
+ ...BRAND_FLAGS,
22
+ "from-json": Flags.string({
23
+ description: "Path to a JSON file with the fields to change (a plain brand object, or the output of `rcs dossier --json`); flags override fields in the file",
24
+ }),
25
+ "idempotency-key": idempotencyKeyFlag,
26
+ };
27
+ async run() {
28
+ const { args, flags } = await this.parse(RcsBrandsUpdate);
29
+ const body = buildBrandBody(flags, { clearEmpty: true });
30
+ if (Object.keys(body).length === 0) {
31
+ error("Nothing to update", {
32
+ hint: "Pass at least one field flag or --from-json <file>; see --help for the list",
33
+ });
34
+ this.exit(1);
35
+ }
36
+ const saveSpinner = spinner("Updating brand...");
37
+ if (!isJsonMode()) {
38
+ saveSpinner.start();
39
+ }
40
+ let response;
41
+ try {
42
+ response = await apiClient.patch(`/api/v1/rcs/brands/${encodeURIComponent(args.id)}`, body, true, { idempotencyKey: flags["idempotency-key"] });
43
+ saveSpinner.stop();
44
+ }
45
+ catch (err) {
46
+ saveSpinner.stop();
47
+ if (reportRcsError(err))
48
+ this.exit(1);
49
+ throw err;
50
+ }
51
+ if (isJsonMode()) {
52
+ json(response);
53
+ return;
54
+ }
55
+ const brand = response.brand;
56
+ success(`Brand updated: ${brand.id}`);
57
+ console.log();
58
+ printBrand(brand);
59
+ printNextSteps(nextStepFor(brand.customerStage, { brandId: brand.id }));
60
+ }
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Jjcy9icmFuZHMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsSUFBSSxFQUNKLE9BQU8sRUFDUCxLQUFLLEVBQ0wsT0FBTyxFQUNQLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEdBRWYsTUFBTSxrQ0FBa0MsQ0FBQztBQU0xQyxNQUFNLENBQUMsT0FBTyxPQUFPLGVBQWdCLFNBQVEsb0JBQW9CO0lBQy9ELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLHVIQUF1SCxDQUFDO0lBRTFILE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsc0hBQXNIO1FBQ3RILDRGQUE0RjtRQUM1Rix3R0FBd0c7S0FDekcsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNkLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLEdBQUcsV0FBVztRQUNkLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3hCLFdBQVcsRUFDVCxnSkFBZ0o7U0FDbkosQ0FBQztRQUNGLGlCQUFpQixFQUFFLGtCQUFrQjtLQUN0QyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUxRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxLQUFLLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ3pCLElBQUksRUFBRSw2RUFBNkU7YUFDcEYsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNsQixXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksUUFBNkIsQ0FBQztRQUNsQyxJQUFJLENBQUM7WUFDSCxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxDQUM5QixzQkFBc0Isa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQ25ELElBQUksRUFDSixJQUFJLEVBQ0osRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FDN0MsQ0FBQztZQUNGLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxrQkFBa0IsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmdzLCBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBqc29uLFxuICBzdWNjZXNzLFxuICBlcnJvcixcbiAgc3Bpbm5lcixcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uLy4uL2xpYi9vdXRwdXQuanNcIjtcbmltcG9ydCB7XG4gIEJSQU5EX0ZMQUdTLFxuICBidWlsZEJyYW5kQm9keSxcbiAgaWRlbXBvdGVuY3lLZXlGbGFnLFxuICBuZXh0U3RlcEZvcixcbiAgcHJpbnRCcmFuZCxcbiAgcHJpbnROZXh0U3RlcHMsXG4gIHJlcG9ydFJjc0Vycm9yLFxuICB0eXBlIFB1YmxpY1Jjc0JyYW5kLFxufSBmcm9tIFwiLi4vLi4vLi4vbGliL3Jjcy1yZWdpc3RyYXRpb24uanNcIjtcblxuaW50ZXJmYWNlIFVwZGF0ZUJyYW5kUmVzcG9uc2Uge1xuICBicmFuZDogUHVibGljUmNzQnJhbmQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJjc0JyYW5kc1VwZGF0ZSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIlVwZGF0ZSBmaWVsZHMgb24gYSBkcmFmdGVkIFJDUyBicmFuZCAob25seSB0aGUgZmxhZ3MgeW91IHBhc3MgY2hhbmdlOyBwYXNzIGFuIGVtcHR5IHZhbHVlIHRvIGNsZWFyIGFuIG9wdGlvbmFsIGZpZWxkKVwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHJjcyBicmFuZHMgdXBkYXRlIDNmNmExYzllLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCAtLWVpbiAxMi0zNDU2Nzg5IC0td2Vic2l0ZSBodHRwczovL2FjbWUuY29tXCIsXG4gICAgJzwlPSBjb25maWcuYmluICU+IHJjcyBicmFuZHMgdXBkYXRlIDNmNmExYzllLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCAtLXN0b2NrLXN5bWJvbCBcIlwiJyxcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHJjcyBicmFuZHMgdXBkYXRlIDNmNmExYzllLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCAtLWZyb20tanNvbiBicmFuZC5qc29uIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIGlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJCcmFuZCBJRFwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICAuLi5CUkFORF9GTEFHUyxcbiAgICBcImZyb20tanNvblwiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUGF0aCB0byBhIEpTT04gZmlsZSB3aXRoIHRoZSBmaWVsZHMgdG8gY2hhbmdlIChhIHBsYWluIGJyYW5kIG9iamVjdCwgb3IgdGhlIG91dHB1dCBvZiBgcmNzIGRvc3NpZXIgLS1qc29uYCk7IGZsYWdzIG92ZXJyaWRlIGZpZWxkcyBpbiB0aGUgZmlsZVwiLFxuICAgIH0pLFxuICAgIFwiaWRlbXBvdGVuY3kta2V5XCI6IGlkZW1wb3RlbmN5S2V5RmxhZyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhcmdzLCBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShSY3NCcmFuZHNVcGRhdGUpO1xuXG4gICAgY29uc3QgYm9keSA9IGJ1aWxkQnJhbmRCb2R5KGZsYWdzLCB7IGNsZWFyRW1wdHk6IHRydWUgfSk7XG4gICAgaWYgKE9iamVjdC5rZXlzKGJvZHkpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZXJyb3IoXCJOb3RoaW5nIHRvIHVwZGF0ZVwiLCB7XG4gICAgICAgIGhpbnQ6IFwiUGFzcyBhdCBsZWFzdCBvbmUgZmllbGQgZmxhZyBvciAtLWZyb20tanNvbiA8ZmlsZT47IHNlZSAtLWhlbHAgZm9yIHRoZSBsaXN0XCIsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBjb25zdCBzYXZlU3Bpbm5lciA9IHNwaW5uZXIoXCJVcGRhdGluZyBicmFuZC4uLlwiKTtcbiAgICBpZiAoIWlzSnNvbk1vZGUoKSkge1xuICAgICAgc2F2ZVNwaW5uZXIuc3RhcnQoKTtcbiAgICB9XG5cbiAgICBsZXQgcmVzcG9uc2U6IFVwZGF0ZUJyYW5kUmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBhdGNoPFVwZGF0ZUJyYW5kUmVzcG9uc2U+KFxuICAgICAgICBgL2FwaS92MS9yY3MvYnJhbmRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3MuaWQpfWAsXG4gICAgICAgIGJvZHksXG4gICAgICAgIHRydWUsXG4gICAgICAgIHsgaWRlbXBvdGVuY3lLZXk6IGZsYWdzW1wiaWRlbXBvdGVuY3kta2V5XCJdIH0sXG4gICAgICApO1xuICAgICAgc2F2ZVNwaW5uZXIuc3RvcCgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc2F2ZVNwaW5uZXIuc3RvcCgpO1xuICAgICAgaWYgKHJlcG9ydFJjc0Vycm9yKGVycikpIHRoaXMuZXhpdCgxKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBicmFuZCA9IHJlc3BvbnNlLmJyYW5kO1xuICAgIHN1Y2Nlc3MoYEJyYW5kIHVwZGF0ZWQ6ICR7YnJhbmQuaWR9YCk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBwcmludEJyYW5kKGJyYW5kKTtcbiAgICBwcmludE5leHRTdGVwcyhuZXh0U3RlcEZvcihicmFuZC5jdXN0b21lclN0YWdlLCB7IGJyYW5kSWQ6IGJyYW5kLmlkIH0pKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,12 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class RcsCapability extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ to: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ agent: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
9
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ };
11
+ run(): Promise<void>;
12
+ }