@sendly/cli 3.35.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/business-upgrade/cancel.d.ts +12 -0
- package/dist/commands/business-upgrade/cancel.js +47 -0
- package/dist/commands/business-upgrade/disposition.d.ts +13 -0
- package/dist/commands/business-upgrade/disposition.js +44 -0
- package/dist/commands/business-upgrade/preflight.d.ts +16 -0
- package/dist/commands/business-upgrade/preflight.js +82 -0
- package/dist/commands/business-upgrade/resubmit.d.ts +24 -0
- package/dist/commands/business-upgrade/resubmit.js +109 -0
- package/dist/commands/business-upgrade/start.d.ts +38 -0
- package/dist/commands/business-upgrade/start.js +142 -0
- package/dist/commands/business-upgrade/status.d.ts +11 -0
- package/dist/commands/business-upgrade/status.js +38 -0
- package/dist/commands/enterprise/verification/get.d.ts +13 -0
- package/dist/commands/enterprise/verification/get.js +78 -0
- package/dist/commands/enterprise/verification/resubmit.d.ts +41 -0
- package/dist/commands/enterprise/verification/resubmit.js +87 -0
- package/dist/commands/enterprise/verification/submit.d.ts +77 -0
- package/dist/commands/enterprise/verification/submit.js +212 -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.d.ts +31 -0
- package/dist/commands/numbers/buy.js +266 -0
- package/dist/commands/numbers/get.d.ts +20 -0
- package/dist/commands/numbers/get.js +52 -0
- package/dist/commands/numbers/list.d.ts +10 -0
- package/dist/commands/numbers/list.js +70 -0
- package/dist/commands/numbers/release.d.ts +23 -0
- package/dist/commands/numbers/release.js +67 -0
- package/dist/commands/numbers/search.d.ts +13 -0
- package/dist/commands/numbers/search.js +78 -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/dist/lib/auth.js +2 -94
- package/dist/lib/config.js +31 -2
- package/dist/lib/detect-install-path.d.ts +11 -7
- package/dist/lib/detect-install-path.js +25 -9
- package/dist/lib/keypress.d.ts +26 -0
- package/dist/lib/keypress.js +103 -0
- package/oclif.manifest.json +5005 -2698
- package/package.json +22 -1
package/README.md
CHANGED
|
@@ -85,7 +85,10 @@ sendly logout
|
|
|
85
85
|
```bash
|
|
86
86
|
sendly sms send --to "+15551234567" --text "Hello!"
|
|
87
87
|
|
|
88
|
-
#
|
|
88
|
+
# Send from a number you own (E.164) — see Numbers Commands below
|
|
89
|
+
sendly sms send --to "+15551234567" --text "Hello!" --from "+447111111111"
|
|
90
|
+
|
|
91
|
+
# Or an alphanumeric sender ID (international)
|
|
89
92
|
sendly sms send --to "+447700900000" --text "Hello!" --from "MyBrand"
|
|
90
93
|
```
|
|
91
94
|
|
|
@@ -129,6 +132,23 @@ sendly sms batch --file messages.json --dry-run
|
|
|
129
132
|
# - Credit balance check
|
|
130
133
|
```
|
|
131
134
|
|
|
135
|
+
#### Send a Group MMS
|
|
136
|
+
|
|
137
|
+
Send to 2-8 recipients (US & Canada only) in a single group thread — everyone
|
|
138
|
+
sees the group and replies fan out to all participants. Group messaging is an
|
|
139
|
+
A2P 10DLC capability, so the sending number must be an MMS-enabled,
|
|
140
|
+
10DLC-registered number you own (omit `--from` to use your default sender).
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
sendly sms group --to "+14155551234,+14155555678" --text "Team sync at noon?"
|
|
144
|
+
|
|
145
|
+
# Attach media
|
|
146
|
+
sendly sms group --to "+14155551234,+14155555678" --media-url https://example.com/flyer.jpg
|
|
147
|
+
|
|
148
|
+
# Marketing (applies quiet-hours rules; group MMS defaults to transactional)
|
|
149
|
+
sendly sms group --to "+14155551234,+14155555678" --text "Sale!" --type marketing
|
|
150
|
+
```
|
|
151
|
+
|
|
132
152
|
#### Schedule a Message
|
|
133
153
|
|
|
134
154
|
```bash
|
|
@@ -147,6 +167,138 @@ sendly sms scheduled
|
|
|
147
167
|
sendly sms cancel sched_abc123
|
|
148
168
|
```
|
|
149
169
|
|
|
170
|
+
### Numbers Commands
|
|
171
|
+
|
|
172
|
+
Buy international phone numbers and send from them. (US & Canada use toll-free
|
|
173
|
+
verification instead — they can't be bought.)
|
|
174
|
+
|
|
175
|
+
#### Search Available Numbers
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
sendly numbers search --country GB --type mobile
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
#### Buy a Number
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
sendly numbers buy --country GB --type mobile
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
The buy is asynchronous: the number starts as `provisioning` and becomes
|
|
188
|
+
`active` once the carrier confirms it. Some countries need documents or
|
|
189
|
+
business details first — you'll get a hosted link to complete them. See
|
|
190
|
+
[How to buy a number](https://sendly.live/docs/how-to/buy-a-number).
|
|
191
|
+
|
|
192
|
+
#### List Your Numbers
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
sendly numbers list
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Pass the `phoneNumber` of any `active` number as `--from` on a send to send
|
|
199
|
+
from it (see [Send from a number you own](https://sendly.live/docs/how-to/send-from-owned-number)):
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
sendly sms send --to "+15551234567" --text "Hi!" --from "+447111111111"
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
#### Show a Number
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
sendly numbers get num_abc123
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Includes whether it's your workspace default sender and any scheduled release.
|
|
212
|
+
|
|
213
|
+
#### Update a Number
|
|
214
|
+
|
|
215
|
+
Make a number your default sender, or cancel a scheduled release. At least one
|
|
216
|
+
of `--default` / `--keep` is required:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
# Make this number the workspace default sender (must be active)
|
|
220
|
+
sendly numbers update num_abc123 --default
|
|
221
|
+
|
|
222
|
+
# Cancel a scheduled release and keep the number
|
|
223
|
+
sendly numbers update num_abc123 --keep
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
#### Release a Number
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
sendly numbers release num_abc123
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Paid purchases are scheduled to release at the end of the billing period (undo
|
|
233
|
+
with `sendly numbers update <id> --keep`); everything else releases immediately.
|
|
234
|
+
Add `--yes` to skip the confirmation prompt.
|
|
235
|
+
|
|
236
|
+
### 10DLC Commands
|
|
237
|
+
|
|
238
|
+
Register your brand and messaging campaigns for carrier review so you can
|
|
239
|
+
send from US local (10-digit) numbers. The flow is brand → qualify →
|
|
240
|
+
campaign → assign number. Requires a live API key.
|
|
241
|
+
|
|
242
|
+
#### Register a Brand
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
sendly 10dlc brands create --legal-name "Acme Inc" --ein "12-3456789" --website https://acme.com
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
#### Check Brand Status
|
|
249
|
+
|
|
250
|
+
Carrier review starts as `pending` and becomes `verified` (or `failed`).
|
|
251
|
+
Running `get` refreshes the status:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
sendly 10dlc brands list
|
|
255
|
+
sendly 10dlc brands get <brandId>
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
#### Qualify a Use Case
|
|
259
|
+
|
|
260
|
+
Pre-check that a use case is accepted for your brand before creating a
|
|
261
|
+
campaign:
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
sendly 10dlc qualify <brandId> MIXED
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
#### Create a Campaign
|
|
268
|
+
|
|
269
|
+
Once the brand is `verified`:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
sendly 10dlc campaigns create \
|
|
273
|
+
--brand <brandId> \
|
|
274
|
+
--use-case MIXED \
|
|
275
|
+
--description "Order updates and promotions" \
|
|
276
|
+
--message-flow "Customers opt in at checkout" \
|
|
277
|
+
--sample "Your order has shipped!" \
|
|
278
|
+
--sample "20% off this weekend"
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Poll until the campaign is `active`:
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
sendly 10dlc campaigns get <campaignId>
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
#### Assign a Number
|
|
288
|
+
|
|
289
|
+
Attach a US local number you own to the active campaign to make it sendable:
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
sendly 10dlc campaigns assign <campaignId> --number "+15551234567"
|
|
293
|
+
sendly 10dlc assignments list
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Then send from it:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
sendly sms send --to "+15559876543" --text "Hi!" --from "+15551234567"
|
|
300
|
+
```
|
|
301
|
+
|
|
150
302
|
### API Key Commands
|
|
151
303
|
|
|
152
304
|
#### List API Keys
|
|
@@ -167,6 +319,21 @@ sendly keys create --name "Production Key" --type live
|
|
|
167
319
|
sendly keys revoke key_abc123
|
|
168
320
|
```
|
|
169
321
|
|
|
322
|
+
#### Rotate a Key
|
|
323
|
+
|
|
324
|
+
Generate a replacement key while keeping the old one valid for a grace period
|
|
325
|
+
(24-168 hours, default 24), so you can roll deployments over before the old key
|
|
326
|
+
expires:
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
sendly keys rotate key_abc123
|
|
330
|
+
|
|
331
|
+
# Keep the old key alive for 48 hours
|
|
332
|
+
sendly keys rotate key_abc123 --grace-period 48 --yes
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
The new `sk_…` secret is shown once — store it immediately.
|
|
336
|
+
|
|
170
337
|
### Credit Commands
|
|
171
338
|
|
|
172
339
|
#### Check Balance
|
|
@@ -369,6 +536,42 @@ sendly templates delete tpl_abc123 --force
|
|
|
369
536
|
sendly templates presets
|
|
370
537
|
```
|
|
371
538
|
|
|
539
|
+
### Link Commands (URL Shortening)
|
|
540
|
+
|
|
541
|
+
Mint branded, owned-domain short links for your destination URLs. Branded short
|
|
542
|
+
links improve deliverability (carriers filter public shorteners) and give you
|
|
543
|
+
per-link click analytics. URL shortening is gated behind the `url_shortener`
|
|
544
|
+
rollout flag — until it's enabled for your account these commands return
|
|
545
|
+
`not_enabled`.
|
|
546
|
+
|
|
547
|
+
#### Create a Short Link
|
|
548
|
+
|
|
549
|
+
```bash
|
|
550
|
+
sendly links create https://example.com/spring-sale
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
#### List Your Short Links
|
|
554
|
+
|
|
555
|
+
Newest first, with click counts:
|
|
556
|
+
|
|
557
|
+
```bash
|
|
558
|
+
sendly links list
|
|
559
|
+
|
|
560
|
+
# Paginate
|
|
561
|
+
sendly links list --limit 20 --offset 20
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
#### Disable / Re-enable a Short Link
|
|
565
|
+
|
|
566
|
+
The per-link kill switch — a disabled link's redirect returns 404:
|
|
567
|
+
|
|
568
|
+
```bash
|
|
569
|
+
sendly links disable Ab3xY7
|
|
570
|
+
|
|
571
|
+
# Re-enable
|
|
572
|
+
sendly links disable Ab3xY7 --enable
|
|
573
|
+
```
|
|
574
|
+
|
|
372
575
|
### Logs Commands
|
|
373
576
|
|
|
374
577
|
#### Tail Logs
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../../lib/base-command.js";
|
|
2
|
+
export default class TendlcAssignmentsList 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,67 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../../lib/base-command.js";
|
|
2
|
+
import { apiClient } from "../../../lib/api-client.js";
|
|
3
|
+
import { table, json, info, formatRelativeTime, colors, isJsonMode, } from "../../../lib/output.js";
|
|
4
|
+
function formatAssignmentStatus(status) {
|
|
5
|
+
switch (status) {
|
|
6
|
+
case "Active":
|
|
7
|
+
return colors.success(status);
|
|
8
|
+
case "Under review":
|
|
9
|
+
return colors.warning(status);
|
|
10
|
+
case "Action needed":
|
|
11
|
+
return colors.error(status);
|
|
12
|
+
default:
|
|
13
|
+
return status;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export default class TendlcAssignmentsList extends AuthenticatedCommand {
|
|
17
|
+
static description = "List number-to-campaign assignments";
|
|
18
|
+
static examples = [
|
|
19
|
+
"<%= config.bin %> 10dlc assignments list",
|
|
20
|
+
"<%= config.bin %> 10dlc assignments list --json",
|
|
21
|
+
];
|
|
22
|
+
static flags = {
|
|
23
|
+
...AuthenticatedCommand.baseFlags,
|
|
24
|
+
};
|
|
25
|
+
async run() {
|
|
26
|
+
await this.parse(TendlcAssignmentsList);
|
|
27
|
+
const response = await apiClient.get("/api/v1/tendlc/assignments");
|
|
28
|
+
if (isJsonMode()) {
|
|
29
|
+
json(response);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (!response.data || response.data.length === 0) {
|
|
33
|
+
info("No numbers assigned yet. Assign one with: sendly 10dlc campaigns assign <campaignId> --number <number>");
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
console.log();
|
|
37
|
+
console.log(colors.dim(`Showing ${response.data.length} assignments`));
|
|
38
|
+
console.log();
|
|
39
|
+
table(response.data, [
|
|
40
|
+
{
|
|
41
|
+
header: "Number",
|
|
42
|
+
key: "phoneNumber",
|
|
43
|
+
width: 18,
|
|
44
|
+
formatter: (v) => colors.code(String(v)),
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
header: "Campaign",
|
|
48
|
+
key: "campaignId",
|
|
49
|
+
width: 38,
|
|
50
|
+
formatter: (v) => colors.dim(String(v)),
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
header: "Status",
|
|
54
|
+
key: "status",
|
|
55
|
+
width: 14,
|
|
56
|
+
formatter: (v) => formatAssignmentStatus(String(v)),
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
header: "Assigned",
|
|
60
|
+
key: "assignedAt",
|
|
61
|
+
width: 12,
|
|
62
|
+
formatter: (v) => (v ? formatRelativeTime(String(v)) : "-"),
|
|
63
|
+
},
|
|
64
|
+
]);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tYW5kcy8xMGRsYy9hc3NpZ25tZW50cy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSx3QkFBd0IsQ0FBQztBQWNoQyxTQUFTLHNCQUFzQixDQUFDLE1BQWM7SUFDNUMsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssUUFBUTtZQUNYLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxLQUFLLGNBQWM7WUFDakIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLEtBQUssZUFBZTtZQUNsQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUI7WUFDRSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXNCLFNBQVEsb0JBQW9CO0lBQ3JFLE1BQU0sQ0FBQyxXQUFXLEdBQUcscUNBQXFDLENBQUM7SUFFM0QsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiwwQ0FBMEM7UUFDMUMsaURBQWlEO0tBQ2xELENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXhDLE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDbEMsNEJBQTRCLENBQzdCLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQ0Ysd0dBQXdHLENBQ3pHLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVkLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ25CO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsYUFBYTtnQkFDbEIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6QztZQUNEO2dCQUNFLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixHQUFHLEVBQUUsWUFBWTtnQkFDakIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4QztZQUNEO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsUUFBUTtnQkFDYixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNwRDtZQUNEO2dCQUNFLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixHQUFHLEVBQUUsWUFBWTtnQkFDakIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQzthQUM1RDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHRhYmxlLFxuICBqc29uLFxuICBpbmZvLFxuICBmb3JtYXRSZWxhdGl2ZVRpbWUsXG4gIGNvbG9ycyxcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIEFzc2lnbm1lbnQge1xuICBpZDogc3RyaW5nO1xuICBjYW1wYWlnbklkOiBzdHJpbmc7XG4gIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBhc3NpZ25lZEF0OiBzdHJpbmcgfCBudWxsO1xufVxuXG5pbnRlcmZhY2UgTGlzdEFzc2lnbm1lbnRzUmVzcG9uc2Uge1xuICBkYXRhOiBBc3NpZ25tZW50W107XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEFzc2lnbm1lbnRTdGF0dXMoc3RhdHVzOiBzdHJpbmcpOiBzdHJpbmcge1xuICBzd2l0Y2ggKHN0YXR1cykge1xuICAgIGNhc2UgXCJBY3RpdmVcIjpcbiAgICAgIHJldHVybiBjb2xvcnMuc3VjY2VzcyhzdGF0dXMpO1xuICAgIGNhc2UgXCJVbmRlciByZXZpZXdcIjpcbiAgICAgIHJldHVybiBjb2xvcnMud2FybmluZyhzdGF0dXMpO1xuICAgIGNhc2UgXCJBY3Rpb24gbmVlZGVkXCI6XG4gICAgICByZXR1cm4gY29sb3JzLmVycm9yKHN0YXR1cyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0dXM7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVuZGxjQXNzaWdubWVudHNMaXN0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkxpc3QgbnVtYmVyLXRvLWNhbXBhaWduIGFzc2lnbm1lbnRzXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gMTBkbGMgYXNzaWdubWVudHMgbGlzdFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gMTBkbGMgYXNzaWdubWVudHMgbGlzdCAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhcnNlKFRlbmRsY0Fzc2lnbm1lbnRzTGlzdCk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8TGlzdEFzc2lnbm1lbnRzUmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL3RlbmRsYy9hc3NpZ25tZW50c1wiLFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlLmRhdGEgfHwgcmVzcG9uc2UuZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8oXG4gICAgICAgIFwiTm8gbnVtYmVycyBhc3NpZ25lZCB5ZXQuIEFzc2lnbiBvbmUgd2l0aDogc2VuZGx5IDEwZGxjIGNhbXBhaWducyBhc3NpZ24gPGNhbXBhaWduSWQ+IC0tbnVtYmVyIDxudW1iZXI+XCIsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coY29sb3JzLmRpbShgU2hvd2luZyAke3Jlc3BvbnNlLmRhdGEubGVuZ3RofSBhc3NpZ25tZW50c2ApKTtcbiAgICBjb25zb2xlLmxvZygpO1xuXG4gICAgdGFibGUocmVzcG9uc2UuZGF0YSwgW1xuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiTnVtYmVyXCIsXG4gICAgICAgIGtleTogXCJwaG9uZU51bWJlclwiLFxuICAgICAgICB3aWR0aDogMTgsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGNvbG9ycy5jb2RlKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiQ2FtcGFpZ25cIixcbiAgICAgICAga2V5OiBcImNhbXBhaWduSWRcIixcbiAgICAgICAgd2lkdGg6IDM4LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBjb2xvcnMuZGltKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiU3RhdHVzXCIsXG4gICAgICAgIGtleTogXCJzdGF0dXNcIixcbiAgICAgICAgd2lkdGg6IDE0LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBmb3JtYXRBc3NpZ25tZW50U3RhdHVzKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiQXNzaWduZWRcIixcbiAgICAgICAga2V5OiBcImFzc2lnbmVkQXRcIixcbiAgICAgICAgd2lkdGg6IDEyLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiAodiA/IGZvcm1hdFJlbGF0aXZlVGltZShTdHJpbmcodikpIDogXCItXCIpLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../../lib/base-command.js";
|
|
2
|
+
export default class TendlcBrandsCreate extends AuthenticatedCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
"legal-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
+
dba: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
+
ein: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
9
|
+
"entity-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
10
|
+
vertical: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
11
|
+
website: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
12
|
+
email: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
13
|
+
phone: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
14
|
+
"mobile-phone": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
15
|
+
street: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
16
|
+
city: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
17
|
+
state: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
18
|
+
"postal-code": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
19
|
+
country: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
20
|
+
"verification-id": 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,89 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../../lib/base-command.js";
|
|
3
|
+
import { apiClient } from "../../../lib/api-client.js";
|
|
4
|
+
import { json, success, colors, isJsonMode, keyValue, } from "../../../lib/output.js";
|
|
5
|
+
const TEXT_FIELDS = {
|
|
6
|
+
dba: "dba",
|
|
7
|
+
ein: "ein",
|
|
8
|
+
vertical: "vertical",
|
|
9
|
+
website: "website",
|
|
10
|
+
email: "email",
|
|
11
|
+
phone: "phone",
|
|
12
|
+
"mobile-phone": "mobilePhone",
|
|
13
|
+
street: "street",
|
|
14
|
+
city: "city",
|
|
15
|
+
state: "state",
|
|
16
|
+
"postal-code": "postalCode",
|
|
17
|
+
country: "country",
|
|
18
|
+
"verification-id": "verificationId",
|
|
19
|
+
};
|
|
20
|
+
export default class TendlcBrandsCreate extends AuthenticatedCommand {
|
|
21
|
+
static description = "Register a brand for carrier review (step 1 of enabling local-number texting)";
|
|
22
|
+
static examples = [
|
|
23
|
+
'<%= config.bin %> 10dlc brands create --legal-name "Acme Inc" --ein "12-3456789" --website https://acme.com',
|
|
24
|
+
'<%= config.bin %> 10dlc brands create --legal-name "Jane Doe" --entity-type SOLE_PROPRIETOR --email jane@example.com',
|
|
25
|
+
];
|
|
26
|
+
static flags = {
|
|
27
|
+
...AuthenticatedCommand.baseFlags,
|
|
28
|
+
"legal-name": Flags.string({
|
|
29
|
+
description: "Legal business name",
|
|
30
|
+
required: true,
|
|
31
|
+
}),
|
|
32
|
+
dba: Flags.string({ description: "DBA / trading name" }),
|
|
33
|
+
ein: Flags.string({ description: "EIN / tax ID" }),
|
|
34
|
+
"entity-type": Flags.string({
|
|
35
|
+
description: "Entity type (e.g. PRIVATE_PROFIT, SOLE_PROPRIETOR)",
|
|
36
|
+
default: "PRIVATE_PROFIT",
|
|
37
|
+
}),
|
|
38
|
+
vertical: Flags.string({
|
|
39
|
+
description: "Industry vertical (e.g. TECHNOLOGY, RETAIL)",
|
|
40
|
+
}),
|
|
41
|
+
website: Flags.string({ description: "Business website URL" }),
|
|
42
|
+
email: Flags.string({ description: "Business contact email" }),
|
|
43
|
+
phone: Flags.string({ description: "Business phone number" }),
|
|
44
|
+
"mobile-phone": Flags.string({
|
|
45
|
+
description: "Contact mobile number (sole proprietors)",
|
|
46
|
+
}),
|
|
47
|
+
street: Flags.string({ description: "Street address" }),
|
|
48
|
+
city: Flags.string({ description: "City" }),
|
|
49
|
+
state: Flags.string({ description: "State / region" }),
|
|
50
|
+
"postal-code": Flags.string({ description: "ZIP / postal code" }),
|
|
51
|
+
country: Flags.string({
|
|
52
|
+
description: "Country code (e.g. US)",
|
|
53
|
+
default: "US",
|
|
54
|
+
}),
|
|
55
|
+
"verification-id": Flags.string({
|
|
56
|
+
description: "Verification ID to prefill business details from",
|
|
57
|
+
}),
|
|
58
|
+
};
|
|
59
|
+
async run() {
|
|
60
|
+
const { flags } = await this.parse(TendlcBrandsCreate);
|
|
61
|
+
const body = {
|
|
62
|
+
legalName: flags["legal-name"],
|
|
63
|
+
entityType: flags["entity-type"],
|
|
64
|
+
};
|
|
65
|
+
for (const [flagKey, wireKey] of Object.entries(TEXT_FIELDS)) {
|
|
66
|
+
const v = flags[flagKey];
|
|
67
|
+
if (typeof v === "string" && v.length > 0)
|
|
68
|
+
body[wireKey] = v;
|
|
69
|
+
}
|
|
70
|
+
const response = await apiClient.post("/api/v1/tendlc/brands", body);
|
|
71
|
+
if (isJsonMode()) {
|
|
72
|
+
json(response);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const brand = response.data;
|
|
76
|
+
success(`Brand submitted for carrier review: ${brand.id}`);
|
|
77
|
+
console.log();
|
|
78
|
+
keyValue([
|
|
79
|
+
["Legal name", brand.legalName],
|
|
80
|
+
["Entity type", brand.entityType],
|
|
81
|
+
["Status", colors.warning(brand.status)],
|
|
82
|
+
]);
|
|
83
|
+
console.log();
|
|
84
|
+
console.log(colors.dim("Next steps:"));
|
|
85
|
+
console.log(` Check status: ${colors.code(`sendly 10dlc brands get ${brand.id}`)}`);
|
|
86
|
+
console.log(` Once verified: ${colors.code(`sendly 10dlc qualify ${brand.id} MIXED`)}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzLzEwZGxjL2JyYW5kcy9jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUNMLElBQUksRUFDSixPQUFPLEVBQ1AsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEdBQ1QsTUFBTSx3QkFBd0IsQ0FBQztBQWVoQyxNQUFNLFdBQVcsR0FBMkI7SUFDMUMsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEtBQUssRUFBRSxPQUFPO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDZCxjQUFjLEVBQUUsYUFBYTtJQUM3QixNQUFNLEVBQUUsUUFBUTtJQUNoQixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxPQUFPO0lBQ2QsYUFBYSxFQUFFLFlBQVk7SUFDM0IsT0FBTyxFQUFFLFNBQVM7SUFDbEIsaUJBQWlCLEVBQUUsZ0JBQWdCO0NBQ3BDLENBQUM7QUFFRixNQUFNLENBQUMsT0FBTyxPQUFPLGtCQUFtQixTQUFRLG9CQUFvQjtJQUNsRSxNQUFNLENBQUMsV0FBVyxHQUNoQiwrRUFBK0UsQ0FBQztJQUVsRixNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDZHQUE2RztRQUM3RyxzSEFBc0g7S0FDdkgsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDekIsV0FBVyxFQUFFLHFC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S0FBSyxDQUFDLFNBQVMsQ0FBQztZQUMvQixDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ2pDLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQ1Qsb0JBQW9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQ3pFLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUNULG9CQUFvQixNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUM1RSxDQUFDO0lBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIHN1Y2Nlc3MsXG4gIGNvbG9ycyxcbiAgaXNKc29uTW9kZSxcbiAga2V5VmFsdWUsXG59IGZyb20gXCIuLi8uLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBCcmFuZCB7XG4gIGlkOiBzdHJpbmc7XG4gIGxlZ2FsTmFtZTogc3RyaW5nO1xuICBkYmE6IHN0cmluZyB8IG51bGw7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlQnJhbmRSZXNwb25zZSB7XG4gIGRhdGE6IEJyYW5kO1xufVxuXG5jb25zdCBURVhUX0ZJRUxEUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGJhOiBcImRiYVwiLFxuICBlaW46IFwiZWluXCIsXG4gIHZlcnRpY2FsOiBcInZlcnRpY2FsXCIsXG4gIHdlYnNpdGU6IFwid2Vic2l0ZVwiLFxuICBlbWFpbDogXCJlbWFpbFwiLFxuICBwaG9uZTogXCJwaG9uZVwiLFxuICBcIm1vYmlsZS1waG9uZVwiOiBcIm1vYmlsZVBob25lXCIsXG4gIHN0cmVldDogXCJzdHJlZXRcIixcbiAgY2l0eTogXCJjaXR5XCIsXG4gIHN0YXRlOiBcInN0YXRlXCIsXG4gIFwicG9zdGFsLWNvZGVcIjogXCJwb3N0YWxDb2RlXCIsXG4gIGNvdW50cnk6IFwiY291bnRyeVwiLFxuICBcInZlcmlmaWNhdGlvbi1pZFwiOiBcInZlcmlmaWNhdGlvbklkXCIsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZW5kbGNCcmFuZHNDcmVhdGUgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJSZWdpc3RlciBhIGJyYW5kIGZvciBjYXJyaWVyIHJldmlldyAoc3RlcCAxIG9mIGVuYWJsaW5nIGxvY2FsLW51bWJlciB0ZXh0aW5nKVwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gMTBkbGMgYnJhbmRzIGNyZWF0ZSAtLWxlZ2FsLW5hbWUgXCJBY21lIEluY1wiIC0tZWluIFwiMTItMzQ1Njc4OVwiIC0td2Vic2l0ZSBodHRwczovL2FjbWUuY29tJyxcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gMTBkbGMgYnJhbmRzIGNyZWF0ZSAtLWxlZ2FsLW5hbWUgXCJKYW5lIERvZVwiIC0tZW50aXR5LXR5cGUgU09MRV9QUk9QUklFVE9SIC0tZW1haWwgamFuZUBleGFtcGxlLmNvbScsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBcImxlZ2FsLW5hbWVcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkxlZ2FsIGJ1c2luZXNzIG5hbWVcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICAgIGRiYTogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiREJBIC8gdHJhZGluZyBuYW1lXCIgfSksXG4gICAgZWluOiBGbGFncy5zdHJpbmcoeyBkZXNjcmlwdGlvbjogXCJFSU4gLyB0YXggSURcIiB9KSxcbiAgICBcImVudGl0eS10eXBlXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJFbnRpdHkgdHlwZSAoZS5nLiBQUklWQVRFX1BST0ZJVCwgU09MRV9QUk9QUklFVE9SKVwiLFxuICAgICAgZGVmYXVsdDogXCJQUklWQVRFX1BST0ZJVFwiLFxuICAgIH0pLFxuICAgIHZlcnRpY2FsOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiSW5kdXN0cnkgdmVydGljYWwgKGUuZy4gVEVDSE5PTE9HWSwgUkVUQUlMKVwiLFxuICAgIH0pLFxuICAgIHdlYnNpdGU6IEZsYWdzLnN0cmluZyh7IGRlc2NyaXB0aW9uOiBcIkJ1c2luZXNzIHdlYnNpdGUgVVJMXCIgfSksXG4gICAgZW1haWw6IEZsYWdzLnN0cmluZyh7IGRlc2NyaXB0aW9uOiBcIkJ1c2luZXNzIGNvbnRhY3QgZW1haWxcIiB9KSxcbiAgICBwaG9uZTogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiQnVzaW5lc3MgcGhvbmUgbnVtYmVyXCIgfSksXG4gICAgXCJtb2JpbGUtcGhvbmVcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkNvbnRhY3QgbW9iaWxlIG51bWJlciAoc29sZSBwcm9wcmlldG9ycylcIixcbiAgICB9KSxcbiAgICBzdHJlZXQ6IEZsYWdzLnN0cmluZyh7IGRlc2NyaXB0aW9uOiBcIlN0cmVldCBhZGRyZXNzXCIgfSksXG4gICAgY2l0eTogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiQ2l0eVwiIH0pLFxuICAgIHN0YXRlOiBGbGFncy5zdHJpbmcoeyBkZXNjcmlwdGlvbjogXCJTdGF0ZSAvIHJlZ2lvblwiIH0pLFxuICAgIFwicG9zdGFsLWNvZGVcIjogRmxhZ3Muc3RyaW5nKHsgZGVzY3JpcHRpb246IFwiWklQIC8gcG9zdGFsIGNvZGVcIiB9KSxcbiAgICBjb3VudHJ5OiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiQ291bnRyeSBjb2RlIChlLmcuIFVTKVwiLFxuICAgICAgZGVmYXVsdDogXCJVU1wiLFxuICAgIH0pLFxuICAgIFwidmVyaWZpY2F0aW9uLWlkXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJWZXJpZmljYXRpb24gSUQgdG8gcHJlZmlsbCBidXNpbmVzcyBkZXRhaWxzIGZyb21cIixcbiAgICB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShUZW5kbGNCcmFuZHNDcmVhdGUpO1xuXG4gICAgY29uc3QgYm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBsZWdhbE5hbWU6IGZsYWdzW1wibGVnYWwtbmFtZVwiXSxcbiAgICAgIGVudGl0eVR5cGU6IGZsYWdzW1wiZW50aXR5LXR5cGVcIl0sXG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgW2ZsYWdLZXksIHdpcmVLZXldIG9mIE9iamVjdC5lbnRyaWVzKFRFWFRfRklFTERTKSkge1xuICAgICAgY29uc3QgdiA9IGZsYWdzW2ZsYWdLZXkgYXMga2V5b2YgdHlwZW9mIGZsYWdzXTtcbiAgICAgIGlmICh0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiAmJiB2Lmxlbmd0aCA+IDApIGJvZHlbd2lyZUtleV0gPSB2O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8Q3JlYXRlQnJhbmRSZXNwb25zZT4oXG4gICAgICBcIi9hcGkvdjEvdGVuZGxjL2JyYW5kc1wiLFxuICAgICAgYm9keSxcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYnJhbmQgPSByZXNwb25zZS5kYXRhO1xuXG4gICAgc3VjY2VzcyhgQnJhbmQgc3VibWl0dGVkIGZvciBjYXJyaWVyIHJldmlldzogJHticmFuZC5pZH1gKTtcbiAgICBjb25zb2xlLmxvZygpO1xuXG4gICAga2V5VmFsdWUoW1xuICAgICAgW1wiTGVnYWwgbmFtZVwiLCBicmFuZC5sZWdhbE5hbWVdLFxuICAgICAgW1wiRW50aXR5IHR5cGVcIiwgYnJhbmQuZW50aXR5VHlwZV0sXG4gICAgICBbXCJTdGF0dXNcIiwgY29sb3JzLndhcm5pbmcoYnJhbmQuc3RhdHVzKV0sXG4gICAgXSk7XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKGNvbG9ycy5kaW0oXCJOZXh0IHN0ZXBzOlwiKSk7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgICBDaGVjayBzdGF0dXM6ICAke2NvbG9ycy5jb2RlKGBzZW5kbHkgMTBkbGMgYnJhbmRzIGdldCAke2JyYW5kLmlkfWApfWAsXG4gICAgKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAgIE9uY2UgdmVyaWZpZWQ6ICR7Y29sb3JzLmNvZGUoYHNlbmRseSAxMGRsYyBxdWFsaWZ5ICR7YnJhbmQuaWR9IE1JWEVEYCl9YCxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../../lib/base-command.js";
|
|
2
|
+
export default class TendlcBrandsGet 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,63 @@
|
|
|
1
|
+
import { Args } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../../lib/base-command.js";
|
|
3
|
+
import { apiClient } from "../../../lib/api-client.js";
|
|
4
|
+
import { json, colors, formatStatus, isJsonMode, keyValue, } from "../../../lib/output.js";
|
|
5
|
+
export default class TendlcBrandsGet extends AuthenticatedCommand {
|
|
6
|
+
static description = "Get brand details with the latest carrier-review status (run again to refresh)";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> 10dlc brands get brd_xxx",
|
|
9
|
+
"<%= config.bin %> 10dlc brands get brd_xxx --json",
|
|
10
|
+
];
|
|
11
|
+
static args = {
|
|
12
|
+
id: Args.string({
|
|
13
|
+
description: "Brand ID",
|
|
14
|
+
required: true,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
static flags = {
|
|
18
|
+
...AuthenticatedCommand.baseFlags,
|
|
19
|
+
};
|
|
20
|
+
async run() {
|
|
21
|
+
const { args } = await this.parse(TendlcBrandsGet);
|
|
22
|
+
const response = await apiClient.get(`/api/v1/tendlc/brands/${args.id}`);
|
|
23
|
+
if (isJsonMode()) {
|
|
24
|
+
json(response);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const brand = response.data;
|
|
28
|
+
console.log();
|
|
29
|
+
console.log(colors.bold(`Brand: ${brand.legalName}`));
|
|
30
|
+
console.log();
|
|
31
|
+
keyValue([
|
|
32
|
+
["ID", brand.id],
|
|
33
|
+
["Status", formatStatus(brand.status)],
|
|
34
|
+
["Entity type", brand.entityType],
|
|
35
|
+
...(brand.dba ? [["DBA", brand.dba]] : []),
|
|
36
|
+
...(brand.ein ? [["EIN", brand.ein]] : []),
|
|
37
|
+
...(brand.vertical
|
|
38
|
+
? [["Vertical", brand.vertical]]
|
|
39
|
+
: []),
|
|
40
|
+
...(brand.website
|
|
41
|
+
? [["Website", brand.website]]
|
|
42
|
+
: []),
|
|
43
|
+
...(brand.identityStatus
|
|
44
|
+
? [["Identity", brand.identityStatus]]
|
|
45
|
+
: []),
|
|
46
|
+
["Created", new Date(brand.createdAt).toLocaleString()],
|
|
47
|
+
["Updated", new Date(brand.updatedAt).toLocaleString()],
|
|
48
|
+
]);
|
|
49
|
+
if (brand.failureReasons && brand.failureReasons.length > 0) {
|
|
50
|
+
console.log();
|
|
51
|
+
console.log(colors.error("Failure reasons:"));
|
|
52
|
+
brand.failureReasons.forEach((r) => console.log(` - ${r}`));
|
|
53
|
+
}
|
|
54
|
+
console.log();
|
|
55
|
+
if (brand.status === "pending") {
|
|
56
|
+
console.log(colors.dim("Carrier review is in progress — run this command again to refresh."));
|
|
57
|
+
}
|
|
58
|
+
else if (brand.status === "verified") {
|
|
59
|
+
console.log(colors.dim(`Create a campaign with: sendly 10dlc campaigns create --brand ${brand.id} ...`));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzLzEwZGxjL2JyYW5kcy9nZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUNMLElBQUksRUFDSixNQUFNLEVBQ04sWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEdBQ1QsTUFBTSx3QkFBd0IsQ0FBQztBQXFCaEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxlQUFnQixTQUFRLG9CQUFvQjtJQUMvRCxNQUFNLENBQUMsV0FBVyxHQUNoQixnRkFBZ0YsQ0FBQztJQUVuRixNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDRDQUE0QztRQUM1QyxtREFBbUQ7S0FDcEQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNkLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUNsQyx5QkFBeUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUNuQyxDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUU1QixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVkLFFBQVEsQ0FBQztZQUNQLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEIsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ2pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlELEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlELEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUTtnQkFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBcUIsQ0FBQztnQkFDcEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNQLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTztnQkFDZixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFxQixDQUFDO2dCQUNsRCxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjO2dCQUN0QixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFxQixDQUFDO2dCQUMxRCxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZELENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4RCxDQUFDLENBQUM7UUFFSCxJQUFJLEtBQUssQ0FBQyxjQUFjLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUM5QyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQ1QsTUFBTSxDQUFDLEdBQUcsQ0FDUixvRUFBb0UsQ0FDckUsQ0FDRixDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxHQUFHLENBQ1IsaUVBQWlFLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FDaEYsQ0FDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIGNvbG9ycyxcbiAgZm9ybWF0U3RhdHVzLFxuICBpc0pzb25Nb2RlLFxuICBrZXlWYWx1ZSxcbn0gZnJvbSBcIi4uLy4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIEJyYW5kIHtcbiAgaWQ6IHN0cmluZztcbiAgbGVnYWxOYW1lOiBzdHJpbmc7XG4gIGRiYTogc3RyaW5nIHwgbnVsbDtcbiAgZW50aXR5VHlwZTogc3RyaW5nO1xuICBlaW46IHN0cmluZyB8IG51bGw7XG4gIHZlcnRpY2FsOiBzdHJpbmcgfCBudWxsO1xuICB3ZWJzaXRlOiBzdHJpbmcgfCBudWxsO1xuICBzdGF0dXM6IHN0cmluZztcbiAgaWRlbnRpdHlTdGF0dXM6IHN0cmluZyB8IG51bGw7XG4gIGZhaWx1cmVSZWFzb25zOiBzdHJpbmdbXSB8IG51bGw7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEdldEJyYW5kUmVzcG9uc2Uge1xuICBkYXRhOiBCcmFuZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVuZGxjQnJhbmRzR2V0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPVxuICAgIFwiR2V0IGJyYW5kIGRldGFpbHMgd2l0aCB0aGUgbGF0ZXN0IGNhcnJpZXItcmV2aWV3IHN0YXR1cyAocnVuIGFnYWluIHRvIHJlZnJlc2gpXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gMTBkbGMgYnJhbmRzIGdldCBicmRfeHh4XCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiAxMGRsYyBicmFuZHMgZ2V0IGJyZF94eHggLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGFyZ3MgPSB7XG4gICAgaWQ6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkJyYW5kIElEXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGFyZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoVGVuZGxjQnJhbmRzR2V0KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LmdldDxHZXRCcmFuZFJlc3BvbnNlPihcbiAgICAgIGAvYXBpL3YxL3RlbmRsYy9icmFuZHMvJHthcmdzLmlkfWAsXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJyYW5kID0gcmVzcG9uc2UuZGF0YTtcblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coY29sb3JzLmJvbGQoYEJyYW5kOiAke2JyYW5kLmxlZ2FsTmFtZX1gKSk7XG4gICAgY29uc29sZS5sb2coKTtcblxuICAgIGtleVZhbHVlKFtcbiAgICAgIFtcIklEXCIsIGJyYW5kLmlkXSxcbiAgICAgIFtcIlN0YXR1c1wiLCBmb3JtYXRTdGF0dXMoYnJhbmQuc3RhdHVzKV0sXG4gICAgICBbXCJFbnRpdHkgdHlwZVwiLCBicmFuZC5lbnRpdHlUeXBlXSxcbiAgICAgIC4uLihicmFuZC5kYmEgPyBbW1wiREJBXCIsIGJyYW5kLmRiYV0gYXMgW3N0cmluZywgc3RyaW5nXV0gOiBbXSksXG4gICAgICAuLi4oYnJhbmQuZWluID8gW1tcIkVJTlwiLCBicmFuZC5laW5dIGFzIFtzdHJpbmcsIHN0cmluZ11dIDogW10pLFxuICAgICAgLi4uKGJyYW5kLnZlcnRpY2FsXG4gICAgICAgID8gW1tcIlZlcnRpY2FsXCIsIGJyYW5kLnZlcnRpY2FsXSBhcyBbc3RyaW5nLCBzdHJpbmddXVxuICAgICAgICA6IFtdKSxcbiAgICAgIC4uLihicmFuZC53ZWJzaXRlXG4gICAgICAgID8gW1tcIldlYnNpdGVcIiwgYnJhbmQud2Vic2l0ZV0gYXMgW3N0cmluZywgc3RyaW5nXV1cbiAgICAgICAgOiBbXSksXG4gICAgICAuLi4oYnJhbmQuaWRlbnRpdHlTdGF0dXNcbiAgICAgICAgPyBbW1wiSWRlbnRpdHlcIiwgYnJhbmQuaWRlbnRpdHlTdGF0dXNdIGFzIFtzdHJpbmcsIHN0cmluZ11dXG4gICAgICAgIDogW10pLFxuICAgICAgW1wiQ3JlYXRlZFwiLCBuZXcgRGF0ZShicmFuZC5jcmVhdGVkQXQpLnRvTG9jYWxlU3RyaW5nKCldLFxuICAgICAgW1wiVXBkYXRlZFwiLCBuZXcgRGF0ZShicmFuZC51cGRhdGVkQXQpLnRvTG9jYWxlU3RyaW5nKCldLFxuICAgIF0pO1xuXG4gICAgaWYgKGJyYW5kLmZhaWx1cmVSZWFzb25zICYmIGJyYW5kLmZhaWx1cmVSZWFzb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhjb2xvcnMuZXJyb3IoXCJGYWlsdXJlIHJlYXNvbnM6XCIpKTtcbiAgICAgIGJyYW5kLmZhaWx1cmVSZWFzb25zLmZvckVhY2goKHIpID0+IGNvbnNvbGUubG9nKGAgIC0gJHtyfWApKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGlmIChicmFuZC5zdGF0dXMgPT09IFwicGVuZGluZ1wiKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgICBcIkNhcnJpZXIgcmV2aWV3IGlzIGluIHByb2dyZXNzIOKAlCBydW4gdGhpcyBjb21tYW5kIGFnYWluIHRvIHJlZnJlc2guXCIsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoYnJhbmQuc3RhdHVzID09PSBcInZlcmlmaWVkXCIpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgIGBDcmVhdGUgYSBjYW1wYWlnbiB3aXRoOiBzZW5kbHkgMTBkbGMgY2FtcGFpZ25zIGNyZWF0ZSAtLWJyYW5kICR7YnJhbmQuaWR9IC4uLmAsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../../lib/base-command.js";
|
|
2
|
+
export default class TendlcBrandsList 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,63 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../../lib/base-command.js";
|
|
2
|
+
import { apiClient } from "../../../lib/api-client.js";
|
|
3
|
+
import { table, json, info, formatStatus, formatRelativeTime, colors, isJsonMode, } from "../../../lib/output.js";
|
|
4
|
+
export default class TendlcBrandsList extends AuthenticatedCommand {
|
|
5
|
+
static description = "List the brands registered for carrier review";
|
|
6
|
+
static examples = [
|
|
7
|
+
"<%= config.bin %> 10dlc brands list",
|
|
8
|
+
"<%= config.bin %> 10dlc brands list --json",
|
|
9
|
+
];
|
|
10
|
+
static flags = {
|
|
11
|
+
...AuthenticatedCommand.baseFlags,
|
|
12
|
+
};
|
|
13
|
+
async run() {
|
|
14
|
+
await this.parse(TendlcBrandsList);
|
|
15
|
+
const response = await apiClient.get("/api/v1/tendlc/brands");
|
|
16
|
+
if (isJsonMode()) {
|
|
17
|
+
json(response);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (!response.data || response.data.length === 0) {
|
|
21
|
+
info('No brands registered yet. Register one with: sendly 10dlc brands create --legal-name "Acme Inc"');
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
console.log();
|
|
25
|
+
console.log(colors.dim(`Showing ${response.data.length} brands`));
|
|
26
|
+
console.log();
|
|
27
|
+
table(response.data, [
|
|
28
|
+
{
|
|
29
|
+
header: "ID",
|
|
30
|
+
key: "id",
|
|
31
|
+
width: 38,
|
|
32
|
+
formatter: (v) => colors.dim(String(v)),
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
header: "Legal name",
|
|
36
|
+
key: "legalName",
|
|
37
|
+
width: 24,
|
|
38
|
+
formatter: (v) => {
|
|
39
|
+
const name = String(v);
|
|
40
|
+
return name.length > 22 ? name.slice(0, 22) + "..." : name;
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
header: "Entity",
|
|
45
|
+
key: "entityType",
|
|
46
|
+
width: 18,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
header: "Status",
|
|
50
|
+
key: "status",
|
|
51
|
+
width: 11,
|
|
52
|
+
formatter: (v) => formatStatus(String(v)),
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
header: "Created",
|
|
56
|
+
key: "createdAt",
|
|
57
|
+
width: 12,
|
|
58
|
+
formatter: (v) => formatRelativeTime(String(v)),
|
|
59
|
+
},
|
|
60
|
+
]);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tYW5kcy8xMGRsYy9icmFuZHMvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUNMLEtBQUssRUFDTCxJQUFJLEVBQ0osSUFBSSxFQUNKLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBcUJoQyxNQUFNLENBQUMsT0FBTyxPQUFPLGdCQUFpQixTQUFRLG9CQUFvQjtJQUNoRSxNQUFNLENBQUMsV0FBVyxHQUFHLCtDQUErQyxDQUFDO0lBRXJFLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIscUNBQXFDO1FBQ3JDLDRDQUE0QztLQUM3QyxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVuQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQ2xDLHVCQUF1QixDQUN4QixDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUNGLGlHQUFpRyxDQUNsRyxDQUFDO1lBQ0YsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFZCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUNuQjtnQkFDRSxNQUFNLEVBQUUsSUFBSTtnQkFDWixHQUFHLEVBQUUsSUFBSTtnQkFDVCxLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3hDO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFlBQVk7Z0JBQ3BCLEdBQUcsRUFBRSxXQUFXO2dCQUNoQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDZixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUM3RCxDQUFDO2FBQ0Y7WUFDRDtnQkFDRSxNQUFNLEVBQUUsUUFBUTtnQkFDaEIsR0FBRyxFQUFFLFlBQVk7Z0JBQ2pCLEtBQUssRUFBRSxFQUFFO2FBQ1Y7WUFDRDtnQkFDRSxNQUFNLEVBQUUsUUFBUTtnQkFDaEIsR0FBRyxFQUFFLFFBQVE7Z0JBQ2IsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFDO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLEdBQUcsRUFBRSxXQUFXO2dCQUNoQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoRDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHRhYmxlLFxuICBqc29uLFxuICBpbmZvLFxuICBmb3JtYXRTdGF0dXMsXG4gIGZvcm1hdFJlbGF0aXZlVGltZSxcbiAgY29sb3JzLFxuICBpc0pzb25Nb2RlLFxufSBmcm9tIFwiLi4vLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgQnJhbmQge1xuICBpZDogc3RyaW5nO1xuICBsZWdhbE5hbWU6IHN0cmluZztcbiAgZGJhOiBzdHJpbmcgfCBudWxsO1xuICBlbnRpdHlUeXBlOiBzdHJpbmc7XG4gIGVpbjogc3RyaW5nIHwgbnVsbDtcbiAgdmVydGljYWw6IHN0cmluZyB8IG51bGw7XG4gIHdlYnNpdGU6IHN0cmluZyB8IG51bGw7XG4gIHN0YXR1czogc3RyaW5nO1xuICBpZGVudGl0eVN0YXR1czogc3RyaW5nIHwgbnVsbDtcbiAgZmFpbHVyZVJlYXNvbnM6IHN0cmluZ1tdIHwgbnVsbDtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTGlzdEJyYW5kc1Jlc3BvbnNlIHtcbiAgZGF0YTogQnJhbmRbXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVuZGxjQnJhbmRzTGlzdCBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJMaXN0IHRoZSBicmFuZHMgcmVnaXN0ZXJlZCBmb3IgY2FycmllciByZXZpZXdcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiAxMGRsYyBicmFuZHMgbGlzdFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gMTBkbGMgYnJhbmRzIGxpc3QgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wYXJzZShUZW5kbGNCcmFuZHNMaXN0KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LmdldDxMaXN0QnJhbmRzUmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL3RlbmRsYy9icmFuZHNcIixcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFyZXNwb25zZS5kYXRhIHx8IHJlc3BvbnNlLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICBpbmZvKFxuICAgICAgICAnTm8gYnJhbmRzIHJlZ2lzdGVyZWQgeWV0LiBSZWdpc3RlciBvbmUgd2l0aDogc2VuZGx5IDEwZGxjIGJyYW5kcyBjcmVhdGUgLS1sZWdhbC1uYW1lIFwiQWNtZSBJbmNcIicsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coY29sb3JzLmRpbShgU2hvd2luZyAke3Jlc3BvbnNlLmRhdGEubGVuZ3RofSBicmFuZHNgKSk7XG4gICAgY29uc29sZS5sb2coKTtcblxuICAgIHRhYmxlKHJlc3BvbnNlLmRhdGEsIFtcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIklEXCIsXG4gICAgICAgIGtleTogXCJpZFwiLFxuICAgICAgICB3aWR0aDogMzgsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGNvbG9ycy5kaW0oU3RyaW5nKHYpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJMZWdhbCBuYW1lXCIsXG4gICAgICAgIGtleTogXCJsZWdhbE5hbWVcIixcbiAgICAgICAgd2lkdGg6IDI0LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiB7XG4gICAgICAgICAgY29uc3QgbmFtZSA9IFN0cmluZyh2KTtcbiAgICAgICAgICByZXR1cm4gbmFtZS5sZW5ndGggPiAyMiA/IG5hbWUuc2xpY2UoMCwgMjIpICsgXCIuLi5cIiA6IG5hbWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiRW50aXR5XCIsXG4gICAgICAgIGtleTogXCJlbnRpdHlUeXBlXCIsXG4gICAgICAgIHdpZHRoOiAxOCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJTdGF0dXNcIixcbiAgICAgICAga2V5OiBcInN0YXR1c1wiLFxuICAgICAgICB3aWR0aDogMTEsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGZvcm1hdFN0YXR1cyhTdHJpbmcodikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkNyZWF0ZWRcIixcbiAgICAgICAga2V5OiBcImNyZWF0ZWRBdFwiLFxuICAgICAgICB3aWR0aDogMTIsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGZvcm1hdFJlbGF0aXZlVGltZShTdHJpbmcodikpLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../../lib/base-command.js";
|
|
2
|
+
export default class TendlcCampaignsAssign 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
|
+
number: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
10
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
11
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|