@sendly/cli 3.36.0 → 3.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +204 -1
- package/dist/commands/10dlc/assignments/list.d.ts +10 -0
- package/dist/commands/10dlc/assignments/list.js +67 -0
- package/dist/commands/10dlc/brands/create.d.ts +25 -0
- package/dist/commands/10dlc/brands/create.js +89 -0
- package/dist/commands/10dlc/brands/get.d.ts +13 -0
- package/dist/commands/10dlc/brands/get.js +63 -0
- package/dist/commands/10dlc/brands/list.d.ts +10 -0
- package/dist/commands/10dlc/brands/list.js +63 -0
- package/dist/commands/10dlc/campaigns/assign.d.ts +14 -0
- package/dist/commands/10dlc/campaigns/assign.js +64 -0
- package/dist/commands/10dlc/campaigns/create.d.ts +24 -0
- package/dist/commands/10dlc/campaigns/create.js +118 -0
- package/dist/commands/10dlc/campaigns/get.d.ts +13 -0
- package/dist/commands/10dlc/campaigns/get.js +84 -0
- package/dist/commands/10dlc/campaigns/list.d.ts +10 -0
- package/dist/commands/10dlc/campaigns/list.js +70 -0
- package/dist/commands/10dlc/qualify.d.ts +14 -0
- package/dist/commands/10dlc/qualify.js +56 -0
- package/dist/commands/keys/rotate.js +7 -12
- package/dist/commands/links/create.d.ts +24 -0
- package/dist/commands/links/create.js +71 -0
- package/dist/commands/links/disable.d.ts +21 -0
- package/dist/commands/links/disable.js +55 -0
- package/dist/commands/links/list.d.ts +19 -0
- package/dist/commands/links/list.js +85 -0
- package/dist/commands/numbers/buy.js +15 -1
- package/dist/commands/numbers/get.d.ts +20 -0
- package/dist/commands/numbers/get.js +52 -0
- package/dist/commands/numbers/list.js +18 -1
- package/dist/commands/numbers/release.d.ts +23 -0
- package/dist/commands/numbers/release.js +67 -0
- package/dist/commands/numbers/update.d.ts +25 -0
- package/dist/commands/numbers/update.js +70 -0
- package/dist/commands/sms/group.d.ts +25 -0
- package/dist/commands/sms/group.js +164 -0
- package/dist/commands/sms/upload-media.d.ts +1 -1
- package/dist/commands/sms/upload-media.js +4 -4
- package/dist/commands/templates/enhance.js +3 -3
- package/dist/commands/upgrade.d.ts +1 -16
- package/dist/commands/upgrade.js +131 -38
- package/oclif.manifest.json +3964 -2966
- package/package.json +16 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Args, Flags } from "@oclif/core";
|
|
2
|
+
import inquirer from "inquirer";
|
|
3
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
4
|
+
import { apiClient } from "../../lib/api-client.js";
|
|
5
|
+
import { success, info, json, colors, isJsonMode } from "../../lib/output.js";
|
|
6
|
+
/**
|
|
7
|
+
* `sendly numbers release <id>` — give up a number you own. A live paid
|
|
8
|
+
* purchase is scheduled to release at the end of the current billing period
|
|
9
|
+
* (undo with `sendly numbers update <id> --keep`); anything else is released at
|
|
10
|
+
* the carrier immediately.
|
|
11
|
+
*
|
|
12
|
+
* Wraps `DELETE /api/v1/numbers/:id`. Prompts for confirmation unless --yes is
|
|
13
|
+
* passed. Returns 404 when the id isn't one of your numbers.
|
|
14
|
+
*/
|
|
15
|
+
export default class NumbersRelease extends AuthenticatedCommand {
|
|
16
|
+
static description = "Release a number you own (paid purchases release at period end, others immediately)";
|
|
17
|
+
static examples = [
|
|
18
|
+
"<%= config.bin %> numbers release num_abc123",
|
|
19
|
+
"<%= config.bin %> numbers release num_abc123 --yes",
|
|
20
|
+
"<%= config.bin %> numbers release num_abc123 --json",
|
|
21
|
+
];
|
|
22
|
+
static args = {
|
|
23
|
+
id: Args.string({
|
|
24
|
+
description: "Phone number ID (from `sendly numbers list`)",
|
|
25
|
+
required: true,
|
|
26
|
+
}),
|
|
27
|
+
};
|
|
28
|
+
static flags = {
|
|
29
|
+
...AuthenticatedCommand.baseFlags,
|
|
30
|
+
yes: Flags.boolean({
|
|
31
|
+
char: "y",
|
|
32
|
+
description: "Skip confirmation prompt",
|
|
33
|
+
default: false,
|
|
34
|
+
}),
|
|
35
|
+
};
|
|
36
|
+
async run() {
|
|
37
|
+
const { args, flags } = await this.parse(NumbersRelease);
|
|
38
|
+
if (!flags.yes && !isJsonMode() && process.stdin.isTTY) {
|
|
39
|
+
const { confirm } = await inquirer.prompt([
|
|
40
|
+
{
|
|
41
|
+
type: "confirm",
|
|
42
|
+
name: "confirm",
|
|
43
|
+
message: `Release ${colors.code(args.id)}? Paid numbers release at the end of the billing period; everything else releases immediately.`,
|
|
44
|
+
default: false,
|
|
45
|
+
},
|
|
46
|
+
]);
|
|
47
|
+
if (!confirm) {
|
|
48
|
+
info("Release cancelled");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const response = await apiClient.delete(`/api/v1/numbers/${encodeURIComponent(args.id)}`);
|
|
53
|
+
if (isJsonMode()) {
|
|
54
|
+
json(response);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (response.scheduled && response.scheduledReleaseAt) {
|
|
58
|
+
success("Number scheduled for release", {
|
|
59
|
+
Releases: new Date(response.scheduledReleaseAt).toLocaleDateString(),
|
|
60
|
+
Note: `It stays active until then. Undo with: sendly numbers update ${args.id} --keep`,
|
|
61
|
+
});
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
success("Number released");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9udW1iZXJzL3JlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxRQUFRLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBUTlFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBQzlELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLHFGQUFxRixDQUFDO0lBRXhGLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsOENBQThDO1FBQzlDLG9EQUFvRDtRQUNwRCxxREFBcUQ7S0FDdEQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNkLFdBQVcsRUFBRSw4Q0FBOEM7WUFDM0QsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsMEJBQTBCO1lBQ3ZDLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2RCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUN4QztvQkFDRSxJQUFJLEVBQUUsU0FBUztvQkFDZixJQUFJLEVBQUUsU0FBUztvQkFDZixPQUFPLEVBQUUsV0FBVyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZ0dBQWdHO29CQUN4SSxPQUFPLEVBQUUsS0FBSztpQkFDZjthQUNGLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDMUIsT0FBTztZQUNULENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsTUFBTSxDQUNyQyxtQkFBbUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQ2pELENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDdEQsT0FBTyxDQUFDLDhCQUE4QixFQUFFO2dCQUN0QyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3BFLElBQUksRUFBRSxnRUFBZ0UsSUFBSSxDQUFDLEVBQUUsU0FBUzthQUN2RixDQUFDLENBQUM7WUFDSCxPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmdzLCBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IGlucXVpcmVyIGZyb20gXCJpbnF1aXJlclwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQgeyBzdWNjZXNzLCBpbmZvLCBqc29uLCBjb2xvcnMsIGlzSnNvbk1vZGUgfSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgUmVsZWFzZVJlc3BvbnNlIHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgc2NoZWR1bGVkPzogYm9vbGVhbjtcbiAgc2NoZWR1bGVkUmVsZWFzZUF0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIGBzZW5kbHkgbnVtYmVycyByZWxlYXNlIDxpZD5gIOKAlCBnaXZlIHVwIGEgbnVtYmVyIHlvdSBvd24uIEEgbGl2ZSBwYWlkXG4gKiBwdXJjaGFzZSBpcyBzY2hlZHVsZWQgdG8gcmVsZWFzZSBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IGJpbGxpbmcgcGVyaW9kXG4gKiAodW5kbyB3aXRoIGBzZW5kbHkgbnVtYmVycyB1cGRhdGUgPGlkPiAtLWtlZXBgKTsgYW55dGhpbmcgZWxzZSBpcyByZWxlYXNlZCBhdFxuICogdGhlIGNhcnJpZXIgaW1tZWRpYXRlbHkuXG4gKlxuICogV3JhcHMgYERFTEVURSAvYXBpL3YxL251bWJlcnMvOmlkYC4gUHJvbXB0cyBmb3IgY29uZmlybWF0aW9uIHVubGVzcyAtLXllcyBpc1xuICogcGFzc2VkLiBSZXR1cm5zIDQwNCB3aGVuIHRoZSBpZCBpc24ndCBvbmUgb2YgeW91ciBudW1iZXJzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOdW1iZXJzUmVsZWFzZSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIlJlbGVhc2UgYSBudW1iZXIgeW91IG93biAocGFpZCBwdXJjaGFzZXMgcmVsZWFzZSBhdCBwZXJpb2QgZW5kLCBvdGhlcnMgaW1tZWRpYXRlbHkpXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbnVtYmVycyByZWxlYXNlIG51bV9hYmMxMjNcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IG51bWJlcnMgcmVsZWFzZSBudW1fYWJjMTIzIC0teWVzXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBudW1iZXJzIHJlbGVhc2UgbnVtX2FiYzEyMyAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICBpZDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiUGhvbmUgbnVtYmVyIElEIChmcm9tIGBzZW5kbHkgbnVtYmVycyBsaXN0YClcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgeWVzOiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGNoYXI6IFwieVwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiU2tpcCBjb25maXJtYXRpb24gcHJvbXB0XCIsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhcmdzLCBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShOdW1iZXJzUmVsZWFzZSk7XG5cbiAgICBpZiAoIWZsYWdzLnllcyAmJiAhaXNKc29uTW9kZSgpICYmIHByb2Nlc3Muc3RkaW4uaXNUVFkpIHtcbiAgICAgIGNvbnN0IHsgY29uZmlybSB9ID0gYXdhaXQgaW5xdWlyZXIucHJvbXB0KFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiY29uZmlybVwiLFxuICAgICAgICAgIG5hbWU6IFwiY29uZmlybVwiLFxuICAgICAgICAgIG1lc3NhZ2U6IGBSZWxlYXNlICR7Y29sb3JzLmNvZGUoYXJncy5pZCl9PyBQYWlkIG51bWJlcnMgcmVsZWFzZSBhdCB0aGUgZW5kIG9mIHRoZSBiaWxsaW5nIHBlcmlvZDsgZXZlcnl0aGluZyBlbHNlIHJlbGVhc2VzIGltbWVkaWF0ZWx5LmAsXG4gICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICAgIGlmICghY29uZmlybSkge1xuICAgICAgICBpbmZvKFwiUmVsZWFzZSBjYW5jZWxsZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5kZWxldGU8UmVsZWFzZVJlc3BvbnNlPihcbiAgICAgIGAvYXBpL3YxL251bWJlcnMvJHtlbmNvZGVVUklDb21wb25lbnQoYXJncy5pZCl9YCxcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlLnNjaGVkdWxlZCAmJiByZXNwb25zZS5zY2hlZHVsZWRSZWxlYXNlQXQpIHtcbiAgICAgIHN1Y2Nlc3MoXCJOdW1iZXIgc2NoZWR1bGVkIGZvciByZWxlYXNlXCIsIHtcbiAgICAgICAgUmVsZWFzZXM6IG5ldyBEYXRlKHJlc3BvbnNlLnNjaGVkdWxlZFJlbGVhc2VBdCkudG9Mb2NhbGVEYXRlU3RyaW5nKCksXG4gICAgICAgIE5vdGU6IGBJdCBzdGF5cyBhY3RpdmUgdW50aWwgdGhlbi4gVW5kbyB3aXRoOiBzZW5kbHkgbnVtYmVycyB1cGRhdGUgJHthcmdzLmlkfSAtLWtlZXBgLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcIk51bWJlciByZWxlYXNlZFwiKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
/**
|
|
3
|
+
* `sendly numbers update <id>` — mutate a number you own. Two mutations are
|
|
4
|
+
* supported today:
|
|
5
|
+
* --default make this the workspace default sender (the number must be
|
|
6
|
+
* active; the previous default is cleared atomically)
|
|
7
|
+
* --keep cancel a scheduled period-end release and keep the number
|
|
8
|
+
*
|
|
9
|
+
* Wraps `PATCH /api/v1/numbers/:id`. At least one of --default / --keep is
|
|
10
|
+
* required. Returns the full number record.
|
|
11
|
+
*/
|
|
12
|
+
export default class NumbersUpdate extends AuthenticatedCommand {
|
|
13
|
+
static description: string;
|
|
14
|
+
static examples: string[];
|
|
15
|
+
static args: {
|
|
16
|
+
id: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
|
|
17
|
+
};
|
|
18
|
+
static flags: {
|
|
19
|
+
default: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
20
|
+
keep: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
21
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
22
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
23
|
+
};
|
|
24
|
+
run(): Promise<void>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
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 { success, error, json, colors, formatStatus, isJsonMode, } from "../../lib/output.js";
|
|
5
|
+
/**
|
|
6
|
+
* `sendly numbers update <id>` — mutate a number you own. Two mutations are
|
|
7
|
+
* supported today:
|
|
8
|
+
* --default make this the workspace default sender (the number must be
|
|
9
|
+
* active; the previous default is cleared atomically)
|
|
10
|
+
* --keep cancel a scheduled period-end release and keep the number
|
|
11
|
+
*
|
|
12
|
+
* Wraps `PATCH /api/v1/numbers/:id`. At least one of --default / --keep is
|
|
13
|
+
* required. Returns the full number record.
|
|
14
|
+
*/
|
|
15
|
+
export default class NumbersUpdate extends AuthenticatedCommand {
|
|
16
|
+
static description = "Update a number you own: make it the default sender (--default) or cancel a scheduled release (--keep)";
|
|
17
|
+
static examples = [
|
|
18
|
+
"<%= config.bin %> numbers update num_abc123 --default",
|
|
19
|
+
"<%= config.bin %> numbers update num_abc123 --keep",
|
|
20
|
+
"<%= config.bin %> numbers update num_abc123 --default --json",
|
|
21
|
+
];
|
|
22
|
+
static args = {
|
|
23
|
+
id: Args.string({
|
|
24
|
+
description: "Phone number ID (from `sendly numbers list`)",
|
|
25
|
+
required: true,
|
|
26
|
+
}),
|
|
27
|
+
};
|
|
28
|
+
static flags = {
|
|
29
|
+
...AuthenticatedCommand.baseFlags,
|
|
30
|
+
default: Flags.boolean({
|
|
31
|
+
char: "d",
|
|
32
|
+
description: "Make this the workspace default sender (must be active)",
|
|
33
|
+
default: false,
|
|
34
|
+
}),
|
|
35
|
+
keep: Flags.boolean({
|
|
36
|
+
char: "k",
|
|
37
|
+
description: "Cancel a scheduled release and keep the number",
|
|
38
|
+
default: false,
|
|
39
|
+
}),
|
|
40
|
+
};
|
|
41
|
+
async run() {
|
|
42
|
+
const { args, flags } = await this.parse(NumbersUpdate);
|
|
43
|
+
const body = {};
|
|
44
|
+
if (flags.default)
|
|
45
|
+
body.isDefault = true;
|
|
46
|
+
if (flags.keep)
|
|
47
|
+
body.pendingCancellation = false;
|
|
48
|
+
if (Object.keys(body).length === 0) {
|
|
49
|
+
error("Nothing to update", {
|
|
50
|
+
hint: "Pass --default to make it the default sender, or --keep to cancel a scheduled release.",
|
|
51
|
+
});
|
|
52
|
+
this.exit(1);
|
|
53
|
+
}
|
|
54
|
+
const number = await apiClient.patch(`/api/v1/numbers/${encodeURIComponent(args.id)}`, body);
|
|
55
|
+
if (isJsonMode()) {
|
|
56
|
+
json(number);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
success("Number updated", {
|
|
60
|
+
ID: number.id,
|
|
61
|
+
Number: colors.code(number.phoneNumber),
|
|
62
|
+
Status: formatStatus(number.status),
|
|
63
|
+
Default: number.isDefault ? colors.success("yes") : "no",
|
|
64
|
+
"Pending release": number.pendingCancellation
|
|
65
|
+
? colors.warning("yes")
|
|
66
|
+
: "no",
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL251bWJlcnMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsT0FBTyxFQUNQLEtBQUssRUFDTCxJQUFJLEVBQ0osTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEdBQ1gsTUFBTSxxQkFBcUIsQ0FBQztBQWdCN0I7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxhQUFjLFNBQVEsb0JBQW9CO0lBQzdELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLHdHQUF3RyxDQUFDO0lBRTNHLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsdURBQXVEO1FBQ3ZELG9EQUFvRDtRQUNwRCw4REFBOEQ7S0FDL0QsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNkLFdBQVcsRUFBRSw4Q0FBOEM7WUFDM0QsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDckIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUseURBQXlEO1lBQ3RFLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQztRQUNGLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2xCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLGdEQUFnRDtZQUM3RCxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RCxNQUFNLElBQUksR0FBNEIsRUFBRSxDQUFDO1FBQ3pDLElBQUksS0FBSyxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN6QyxJQUFJLEtBQUssQ0FBQyxJQUFJO1lBQUUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUVqRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25DLEtBQUssQ0FBQyxtQkFBbUIsRUFBRTtnQkFDekIsSUFBSSxFQUFFLHdGQUF3RjthQUMvRixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssQ0FDbEMsbUJBQW1CLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUNoRCxJQUFJLENBQ0wsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDYixNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNuQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN4RCxpQkFBaUIsRUFBRSxNQUFNLENBQUMsbUJBQW1CO2dCQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxJQUFJO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MsIEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGVycm9yLFxuICBqc29uLFxuICBjb2xvcnMsXG4gIGZvcm1hdFN0YXR1cyxcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIE93bmVkTnVtYmVyIHtcbiAgaWQ6IHN0cmluZztcbiAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICBwaG9uZU51bWJlclR5cGU6IHN0cmluZztcbiAgbW9udGhseUNvc3RDZW50czogbnVtYmVyO1xuICBpc0RlZmF1bHQ/OiBib29sZWFuO1xuICByZXF1aXJlbWVudHNTdWJtaXR0ZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgcGVuZGluZ0NhbmNlbGxhdGlvbjogYm9vbGVhbjtcbiAgc2NoZWR1bGVkUmVsZWFzZUF0OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKipcbiAqIGBzZW5kbHkgbnVtYmVycyB1cGRhdGUgPGlkPmAg4oCUIG11dGF0ZSBhIG51bWJlciB5b3Ugb3duLiBUd28gbXV0YXRpb25zIGFyZVxuICogc3VwcG9ydGVkIHRvZGF5OlxuICogICAtLWRlZmF1bHQgICBtYWtlIHRoaXMgdGhlIHdvcmtzcGFjZSBkZWZhdWx0IHNlbmRlciAodGhlIG51bWJlciBtdXN0IGJlXG4gKiAgICAgICAgICAgICAgIGFjdGl2ZTsgdGhlIHByZXZpb3VzIGRlZmF1bHQgaXMgY2xlYXJlZCBhdG9taWNhbGx5KVxuICogICAtLWtlZXAgICAgICBjYW5jZWwgYSBzY2hlZHVsZWQgcGVyaW9kLWVuZCByZWxlYXNlIGFuZCBrZWVwIHRoZSBudW1iZXJcbiAqXG4gKiBXcmFwcyBgUEFUQ0ggL2FwaS92MS9udW1iZXJzLzppZGAuIEF0IGxlYXN0IG9uZSBvZiAtLWRlZmF1bHQgLyAtLWtlZXAgaXNcbiAqIHJlcXVpcmVkLiBSZXR1cm5zIHRoZSBmdWxsIG51bWJlciByZWNvcmQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE51bWJlcnNVcGRhdGUgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJVcGRhdGUgYSBudW1iZXIgeW91IG93bjogbWFrZSBpdCB0aGUgZGVmYXVsdCBzZW5kZXIgKC0tZGVmYXVsdCkgb3IgY2FuY2VsIGEgc2NoZWR1bGVkIHJlbGVhc2UgKC0ta2VlcClcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBudW1iZXJzIHVwZGF0ZSBudW1fYWJjMTIzIC0tZGVmYXVsdFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbnVtYmVycyB1cGRhdGUgbnVtX2FiYzEyMyAtLWtlZXBcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IG51bWJlcnMgdXBkYXRlIG51bV9hYmMxMjMgLS1kZWZhdWx0IC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIGlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJQaG9uZSBudW1iZXIgSUQgKGZyb20gYHNlbmRseSBudW1iZXJzIGxpc3RgKVwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBkZWZhdWx0OiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGNoYXI6IFwiZFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiTWFrZSB0aGlzIHRoZSB3b3Jrc3BhY2UgZGVmYXVsdCBzZW5kZXIgKG11c3QgYmUgYWN0aXZlKVwiLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSksXG4gICAga2VlcDogRmxhZ3MuYm9vbGVhbih7XG4gICAgICBjaGFyOiBcImtcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkNhbmNlbCBhIHNjaGVkdWxlZCByZWxlYXNlIGFuZCBrZWVwIHRoZSBudW1iZXJcIixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGFyZ3MsIGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKE51bWJlcnNVcGRhdGUpO1xuXG4gICAgY29uc3QgYm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICBpZiAoZmxhZ3MuZGVmYXVsdCkgYm9keS5pc0RlZmF1bHQgPSB0cnVlO1xuICAgIGlmIChmbGFncy5rZWVwKSBib2R5LnBlbmRpbmdDYW5jZWxsYXRpb24gPSBmYWxzZTtcblxuICAgIGlmIChPYmplY3Qua2V5cyhib2R5KS5sZW5ndGggPT09IDApIHtcbiAgICAgIGVycm9yKFwiTm90aGluZyB0byB1cGRhdGVcIiwge1xuICAgICAgICBoaW50OiBcIlBhc3MgLS1kZWZhdWx0IHRvIG1ha2UgaXQgdGhlIGRlZmF1bHQgc2VuZGVyLCBvciAtLWtlZXAgdG8gY2FuY2VsIGEgc2NoZWR1bGVkIHJlbGVhc2UuXCIsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBjb25zdCBudW1iZXIgPSBhd2FpdCBhcGlDbGllbnQucGF0Y2g8T3duZWROdW1iZXI+KFxuICAgICAgYC9hcGkvdjEvbnVtYmVycy8ke2VuY29kZVVSSUNvbXBvbmVudChhcmdzLmlkKX1gLFxuICAgICAgYm9keSxcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihudW1iZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1Y2Nlc3MoXCJOdW1iZXIgdXBkYXRlZFwiLCB7XG4gICAgICBJRDogbnVtYmVyLmlkLFxuICAgICAgTnVtYmVyOiBjb2xvcnMuY29kZShudW1iZXIucGhvbmVOdW1iZXIpLFxuICAgICAgU3RhdHVzOiBmb3JtYXRTdGF0dXMobnVtYmVyLnN0YXR1cyksXG4gICAgICBEZWZhdWx0OiBudW1iZXIuaXNEZWZhdWx0ID8gY29sb3JzLnN1Y2Nlc3MoXCJ5ZXNcIikgOiBcIm5vXCIsXG4gICAgICBcIlBlbmRpbmcgcmVsZWFzZVwiOiBudW1iZXIucGVuZGluZ0NhbmNlbGxhdGlvblxuICAgICAgICA/IGNvbG9ycy53YXJuaW5nKFwieWVzXCIpXG4gICAgICAgIDogXCJub1wiLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
/**
|
|
3
|
+
* `sendly sms group` — send a group MMS to 2-8 recipients (US/Canada only).
|
|
4
|
+
*
|
|
5
|
+
* Wraps `POST /api/v1/messages/group`. Every recipient sees the others and
|
|
6
|
+
* replies fan out to the whole group. Group messaging is an A2P 10DLC
|
|
7
|
+
* capability, so the sending number must be an MMS-enabled, 10DLC-registered
|
|
8
|
+
* number you own — omit `--from` to use your workspace's default sender.
|
|
9
|
+
* Gated behind `group_mms` / `enable_mms` on the server; without the flag the
|
|
10
|
+
* server returns 403 and this command surfaces it.
|
|
11
|
+
*/
|
|
12
|
+
export default class SmsGroup extends AuthenticatedCommand {
|
|
13
|
+
static description: string;
|
|
14
|
+
static examples: string[];
|
|
15
|
+
static flags: {
|
|
16
|
+
to: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
17
|
+
text: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
18
|
+
from: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
19
|
+
type: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
20
|
+
"media-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
21
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
22
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
23
|
+
};
|
|
24
|
+
run(): Promise<void>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { apiClient } from "../../lib/api-client.js";
|
|
4
|
+
import { success, error, spinner, colors, formatStatus, json, isJsonMode, } from "../../lib/output.js";
|
|
5
|
+
import inquirer from "inquirer";
|
|
6
|
+
/**
|
|
7
|
+
* `sendly sms group` — send a group MMS to 2-8 recipients (US/Canada only).
|
|
8
|
+
*
|
|
9
|
+
* Wraps `POST /api/v1/messages/group`. Every recipient sees the others and
|
|
10
|
+
* replies fan out to the whole group. Group messaging is an A2P 10DLC
|
|
11
|
+
* capability, so the sending number must be an MMS-enabled, 10DLC-registered
|
|
12
|
+
* number you own — omit `--from` to use your workspace's default sender.
|
|
13
|
+
* Gated behind `group_mms` / `enable_mms` on the server; without the flag the
|
|
14
|
+
* server returns 403 and this command surfaces it.
|
|
15
|
+
*/
|
|
16
|
+
export default class SmsGroup extends AuthenticatedCommand {
|
|
17
|
+
static description = "Send a group MMS to 2-8 recipients (US/Canada only). Everyone sees the group and replies fan out to all participants.";
|
|
18
|
+
static examples = [
|
|
19
|
+
'<%= config.bin %> sms group --to +14155551234,+14155555678 --text "Team sync at noon?"',
|
|
20
|
+
'<%= config.bin %> sms group --to +14155551234,+14155555678 --media-url https://example.com/flyer.jpg',
|
|
21
|
+
'<%= config.bin %> sms group --to +14155551234,+14155555678 --text "Hi all" --from "+15551234567"',
|
|
22
|
+
'<%= config.bin %> sms group --to +14155551234,+14155555678 --text "Sale!" --type marketing',
|
|
23
|
+
'<%= config.bin %> sms group --to +14155551234,+14155555678 --text "Hi all" --json',
|
|
24
|
+
];
|
|
25
|
+
static flags = {
|
|
26
|
+
...AuthenticatedCommand.baseFlags,
|
|
27
|
+
to: Flags.string({
|
|
28
|
+
char: "t",
|
|
29
|
+
description: "Comma-separated recipient phone numbers (2-8, E.164 format, US/CA only)",
|
|
30
|
+
}),
|
|
31
|
+
text: Flags.string({
|
|
32
|
+
char: "m",
|
|
33
|
+
description: "Message text (optional when --media-url is provided)",
|
|
34
|
+
}),
|
|
35
|
+
from: Flags.string({
|
|
36
|
+
char: "f",
|
|
37
|
+
description: "Sender ID or phone number (MMS-enabled 10DLC number you own)",
|
|
38
|
+
}),
|
|
39
|
+
type: Flags.string({
|
|
40
|
+
description: "Message type: transactional (default) or marketing. Marketing applies quiet-hours rules.",
|
|
41
|
+
options: ["marketing", "transactional"],
|
|
42
|
+
}),
|
|
43
|
+
"media-url": Flags.string({
|
|
44
|
+
description: "Media URL to attach (MMS). Can be specified multiple times.",
|
|
45
|
+
multiple: true,
|
|
46
|
+
}),
|
|
47
|
+
};
|
|
48
|
+
async run() {
|
|
49
|
+
const { flags } = await this.parse(SmsGroup);
|
|
50
|
+
const mediaUrls = flags["media-url"];
|
|
51
|
+
const hasMedia = mediaUrls && mediaUrls.length > 0;
|
|
52
|
+
let rawTo = flags.to;
|
|
53
|
+
let text = flags.text;
|
|
54
|
+
if (!rawTo) {
|
|
55
|
+
if (process.stdin.isTTY) {
|
|
56
|
+
const answers = await inquirer.prompt([
|
|
57
|
+
{
|
|
58
|
+
type: "input",
|
|
59
|
+
name: "to",
|
|
60
|
+
message: "Recipient phone numbers (comma-separated, 2-8):",
|
|
61
|
+
validate: (input) => {
|
|
62
|
+
if (!input.trim())
|
|
63
|
+
return "At least 2 recipients are required";
|
|
64
|
+
return true;
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
]);
|
|
68
|
+
rawTo = answers.to;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
error("Missing required flag: --to", {
|
|
72
|
+
hint: "Use --to +14155551234,+14155555678",
|
|
73
|
+
});
|
|
74
|
+
this.exit(1);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const to = rawTo
|
|
78
|
+
.split(",")
|
|
79
|
+
.map((p) => p.trim())
|
|
80
|
+
.filter((p) => p.length > 0)
|
|
81
|
+
.map((p) => (p.startsWith("+") ? p : `+${p}`));
|
|
82
|
+
if (to.length < 2) {
|
|
83
|
+
error("Group messaging requires at least 2 recipients", {
|
|
84
|
+
hint: "Pass 2-8 numbers: --to +14155551234,+14155555678",
|
|
85
|
+
});
|
|
86
|
+
this.exit(1);
|
|
87
|
+
}
|
|
88
|
+
if (to.length > 8) {
|
|
89
|
+
error("Group messaging supports at most 8 recipients");
|
|
90
|
+
this.exit(1);
|
|
91
|
+
}
|
|
92
|
+
for (const recipient of to) {
|
|
93
|
+
if (!/^\+[1-9]\d{1,14}$/.test(recipient)) {
|
|
94
|
+
error(`Invalid phone number: ${recipient}`, {
|
|
95
|
+
hint: "Use E.164 format: +14155551234",
|
|
96
|
+
});
|
|
97
|
+
this.exit(1);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (!text && !hasMedia) {
|
|
101
|
+
if (process.stdin.isTTY) {
|
|
102
|
+
const answers = await inquirer.prompt([
|
|
103
|
+
{
|
|
104
|
+
type: "input",
|
|
105
|
+
name: "text",
|
|
106
|
+
message: "Message text:",
|
|
107
|
+
validate: (input) => {
|
|
108
|
+
if (!input.trim())
|
|
109
|
+
return "Message text cannot be empty";
|
|
110
|
+
return true;
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
]);
|
|
114
|
+
text = answers.text;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
error("Either --text or --media-url is required");
|
|
118
|
+
this.exit(1);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (text && !text.trim()) {
|
|
122
|
+
error("Message text cannot be empty");
|
|
123
|
+
this.exit(1);
|
|
124
|
+
}
|
|
125
|
+
const spin = spinner(`Sending group MMS to ${to.length} recipients...`);
|
|
126
|
+
spin.start();
|
|
127
|
+
try {
|
|
128
|
+
const response = await apiClient.post("/api/v1/messages/group", {
|
|
129
|
+
to,
|
|
130
|
+
...(text && { text }),
|
|
131
|
+
...(flags.from && { from: flags.from }),
|
|
132
|
+
...(hasMedia && { mediaUrls }),
|
|
133
|
+
...(flags.type && { messageType: flags.type }),
|
|
134
|
+
});
|
|
135
|
+
spin.stop();
|
|
136
|
+
if (isJsonMode()) {
|
|
137
|
+
json(response);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
success("Group MMS sent", {
|
|
141
|
+
ID: response.id,
|
|
142
|
+
Recipients: response.to.length,
|
|
143
|
+
Status: formatStatus(response.status),
|
|
144
|
+
...(response.group_message_id && {
|
|
145
|
+
"Group ID": response.group_message_id,
|
|
146
|
+
}),
|
|
147
|
+
...(hasMedia && {
|
|
148
|
+
Media: `${mediaUrls.length} attachment${mediaUrls.length > 1 ? "s" : ""}`,
|
|
149
|
+
}),
|
|
150
|
+
...(response.simulated && { Simulated: "yes" }),
|
|
151
|
+
});
|
|
152
|
+
if (!isJsonMode()) {
|
|
153
|
+
for (const recipient of response.to) {
|
|
154
|
+
console.log(` ${colors.dim("To:")} ${colors.code(recipient)}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
spin.stop();
|
|
160
|
+
throw err;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvc21zL2dyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLE9BQU8sRUFDUCxNQUFNLEVBQ04sWUFBWSxFQUNaLElBQUksRUFDSixVQUFVLEdBQ1gsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFVaEM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxRQUFTLFNBQVEsb0JBQW9CO0lBQ3hELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLHVIQUF1SCxDQUFDO0lBRTFILE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsd0ZBQXdGO1FBQ3hGLHNHQUFzRztRQUN0RyxrR0FBa0c7UUFDbEcsNEZBQTRGO1FBQzVGLG1GQUFtRjtLQUNwRixDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxFQUFFLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNmLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUNULHlFQUF5RTtTQUM1RSxDQUFDO1FBQ0YsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsc0RBQXNEO1NBQ3BFLENBQUM7UUFDRixJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSw4REFBOEQ7U0FDNUUsQ0FB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QixLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2xFLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAgc3VjY2VzcyxcbiAgZXJyb3IsXG4gIHNwaW5uZXIsXG4gIGNvbG9ycyxcbiAgZm9ybWF0U3RhdHVzLFxuICBqc29uLFxuICBpc0pzb25Nb2RlLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IGlucXVpcmVyIGZyb20gXCJpbnF1aXJlclwiO1xuXG5pbnRlcmZhY2UgR3JvdXBNZXNzYWdlUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgdG86IHN0cmluZ1tdO1xuICBncm91cF9tZXNzYWdlX2lkPzogc3RyaW5nO1xuICBzaW11bGF0ZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIGBzZW5kbHkgc21zIGdyb3VwYCDigJQgc2VuZCBhIGdyb3VwIE1NUyB0byAyLTggcmVjaXBpZW50cyAoVVMvQ2FuYWRhIG9ubHkpLlxuICpcbiAqIFdyYXBzIGBQT1NUIC9hcGkvdjEvbWVzc2FnZXMvZ3JvdXBgLiBFdmVyeSByZWNpcGllbnQgc2VlcyB0aGUgb3RoZXJzIGFuZFxuICogcmVwbGllcyBmYW4gb3V0IHRvIHRoZSB3aG9sZSBncm91cC4gR3JvdXAgbWVzc2FnaW5nIGlzIGFuIEEyUCAxMERMQ1xuICogY2FwYWJpbGl0eSwgc28gdGhlIHNlbmRpbmcgbnVtYmVyIG11c3QgYmUgYW4gTU1TLWVuYWJsZWQsIDEwRExDLXJlZ2lzdGVyZWRcbiAqIG51bWJlciB5b3Ugb3duIOKAlCBvbWl0IGAtLWZyb21gIHRvIHVzZSB5b3VyIHdvcmtzcGFjZSdzIGRlZmF1bHQgc2VuZGVyLlxuICogR2F0ZWQgYmVoaW5kIGBncm91cF9tbXNgIC8gYGVuYWJsZV9tbXNgIG9uIHRoZSBzZXJ2ZXI7IHdpdGhvdXQgdGhlIGZsYWcgdGhlXG4gKiBzZXJ2ZXIgcmV0dXJucyA0MDMgYW5kIHRoaXMgY29tbWFuZCBzdXJmYWNlcyBpdC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU21zR3JvdXAgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJTZW5kIGEgZ3JvdXAgTU1TIHRvIDItOCByZWNpcGllbnRzIChVUy9DYW5hZGEgb25seSkuIEV2ZXJ5b25lIHNlZXMgdGhlIGdyb3VwIGFuZCByZXBsaWVzIGZhbiBvdXQgdG8gYWxsIHBhcnRpY2lwYW50cy5cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgJzwlPSBjb25maWcuYmluICU+IHNtcyBncm91cCAtLXRvICsxNDE1NTU1MTIzNCwrMTQxNTU1NTU2NzggLS10ZXh0IFwiVGVhbSBzeW5jIGF0IG5vb24/XCInLFxuICAgICc8JT0gY29uZmlnLmJpbiAlPiBzbXMgZ3JvdXAgLS10byArMTQxNTU1NTEyMzQsKzE0MTU1NTU1Njc4IC0tbWVkaWEtdXJsIGh0dHBzOi8vZXhhbXBsZS5jb20vZmx5ZXIuanBnJyxcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gc21zIGdyb3VwIC0tdG8gKzE0MTU1NTUxMjM0LCsxNDE1NTU1NTY3OCAtLXRleHQgXCJIaSBhbGxcIiAtLWZyb20gXCIrMTU1NTEyMzQ1NjdcIicsXG4gICAgJzwlPSBjb25maWcuYmluICU+IHNtcyBncm91cCAtLXRvICsxNDE1NTU1MTIzNCwrMTQxNTU1NTU2NzggLS10ZXh0IFwiU2FsZSFcIiAtLXR5cGUgbWFya2V0aW5nJyxcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gc21zIGdyb3VwIC0tdG8gKzE0MTU1NTUxMjM0LCsxNDE1NTU1NTY3OCAtLXRleHQgXCJIaSBhbGxcIiAtLWpzb24nLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgdG86IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcInRcIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkNvbW1hLXNlcGFyYXRlZCByZWNpcGllbnQgcGhvbmUgbnVtYmVycyAoMi04LCBFLjE2NCBmb3JtYXQsIFVTL0NBIG9ubHkpXCIsXG4gICAgfSksXG4gICAgdGV4dDogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwibVwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiTWVzc2FnZSB0ZXh0IChvcHRpb25hbCB3aGVuIC0tbWVkaWEtdXJsIGlzIHByb3ZpZGVkKVwiLFxuICAgIH0pLFxuICAgIGZyb206IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcImZcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNlbmRlciBJRCBvciBwaG9uZSBudW1iZXIgKE1NUy1lbmFibGVkIDEwRExDIG51bWJlciB5b3Ugb3duKVwiLFxuICAgIH0pLFxuICAgIHR5cGU6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJNZXNzYWdlIHR5cGU6IHRyYW5zYWN0aW9uYWwgKGRlZmF1bHQpIG9yIG1hcmtldGluZy4gTWFya2V0aW5nIGFwcGxpZXMgcXVpZXQtaG91cnMgcnVsZXMuXCIsXG4gICAgICBvcHRpb25zOiBbXCJtYXJrZXRpbmdcIiwgXCJ0cmFuc2FjdGlvbmFsXCJdLFxuICAgIH0pLFxuICAgIFwibWVkaWEtdXJsXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJNZWRpYSBVUkwgdG8gYXR0YWNoIChNTVMpLiBDYW4gYmUgc3BlY2lmaWVkIG11bHRpcGxlIHRpbWVzLlwiLFxuICAgICAgbXVsdGlwbGU6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoU21zR3JvdXApO1xuICAgIGNvbnN0IG1lZGlhVXJscyA9IGZsYWdzW1wibWVkaWEtdXJsXCJdO1xuICAgIGNvbnN0IGhhc01lZGlhID0gbWVkaWFVcmxzICYmIG1lZGlhVXJscy5sZW5ndGggPiAwO1xuXG4gICAgbGV0IHJhd1RvID0gZmxhZ3MudG87XG4gICAgbGV0IHRleHQgPSBmbGFncy50ZXh0O1xuXG4gICAgaWYgKCFyYXdUbykge1xuICAgICAgaWYgKHByb2Nlc3Muc3RkaW4uaXNUVFkpIHtcbiAgICAgICAgY29uc3QgYW5zd2VycyA9IGF3YWl0IGlucXVpcmVyLnByb21wdChbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJpbnB1dFwiLFxuICAgICAgICAgICAgbmFtZTogXCJ0b1wiLFxuICAgICAgICAgICAgbWVzc2FnZTogXCJSZWNpcGllbnQgcGhvbmUgbnVtYmVycyAoY29tbWEtc2VwYXJhdGVkLCAyLTgpOlwiLFxuICAgICAgICAgICAgdmFsaWRhdGU6IChpbnB1dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghaW5wdXQudHJpbSgpKSByZXR1cm4gXCJBdCBsZWFzdCAyIHJlY2lwaWVudHMgYXJlIHJlcXVpcmVkXCI7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKTtcbiAgICAgICAgcmF3VG8gPSBhbnN3ZXJzLnRvO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkIGZsYWc6IC0tdG9cIiwge1xuICAgICAgICAgIGhpbnQ6IFwiVXNlIC0tdG8gKzE0MTU1NTUxMjM0LCsxNDE1NTU1NTY3OFwiLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5leGl0KDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRvID0gcmF3VG8hXG4gICAgICAuc3BsaXQoXCIsXCIpXG4gICAgICAubWFwKChwKSA9PiBwLnRyaW0oKSlcbiAgICAgIC5maWx0ZXIoKHApID0+IHAubGVuZ3RoID4gMClcbiAgICAgIC5tYXAoKHApID0+IChwLnN0YXJ0c1dpdGgoXCIrXCIpID8gcCA6IGArJHtwfWApKTtcblxuICAgIGlmICh0by5sZW5ndGggPCAyKSB7XG4gICAgICBlcnJvcihcIkdyb3VwIG1lc3NhZ2luZyByZXF1aXJlcyBhdCBsZWFzdCAyIHJlY2lwaWVudHNcIiwge1xuICAgICAgICBoaW50OiBcIlBhc3MgMi04IG51bWJlcnM6IC0tdG8gKzE0MTU1NTUxMjM0LCsxNDE1NTU1NTY3OFwiLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgaWYgKHRvLmxlbmd0aCA+IDgpIHtcbiAgICAgIGVycm9yKFwiR3JvdXAgbWVzc2FnaW5nIHN1cHBvcnRzIGF0IG1vc3QgOCByZWNpcGllbnRzXCIpO1xuICAgICAgdGhpcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcmVjaXBpZW50IG9mIHRvKSB7XG4gICAgICBpZiAoIS9eXFwrWzEtOV1cXGR7MSwxNH0kLy50ZXN0KHJlY2lwaWVudCkpIHtcbiAgICAgICAgZXJyb3IoYEludmFsaWQgcGhvbmUgbnVtYmVyOiAke3JlY2lwaWVudH1gLCB7XG4gICAgICAgICAgaGludDogXCJVc2UgRS4xNjQgZm9ybWF0OiArMTQxNTU1NTEyMzRcIixcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXRleHQgJiYgIWhhc01lZGlhKSB7XG4gICAgICBpZiAocHJvY2Vzcy5zdGRpbi5pc1RUWSkge1xuICAgICAgICBjb25zdCBhbnN3ZXJzID0gYXdhaXQgaW5xdWlyZXIucHJvbXB0KFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcImlucHV0XCIsXG4gICAgICAgICAgICBuYW1lOiBcInRleHRcIixcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwiTWVzc2FnZSB0ZXh0OlwiLFxuICAgICAgICAgICAgdmFsaWRhdGU6IChpbnB1dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghaW5wdXQudHJpbSgpKSByZXR1cm4gXCJNZXNzYWdlIHRleHQgY2Fubm90IGJlIGVtcHR5XCI7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKTtcbiAgICAgICAgdGV4dCA9IGFuc3dlcnMudGV4dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKFwiRWl0aGVyIC0tdGV4dCBvciAtLW1lZGlhLXVybCBpcyByZXF1aXJlZFwiKTtcbiAgICAgICAgdGhpcy5leGl0KDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0ZXh0ICYmICF0ZXh0LnRyaW0oKSkge1xuICAgICAgZXJyb3IoXCJNZXNzYWdlIHRleHQgY2Fubm90IGJlIGVtcHR5XCIpO1xuICAgICAgdGhpcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGNvbnN0IHNwaW4gPSBzcGlubmVyKGBTZW5kaW5nIGdyb3VwIE1NUyB0byAke3RvLmxlbmd0aH0gcmVjaXBpZW50cy4uLmApO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PEdyb3VwTWVzc2FnZVJlc3BvbnNlPihcbiAgICAgICAgXCIvYXBpL3YxL21lc3NhZ2VzL2dyb3VwXCIsXG4gICAgICAgIHtcbiAgICAgICAgICB0byxcbiAgICAgICAgICAuLi4odGV4dCAmJiB7IHRleHQgfSksXG4gICAgICAgICAgLi4uKGZsYWdzLmZyb20gJiYgeyBmcm9tOiBmbGFncy5mcm9tIH0pLFxuICAgICAgICAgIC4uLihoYXNNZWRpYSAmJiB7IG1lZGlhVXJscyB9KSxcbiAgICAgICAgICAuLi4oZmxhZ3MudHlwZSAmJiB7IG1lc3NhZ2VUeXBlOiBmbGFncy50eXBlIH0pLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgc3Bpbi5zdG9wKCk7XG5cbiAgICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc3VjY2VzcyhcIkdyb3VwIE1NUyBzZW50XCIsIHtcbiAgICAgICAgSUQ6IHJlc3BvbnNlLmlkLFxuICAgICAgICBSZWNpcGllbnRzOiByZXNwb25zZS50by5sZW5ndGgsXG4gICAgICAgIFN0YXR1czogZm9ybWF0U3RhdHVzKHJlc3BvbnNlLnN0YXR1cyksXG4gICAgICAgIC4uLihyZXNwb25zZS5ncm91cF9tZXNzYWdlX2lkICYmIHtcbiAgICAgICAgICBcIkdyb3VwIElEXCI6IHJlc3BvbnNlLmdyb3VwX21lc3NhZ2VfaWQsXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4oaGFzTWVkaWEgJiYge1xuICAgICAgICAgIE1lZGlhOiBgJHttZWRpYVVybHMubGVuZ3RofSBhdHRhY2htZW50JHttZWRpYVVybHMubGVuZ3RoID4gMSA/IFwic1wiIDogXCJcIn1gLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4uKHJlc3BvbnNlLnNpbXVsYXRlZCAmJiB7IFNpbXVsYXRlZDogXCJ5ZXNcIiB9KSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIWlzSnNvbk1vZGUoKSkge1xuICAgICAgICBmb3IgKGNvbnN0IHJlY2lwaWVudCBvZiByZXNwb25zZS50bykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLmRpbShcIlRvOlwiKX0gJHtjb2xvcnMuY29kZShyZWNpcGllbnQpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzcGluLnN0b3AoKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3,7 +3,7 @@ import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
|
3
3
|
* `sendly sms upload-media <file>` — upload an image for MMS.
|
|
4
4
|
*
|
|
5
5
|
* Wraps `POST /api/v1/media`. Returns a public URL the caller passes as
|
|
6
|
-
* `--media` to `sms send
|
|
6
|
+
* `--media-url` to `sms send`. Flag-gated behind `enable_mms`
|
|
7
7
|
* on the server — if your account doesn't have MMS, the server returns
|
|
8
8
|
* 403 and this command surfaces it.
|
|
9
9
|
*/
|
|
@@ -9,12 +9,12 @@ const ALLOWED_EXTS = [".jpg", ".jpeg", ".png", ".gif"];
|
|
|
9
9
|
* `sendly sms upload-media <file>` — upload an image for MMS.
|
|
10
10
|
*
|
|
11
11
|
* Wraps `POST /api/v1/media`. Returns a public URL the caller passes as
|
|
12
|
-
* `--media` to `sms send
|
|
12
|
+
* `--media-url` to `sms send`. Flag-gated behind `enable_mms`
|
|
13
13
|
* on the server — if your account doesn't have MMS, the server returns
|
|
14
14
|
* 403 and this command surfaces it.
|
|
15
15
|
*/
|
|
16
16
|
export default class SmsUploadMedia extends AuthenticatedCommand {
|
|
17
|
-
static description = "Upload a JPEG/PNG/GIF image for MMS and get back a public URL to pass to `sms send --media`. Requires MMS to be enabled for your account.";
|
|
17
|
+
static description = "Upload a JPEG/PNG/GIF image for MMS and get back a public URL to pass to `sms send --media-url`. Requires MMS to be enabled for your account.";
|
|
18
18
|
static examples = [
|
|
19
19
|
"<%= config.bin %> sms upload-media ./promo.jpg",
|
|
20
20
|
"<%= config.bin %> sms upload-media ./animated.gif --json",
|
|
@@ -69,7 +69,7 @@ export default class SmsUploadMedia extends AuthenticatedCommand {
|
|
|
69
69
|
console.log();
|
|
70
70
|
console.log(colors.dim(" Send an MMS with this image:"));
|
|
71
71
|
console.log(" " +
|
|
72
|
-
colors.code(`sendly sms send --to +15551234567 --text "Hi" --media "${resp.url}"`));
|
|
72
|
+
colors.code(`sendly sms send --to +15551234567 --text "Hi" --media-url "${resp.url}"`));
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
function formatBytes(n) {
|
|
@@ -79,4 +79,4 @@ function formatBytes(n) {
|
|
|
79
79
|
return `${(n / 1024).toFixed(1)} KB`;
|
|
80
80
|
return `${(n / (1024 * 1024)).toFixed(1)} MB`;
|
|
81
81
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLW1lZGlhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Ntcy91cGxvYWQtbWVkaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFDTCxPQUFPLEVBQ1AsSUFBSSxFQUNKLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxHQUVOLE1BQU0scUJBQXFCLENBQUM7QUFTN0IsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUV2RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBQzlELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLCtJQUErSSxDQUFDO0lBRWxKLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsZ0RBQWdEO1FBQ2hELDBEQUEwRDtLQUMzRCxDQUFDO0lBRUYsTUFBTSxDQUFDLElBQUksR0FBRztRQUNaLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2hCLFdBQVcsRUFBRSw0Q0FBNEM7WUFDekQsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDM0IsV0FBVyxFQUFFLGlDQUFpQztTQUMvQyxDQUFDO0tBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM3QixLQUFLLENBQUMsbUJBQW1CLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUNILCtCQUErQixHQUFHLHFDQUFxQyxDQUN4RSxDQUFDO1lBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFekMsTUFBTSxRQUFRLEdBQ1osS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUNyQixDQUFDLEdBQUcsS0FBSyxNQUFNO2dCQUNiLENBQUMsQ0FBQyxXQUFXO2dCQUNiLENBQUMsQ0FBQyxHQUFHLEtBQUssTUFBTTtvQkFDZCxDQUFDLENBQUMsV0FBVztvQkFDYixDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxTQUFTLENBQUMsVUFBVSxDQUNyQyxlQUFlLEVBQ2Y7WUFDRSxNQUFNO1lBQ04sUUFBUTtZQUNSLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQ0YsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDWCxPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDaEMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ2xDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUM7UUFDMUQsT0FBTyxDQUFDLEdBQUcsQ0FDVCxNQUFNO1lBQ0osTUFBTSxDQUFDLElBQUksQ0FDVCw4REFBOEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUMxRSxDQUNKLENBQUM7SUFDSixDQUFDOztBQUdILFNBQVMsV0FBVyxDQUFDLENBQVM7SUFDNUIsSUFBSSxDQUFDLEdBQUcsSUFBSTtRQUFFLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztJQUM5QixJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSTtRQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMxRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncywgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAgc3VjY2VzcyxcbiAganNvbixcbiAgaXNKc29uTW9kZSxcbiAgY29sb3JzLFxuICBlcnJvcixcbiAga2V5VmFsdWUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBNZWRpYVVwbG9hZFJlc3BvbnNlIHtcbiAgaWQ6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gIHNpemVCeXRlczogbnVtYmVyO1xufVxuXG5jb25zdCBBTExPV0VEX0VYVFMgPSBbXCIuanBnXCIsIFwiLmpwZWdcIiwgXCIucG5nXCIsIFwiLmdpZlwiXTtcblxuLyoqXG4gKiBgc2VuZGx5IHNtcyB1cGxvYWQtbWVkaWEgPGZpbGU+YCDigJQgdXBsb2FkIGFuIGltYWdlIGZvciBNTVMuXG4gKlxuICogV3JhcHMgYFBPU1QgL2FwaS92MS9tZWRpYWAuIFJldHVybnMgYSBwdWJsaWMgVVJMIHRoZSBjYWxsZXIgcGFzc2VzIGFzXG4gKiBgLS1tZWRpYS11cmxgIHRvIGBzbXMgc2VuZGAuIEZsYWctZ2F0ZWQgYmVoaW5kIGBlbmFibGVfbW1zYFxuICogb24gdGhlIHNlcnZlciDigJQgaWYgeW91ciBhY2NvdW50IGRvZXNuJ3QgaGF2ZSBNTVMsIHRoZSBzZXJ2ZXIgcmV0dXJuc1xuICogNDAzIGFuZCB0aGlzIGNvbW1hbmQgc3VyZmFjZXMgaXQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNtc1VwbG9hZE1lZGlhIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPVxuICAgIFwiVXBsb2FkIGEgSlBFRy9QTkcvR0lGIGltYWdlIGZvciBNTVMgYW5kIGdldCBiYWNrIGEgcHVibGljIFVSTCB0byBwYXNzIHRvIGBzbXMgc2VuZCAtLW1lZGlhLXVybGAuIFJlcXVpcmVzIE1NUyB0byBiZSBlbmFibGVkIGZvciB5b3VyIGFjY291bnQuXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gc21zIHVwbG9hZC1tZWRpYSAuL3Byb21vLmpwZ1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gc21zIHVwbG9hZC1tZWRpYSAuL2FuaW1hdGVkLmdpZiAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICBmaWxlOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJQYXRoIHRvIHRoZSBpbWFnZSBmaWxlIChKUEVHLCBQTkcsIG9yIEdJRilcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgXCJjb250ZW50LXR5cGVcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk92ZXJyaWRlIHRoZSBkZXRlY3RlZCBtaW1lIHR5cGVcIixcbiAgICB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhcmdzLCBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShTbXNVcGxvYWRNZWRpYSk7XG5cbiAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGgucmVzb2x2ZShhcmdzLmZpbGUpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgIGVycm9yKGBGaWxlIG5vdCBmb3VuZDogJHtmaWxlUGF0aH1gKTtcbiAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBjb25zdCBleHQgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCFBTExPV0VEX0VYVFMuaW5jbHVkZXMoZXh0KSkge1xuICAgICAgZXJyb3IoXG4gICAgICAgIGBVbnN1cHBvcnRlZCBmaWxlIGV4dGVuc2lvbiAnJHtleHR9Jy4gTU1TIHN1cHBvcnRzIEpQRUcsIFBORywgYW5kIEdJRi5gLFxuICAgICAgKTtcbiAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBjb25zdCBidWZmZXIgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgpO1xuICAgIGNvbnN0IGZpbGVuYW1lID0gcGF0aC5iYXNlbmFtZShmaWxlUGF0aCk7XG5cbiAgICBjb25zdCBkZXRlY3RlZCA9XG4gICAgICBmbGFnc1tcImNvbnRlbnQtdHlwZVwiXSA/P1xuICAgICAgKGV4dCA9PT0gXCIucG5nXCJcbiAgICAgICAgPyBcImltYWdlL3BuZ1wiXG4gICAgICAgIDogZXh0ID09PSBcIi5naWZcIlxuICAgICAgICAgID8gXCJpbWFnZS9naWZcIlxuICAgICAgICAgIDogXCJpbWFnZS9qcGVnXCIpO1xuXG4gICAgY29uc3QgcmVzcCA9IGF3YWl0IGFwaUNsaWVudC51cGxvYWRGaWxlPE1lZGlhVXBsb2FkUmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL21lZGlhXCIsXG4gICAgICB7XG4gICAgICAgIGJ1ZmZlcixcbiAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgIG1pbWV0eXBlOiBkZXRlY3RlZCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcIk1lZGlhIHVwbG9hZGVkXCIsIHtcbiAgICAgIElEOiByZXNwLmlkLFxuICAgICAgVVJMOiByZXNwLnVybCxcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IHJlc3AuY29udGVudFR5cGUsXG4gICAgICBTaXplOiBmb3JtYXRCeXRlcyhyZXNwLnNpemVCeXRlcyksXG4gICAgfSk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwiICBTZW5kIGFuIE1NUyB3aXRoIHRoaXMgaW1hZ2U6XCIpKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIFwiICAgIFwiICtcbiAgICAgICAgY29sb3JzLmNvZGUoXG4gICAgICAgICAgYHNlbmRseSBzbXMgc2VuZCAtLXRvICsxNTU1MTIzNDU2NyAtLXRleHQgXCJIaVwiIC0tbWVkaWEtdXJsIFwiJHtyZXNwLnVybH1cImAsXG4gICAgICAgICksXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JtYXRCeXRlcyhuOiBudW1iZXIpOiBzdHJpbmcge1xuICBpZiAobiA8IDEwMjQpIHJldHVybiBgJHtufSBCYDtcbiAgaWYgKG4gPCAxMDI0ICogMTAyNCkgcmV0dXJuIGAkeyhuIC8gMTAyNCkudG9GaXhlZCgxKX0gS0JgO1xuICByZXR1cm4gYCR7KG4gLyAoMTAyNCAqIDEwMjQpKS50b0ZpeGVkKDEpfSBNQmA7XG59XG4iXX0=
|
|
@@ -51,8 +51,8 @@ export default class TemplatesEnhance extends AuthenticatedCommand {
|
|
|
51
51
|
process.stdin.on("end", () => resolve(buf.trim()));
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
if (!text
|
|
55
|
-
error("Provide text via --text, --file, positional arg, or stdin
|
|
54
|
+
if (!text) {
|
|
55
|
+
error("Provide text to enhance via --text, --file, a positional arg, or stdin.");
|
|
56
56
|
this.exit(1);
|
|
57
57
|
}
|
|
58
58
|
const resp = await apiClient.post("/api/v1/ai/enhance", {
|
|
@@ -74,4 +74,4 @@ export default class TemplatesEnhance extends AuthenticatedCommand {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5oYW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy90ZW1wbGF0ZXMvZW5oYW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLE9BQU8sRUFDUCxJQUFJLEVBQ0osVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sSUFBSSxFQUNKLEtBQUssR0FDTixNQUFNLHFCQUFxQixDQUFDO0FBTzdCOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxnQkFBaUIsU0FBUSxvQkFBb0I7SUFDaEUsTUFBTSxDQUFDLFdBQVcsR0FDaEIseUhBQXlILENBQUM7SUFFNUgsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiwwRUFBMEU7UUFDMUUsaUZBQWlGO1FBQ2pGLDhGQUE4RjtLQUMvRixDQUFDO0lBRUYsTUFBTSxDQUFDLElBQUksR0FBRztRQUNaLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2hCLFdBQVcsRUFBRSwwREFBMEQ7WUFDdkUsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pCLFdBQVcsRUFBRSx5QkFBeUI7U0FDdkMsQ0FBQztRQUNGLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pCLFdBQVcsRUFBRSxvQ0FBb0M7U0FDbEQsQ0FBQztRQUNGLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzNCLFdBQVcsRUFDVCxrR0FBa0c7U0FDckcsQ0FBQztLQUNILENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFM0QsSUFBSSxJQUFJLEdBQXVCLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2RCxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BELENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQyxJQUFJLEdBQUcsTUFBTSxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUMzQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLEtBQUssQ0FDSCx5RUFBeUUsQ0FDMUUsQ0FBQztZQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUMvQixvQkFBb0IsRUFDcEI7WUFDRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDaEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUM7U0FDbkMsQ0FDRixDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNYLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncywgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGpzb24sXG4gIGlzSnNvbk1vZGUsXG4gIGNvbG9ycyxcbiAgaGVhZGVyLFxuICBpbmZvLFxuICBlcnJvcixcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIEVuaGFuY2VSZXNwb25zZSB7XG4gIGVuaGFuY2VkOiBzdHJpbmc7XG4gIGV4cGxhbmF0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogYHNlbmRseSB0ZW1wbGF0ZXMgZW5oYW5jZWAg4oCUIEFJIHJld3JpdGUgYSBtZXNzYWdlIHRlbXBsYXRlIGZvclxuICogY29tcGxpYW5jZS9jbGFyaXR5L2NvbnZlcnNpb25zLlxuICpcbiAqIFdyYXBzIGBQT1NUIC9hcGkvdjEvYWkvZW5oYW5jZWAgKGZsYWctZ2F0ZWQgYmVoaW5kIGBhaV9jbGFzc2lmaWNhdGlvbmBcbiAqIG9uIHRoZSBzZXJ2ZXIg4oCUIGlmIHlvdXIgYWNjb3VudCBkb2Vzbid0IGhhdmUgdGhlIGZsYWcsIHRoZSBzZXJ2ZXJcbiAqIHJldHVybnMgNDA0IGFuZCB0aGlzIGNvbW1hbmQgc3VyZmFjZXMgaXQpLiBBY2NlcHRzIHRleHQgZGlyZWN0bHkgdmlhXG4gKiBgLS10ZXh0YCwgZnJvbSBhIGZpbGUgdmlhIGAtLWZpbGVgLCBvciBwaXBlZCBvbiBzdGRpbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVtcGxhdGVzRW5oYW5jZSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIkFJLWVuaGFuY2UgYSBtZXNzYWdlIHRlbXBsYXRlIGZvciBjbGFyaXR5LCBjb21wbGlhbmNlLCBhbmQgc2VuZC1yZWFkaW5lc3MuIFJldHVybnMgdGhlIHJld3JpdHRlbiB0ZXh0ICsgYW4gZXhwbGFuYXRpb24uXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgICc8JT0gY29uZmlnLmJpbiAlPiB0ZW1wbGF0ZXMgZW5oYW5jZSAtLXRleHQgXCJoZXkgY29tZSBjaGVjayBvdXQgb3VyIHNhbGVcIicsXG4gICAgJzwlPSBjb25maWcuYmluICU+IHRlbXBsYXRlcyBlbmhhbmNlIC0tZmlsZSAuL2RyYWZ0LnR4dCAtLW1lc3NhZ2UtdHlwZSBtYXJrZXRpbmcnLFxuICAgICc8JT0gY29uZmlnLmJpbiAlPiBlY2hvIFwieW91ciBzYWxlIG1zZ1wiIHwgc2VuZGx5IHRlbXBsYXRlcyBlbmhhbmNlIC0tbWVzc2FnZS10eXBlIHByb21vdGlvbmFsJyxcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICB0ZXh0OiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJNZXNzYWdlIHRleHQgdG8gZW5oYW5jZSAoYWx0ZXJuYXRpdmUgdG8gLS10ZXh0IC8gLS1maWxlKVwiLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgdGV4dDogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk1lc3NhZ2UgdGV4dCB0byBlbmhhbmNlXCIsXG4gICAgfSksXG4gICAgZmlsZTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlJlYWQgbWVzc2FnZSB0ZXh0IGZyb20gYSBmaWxlIHBhdGhcIixcbiAgICB9KSxcbiAgICBcIm1lc3NhZ2UtdHlwZVwiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiSGludCB0aGUga2luZCBvZiBtZXNzYWdlIChlLmcuIG1hcmtldGluZywgdHJhbnNhY3Rpb25hbCwgbm90aWZpY2F0aW9uKSBmb3IgdGFyZ2V0ZWQgZW5oYW5jZW1lbnRzXCIsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncywgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoVGVtcGxhdGVzRW5oYW5jZSk7XG5cbiAgICBsZXQgdGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkID0gZmxhZ3MudGV4dCA/PyBhcmdzLnRleHQ7XG4gICAgaWYgKCF0ZXh0ICYmIGZsYWdzLmZpbGUpIHtcbiAgICAgIHRleHQgPSBmcy5yZWFkRmlsZVN5bmMoZmxhZ3MuZmlsZSwgXCJ1dGY4XCIpLnRyaW0oKTtcbiAgICB9XG4gICAgaWYgKCF0ZXh0ICYmICFwcm9jZXNzLnN0ZGluLmlzVFRZKSB7XG4gICAgICB0ZXh0ID0gYXdhaXQgbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSkgPT4ge1xuICAgICAgICBsZXQgYnVmID0gXCJcIjtcbiAgICAgICAgcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZyhcInV0ZjhcIik7XG4gICAgICAgIHByb2Nlc3Muc3RkaW4ub24oXCJkYXRhXCIsIChjKSA9PiAoYnVmICs9IGMpKTtcbiAgICAgICAgcHJvY2Vzcy5zdGRpbi5vbihcImVuZFwiLCAoKSA9PiByZXNvbHZlKGJ1Zi50cmltKCkpKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghdGV4dCkge1xuICAgICAgZXJyb3IoXG4gICAgICAgIFwiUHJvdmlkZSB0ZXh0IHRvIGVuaGFuY2UgdmlhIC0tdGV4dCwgLS1maWxlLCBhIHBvc2l0aW9uYWwgYXJnLCBvciBzdGRpbi5cIixcbiAgICAgICk7XG4gICAgICB0aGlzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcCA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PEVuaGFuY2VSZXNwb25zZT4oXG4gICAgICBcIi9hcGkvdjEvYWkvZW5oYW5jZVwiLFxuICAgICAge1xuICAgICAgICB0ZXh0OiB0ZXh0ID8/IFwiXCIsXG4gICAgICAgIG1lc3NhZ2VUeXBlOiBmbGFnc1tcIm1lc3NhZ2UtdHlwZVwiXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaGVhZGVyKFwiRW5oYW5jZWQgdGV4dFwiKTtcbiAgICBjb25zb2xlLmxvZyhcIiAgXCIgKyAocmVzcC5lbmhhbmNlZCB8fCBjb2xvcnMuZGltKFwiKG5vIGNoYW5nZSlcIikpKTtcbiAgICBpZiAocmVzcC5leHBsYW5hdGlvbikge1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGluZm8ocmVzcC5leHBsYW5hdGlvbik7XG4gICAgfVxuICAgIGlmICghcmVzcC5lbmhhbmNlZCB8fCByZXNwLmVuaGFuY2VkID09PSB0ZXh0KSB7XG4gICAgICBzdWNjZXNzKFwiTm8gZW5oYW5jZW1lbnQgc3VnZ2VzdGVkIOKAlCBvcmlnaW5hbCB0ZXh0IGxvb2tzIGdvb2QuXCIpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
import { Command } from "@oclif/core";
|
|
2
|
-
/**
|
|
3
|
-
* `sendly upgrade` — bring the CLI up to the latest version.
|
|
4
|
-
*
|
|
5
|
-
* Detects the install path (Homebrew vs npm-global vs unknown) and
|
|
6
|
-
* executes the matching package-manager upgrade command. If the install
|
|
7
|
-
* path is unknown we print both options for the user to pick.
|
|
8
|
-
*
|
|
9
|
-
* The `--check` flag does a dry-run: prints what would happen without
|
|
10
|
-
* executing anything. Useful in restricted shells where we don't want
|
|
11
|
-
* to trigger a brew/npm run accidentally.
|
|
12
|
-
*
|
|
13
|
-
* The unattended in-band update banner that prompts users to run this
|
|
14
|
-
* comes from the `@oclif/plugin-warn-if-update-available` plugin wired
|
|
15
|
-
* in package.json; this command is the companion action for that
|
|
16
|
-
* banner.
|
|
17
|
-
*/
|
|
18
2
|
export default class Upgrade extends Command {
|
|
19
3
|
static description: string;
|
|
20
4
|
static examples: string[];
|
|
@@ -22,4 +6,5 @@ export default class Upgrade extends Command {
|
|
|
22
6
|
check: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
23
7
|
};
|
|
24
8
|
run(): Promise<void>;
|
|
9
|
+
private renderSuccess;
|
|
25
10
|
}
|