@sendly/cli 3.20.0 → 3.24.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/dist/commands/conversations/close.d.ts +13 -0
- package/dist/commands/conversations/close.js +43 -0
- package/dist/commands/conversations/get.d.ts +15 -0
- package/dist/commands/conversations/get.js +87 -0
- package/dist/commands/conversations/index.d.ts +10 -0
- package/dist/commands/conversations/index.js +79 -0
- package/dist/commands/conversations/list.d.ts +13 -0
- package/dist/commands/conversations/list.js +99 -0
- package/dist/commands/conversations/mark-read.d.ts +13 -0
- package/dist/commands/conversations/mark-read.js +42 -0
- package/dist/commands/conversations/reopen.d.ts +13 -0
- package/dist/commands/conversations/reopen.js +43 -0
- package/dist/commands/conversations/reply.d.ts +14 -0
- package/dist/commands/conversations/reply.js +47 -0
- package/dist/commands/drafts/approve.d.ts +13 -0
- package/dist/commands/drafts/approve.js +43 -0
- package/dist/commands/drafts/create.d.ts +14 -0
- package/dist/commands/drafts/create.js +50 -0
- package/dist/commands/drafts/index.d.ts +10 -0
- package/dist/commands/drafts/index.js +66 -0
- package/dist/commands/drafts/list.d.ts +12 -0
- package/dist/commands/drafts/list.js +80 -0
- package/dist/commands/drafts/reject.d.ts +14 -0
- package/dist/commands/drafts/reject.js +51 -0
- package/dist/commands/labels/create.d.ts +15 -0
- package/dist/commands/labels/create.js +58 -0
- package/dist/commands/labels/delete.d.ts +13 -0
- package/dist/commands/labels/delete.js +41 -0
- package/dist/commands/labels/index.d.ts +10 -0
- package/dist/commands/labels/index.js +59 -0
- package/dist/commands/labels/list.d.ts +10 -0
- package/dist/commands/labels/list.js +59 -0
- package/dist/commands/sms/schedule.js +2 -2
- package/oclif.manifest.json +1553 -778
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class ConversationsClose 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
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
10
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Args } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { apiClient } from "../../lib/api-client.js";
|
|
4
|
+
import { success, json, spinner, isJsonMode, } from "../../lib/output.js";
|
|
5
|
+
export default class ConversationsClose extends AuthenticatedCommand {
|
|
6
|
+
static description = "Close a conversation";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> conversations close conv_abc123",
|
|
9
|
+
"<%= config.bin %> conversations close conv_abc123 --json",
|
|
10
|
+
];
|
|
11
|
+
static args = {
|
|
12
|
+
id: Args.string({
|
|
13
|
+
description: "Conversation ID",
|
|
14
|
+
required: true,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
static flags = {
|
|
18
|
+
...AuthenticatedCommand.baseFlags,
|
|
19
|
+
};
|
|
20
|
+
async run() {
|
|
21
|
+
const { args } = await this.parse(ConversationsClose);
|
|
22
|
+
const spin = spinner("Closing conversation...");
|
|
23
|
+
spin.start();
|
|
24
|
+
try {
|
|
25
|
+
const response = await apiClient.post(`/api/v1/conversations/${encodeURIComponent(args.id)}/close`);
|
|
26
|
+
spin.stop();
|
|
27
|
+
if (isJsonMode()) {
|
|
28
|
+
json(response);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
success("Conversation closed", {
|
|
32
|
+
ID: response.id,
|
|
33
|
+
"Phone Number": response.phoneNumber,
|
|
34
|
+
Status: response.status,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
spin.stop();
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvY29udmVyc2F0aW9ucy9jbG9zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsT0FBTyxFQUNQLElBQUksRUFDSixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFRN0IsTUFBTSxDQUFDLE9BQU8sT0FBTyxrQkFBbUIsU0FBUSxvQkFBb0I7SUFDbEUsTUFBTSxDQUFDLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztJQUU1QyxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLG1EQUFtRDtRQUNuRCwwREFBMEQ7S0FDM0QsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNkLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7S0FDbEMsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXRELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDbkMseUJBQXlCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUM3RCxDQUFDO1lBRUYsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRVosSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2YsT0FBTztZQUNULENBQUM7WUFFRCxPQUFPLENBQUMscUJBQXFCLEVBQUU7Z0JBQzdCLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRTtnQkFDZixjQUFjLEVBQUUsUUFBUSxDQUFDLFdBQVc7Z0JBQ3BDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGpzb24sXG4gIHNwaW5uZXIsXG4gIGlzSnNvbk1vZGUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBDb252ZXJzYXRpb25SZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb252ZXJzYXRpb25zQ2xvc2UgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiQ2xvc2UgYSBjb252ZXJzYXRpb25cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBjb252ZXJzYXRpb25zIGNsb3NlIGNvbnZfYWJjMTIzXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBjb252ZXJzYXRpb25zIGNsb3NlIGNvbnZfYWJjMTIzIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIGlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJDb252ZXJzYXRpb24gSURcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShDb252ZXJzYXRpb25zQ2xvc2UpO1xuXG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoXCJDbG9zaW5nIGNvbnZlcnNhdGlvbi4uLlwiKTtcbiAgICBzcGluLnN0YXJ0KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxDb252ZXJzYXRpb25SZXNwb25zZT4oXG4gICAgICAgIGAvYXBpL3YxL2NvbnZlcnNhdGlvbnMvJHtlbmNvZGVVUklDb21wb25lbnQoYXJncy5pZCl9L2Nsb3NlYCxcbiAgICAgICk7XG5cbiAgICAgIHNwaW4uc3RvcCgpO1xuXG4gICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHN1Y2Nlc3MoXCJDb252ZXJzYXRpb24gY2xvc2VkXCIsIHtcbiAgICAgICAgSUQ6IHJlc3BvbnNlLmlkLFxuICAgICAgICBcIlBob25lIE51bWJlclwiOiByZXNwb25zZS5waG9uZU51bWJlcixcbiAgICAgICAgU3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNwaW4uc3RvcCgpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class ConversationsGet 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
|
+
messages: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
10
|
+
limit: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
11
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
12
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
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 { keyValue, json, header, formatStatus, formatDate, formatPhone, formatRelativeTime, colors, divider, isJsonMode, } from "../../lib/output.js";
|
|
5
|
+
export default class ConversationsGet extends AuthenticatedCommand {
|
|
6
|
+
static description = "Get details of a conversation";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> conversations get conv_abc123",
|
|
9
|
+
"<%= config.bin %> conversations get conv_abc123 --messages",
|
|
10
|
+
"<%= config.bin %> conversations get conv_abc123 --messages --limit 10",
|
|
11
|
+
"<%= config.bin %> conversations get conv_abc123 --json",
|
|
12
|
+
];
|
|
13
|
+
static args = {
|
|
14
|
+
id: Args.string({
|
|
15
|
+
description: "Conversation ID",
|
|
16
|
+
required: true,
|
|
17
|
+
}),
|
|
18
|
+
};
|
|
19
|
+
static flags = {
|
|
20
|
+
...AuthenticatedCommand.baseFlags,
|
|
21
|
+
messages: Flags.boolean({
|
|
22
|
+
char: "m",
|
|
23
|
+
description: "Include message thread",
|
|
24
|
+
default: false,
|
|
25
|
+
}),
|
|
26
|
+
limit: Flags.integer({
|
|
27
|
+
char: "l",
|
|
28
|
+
description: "Number of messages to include (requires --messages)",
|
|
29
|
+
default: 50,
|
|
30
|
+
}),
|
|
31
|
+
};
|
|
32
|
+
async run() {
|
|
33
|
+
const { args, flags } = await this.parse(ConversationsGet);
|
|
34
|
+
const conversation = await apiClient.get(`/api/v1/conversations/${encodeURIComponent(args.id)}`, {
|
|
35
|
+
...(flags.messages && { include_messages: "true" }),
|
|
36
|
+
...(flags.messages && { message_limit: flags.limit }),
|
|
37
|
+
});
|
|
38
|
+
if (isJsonMode()) {
|
|
39
|
+
json(conversation);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
header("Conversation Details");
|
|
43
|
+
keyValue({
|
|
44
|
+
ID: conversation.id,
|
|
45
|
+
"Phone Number": formatPhone(conversation.phoneNumber),
|
|
46
|
+
Status: formatStatus(conversation.status),
|
|
47
|
+
Messages: conversation.messageCount,
|
|
48
|
+
Unread: conversation.unreadCount > 0
|
|
49
|
+
? colors.warning(String(conversation.unreadCount))
|
|
50
|
+
: "0",
|
|
51
|
+
"Last Message": conversation.lastMessageAt
|
|
52
|
+
? formatRelativeTime(conversation.lastMessageAt)
|
|
53
|
+
: colors.dim("None"),
|
|
54
|
+
...(conversation.lastMessageDirection && {
|
|
55
|
+
Direction: conversation.lastMessageDirection,
|
|
56
|
+
}),
|
|
57
|
+
...(conversation.tags && conversation.tags.length > 0 && {
|
|
58
|
+
Tags: conversation.tags.join(", "),
|
|
59
|
+
}),
|
|
60
|
+
Created: formatDate(conversation.createdAt),
|
|
61
|
+
});
|
|
62
|
+
if (flags.messages && conversation.messages) {
|
|
63
|
+
divider();
|
|
64
|
+
console.log(colors.bold("Message Thread:"));
|
|
65
|
+
console.log(colors.dim("─".repeat(40)));
|
|
66
|
+
if (conversation.messages.data.length === 0) {
|
|
67
|
+
console.log(colors.dim(" No messages"));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
for (const msg of conversation.messages.data) {
|
|
71
|
+
const direction = msg.direction === "inbound"
|
|
72
|
+
? colors.info("←")
|
|
73
|
+
: colors.success("→");
|
|
74
|
+
const time = formatRelativeTime(msg.createdAt);
|
|
75
|
+
const text = msg.text || colors.dim("(no text)");
|
|
76
|
+
console.log(` ${direction} ${colors.dim(time)} ${text}`);
|
|
77
|
+
}
|
|
78
|
+
if (conversation.messages.pagination.hasMore) {
|
|
79
|
+
console.log();
|
|
80
|
+
console.log(colors.dim(` ${conversation.messages.pagination.total - conversation.messages.data.length} more messages...`));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
console.log();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2NvbnZlcnNhdGlvbnMvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixNQUFNLEVBQ04sWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUE4QjdCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQW9CO0lBQ2hFLE1BQU0sQ0FBQyxXQUFXLEdBQUcsK0JBQStCLENBQUM7SUFFckQsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQixpREFBaUQ7UUFDakQsNERBQTREO1FBQzVELHVFQUF1RTtRQUN2RSx3REFBd0Q7S0FDekQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNkLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsd0JBQXdCO1lBQ3JDLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQztRQUNGLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ25CLElB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QUFHLENBQUM7d0JBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN4QixNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQy9DLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzdELENBQUM7Z0JBRUQsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDN0MsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLG1CQUFtQixDQUFDLENBQy9HLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmdzLCBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBrZXlWYWx1ZSxcbiAganNvbixcbiAgaGVhZGVyLFxuICBmb3JtYXRTdGF0dXMsXG4gIGZvcm1hdERhdGUsXG4gIGZvcm1hdFBob25lLFxuICBmb3JtYXRSZWxhdGl2ZVRpbWUsXG4gIGNvbG9ycyxcbiAgZGl2aWRlcixcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIENvbnZlcnNhdGlvbk1lc3NhZ2Uge1xuICBpZDogc3RyaW5nO1xuICB0bzogc3RyaW5nO1xuICBmcm9tOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIGRpcmVjdGlvbjogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENvbnZlcnNhdGlvblJlc3BvbnNlIHtcbiAgaWQ6IHN0cmluZztcbiAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xuICB1bnJlYWRDb3VudDogbnVtYmVyO1xuICBsYXN0TWVzc2FnZVRleHQ/OiBzdHJpbmc7XG4gIGxhc3RNZXNzYWdlQXQ/OiBzdHJpbmc7XG4gIGxhc3RNZXNzYWdlRGlyZWN0aW9uPzogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB0YWdzPzogc3RyaW5nW107XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICBtZXNzYWdlcz86IHtcbiAgICBkYXRhOiBDb252ZXJzYXRpb25NZXNzYWdlW107XG4gICAgcGFnaW5hdGlvbjogeyB0b3RhbDogbnVtYmVyOyBsaW1pdDogbnVtYmVyOyBvZmZzZXQ6IG51bWJlcjsgaGFzTW9yZTogYm9vbGVhbiB9O1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb252ZXJzYXRpb25zR2V0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkdldCBkZXRhaWxzIG9mIGEgY29udmVyc2F0aW9uXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY29udmVyc2F0aW9ucyBnZXQgY29udl9hYmMxMjNcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGNvbnZlcnNhdGlvbnMgZ2V0IGNvbnZfYWJjMTIzIC0tbWVzc2FnZXNcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGNvbnZlcnNhdGlvbnMgZ2V0IGNvbnZfYWJjMTIzIC0tbWVzc2FnZXMgLS1saW1pdCAxMFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY29udmVyc2F0aW9ucyBnZXQgY29udl9hYmMxMjMgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGFyZ3MgPSB7XG4gICAgaWQ6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkNvbnZlcnNhdGlvbiBJRFwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBtZXNzYWdlczogRmxhZ3MuYm9vbGVhbih7XG4gICAgICBjaGFyOiBcIm1cIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkluY2x1ZGUgbWVzc2FnZSB0aHJlYWRcIixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pLFxuICAgIGxpbWl0OiBGbGFncy5pbnRlZ2VyKHtcbiAgICAgIGNoYXI6IFwibFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiTnVtYmVyIG9mIG1lc3NhZ2VzIHRvIGluY2x1ZGUgKHJlcXVpcmVzIC0tbWVzc2FnZXMpXCIsXG4gICAgICBkZWZhdWx0OiA1MCxcbiAgICB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhcmdzLCBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShDb252ZXJzYXRpb25zR2V0KTtcblxuICAgIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8Q29udmVyc2F0aW9uUmVzcG9uc2U+KFxuICAgICAgYC9hcGkvdjEvY29udmVyc2F0aW9ucy8ke2VuY29kZVVSSUNvbXBvbmVudChhcmdzLmlkKX1gLFxuICAgICAge1xuICAgICAgICAuLi4oZmxhZ3MubWVzc2FnZXMgJiYgeyBpbmNsdWRlX21lc3NhZ2VzOiBcInRydWVcIiB9KSxcbiAgICAgICAgLi4uKGZsYWdzLm1lc3NhZ2VzICYmIHsgbWVzc2FnZV9saW1pdDogZmxhZ3MubGltaXQgfSksXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKGNvbnZlcnNhdGlvbik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaGVhZGVyKFwiQ29udmVyc2F0aW9uIERldGFpbHNcIik7XG5cbiAgICBrZXlWYWx1ZSh7XG4gICAgICBJRDogY29udmVyc2F0aW9uLmlkLFxuICAgICAgXCJQaG9uZSBOdW1iZXJcIjogZm9ybWF0UGhvbmUoY29udmVyc2F0aW9uLnBob25lTnVtYmVyKSxcbiAgICAgIFN0YXR1czogZm9ybWF0U3RhdHVzKGNvbnZlcnNhdGlvbi5zdGF0dXMpLFxuICAgICAgTWVzc2FnZXM6IGNvbnZlcnNhdGlvbi5tZXNzYWdlQ291bnQsXG4gICAgICBVbnJlYWQ6IGNvbnZlcnNhdGlvbi51bnJlYWRDb3VudCA+IDBcbiAgICAgICAgPyBjb2xvcnMud2FybmluZyhTdHJpbmcoY29udmVyc2F0aW9uLnVucmVhZENvdW50KSlcbiAgICAgICAgOiBcIjBcIixcbiAgICAgIFwiTGFzdCBNZXNzYWdlXCI6IGNvbnZlcnNhdGlvbi5sYXN0TWVzc2FnZUF0XG4gICAgICAgID8gZm9ybWF0UmVsYXRpdmVUaW1lKGNvbnZlcnNhdGlvbi5sYXN0TWVzc2FnZUF0KVxuICAgICAgICA6IGNvbG9ycy5kaW0oXCJOb25lXCIpLFxuICAgICAgLi4uKGNvbnZlcnNhdGlvbi5sYXN0TWVzc2FnZURpcmVjdGlvbiAmJiB7XG4gICAgICAgIERpcmVjdGlvbjogY29udmVyc2F0aW9uLmxhc3RNZXNzYWdlRGlyZWN0aW9uLFxuICAgICAgfSksXG4gICAgICAuLi4oY29udmVyc2F0aW9uLnRhZ3MgJiYgY29udmVyc2F0aW9uLnRhZ3MubGVuZ3RoID4gMCAmJiB7XG4gICAgICAgIFRhZ3M6IGNvbnZlcnNhdGlvbi50YWdzLmpvaW4oXCIsIFwiKSxcbiAgICAgIH0pLFxuICAgICAgQ3JlYXRlZDogZm9ybWF0RGF0ZShjb252ZXJzYXRpb24uY3JlYXRlZEF0KSxcbiAgICB9KTtcblxuICAgIGlmIChmbGFncy5tZXNzYWdlcyAmJiBjb252ZXJzYXRpb24ubWVzc2FnZXMpIHtcbiAgICAgIGRpdmlkZXIoKTtcbiAgICAgIGNvbnNvbGUubG9nKGNvbG9ycy5ib2xkKFwiTWVzc2FnZSBUaHJlYWQ6XCIpKTtcbiAgICAgIGNvbnNvbGUubG9nKGNvbG9ycy5kaW0oXCLilIBcIi5yZXBlYXQoNDApKSk7XG5cbiAgICAgIGlmIChjb252ZXJzYXRpb24ubWVzc2FnZXMuZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coY29sb3JzLmRpbShcIiAgTm8gbWVzc2FnZXNcIikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBtc2cgb2YgY29udmVyc2F0aW9uLm1lc3NhZ2VzLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBtc2cuZGlyZWN0aW9uID09PSBcImluYm91bmRcIlxuICAgICAgICAgICAgPyBjb2xvcnMuaW5mbyhcIuKGkFwiKVxuICAgICAgICAgICAgOiBjb2xvcnMuc3VjY2VzcyhcIuKGklwiKTtcbiAgICAgICAgICBjb25zdCB0aW1lID0gZm9ybWF0UmVsYXRpdmVUaW1lKG1zZy5jcmVhdGVkQXQpO1xuICAgICAgICAgIGNvbnN0IHRleHQgPSBtc2cudGV4dCB8fCBjb2xvcnMuZGltKFwiKG5vIHRleHQpXCIpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAgICR7ZGlyZWN0aW9ufSAke2NvbG9ycy5kaW0odGltZSl9ICAke3RleHR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29udmVyc2F0aW9uLm1lc3NhZ2VzLnBhZ2luYXRpb24uaGFzTW9yZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBjb2xvcnMuZGltKGAgICR7Y29udmVyc2F0aW9uLm1lc3NhZ2VzLnBhZ2luYXRpb24udG90YWwgLSBjb252ZXJzYXRpb24ubWVzc2FnZXMuZGF0YS5sZW5ndGh9IG1vcmUgbWVzc2FnZXMuLi5gKSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class Conversations 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,79 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
import { apiClient } from "../../lib/api-client.js";
|
|
3
|
+
import { table, json, info, formatStatus, formatRelativeTime, formatPhone, colors, isJsonMode, } from "../../lib/output.js";
|
|
4
|
+
export default class Conversations extends AuthenticatedCommand {
|
|
5
|
+
static description = "List conversations (default subcommand)";
|
|
6
|
+
static examples = [
|
|
7
|
+
"<%= config.bin %> conversations",
|
|
8
|
+
"<%= config.bin %> conversations --json",
|
|
9
|
+
];
|
|
10
|
+
static flags = {
|
|
11
|
+
...AuthenticatedCommand.baseFlags,
|
|
12
|
+
};
|
|
13
|
+
async run() {
|
|
14
|
+
await this.parse(Conversations);
|
|
15
|
+
const response = await apiClient.get("/api/v1/conversations", { limit: 20 });
|
|
16
|
+
if (isJsonMode()) {
|
|
17
|
+
json(response);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (response.data.length === 0) {
|
|
21
|
+
info("No conversations found");
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const pagination = response.pagination;
|
|
25
|
+
console.log();
|
|
26
|
+
console.log(colors.dim(`Showing ${response.data.length} conversations (${pagination.total} total)`));
|
|
27
|
+
console.log();
|
|
28
|
+
table(response.data, [
|
|
29
|
+
{
|
|
30
|
+
header: "Phone Number",
|
|
31
|
+
key: "phoneNumber",
|
|
32
|
+
width: 16,
|
|
33
|
+
formatter: (v) => formatPhone(String(v)),
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
header: "Status",
|
|
37
|
+
key: "status",
|
|
38
|
+
width: 10,
|
|
39
|
+
formatter: (v) => formatStatus(String(v)),
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
header: "Messages",
|
|
43
|
+
key: "messageCount",
|
|
44
|
+
width: 10,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
header: "Unread",
|
|
48
|
+
key: "unreadCount",
|
|
49
|
+
width: 8,
|
|
50
|
+
formatter: (v) => {
|
|
51
|
+
const count = Number(v);
|
|
52
|
+
return count > 0 ? colors.warning(String(count)) : String(count);
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
header: "Last Message",
|
|
57
|
+
key: "lastMessageText",
|
|
58
|
+
width: 25,
|
|
59
|
+
formatter: (v) => {
|
|
60
|
+
if (!v)
|
|
61
|
+
return colors.dim("-");
|
|
62
|
+
const text = String(v);
|
|
63
|
+
return text.length > 22 ? text.slice(0, 22) + "..." : text;
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
header: "Last Activity",
|
|
68
|
+
key: "lastMessageAt",
|
|
69
|
+
width: 14,
|
|
70
|
+
formatter: (v) => (v ? formatRelativeTime(String(v)) : colors.dim("-")),
|
|
71
|
+
},
|
|
72
|
+
]);
|
|
73
|
+
if (pagination.hasMore) {
|
|
74
|
+
console.log();
|
|
75
|
+
console.log(colors.dim(` Use ${colors.code("conversations list --offset 20")} to see more`));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvY29udmVyc2F0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLEtBQUssRUFDTCxJQUFJLEVBQ0osSUFBSSxFQUNKLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxxQkFBcUIsQ0FBQztBQXdCN0IsTUFBTSxDQUFDLE9BQU8sT0FBTyxhQUFjLFNBQVEsb0JBQW9CO0lBQzdELE1BQU0sQ0FBQyxXQUFXLEdBQUcseUNBQXlDLENBQUM7SUFFL0QsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQixpQ0FBaUM7UUFDakMsd0NBQXdDO0tBQ3pDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVoQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQ2xDLHVCQUF1QixFQUN2QixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FDZCxDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFFdkMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxNQUFNLENBQUMsR0FBRyxDQUNSLFdBQVcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLG1CQUFtQixVQUFVLENBQUMsS0FBSyxTQUFTLENBQzVFLENBQ0YsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVkLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ25CO2dCQUNFLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixHQUFHLEVBQUUsYUFBYTtnQkFDbEIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3pDO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLEdBQUcsRUFBRSxRQUFRO2dCQUNiLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQztZQUNEO2dCQUNFLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixHQUFHLEVBQUUsY0FBYztnQkFDbkIsS0FBSyxFQUFFLEVBQUU7YUFDVjtZQUNEO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsYUFBYTtnQkFDbEIsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ2YsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN4QixPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkUsQ0FBQzthQUNGO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLGNBQWM7Z0JBQ3RCLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNmLElBQUksQ0FBQyxDQUFDO3dCQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDL0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDN0QsQ0FBQzthQUNGO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLGVBQWU7Z0JBQ3ZCLEdBQUcsRUFBRSxlQUFlO2dCQUNwQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN4RTtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsY0FBYyxDQUFDLENBQ2pGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAgdGFibGUsXG4gIGpzb24sXG4gIGluZm8sXG4gIGZvcm1hdFN0YXR1cyxcbiAgZm9ybWF0UmVsYXRpdmVUaW1lLFxuICBmb3JtYXRQaG9uZSxcbiAgY29sb3JzLFxuICBpc0pzb25Nb2RlLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgQ29udmVyc2F0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xuICB1bnJlYWRDb3VudDogbnVtYmVyO1xuICBsYXN0TWVzc2FnZVRleHQ/OiBzdHJpbmc7XG4gIGxhc3RNZXNzYWdlQXQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBQYWdpbmF0aW9uIHtcbiAgdG90YWw6IG51bWJlcjtcbiAgbGltaXQ6IG51bWJlcjtcbiAgb2Zmc2V0OiBudW1iZXI7XG4gIGhhc01vcmU6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlIHtcbiAgZGF0YTogQ29udmVyc2F0aW9uW107XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnZlcnNhdGlvbnMgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiTGlzdCBjb252ZXJzYXRpb25zIChkZWZhdWx0IHN1YmNvbW1hbmQpXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY29udmVyc2F0aW9uc1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY29udmVyc2F0aW9ucyAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhcnNlKENvbnZlcnNhdGlvbnMpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PExpc3RDb252ZXJzYXRpb25zUmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL2NvbnZlcnNhdGlvbnNcIixcbiAgICAgIHsgbGltaXQ6IDIwIH0sXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5mbyhcIk5vIGNvbnZlcnNhdGlvbnMgZm91bmRcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFnaW5hdGlvbiA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgYFNob3dpbmcgJHtyZXNwb25zZS5kYXRhLmxlbmd0aH0gY29udmVyc2F0aW9ucyAoJHtwYWdpbmF0aW9uLnRvdGFsfSB0b3RhbClgLFxuICAgICAgKSxcbiAgICApO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICB0YWJsZShyZXNwb25zZS5kYXRhLCBbXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJQaG9uZSBOdW1iZXJcIixcbiAgICAgICAga2V5OiBcInBob25lTnVtYmVyXCIsXG4gICAgICAgIHdpZHRoOiAxNixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gZm9ybWF0UGhvbmUoU3RyaW5nKHYpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJTdGF0dXNcIixcbiAgICAgICAga2V5OiBcInN0YXR1c1wiLFxuICAgICAgICB3aWR0aDogMTAsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGZvcm1hdFN0YXR1cyhTdHJpbmcodikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIk1lc3NhZ2VzXCIsXG4gICAgICAgIGtleTogXCJtZXNzYWdlQ291bnRcIixcbiAgICAgICAgd2lkdGg6IDEwLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlVucmVhZFwiLFxuICAgICAgICBrZXk6IFwidW5yZWFkQ291bnRcIixcbiAgICAgICAgd2lkdGg6IDgsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3VudCA9IE51bWJlcih2KTtcbiAgICAgICAgICByZXR1cm4gY291bnQgPiAwID8gY29sb3JzLndhcm5pbmcoU3RyaW5nKGNvdW50KSkgOiBTdHJpbmcoY291bnQpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkxhc3QgTWVzc2FnZVwiLFxuICAgICAgICBrZXk6IFwibGFzdE1lc3NhZ2VUZXh0XCIsXG4gICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4ge1xuICAgICAgICAgIGlmICghdikgcmV0dXJuIGNvbG9ycy5kaW0oXCItXCIpO1xuICAgICAgICAgIGNvbnN0IHRleHQgPSBTdHJpbmcodik7XG4gICAgICAgICAgcmV0dXJuIHRleHQubGVuZ3RoID4gMjIgPyB0ZXh0LnNsaWNlKDAsIDIyKSArIFwiLi4uXCIgOiB0ZXh0O1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkxhc3QgQWN0aXZpdHlcIixcbiAgICAgICAga2V5OiBcImxhc3RNZXNzYWdlQXRcIixcbiAgICAgICAgd2lkdGg6IDE0LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiAodiA/IGZvcm1hdFJlbGF0aXZlVGltZShTdHJpbmcodikpIDogY29sb3JzLmRpbShcIi1cIikpLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIGlmIChwYWdpbmF0aW9uLmhhc01vcmUpIHtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLmRpbShgICBVc2UgJHtjb2xvcnMuY29kZShcImNvbnZlcnNhdGlvbnMgbGlzdCAtLW9mZnNldCAyMFwiKX0gdG8gc2VlIG1vcmVgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class ConversationsList extends AuthenticatedCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
limit: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
+
offset: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
+
status: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
9
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
10
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { apiClient } from "../../lib/api-client.js";
|
|
4
|
+
import { table, json, info, formatStatus, formatRelativeTime, formatPhone, colors, isJsonMode, } from "../../lib/output.js";
|
|
5
|
+
export default class ConversationsList extends AuthenticatedCommand {
|
|
6
|
+
static description = "List conversations";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> conversations list",
|
|
9
|
+
"<%= config.bin %> conversations list --status active",
|
|
10
|
+
"<%= config.bin %> conversations list --limit 10",
|
|
11
|
+
"<%= config.bin %> conversations list --json",
|
|
12
|
+
];
|
|
13
|
+
static flags = {
|
|
14
|
+
...AuthenticatedCommand.baseFlags,
|
|
15
|
+
limit: Flags.integer({
|
|
16
|
+
char: "l",
|
|
17
|
+
description: "Number of conversations per page",
|
|
18
|
+
default: 20,
|
|
19
|
+
}),
|
|
20
|
+
offset: Flags.integer({
|
|
21
|
+
description: "Offset from start",
|
|
22
|
+
}),
|
|
23
|
+
status: Flags.string({
|
|
24
|
+
char: "s",
|
|
25
|
+
description: "Filter by status (active, closed)",
|
|
26
|
+
options: ["active", "closed"],
|
|
27
|
+
}),
|
|
28
|
+
};
|
|
29
|
+
async run() {
|
|
30
|
+
const { flags } = await this.parse(ConversationsList);
|
|
31
|
+
const response = await apiClient.get("/api/v1/conversations", {
|
|
32
|
+
limit: flags.limit,
|
|
33
|
+
...(flags.offset != null && { offset: flags.offset }),
|
|
34
|
+
...(flags.status && { status: flags.status }),
|
|
35
|
+
});
|
|
36
|
+
if (isJsonMode()) {
|
|
37
|
+
json(response);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (response.data.length === 0) {
|
|
41
|
+
info("No conversations found");
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const pagination = response.pagination;
|
|
45
|
+
console.log();
|
|
46
|
+
console.log(colors.dim(`Showing ${response.data.length} conversations (${pagination.total} total)`));
|
|
47
|
+
console.log();
|
|
48
|
+
table(response.data, [
|
|
49
|
+
{
|
|
50
|
+
header: "Phone Number",
|
|
51
|
+
key: "phoneNumber",
|
|
52
|
+
width: 16,
|
|
53
|
+
formatter: (v) => formatPhone(String(v)),
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
header: "Status",
|
|
57
|
+
key: "status",
|
|
58
|
+
width: 10,
|
|
59
|
+
formatter: (v) => formatStatus(String(v)),
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
header: "Messages",
|
|
63
|
+
key: "messageCount",
|
|
64
|
+
width: 10,
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
header: "Unread",
|
|
68
|
+
key: "unreadCount",
|
|
69
|
+
width: 8,
|
|
70
|
+
formatter: (v) => {
|
|
71
|
+
const count = Number(v);
|
|
72
|
+
return count > 0 ? colors.warning(String(count)) : String(count);
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
header: "Last Message",
|
|
77
|
+
key: "lastMessageText",
|
|
78
|
+
width: 25,
|
|
79
|
+
formatter: (v) => {
|
|
80
|
+
if (!v)
|
|
81
|
+
return colors.dim("-");
|
|
82
|
+
const text = String(v);
|
|
83
|
+
return text.length > 22 ? text.slice(0, 22) + "..." : text;
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
header: "Last Activity",
|
|
88
|
+
key: "lastMessageAt",
|
|
89
|
+
width: 14,
|
|
90
|
+
formatter: (v) => (v ? formatRelativeTime(String(v)) : colors.dim("-")),
|
|
91
|
+
},
|
|
92
|
+
]);
|
|
93
|
+
if (pagination.hasMore) {
|
|
94
|
+
console.log();
|
|
95
|
+
console.log(colors.dim(` Use ${colors.code(`--offset ${(flags.offset || 0) + flags.limit}`)} to see more`));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9jb252ZXJzYXRpb25zL2xpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLEtBQUssRUFDTCxJQUFJLEVBQ0osSUFBSSxFQUNKLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxxQkFBcUIsQ0FBQztBQXdCN0IsTUFBTSxDQUFDLE9BQU8sT0FBTyxpQkFBa0IsU0FBUSxvQkFBb0I7SUFDakUsTUFBTSxDQUFDLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUUxQyxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLHNDQUFzQztRQUN0QyxzREFBc0Q7UUFDdEQsaURBQWlEO1FBQ2pELDZDQUE2QztLQUM5QyxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNuQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSxrQ0FBa0M7WUFDL0MsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBQ0YsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDcEIsV0FBVyxFQUFFLG1CQUFtQjtTQUNqQyxDQUFDO1FBQ0YsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbkIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsbUNBQW1DO1lBQ2hELE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7U0FDOUIsQ0FBQztLQUNILENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV0RCxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQ2xDLHVCQUF1QixFQUN2QjtZQUNFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3JELEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM5QyxDQUNGLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQy9CLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUV2QyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxHQUFHLENBQ1IsV0FBVyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sbUJBQW1CLFVBQVUsQ0FBQyxLQUFLLFNBQVMsQ0FDNUUsQ0FDRixDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDbkI7Z0JBQ0UsTUFBTSxFQUFFLGNBQWM7Z0JBQ3RCLEdBQUcsRUFBRSxhQUFhO2dCQUNsQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekM7WUFDRDtnQkFDRSxNQUFNLEVBQUUsUUFBUTtnQkFDaEIsR0FBRyxFQUFFLFFBQVE7Z0JBQ2IsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFDO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFVBQVU7Z0JBQ2xCLEdBQUcsRUFBRSxjQUFjO2dCQUNuQixLQUFLLEVBQUUsRUFBRTthQUNWO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLEdBQUcsRUFBRSxhQUFhO2dCQUNsQixLQUFLLEVBQUUsQ0FBQztnQkFDUixTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDZixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3hCLE9BQU8sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuRSxDQUFDO2FBQ0Y7WUFDRDtnQkFDRSxNQUFNLEVBQUUsY0FBYztnQkFDdEIsR0FBRyxFQUFFLGlCQUFpQjtnQkFDdEIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLENBQUM7d0JBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMvQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUM3RCxDQUFDO2FBQ0Y7WUFDRDtnQkFDRSxNQUFNLEVBQUUsZUFBZTtnQkFDdkIsR0FBRyxFQUFFLGVBQWU7Z0JBQ3BCLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hFO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxNQUFNLENBQUMsR0FBRyxDQUNSLFNBQVMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsY0FBYyxDQUNwRixDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHRhYmxlLFxuICBqc29uLFxuICBpbmZvLFxuICBmb3JtYXRTdGF0dXMsXG4gIGZvcm1hdFJlbGF0aXZlVGltZSxcbiAgZm9ybWF0UGhvbmUsXG4gIGNvbG9ycyxcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIENvbnZlcnNhdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBtZXNzYWdlQ291bnQ6IG51bWJlcjtcbiAgdW5yZWFkQ291bnQ6IG51bWJlcjtcbiAgbGFzdE1lc3NhZ2VUZXh0Pzogc3RyaW5nO1xuICBsYXN0TWVzc2FnZUF0Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUGFnaW5hdGlvbiB7XG4gIHRvdGFsOiBudW1iZXI7XG4gIGxpbWl0OiBudW1iZXI7XG4gIG9mZnNldDogbnVtYmVyO1xuICBoYXNNb3JlOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgTGlzdENvbnZlcnNhdGlvbnNSZXNwb25zZSB7XG4gIGRhdGE6IENvbnZlcnNhdGlvbltdO1xuICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb252ZXJzYXRpb25zTGlzdCBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJMaXN0IGNvbnZlcnNhdGlvbnNcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBjb252ZXJzYXRpb25zIGxpc3RcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGNvbnZlcnNhdGlvbnMgbGlzdCAtLXN0YXR1cyBhY3RpdmVcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGNvbnZlcnNhdGlvbnMgbGlzdCAtLWxpbWl0IDEwXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBjb252ZXJzYXRpb25zIGxpc3QgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBsaW1pdDogRmxhZ3MuaW50ZWdlcih7XG4gICAgICBjaGFyOiBcImxcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk51bWJlciBvZiBjb252ZXJzYXRpb25zIHBlciBwYWdlXCIsXG4gICAgICBkZWZhdWx0OiAyMCxcbiAgICB9KSxcbiAgICBvZmZzZXQ6IEZsYWdzLmludGVnZXIoe1xuICAgICAgZGVzY3JpcHRpb246IFwiT2Zmc2V0IGZyb20gc3RhcnRcIixcbiAgICB9KSxcbiAgICBzdGF0dXM6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcInNcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkZpbHRlciBieSBzdGF0dXMgKGFjdGl2ZSwgY2xvc2VkKVwiLFxuICAgICAgb3B0aW9uczogW1wiYWN0aXZlXCIsIFwiY2xvc2VkXCJdLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKENvbnZlcnNhdGlvbnNMaXN0KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LmdldDxMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlPihcbiAgICAgIFwiL2FwaS92MS9jb252ZXJzYXRpb25zXCIsXG4gICAgICB7XG4gICAgICAgIGxpbWl0OiBmbGFncy5saW1pdCxcbiAgICAgICAgLi4uKGZsYWdzLm9mZnNldCAhPSBudWxsICYmIHsgb2Zmc2V0OiBmbGFncy5vZmZzZXQgfSksXG4gICAgICAgIC4uLihmbGFncy5zdGF0dXMgJiYgeyBzdGF0dXM6IGZsYWdzLnN0YXR1cyB9KSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5mbyhcIk5vIGNvbnZlcnNhdGlvbnMgZm91bmRcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFnaW5hdGlvbiA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgYFNob3dpbmcgJHtyZXNwb25zZS5kYXRhLmxlbmd0aH0gY29udmVyc2F0aW9ucyAoJHtwYWdpbmF0aW9uLnRvdGFsfSB0b3RhbClgLFxuICAgICAgKSxcbiAgICApO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICB0YWJsZShyZXNwb25zZS5kYXRhLCBbXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJQaG9uZSBOdW1iZXJcIixcbiAgICAgICAga2V5OiBcInBob25lTnVtYmVyXCIsXG4gICAgICAgIHdpZHRoOiAxNixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gZm9ybWF0UGhvbmUoU3RyaW5nKHYpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJTdGF0dXNcIixcbiAgICAgICAga2V5OiBcInN0YXR1c1wiLFxuICAgICAgICB3aWR0aDogMTAsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGZvcm1hdFN0YXR1cyhTdHJpbmcodikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIk1lc3NhZ2VzXCIsXG4gICAgICAgIGtleTogXCJtZXNzYWdlQ291bnRcIixcbiAgICAgICAgd2lkdGg6IDEwLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlVucmVhZFwiLFxuICAgICAgICBrZXk6IFwidW5yZWFkQ291bnRcIixcbiAgICAgICAgd2lkdGg6IDgsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3VudCA9IE51bWJlcih2KTtcbiAgICAgICAgICByZXR1cm4gY291bnQgPiAwID8gY29sb3JzLndhcm5pbmcoU3RyaW5nKGNvdW50KSkgOiBTdHJpbmcoY291bnQpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkxhc3QgTWVzc2FnZVwiLFxuICAgICAgICBrZXk6IFwibGFzdE1lc3NhZ2VUZXh0XCIsXG4gICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4ge1xuICAgICAgICAgIGlmICghdikgcmV0dXJuIGNvbG9ycy5kaW0oXCItXCIpO1xuICAgICAgICAgIGNvbnN0IHRleHQgPSBTdHJpbmcodik7XG4gICAgICAgICAgcmV0dXJuIHRleHQubGVuZ3RoID4gMjIgPyB0ZXh0LnNsaWNlKDAsIDIyKSArIFwiLi4uXCIgOiB0ZXh0O1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkxhc3QgQWN0aXZpdHlcIixcbiAgICAgICAga2V5OiBcImxhc3RNZXNzYWdlQXRcIixcbiAgICAgICAgd2lkdGg6IDE0LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiAodiA/IGZvcm1hdFJlbGF0aXZlVGltZShTdHJpbmcodikpIDogY29sb3JzLmRpbShcIi1cIikpLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIGlmIChwYWdpbmF0aW9uLmhhc01vcmUpIHtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgICBgICBVc2UgJHtjb2xvcnMuY29kZShgLS1vZmZzZXQgJHsoZmxhZ3Mub2Zmc2V0IHx8IDApICsgZmxhZ3MubGltaXR9YCl9IHRvIHNlZSBtb3JlYCxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class ConversationsMarkRead 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
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
10
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Args } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { apiClient } from "../../lib/api-client.js";
|
|
4
|
+
import { success, json, spinner, isJsonMode, } from "../../lib/output.js";
|
|
5
|
+
export default class ConversationsMarkRead extends AuthenticatedCommand {
|
|
6
|
+
static description = "Mark a conversation as read";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> conversations mark-read conv_abc123",
|
|
9
|
+
"<%= config.bin %> conversations mark-read conv_abc123 --json",
|
|
10
|
+
];
|
|
11
|
+
static args = {
|
|
12
|
+
id: Args.string({
|
|
13
|
+
description: "Conversation ID",
|
|
14
|
+
required: true,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
static flags = {
|
|
18
|
+
...AuthenticatedCommand.baseFlags,
|
|
19
|
+
};
|
|
20
|
+
async run() {
|
|
21
|
+
const { args } = await this.parse(ConversationsMarkRead);
|
|
22
|
+
const spin = spinner("Marking conversation as read...");
|
|
23
|
+
spin.start();
|
|
24
|
+
try {
|
|
25
|
+
const response = await apiClient.post(`/api/v1/conversations/${encodeURIComponent(args.id)}/mark-read`);
|
|
26
|
+
spin.stop();
|
|
27
|
+
if (isJsonMode()) {
|
|
28
|
+
json(response);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
success("Conversation marked as read", {
|
|
32
|
+
ID: response.id,
|
|
33
|
+
"Phone Number": response.phoneNumber,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
spin.stop();
|
|
38
|
+
throw err;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay1yZWFkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2NvbnZlcnNhdGlvbnMvbWFyay1yZWFkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFDTCxPQUFPLEVBQ1AsSUFBSSxFQUNKLE9BQU8sRUFDUCxVQUFVLEdBQ1gsTUFBTSxxQkFBcUIsQ0FBQztBQVE3QixNQUFNLENBQUMsT0FBTyxPQUFPLHFCQUFzQixTQUFRLG9CQUFvQjtJQUNyRSxNQUFNLENBQUMsV0FBVyxHQUFHLDZCQUE2QixDQUFDO0lBRW5ELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsdURBQXVEO1FBQ3ZELDhEQUE4RDtLQUMvRCxDQUFDO0lBRUYsTUFBTSxDQUFDLElBQUksR0FBRztRQUNaLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2QsV0FBVyxFQUFFLGlCQUFpQjtZQUM5QixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFekQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUNuQyx5QkFBeUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQ2pFLENBQUM7WUFFRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFWixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDZixPQUFPO1lBQ1QsQ0FBQztZQUVELE9BQU8sQ0FBQyw2QkFBNkIsRUFBRTtnQkFDckMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUNmLGNBQWMsRUFBRSxRQUFRLENBQUMsV0FBVzthQUNyQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGpzb24sXG4gIHNwaW5uZXIsXG4gIGlzSnNvbk1vZGUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBDb252ZXJzYXRpb25SZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIHVucmVhZENvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnZlcnNhdGlvbnNNYXJrUmVhZCBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJNYXJrIGEgY29udmVyc2F0aW9uIGFzIHJlYWRcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBjb252ZXJzYXRpb25zIG1hcmstcmVhZCBjb252X2FiYzEyM1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY29udmVyc2F0aW9ucyBtYXJrLXJlYWQgY29udl9hYmMxMjMgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGFyZ3MgPSB7XG4gICAgaWQ6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkNvbnZlcnNhdGlvbiBJRFwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhcmdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKENvbnZlcnNhdGlvbnNNYXJrUmVhZCk7XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIk1hcmtpbmcgY29udmVyc2F0aW9uIGFzIHJlYWQuLi5cIik7XG4gICAgc3Bpbi5zdGFydCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8Q29udmVyc2F0aW9uUmVzcG9uc2U+KFxuICAgICAgICBgL2FwaS92MS9jb252ZXJzYXRpb25zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3MuaWQpfS9tYXJrLXJlYWRgLFxuICAgICAgKTtcblxuICAgICAgc3Bpbi5zdG9wKCk7XG5cbiAgICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc3VjY2VzcyhcIkNvbnZlcnNhdGlvbiBtYXJrZWQgYXMgcmVhZFwiLCB7XG4gICAgICAgIElEOiByZXNwb25zZS5pZCxcbiAgICAgICAgXCJQaG9uZSBOdW1iZXJcIjogcmVzcG9uc2UucGhvbmVOdW1iZXIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNwaW4uc3RvcCgpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class ConversationsReopen 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
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
10
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Args } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { apiClient } from "../../lib/api-client.js";
|
|
4
|
+
import { success, json, spinner, isJsonMode, } from "../../lib/output.js";
|
|
5
|
+
export default class ConversationsReopen extends AuthenticatedCommand {
|
|
6
|
+
static description = "Reopen a closed conversation";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> conversations reopen conv_abc123",
|
|
9
|
+
"<%= config.bin %> conversations reopen conv_abc123 --json",
|
|
10
|
+
];
|
|
11
|
+
static args = {
|
|
12
|
+
id: Args.string({
|
|
13
|
+
description: "Conversation ID",
|
|
14
|
+
required: true,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
static flags = {
|
|
18
|
+
...AuthenticatedCommand.baseFlags,
|
|
19
|
+
};
|
|
20
|
+
async run() {
|
|
21
|
+
const { args } = await this.parse(ConversationsReopen);
|
|
22
|
+
const spin = spinner("Reopening conversation...");
|
|
23
|
+
spin.start();
|
|
24
|
+
try {
|
|
25
|
+
const response = await apiClient.post(`/api/v1/conversations/${encodeURIComponent(args.id)}/reopen`);
|
|
26
|
+
spin.stop();
|
|
27
|
+
if (isJsonMode()) {
|
|
28
|
+
json(response);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
success("Conversation reopened", {
|
|
32
|
+
ID: response.id,
|
|
33
|
+
"Phone Number": response.phoneNumber,
|
|
34
|
+
Status: response.status,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
spin.stop();
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVvcGVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2NvbnZlcnNhdGlvbnMvcmVvcGVuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFDTCxPQUFPLEVBQ1AsSUFBSSxFQUNKLE9BQU8sRUFDUCxVQUFVLEdBQ1gsTUFBTSxxQkFBcUIsQ0FBQztBQVE3QixNQUFNLENBQUMsT0FBTyxPQUFPLG1CQUFvQixTQUFRLG9CQUFvQjtJQUNuRSxNQUFNLENBQUMsV0FBVyxHQUFHLDhCQUE4QixDQUFDO0lBRXBELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsb0RBQW9EO1FBQ3BELDJEQUEyRDtLQUM1RCxDQUFDO0lBRUYsTUFBTSxDQUFDLElBQUksR0FBRztRQUNaLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2QsV0FBVyxFQUFFLGlCQUFpQjtZQUM5QixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFdkQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUNuQyx5QkFBeUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQzlELENBQUM7WUFFRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFWixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDZixPQUFPO1lBQ1QsQ0FBQztZQUVELE9BQU8sQ0FBQyx1QkFBdUIsRUFBRTtnQkFDL0IsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUNmLGNBQWMsRUFBRSxRQUFRLENBQUMsV0FBVztnQkFDcEMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAgc3VjY2VzcyxcbiAganNvbixcbiAgc3Bpbm5lcixcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIENvbnZlcnNhdGlvblJlc3BvbnNlIHtcbiAgaWQ6IHN0cmluZztcbiAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnZlcnNhdGlvbnNSZW9wZW4gZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiUmVvcGVuIGEgY2xvc2VkIGNvbnZlcnNhdGlvblwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGNvbnZlcnNhdGlvbnMgcmVvcGVuIGNvbnZfYWJjMTIzXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBjb252ZXJzYXRpb25zIHJlb3BlbiBjb252X2FiYzEyMyAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICBpZDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiQ29udmVyc2F0aW9uIElEXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGFyZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoQ29udmVyc2F0aW9uc1Jlb3Blbik7XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIlJlb3BlbmluZyBjb252ZXJzYXRpb24uLi5cIik7XG4gICAgc3Bpbi5zdGFydCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8Q29udmVyc2F0aW9uUmVzcG9uc2U+KFxuICAgICAgICBgL2FwaS92MS9jb252ZXJzYXRpb25zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3MuaWQpfS9yZW9wZW5gLFxuICAgICAgKTtcblxuICAgICAgc3Bpbi5zdG9wKCk7XG5cbiAgICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc3VjY2VzcyhcIkNvbnZlcnNhdGlvbiByZW9wZW5lZFwiLCB7XG4gICAgICAgIElEOiByZXNwb25zZS5pZCxcbiAgICAgICAgXCJQaG9uZSBOdW1iZXJcIjogcmVzcG9uc2UucGhvbmVOdW1iZXIsXG4gICAgICAgIFN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzcGluLnN0b3AoKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class ConversationsReply 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
|
+
text: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
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,47 @@
|
|
|
1
|
+
import { Args } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { apiClient } from "../../lib/api-client.js";
|
|
4
|
+
import { success, json, spinner, isJsonMode, } from "../../lib/output.js";
|
|
5
|
+
export default class ConversationsReply extends AuthenticatedCommand {
|
|
6
|
+
static description = "Send a reply in a conversation";
|
|
7
|
+
static examples = [
|
|
8
|
+
'<%= config.bin %> conversations reply conv_abc123 "Thanks for reaching out!"',
|
|
9
|
+
'<%= config.bin %> conversations reply conv_abc123 "Got it" --json',
|
|
10
|
+
];
|
|
11
|
+
static args = {
|
|
12
|
+
id: Args.string({
|
|
13
|
+
description: "Conversation ID",
|
|
14
|
+
required: true,
|
|
15
|
+
}),
|
|
16
|
+
text: Args.string({
|
|
17
|
+
description: "Reply message text",
|
|
18
|
+
required: true,
|
|
19
|
+
}),
|
|
20
|
+
};
|
|
21
|
+
static flags = {
|
|
22
|
+
...AuthenticatedCommand.baseFlags,
|
|
23
|
+
};
|
|
24
|
+
async run() {
|
|
25
|
+
const { args } = await this.parse(ConversationsReply);
|
|
26
|
+
const spin = spinner("Sending reply...");
|
|
27
|
+
spin.start();
|
|
28
|
+
try {
|
|
29
|
+
const response = await apiClient.post(`/api/v1/conversations/${encodeURIComponent(args.id)}/messages`, { text: args.text });
|
|
30
|
+
spin.stop();
|
|
31
|
+
if (isJsonMode()) {
|
|
32
|
+
json(response);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
success("Reply sent", {
|
|
36
|
+
ID: response.id,
|
|
37
|
+
To: response.to,
|
|
38
|
+
Status: response.status,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
spin.stop();
|
|
43
|
+
throw err;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvY29udmVyc2F0aW9ucy9yZXBseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsT0FBTyxFQUNQLElBQUksRUFDSixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFXN0IsTUFBTSxDQUFDLE9BQU8sT0FBTyxrQkFBbUIsU0FBUSxvQkFBb0I7SUFDbEUsTUFBTSxDQUFDLFdBQVcsR0FBRyxnQ0FBZ0MsQ0FBQztJQUV0RCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDhFQUE4RTtRQUM5RSxtRUFBbUU7S0FDcEUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNkLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDaEIsV0FBVyxFQUFFLG9CQUFvQjtZQUNqQyxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFdEQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUNuQyx5QkFBeUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQy9ELEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FDcEIsQ0FBQztZQUVGLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVaLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNmLE9BQU87WUFDVCxDQUFDO1lBRUQsT0FBTyxDQUFDLFlBQVksRUFBRTtnQkFDcEIsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUNmLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRTtnQkFDZixNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07YUFDeEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBzdWNjZXNzLFxuICBqc29uLFxuICBzcGlubmVyLFxuICBpc0pzb25Nb2RlLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgUmVwbHlSZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHRvOiBzdHJpbmc7XG4gIGZyb206IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnZlcnNhdGlvbnNSZXBseSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJTZW5kIGEgcmVwbHkgaW4gYSBjb252ZXJzYXRpb25cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgJzwlPSBjb25maWcuYmluICU+IGNvbnZlcnNhdGlvbnMgcmVwbHkgY29udl9hYmMxMjMgXCJUaGFua3MgZm9yIHJlYWNoaW5nIG91dCFcIicsXG4gICAgJzwlPSBjb25maWcuYmluICU+IGNvbnZlcnNhdGlvbnMgcmVwbHkgY29udl9hYmMxMjMgXCJHb3QgaXRcIiAtLWpzb24nLFxuICBdO1xuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIGlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJDb252ZXJzYXRpb24gSURcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICAgIHRleHQ6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlJlcGx5IG1lc3NhZ2UgdGV4dFwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhcmdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKENvbnZlcnNhdGlvbnNSZXBseSk7XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIlNlbmRpbmcgcmVwbHkuLi5cIik7XG4gICAgc3Bpbi5zdGFydCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8UmVwbHlSZXNwb25zZT4oXG4gICAgICAgIGAvYXBpL3YxL2NvbnZlcnNhdGlvbnMvJHtlbmNvZGVVUklDb21wb25lbnQoYXJncy5pZCl9L21lc3NhZ2VzYCxcbiAgICAgICAgeyB0ZXh0OiBhcmdzLnRleHQgfSxcbiAgICAgICk7XG5cbiAgICAgIHNwaW4uc3RvcCgpO1xuXG4gICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHN1Y2Nlc3MoXCJSZXBseSBzZW50XCIsIHtcbiAgICAgICAgSUQ6IHJlc3BvbnNlLmlkLFxuICAgICAgICBUbzogcmVzcG9uc2UudG8sXG4gICAgICAgIFN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzcGluLnN0b3AoKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class DraftsApprove 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
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
10
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|