@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.
- package/README.md +268 -0
- package/dist/commands/business-upgrade/resubmit.js +3 -3
- package/dist/commands/business-upgrade/start.js +3 -3
- package/dist/commands/config/list.js +14 -2
- package/dist/commands/config/set.js +16 -3
- package/dist/commands/countries.js +2 -2
- package/dist/commands/credits/index.d.ts +1 -0
- package/dist/commands/credits/index.js +4 -0
- package/dist/commands/doctor.d.ts +12 -0
- package/dist/commands/doctor.js +51 -8
- package/dist/commands/enterprise/upload-verification-document.js +3 -3
- package/dist/commands/enterprise/verification/resubmit.js +2 -2
- package/dist/commands/enterprise/verification/submit.js +2 -2
- package/dist/commands/events/listen.js +3 -3
- package/dist/commands/numbers/buy.js +19 -4
- package/dist/commands/rcs/agents/create.d.ts +44 -0
- package/dist/commands/rcs/agents/create.js +71 -0
- package/dist/commands/rcs/agents/devices/set.d.ts +16 -0
- package/dist/commands/rcs/agents/devices/set.js +77 -0
- package/dist/commands/rcs/agents/get.d.ts +13 -0
- package/dist/commands/rcs/agents/get.js +51 -0
- package/dist/commands/rcs/agents/request-launch.d.ts +16 -0
- package/dist/commands/rcs/agents/request-launch.js +71 -0
- package/dist/commands/rcs/agents/submit.d.ts +14 -0
- package/dist/commands/rcs/agents/submit.js +56 -0
- package/dist/commands/rcs/agents/update.d.ts +48 -0
- package/dist/commands/rcs/agents/update.js +81 -0
- package/dist/commands/rcs/agents.d.ts +10 -0
- package/dist/commands/rcs/agents.js +97 -0
- package/dist/commands/rcs/brands/create.d.ts +30 -0
- package/dist/commands/rcs/brands/create.js +55 -0
- package/dist/commands/rcs/brands/update.d.ts +33 -0
- package/dist/commands/rcs/brands/update.js +62 -0
- package/dist/commands/rcs/capability.d.ts +12 -0
- package/dist/commands/rcs/capability.js +85 -0
- package/dist/commands/rcs/dossier.d.ts +10 -0
- package/dist/commands/rcs/dossier.js +73 -0
- package/dist/commands/rcs/registration.d.ts +10 -0
- package/dist/commands/rcs/registration.js +59 -0
- package/dist/commands/rcs/send.d.ts +21 -0
- package/dist/commands/rcs/send.js +240 -0
- package/dist/commands/send.d.ts +1 -0
- package/dist/commands/send.js +5 -2
- package/dist/commands/sms/batch.d.ts +1 -0
- package/dist/commands/sms/batch.js +11 -1
- package/dist/commands/sms/group.d.ts +1 -0
- package/dist/commands/sms/group.js +5 -2
- package/dist/commands/sms/schedule.d.ts +1 -0
- package/dist/commands/sms/schedule.js +5 -2
- package/dist/commands/sms/send.d.ts +1 -0
- package/dist/commands/sms/send.js +5 -2
- package/dist/commands/whatsapp/connect.d.ts +17 -0
- package/dist/commands/whatsapp/connect.js +166 -0
- package/dist/commands/whatsapp/profile/get.d.ts +13 -0
- package/dist/commands/whatsapp/profile/get.js +67 -0
- package/dist/commands/whatsapp/profile/update.d.ts +20 -0
- package/dist/commands/whatsapp/profile/update.js +109 -0
- package/dist/commands/whatsapp/send.d.ts +17 -0
- package/dist/commands/whatsapp/send.js +151 -0
- package/dist/commands/whatsapp/senders.d.ts +10 -0
- package/dist/commands/whatsapp/senders.js +74 -0
- package/dist/commands/whatsapp/status.d.ts +13 -0
- package/dist/commands/whatsapp/status.js +92 -0
- package/dist/commands/whatsapp/templates/create.d.ts +19 -0
- package/dist/commands/whatsapp/templates/create.js +205 -0
- package/dist/commands/whatsapp/templates/delete.d.ts +14 -0
- package/dist/commands/whatsapp/templates/delete.js +69 -0
- package/dist/commands/whatsapp/templates/list.d.ts +10 -0
- package/dist/commands/whatsapp/templates/list.js +77 -0
- package/dist/commands/whatsapp/templates/update.d.ts +18 -0
- package/dist/commands/whatsapp/templates/update.js +160 -0
- package/dist/commands/whoami.js +32 -6
- package/dist/hooks/command-not-found.js +46 -61
- package/dist/lib/api-client.d.ts +20 -3
- package/dist/lib/api-client.js +96 -17
- package/dist/lib/auth.js +10 -6
- package/dist/lib/base-command.js +13 -2
- package/dist/lib/config.d.ts +50 -1
- package/dist/lib/config.js +144 -7
- package/dist/lib/help.d.ts +10 -0
- package/dist/lib/help.js +23 -0
- package/dist/lib/onboarding.js +3 -3
- package/dist/lib/rcs-registration.d.ts +231 -0
- package/dist/lib/rcs-registration.js +734 -0
- package/oclif.manifest.json +2603 -350
- 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
|
+
}
|