@sendly/cli 3.38.0 → 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.
@@ -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
@@ -1,6 +1,7 @@
1
1
  import { AuthenticatedCommand } from "../../lib/base-command.js";
2
2
  import { apiClient, NotFoundError } from "../../lib/api-client.js";
3
3
  import { json, info, error, table, colors, spinner, isJsonMode, formatRelativeTime, } from "../../lib/output.js";
4
+ import { formatStage } from "../../lib/rcs-registration.js";
4
5
  function formatAgentStatus(status) {
5
6
  switch (String(status).toLowerCase()) {
6
7
  case "approved":
@@ -52,7 +53,7 @@ export default class RcsAgents extends AuthenticatedCommand {
52
53
  const agents = response.agents ?? [];
53
54
  if (agents.length === 0) {
54
55
  info("No RCS agents yet");
55
- console.log(colors.dim("RCS agents are registered for your brand by the Sendly team contact support@sendly.live to get set up."));
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")}.`));
56
57
  return;
57
58
  }
58
59
  table(agents, [
@@ -73,6 +74,11 @@ export default class RcsAgents extends AuthenticatedCommand {
73
74
  key: "sendable",
74
75
  formatter: (v) => (v ? colors.success("yes") : colors.dim("no")),
75
76
  },
77
+ {
78
+ header: "Stage",
79
+ key: "stage",
80
+ formatter: (v) => (v ? formatStage(String(v)) : colors.dim("—")),
81
+ },
76
82
  {
77
83
  header: "Created",
78
84
  key: "createdAt",
@@ -84,6 +90,8 @@ export default class RcsAgents extends AuthenticatedCommand {
84
90
  console.log();
85
91
  console.log(colors.dim("Agents in testing can only reach invited test devices — approved agents reach everyone."));
86
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")}.`));
87
95
  }
88
96
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Jjcy9hZ2VudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLGtCQUFrQixHQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBZTdCLFNBQVMsaUJBQWlCLENBQUMsTUFBYztJQUN2QyxRQUFRLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3JDLEtBQUssVUFBVTtZQUNiLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLFdBQVc7WUFDZCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFNBQVM7WUFDWixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEM7WUFDRSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLE9BQU8sU0FBVSxTQUFRLG9CQUFvQjtJQUN6RCxNQUFNLENBQUMsV0FBVyxHQUFHLHVDQUF1QyxDQUFDO0lBRTdELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsOEJBQThCO1FBQzlCLHFDQUFxQztLQUN0QyxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYs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QUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssU0FBUyxDQUNwRCxDQUFDO1FBQ0YsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsTUFBTSxDQUFDLEdBQUcsQ0FDUix5RkFBeUYsQ0FDMUYsQ0FDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIGluZm8sXG4gIGVycm9yLFxuICB0YWJsZSxcbiAgY29sb3JzLFxuICBzcGlubmVyLFxuICBpc0pzb25Nb2RlLFxuICBmb3JtYXRSZWxhdGl2ZVRpbWUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBSY3NBZ2VudCB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHVzZUNhc2U6IHN0cmluZyB8IG51bGw7XG4gIHNlbmRhYmxlOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIExpc3RBZ2VudHNSZXNwb25zZSB7XG4gIGFnZW50czogUmNzQWdlbnRbXTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0QWdlbnRTdGF0dXMoc3RhdHVzOiBzdHJpbmcpOiBzdHJpbmcge1xuICBzd2l0Y2ggKFN0cmluZyhzdGF0dXMpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBjYXNlIFwiYXBwcm92ZWRcIjpcbiAgICAgIHJldHVybiBjb2xvcnMuc3VjY2VzcyhzdGF0dXMpO1xuICAgIGNhc2UgXCJyZWplY3RlZFwiOlxuICAgIGNhc2UgXCJzdXNwZW5kZWRcIjpcbiAgICAgIHJldHVybiBjb2xvcnMuZXJyb3Ioc3RhdHVzKTtcbiAgICBjYXNlIFwidGVzdGluZ1wiOlxuICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICByZXR1cm4gY29sb3JzLndhcm5pbmcoc3RhdHVzKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXR1cztcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSY3NBZ2VudHMgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiTGlzdCB0aGUgUkNTIGFnZW50cyBvbiB5b3VyIHdvcmtzcGFjZVwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHJjcyBhZ2VudHNcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHJjcyBhZ2VudHMgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wYXJzZShSY3NBZ2VudHMpO1xuXG4gICAgY29uc3QgbGlzdFNwaW5uZXIgPSBzcGlubmVyKFwiRmV0Y2hpbmcgUkNTIGFnZW50cy4uLlwiKTtcbiAgICBpZiAoIWlzSnNvbk1vZGUoKSkge1xuICAgICAgbGlzdFNwaW5uZXIuc3RhcnQoKTtcbiAgICB9XG5cbiAgICBsZXQgcmVzcG9uc2U6IExpc3RBZ2VudHNSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PExpc3RBZ2VudHNSZXNwb25zZT4oXCIvYXBpL3YxL3Jjcy9hZ2VudHNcIik7XG4gICAgICBsaXN0U3Bpbm5lci5zdG9wKCk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGxpc3RTcGlubmVyLnN0b3AoKTtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgIGVycm9yKFwiUkNTIGlzbid0IGF2YWlsYWJsZSBvbiB5b3VyIHdvcmtzcGFjZSB5ZXQuXCIsIHtcbiAgICAgICAgICBoaW50OiBcIlJDUyBpcyByb2xsaW5nIG91dCBncmFkdWFsbHkg4oCUIGNvbnRhY3Qgc3VwcG9ydEBzZW5kbHkubGl2ZSBmb3IgZWFybHkgYWNjZXNzLlwiLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5leGl0KDEpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFnZW50cyA9IHJlc3BvbnNlLmFnZW50cyA/PyBbXTtcbiAgICBpZiAoYWdlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5mbyhcIk5vIFJDUyBhZ2VudHMgeWV0XCIpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGNvbG9ycy5kaW0oXG4gICAgICAgICAgXCJSQ1MgYWdlbnRzIGFyZSByZWdpc3RlcmVkIGZvciB5b3VyIGJyYW5kIGJ5IHRoZSBTZW5kbHkgdGVhbSDigJQgY29udGFjdCBzdXBwb3J0QHNlbmRseS5saXZlIHRvIGdldCBzZXQgdXAuXCIsXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRhYmxlKGFnZW50cywgW1xuICAgICAgeyBoZWFkZXI6IFwiSURcIiwga2V5OiBcImlkXCIsIGZvcm1hdHRlcjogKHYpID0+IGNvbG9ycy5jb2RlKFN0cmluZyh2KSkgfSxcbiAgICAgIHsgaGVhZGVyOiBcIk5hbWVcIiwga2V5OiBcIm5hbWVcIiB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiU3RhdHVzXCIsXG4gICAgICAgIGtleTogXCJzdGF0dXNcIixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gZm9ybWF0QWdlbnRTdGF0dXMoU3RyaW5nKHYpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJVc2UgY2FzZVwiLFxuICAgICAgICBrZXk6IFwidXNlQ2FzZVwiLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiAodiA/IFN0cmluZyh2KSA6IGNvbG9ycy5kaW0oXCLigJRcIikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlNlbmRhYmxlXCIsXG4gICAgICAgIGtleTogXCJzZW5kYWJsZVwiLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiAodiA/IGNvbG9ycy5zdWNjZXNzKFwieWVzXCIpIDogY29sb3JzLmRpbShcIm5vXCIpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJDcmVhdGVkXCIsXG4gICAgICAgIGtleTogXCJjcmVhdGVkQXRcIixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gZm9ybWF0UmVsYXRpdmVUaW1lKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgIF0pO1xuXG4gICAgY29uc3QgdGVzdGluZyA9IGFnZW50cy5maWx0ZXIoXG4gICAgICAoYSkgPT4gU3RyaW5nKGEuc3RhdHVzKS50b0xvd2VyQ2FzZSgpID09PSBcInRlc3RpbmdcIixcbiAgICApO1xuICAgIGlmICh0ZXN0aW5nLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgICBcIkFnZW50cyBpbiB0ZXN0aW5nIGNhbiBvbmx5IHJlYWNoIGludml0ZWQgdGVzdCBkZXZpY2VzIOKAlCBhcHByb3ZlZCBhZ2VudHMgcmVhY2ggZXZlcnlvbmUuXCIsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Jjcy9hZ2VudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLGtCQUFrQixHQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxXQUFXLEVBQXNCLE1BQU0sK0JBQStCLENBQUM7QUFnQmhGLFNBQVMsaUJBQWlCLENBQUMsTUFBYztJQUN2QyxRQUFRLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3JDLEtBQUssVUFBVTtZQUNiLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLFdBQVc7WUFDZCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFNBQVM7WUFDWixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEM7WUFDRSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLE9BQU8sU0FBVSxTQUFRLG9CQUFvQjtJQUN6RCxNQUFNLENBQUMsV0FBVyxHQUFHLHVDQUF1QyxDQUFDO0lBRTdELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsOEJBQThCO1FBQzlCLHFDQUFxQztLQUN0QyxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FB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QUFPO2dCQUNaLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNqRTtZQUNEO2dCQUNFLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixHQUFHLEVBQUUsV0FBVztnQkFDaEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEQ7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUMzQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxTQUFTLENBQ3BELENBQUM7UUFDRixJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxNQUFNLENBQUMsR0FBRyxDQUNSLHlGQUF5RixDQUMxRixDQUNGLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxNQUFNLENBQUMsR0FBRyxDQUNSLDJCQUEyQixNQUFNLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQzFILENBQ0YsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIGluZm8sXG4gIGVycm9yLFxuICB0YWJsZSxcbiAgY29sb3JzLFxuICBzcGlubmVyLFxuICBpc0pzb25Nb2RlLFxuICBmb3JtYXRSZWxhdGl2ZVRpbWUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgeyBmb3JtYXRTdGFnZSwgdHlwZSBDdXN0b21lclN0YWdlIH0gZnJvbSBcIi4uLy4uL2xpYi9yY3MtcmVnaXN0cmF0aW9uLmpzXCI7XG5cbmludGVyZmFjZSBSY3NBZ2VudCB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHVzZUNhc2U6IHN0cmluZyB8IG51bGw7XG4gIHNlbmRhYmxlOiBib29sZWFuO1xuICBzdGFnZT86IEN1c3RvbWVyU3RhZ2U7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTGlzdEFnZW50c1Jlc3BvbnNlIHtcbiAgYWdlbnRzOiBSY3NBZ2VudFtdO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRBZ2VudFN0YXR1cyhzdGF0dXM6IHN0cmluZyk6IHN0cmluZyB7XG4gIHN3aXRjaCAoU3RyaW5nKHN0YXR1cykudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgXCJhcHByb3ZlZFwiOlxuICAgICAgcmV0dXJuIGNvbG9ycy5zdWNjZXNzKHN0YXR1cyk7XG4gICAgY2FzZSBcInJlamVjdGVkXCI6XG4gICAgY2FzZSBcInN1c3BlbmRlZFwiOlxuICAgICAgcmV0dXJuIGNvbG9ycy5lcnJvcihzdGF0dXMpO1xuICAgIGNhc2UgXCJ0ZXN0aW5nXCI6XG4gICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgIHJldHVybiBjb2xvcnMud2FybmluZyhzdGF0dXMpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdHVzO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJjc0FnZW50cyBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJMaXN0IHRoZSBSQ1MgYWdlbnRzIG9uIHlvdXIgd29ya3NwYWNlXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gcmNzIGFnZW50c1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gcmNzIGFnZW50cyAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+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,10 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class RcsDossier 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,73 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ import { apiClient } from "../../lib/api-client.js";
3
+ import { json, info, warn, colors, spinner, isJsonMode, keyValue, } from "../../lib/output.js";
4
+ import { isDict, reportRcsError, } from "../../lib/rcs-registration.js";
5
+ const SOURCE_LABELS = {
6
+ tendlc: "your 10DLC brand",
7
+ verification: "your toll-free verification",
8
+ none: "nothing on file yet",
9
+ };
10
+ function flatten(value, prefix, out) {
11
+ if (isDict(value)) {
12
+ for (const [key, inner] of Object.entries(value)) {
13
+ flatten(inner, prefix ? `${prefix}.${key}` : key, out);
14
+ }
15
+ return;
16
+ }
17
+ if (value === null || value === undefined || value === "")
18
+ return;
19
+ out.push([prefix, String(value)]);
20
+ }
21
+ export default class RcsDossier extends AuthenticatedCommand {
22
+ static description = "Show the brand details Sendly can prefill from your 10DLC brand or toll-free verification";
23
+ static examples = [
24
+ "<%= config.bin %> rcs dossier",
25
+ "<%= config.bin %> rcs dossier --json > brand.json",
26
+ ];
27
+ static flags = {
28
+ ...AuthenticatedCommand.baseFlags,
29
+ };
30
+ async run() {
31
+ await this.parse(RcsDossier);
32
+ const loadSpinner = spinner("Fetching prefill details...");
33
+ if (!isJsonMode()) {
34
+ loadSpinner.start();
35
+ }
36
+ let response;
37
+ try {
38
+ response = await apiClient.get("/api/v1/rcs/dossier");
39
+ loadSpinner.stop();
40
+ }
41
+ catch (err) {
42
+ loadSpinner.stop();
43
+ if (reportRcsError(err))
44
+ this.exit(1);
45
+ throw err;
46
+ }
47
+ if (isJsonMode()) {
48
+ json(response);
49
+ return;
50
+ }
51
+ const rows = [];
52
+ flatten(response.brand ?? {}, "", rows);
53
+ console.log();
54
+ console.log(colors.bold("Prefilled brand details"));
55
+ console.log(colors.dim(`Source: ${SOURCE_LABELS[response.source] ?? response.source}`));
56
+ console.log();
57
+ if (rows.length === 0) {
58
+ info("Nothing to prefill yet — you'll enter the brand details yourself.");
59
+ }
60
+ else {
61
+ keyValue(rows);
62
+ }
63
+ if (!response.usEligible) {
64
+ console.log();
65
+ warn("Something on file names a non-US country. RCS registration is available to US businesses for now.");
66
+ }
67
+ console.log();
68
+ console.log(colors.dim("Use it:"));
69
+ console.log(` Save: ${colors.code("sendly rcs dossier --json > brand.json")}`);
70
+ console.log(` Draft: ${colors.code("sendly rcs brands create --from-json brand.json --ein 12-3456789 ...")}`);
71
+ }
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9yY3MvZG9zc2llci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLFFBQVEsR0FDVCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxNQUFNLEVBQ04sY0FBYyxHQUVmLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsTUFBTSxhQUFhLEdBQThDO0lBQy9ELE1BQU0sRUFBRSxrQkFBa0I7SUFDMUIsWUFBWSxFQUFFLDZCQUE2QjtJQUMzQyxJQUFJLEVBQUUscUJBQXFCO0NBQzVCLENBQUM7QUFFRixTQUFTLE9BQU8sQ0FDZCxLQUFjLEVBQ2QsTUFBYyxFQUNkLEdBQTRCO0lBRTVCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEIsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTztJQUNULENBQUM7SUFDRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssRUFBRTtRQUFFLE9BQU87SUFDbEUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxPQUFPLFVBQVcsU0FBUSxvQkFBb0I7SUFDMUQsTUFBTSxDQUFDLFdBQVcsR0FDaEIsMkZBQTJGLENBQUM7SUFFOUYsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiwrQkFBK0I7UUFDL0IsbURBQW1EO0tBQ3BELENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU3QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNsQixXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksUUFBeUIsQ0FBQztRQUM5QixJQUFJLENBQUM7WUFDSCxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUFrQixxQkFBcUIsQ0FBQyxDQUFDO1lBQ3ZFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLElBQUksR0FBNEIsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFeEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQztRQUNwRCxPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUMzRSxDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7YUFBTSxDQUFDO1lBQ04sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FDRixtR0FBbUcsQ0FDcEcsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNuQyxPQUFPLENBQUMsR0FBRyxDQUNULFlBQVksTUFBTSxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxFQUFFLENBQ3BFLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUNULFlBQVksTUFBTSxDQUFDLElBQUksQ0FBQyxzRUFBc0UsQ0FBQyxFQUFFLENBQ2xHLENBQUM7SUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBqc29uLFxuICBpbmZvLFxuICB3YXJuLFxuICBjb2xvcnMsXG4gIHNwaW5uZXIsXG4gIGlzSnNvbk1vZGUsXG4gIGtleVZhbHVlLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IHtcbiAgaXNEaWN0LFxuICByZXBvcnRSY3NFcnJvcixcbiAgdHlwZSBEb3NzaWVyUmVzcG9uc2UsXG59IGZyb20gXCIuLi8uLi9saWIvcmNzLXJlZ2lzdHJhdGlvbi5qc1wiO1xuXG5jb25zdCBTT1VSQ0VfTEFCRUxTOiBSZWNvcmQ8RG9zc2llclJlc3BvbnNlW1wic291cmNlXCJdLCBzdHJpbmc+ID0ge1xuICB0ZW5kbGM6IFwieW91ciAxMERMQyBicmFuZFwiLFxuICB2ZXJpZmljYXRpb246IFwieW91ciB0b2xsLWZyZWUgdmVyaWZpY2F0aW9uXCIsXG4gIG5vbmU6IFwibm90aGluZyBvbiBmaWxlIHlldFwiLFxufTtcblxuZnVuY3Rpb24gZmxhdHRlbihcbiAgdmFsdWU6IHVua25vd24sXG4gIHByZWZpeDogc3RyaW5nLFxuICBvdXQ6IEFycmF5PFtzdHJpbmcsIHN0cmluZ10+LFxuKTogdm9pZCB7XG4gIGlmIChpc0RpY3QodmFsdWUpKSB7XG4gICAgZm9yIChjb25zdCBba2V5LCBpbm5lcl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICBmbGF0dGVuKGlubmVyLCBwcmVmaXggPyBgJHtwcmVmaXh9LiR7a2V5fWAgOiBrZXksIG91dCk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gXCJcIikgcmV0dXJuO1xuICBvdXQucHVzaChbcHJlZml4LCBTdHJpbmcodmFsdWUpXSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJjc0Rvc3NpZXIgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJTaG93IHRoZSBicmFuZCBkZXRhaWxzIFNlbmRseSBjYW4gcHJlZmlsbCBmcm9tIHlvdXIgMTBETEMgYnJhbmQgb3IgdG9sbC1mcmVlIHZlcmlmaWNhdGlvblwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHJjcyBkb3NzaWVyXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiByY3MgZG9zc2llciAtLWpzb24gPiBicmFuZC5qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wYXJzZShSY3NEb3NzaWVyKTtcblxuICAgIGNvbnN0IGxvYWRTcGlubmVyID0gc3Bpbm5lcihcIkZldGNoaW5nIHByZWZpbGwgZGV0YWlscy4uLlwiKTtcbiAgICBpZiAoIWlzSnNvbk1vZGUoKSkge1xuICAgICAgbG9hZFNwaW5uZXIuc3RhcnQoKTtcbiAgICB9XG5cbiAgICBsZXQgcmVzcG9uc2U6IERvc3NpZXJSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PERvc3NpZXJSZXNwb25zZT4oXCIvYXBpL3YxL3Jjcy9kb3NzaWVyXCIpO1xuICAgICAgbG9hZFNwaW5uZXIuc3RvcCgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9hZFNwaW5uZXIuc3RvcCgpO1xuICAgICAgaWYgKHJlcG9ydFJjc0Vycm9yKGVycikpIHRoaXMuZXhpdCgxKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByb3dzOiBBcnJheTxbc3RyaW5nLCBzdHJpbmddPiA9IFtdO1xuICAgIGZsYXR0ZW4ocmVzcG9uc2UuYnJhbmQgPz8ge30sIFwiXCIsIHJvd3MpO1xuXG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZyhjb2xvcnMuYm9sZChcIlByZWZpbGxlZCBicmFuZCBkZXRhaWxzXCIpKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGNvbG9ycy5kaW0oYFNvdXJjZTogJHtTT1VSQ0VfTEFCRUxTW3Jlc3BvbnNlLnNvdXJjZV0gPz8gcmVzcG9uc2Uuc291cmNlfWApLFxuICAgICk7XG4gICAgY29uc29sZS5sb2coKTtcblxuICAgIGlmIChyb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5mbyhcIk5vdGhpbmcgdG8gcHJlZmlsbCB5ZXQg4oCUIHlvdSdsbCBlbnRlciB0aGUgYnJhbmQgZGV0YWlscyB5b3Vyc2VsZi5cIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleVZhbHVlKHJvd3MpO1xuICAgIH1cblxuICAgIGlmICghcmVzcG9uc2UudXNFbGlnaWJsZSkge1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIHdhcm4oXG4gICAgICAgIFwiU29tZXRoaW5nIG9uIGZpbGUgbmFtZXMgYSBub24tVVMgY291bnRyeS4gUkNTIHJlZ2lzdHJhdGlvbiBpcyBhdmFpbGFibGUgdG8gVVMgYnVzaW5lc3NlcyBmb3Igbm93LlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKGNvbG9ycy5kaW0oXCJVc2UgaXQ6XCIpKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAgIFNhdmU6ICAke2NvbG9ycy5jb2RlKFwic2VuZGx5IHJjcyBkb3NzaWVyIC0tanNvbiA+IGJyYW5kLmpzb25cIil9YCxcbiAgICApO1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYCAgRHJhZnQ6ICR7Y29sb3JzLmNvZGUoXCJzZW5kbHkgcmNzIGJyYW5kcyBjcmVhdGUgLS1mcm9tLWpzb24gYnJhbmQuanNvbiAtLWVpbiAxMi0zNDU2Nzg5IC4uLlwiKX1gLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class RcsRegistration 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
+ }