@sendly/cli 3.37.0 → 3.38.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.
Files changed (65) hide show
  1. package/README.md +178 -0
  2. package/dist/commands/business-upgrade/resubmit.js +3 -3
  3. package/dist/commands/business-upgrade/start.js +3 -3
  4. package/dist/commands/config/list.js +14 -2
  5. package/dist/commands/config/set.js +16 -3
  6. package/dist/commands/countries.js +2 -2
  7. package/dist/commands/credits/index.d.ts +1 -0
  8. package/dist/commands/credits/index.js +4 -0
  9. package/dist/commands/doctor.d.ts +12 -0
  10. package/dist/commands/doctor.js +51 -8
  11. package/dist/commands/enterprise/upload-verification-document.js +3 -3
  12. package/dist/commands/enterprise/verification/resubmit.js +2 -2
  13. package/dist/commands/enterprise/verification/submit.js +2 -2
  14. package/dist/commands/events/listen.js +3 -3
  15. package/dist/commands/numbers/buy.js +19 -4
  16. package/dist/commands/rcs/agents.d.ts +10 -0
  17. package/dist/commands/rcs/agents.js +89 -0
  18. package/dist/commands/rcs/capability.d.ts +12 -0
  19. package/dist/commands/rcs/capability.js +85 -0
  20. package/dist/commands/rcs/send.d.ts +21 -0
  21. package/dist/commands/rcs/send.js +240 -0
  22. package/dist/commands/send.d.ts +1 -0
  23. package/dist/commands/send.js +5 -2
  24. package/dist/commands/sms/batch.d.ts +1 -0
  25. package/dist/commands/sms/batch.js +11 -1
  26. package/dist/commands/sms/group.d.ts +1 -0
  27. package/dist/commands/sms/group.js +5 -2
  28. package/dist/commands/sms/schedule.d.ts +1 -0
  29. package/dist/commands/sms/schedule.js +5 -2
  30. package/dist/commands/sms/send.d.ts +1 -0
  31. package/dist/commands/sms/send.js +5 -2
  32. package/dist/commands/webhooks/listen.js +2 -2
  33. package/dist/commands/whatsapp/connect.d.ts +17 -0
  34. package/dist/commands/whatsapp/connect.js +166 -0
  35. package/dist/commands/whatsapp/profile/get.d.ts +13 -0
  36. package/dist/commands/whatsapp/profile/get.js +67 -0
  37. package/dist/commands/whatsapp/profile/update.d.ts +20 -0
  38. package/dist/commands/whatsapp/profile/update.js +109 -0
  39. package/dist/commands/whatsapp/send.d.ts +17 -0
  40. package/dist/commands/whatsapp/send.js +151 -0
  41. package/dist/commands/whatsapp/senders.d.ts +10 -0
  42. package/dist/commands/whatsapp/senders.js +74 -0
  43. package/dist/commands/whatsapp/status.d.ts +13 -0
  44. package/dist/commands/whatsapp/status.js +92 -0
  45. package/dist/commands/whatsapp/templates/create.d.ts +19 -0
  46. package/dist/commands/whatsapp/templates/create.js +205 -0
  47. package/dist/commands/whatsapp/templates/delete.d.ts +14 -0
  48. package/dist/commands/whatsapp/templates/delete.js +69 -0
  49. package/dist/commands/whatsapp/templates/list.d.ts +10 -0
  50. package/dist/commands/whatsapp/templates/list.js +77 -0
  51. package/dist/commands/whatsapp/templates/update.d.ts +18 -0
  52. package/dist/commands/whatsapp/templates/update.js +160 -0
  53. package/dist/commands/whoami.js +32 -6
  54. package/dist/hooks/command-not-found.js +46 -61
  55. package/dist/lib/api-client.d.ts +9 -1
  56. package/dist/lib/api-client.js +78 -9
  57. package/dist/lib/auth.js +10 -6
  58. package/dist/lib/base-command.js +9 -1
  59. package/dist/lib/config.d.ts +50 -1
  60. package/dist/lib/config.js +144 -7
  61. package/dist/lib/help.d.ts +10 -0
  62. package/dist/lib/help.js +23 -0
  63. package/dist/lib/onboarding.js +3 -3
  64. package/oclif.manifest.json +1735 -764
  65. package/package.json +8 -1
@@ -254,6 +254,13 @@
254
254
  "hasDynamicHelp": false,
255
255
  "multiple": false,
256
256
  "type": "option"
257
+ },
258
+ "idempotency-key": {
259
+ "description": "Idempotency key (1-255 printable ASCII characters). Re-running with the same key within 24 hours returns the original result instead of sending again.",
260
+ "name": "idempotency-key",
261
+ "hasDynamicHelp": false,
262
+ "multiple": false,
263
+ "type": "option"
257
264
  }
258
265
  },
259
266
  "hasDynamicHelp": false,
@@ -2815,7 +2822,7 @@
2815
2822
  "dist",
2816
2823
  "commands",
2817
2824
  "credits",
2818
- "balance.js"
2825
+ "index.js"
2819
2826
  ]
2820
2827
  },
2821
2828
  "credits:history": {
@@ -2866,6 +2873,44 @@
2866
2873
  "history.js"
2867
2874
  ]
2868
2875
  },
2876
+ "credits": {
2877
+ "aliases": [],
2878
+ "args": {},
2879
+ "description": "Check your credit balance",
2880
+ "examples": [
2881
+ "<%= config.bin %> credits balance",
2882
+ "<%= config.bin %> credits balance --json"
2883
+ ],
2884
+ "flags": {
2885
+ "json": {
2886
+ "description": "Output in JSON format",
2887
+ "name": "json",
2888
+ "allowNo": false,
2889
+ "type": "boolean"
2890
+ },
2891
+ "quiet": {
2892
+ "char": "q",
2893
+ "description": "Minimal output",
2894
+ "name": "quiet",
2895
+ "allowNo": false,
2896
+ "type": "boolean"
2897
+ }
2898
+ },
2899
+ "hasDynamicHelp": false,
2900
+ "hiddenAliases": [],
2901
+ "id": "credits",
2902
+ "pluginAlias": "@sendly/cli",
2903
+ "pluginName": "@sendly/cli",
2904
+ "pluginType": "core",
2905
+ "strict": true,
2906
+ "isESM": true,
2907
+ "relativePath": [
2908
+ "dist",
2909
+ "commands",
2910
+ "credits",
2911
+ "index.js"
2912
+ ]
2913
+ },
2869
2914
  "credits:transfer": {
2870
2915
  "aliases": [],
2871
2916
  "args": {},
@@ -3171,52 +3216,6 @@
3171
3216
  "reject.js"
3172
3217
  ]
3173
3218
  },
3174
- "events:listen": {
3175
- "aliases": [],
3176
- "args": {},
3177
- "description": "Listen to real-time events via Server-Sent Events. Streams message deliveries, conversation updates, and more.",
3178
- "examples": [
3179
- "<%= config.bin %> events listen",
3180
- "<%= config.bin %> events listen --types new_message,conversation_update",
3181
- "<%= config.bin %> events listen --json"
3182
- ],
3183
- "flags": {
3184
- "json": {
3185
- "description": "Output in JSON format",
3186
- "name": "json",
3187
- "allowNo": false,
3188
- "type": "boolean"
3189
- },
3190
- "quiet": {
3191
- "char": "q",
3192
- "description": "Minimal output",
3193
- "name": "quiet",
3194
- "allowNo": false,
3195
- "type": "boolean"
3196
- },
3197
- "types": {
3198
- "description": "Comma-separated event types to filter (default: all)",
3199
- "name": "types",
3200
- "hasDynamicHelp": false,
3201
- "multiple": false,
3202
- "type": "option"
3203
- }
3204
- },
3205
- "hasDynamicHelp": false,
3206
- "hiddenAliases": [],
3207
- "id": "events:listen",
3208
- "pluginAlias": "@sendly/cli",
3209
- "pluginName": "@sendly/cli",
3210
- "pluginType": "core",
3211
- "strict": true,
3212
- "isESM": true,
3213
- "relativePath": [
3214
- "dist",
3215
- "commands",
3216
- "events",
3217
- "listen.js"
3218
- ]
3219
- },
3220
3219
  "enterprise:billing": {
3221
3220
  "aliases": [],
3222
3221
  "args": {},
@@ -3650,6 +3649,52 @@
3650
3649
  "upload-verification-document.js"
3651
3650
  ]
3652
3651
  },
3652
+ "events:listen": {
3653
+ "aliases": [],
3654
+ "args": {},
3655
+ "description": "Listen to real-time events via Server-Sent Events. Streams message deliveries, conversation updates, and more.",
3656
+ "examples": [
3657
+ "<%= config.bin %> events listen",
3658
+ "<%= config.bin %> events listen --types new_message,conversation_update",
3659
+ "<%= config.bin %> events listen --json"
3660
+ ],
3661
+ "flags": {
3662
+ "json": {
3663
+ "description": "Output in JSON format",
3664
+ "name": "json",
3665
+ "allowNo": false,
3666
+ "type": "boolean"
3667
+ },
3668
+ "quiet": {
3669
+ "char": "q",
3670
+ "description": "Minimal output",
3671
+ "name": "quiet",
3672
+ "allowNo": false,
3673
+ "type": "boolean"
3674
+ },
3675
+ "types": {
3676
+ "description": "Comma-separated event types to filter (default: all)",
3677
+ "name": "types",
3678
+ "hasDynamicHelp": false,
3679
+ "multiple": false,
3680
+ "type": "option"
3681
+ }
3682
+ },
3683
+ "hasDynamicHelp": false,
3684
+ "hiddenAliases": [],
3685
+ "id": "events:listen",
3686
+ "pluginAlias": "@sendly/cli",
3687
+ "pluginName": "@sendly/cli",
3688
+ "pluginType": "core",
3689
+ "strict": true,
3690
+ "isESM": true,
3691
+ "relativePath": [
3692
+ "dist",
3693
+ "commands",
3694
+ "events",
3695
+ "listen.js"
3696
+ ]
3697
+ },
3653
3698
  "keys:create": {
3654
3699
  "aliases": [],
3655
3700
  "args": {},
@@ -4513,14 +4558,13 @@
4513
4558
  "tail.js"
4514
4559
  ]
4515
4560
  },
4516
- "numbers:buy": {
4561
+ "rcs:agents": {
4517
4562
  "aliases": [],
4518
4563
  "args": {},
4519
- "description": "Buy a phone number. Handles document/payment steps interactively when a country requires them.",
4564
+ "description": "List the RCS agents on your workspace",
4520
4565
  "examples": [
4521
- "<%= config.bin %> numbers buy --country GB --type mobile",
4522
- "<%= config.bin %> numbers buy --country US --type local --number +15551234567",
4523
- "<%= config.bin %> numbers buy --country GB --type mobile --json"
4566
+ "<%= config.bin %> rcs agents",
4567
+ "<%= config.bin %> rcs agents --json"
4524
4568
  ],
4525
4569
  "flags": {
4526
4570
  "json": {
@@ -4535,37 +4579,11 @@
4535
4579
  "name": "quiet",
4536
4580
  "allowNo": false,
4537
4581
  "type": "boolean"
4538
- },
4539
- "country": {
4540
- "char": "c",
4541
- "description": "ISO country code (e.g. GB, US)",
4542
- "name": "country",
4543
- "required": true,
4544
- "hasDynamicHelp": false,
4545
- "multiple": false,
4546
- "type": "option"
4547
- },
4548
- "type": {
4549
- "char": "t",
4550
- "description": "Number type (e.g. mobile, local, toll-free)",
4551
- "name": "type",
4552
- "required": true,
4553
- "hasDynamicHelp": false,
4554
- "multiple": false,
4555
- "type": "option"
4556
- },
4557
- "number": {
4558
- "char": "n",
4559
- "description": "Specific number to buy in E.164 format (skips selection)",
4560
- "name": "number",
4561
- "hasDynamicHelp": false,
4562
- "multiple": false,
4563
- "type": "option"
4564
4582
  }
4565
4583
  },
4566
4584
  "hasDynamicHelp": false,
4567
4585
  "hiddenAliases": [],
4568
- "id": "numbers:buy",
4586
+ "id": "rcs:agents",
4569
4587
  "pluginAlias": "@sendly/cli",
4570
4588
  "pluginName": "@sendly/cli",
4571
4589
  "pluginType": "core",
@@ -4574,23 +4592,18 @@
4574
4592
  "relativePath": [
4575
4593
  "dist",
4576
4594
  "commands",
4577
- "numbers",
4578
- "buy.js"
4595
+ "rcs",
4596
+ "agents.js"
4579
4597
  ]
4580
4598
  },
4581
- "numbers:get": {
4599
+ "rcs:capability": {
4582
4600
  "aliases": [],
4583
- "args": {
4584
- "id": {
4585
- "description": "Phone number ID (from `sendly numbers list`)",
4586
- "name": "id",
4587
- "required": true
4588
- }
4589
- },
4590
- "description": "Show details for one phone number you own",
4601
+ "args": {},
4602
+ "description": "Check whether a recipient's device can receive RCS before you send",
4591
4603
  "examples": [
4592
- "<%= config.bin %> numbers get num_abc123",
4593
- "<%= config.bin %> numbers get num_abc123 --json"
4604
+ "<%= config.bin %> rcs capability --to +15125550190",
4605
+ "<%= config.bin %> rcs capability --to +15125550190 --agent 3f6a1c9e-0000-0000-0000-000000000000",
4606
+ "<%= config.bin %> rcs capability --to +15125550190 --json"
4594
4607
  ],
4595
4608
  "flags": {
4596
4609
  "json": {
@@ -4605,11 +4618,27 @@
4605
4618
  "name": "quiet",
4606
4619
  "allowNo": false,
4607
4620
  "type": "boolean"
4621
+ },
4622
+ "to": {
4623
+ "char": "t",
4624
+ "description": "Recipient phone number to check (E.164 format)",
4625
+ "name": "to",
4626
+ "required": true,
4627
+ "hasDynamicHelp": false,
4628
+ "multiple": false,
4629
+ "type": "option"
4630
+ },
4631
+ "agent": {
4632
+ "description": "RCS agent id to check with (only needed when your workspace has more than one — see `rcs agents`)",
4633
+ "name": "agent",
4634
+ "hasDynamicHelp": false,
4635
+ "multiple": false,
4636
+ "type": "option"
4608
4637
  }
4609
4638
  },
4610
4639
  "hasDynamicHelp": false,
4611
4640
  "hiddenAliases": [],
4612
- "id": "numbers:get",
4641
+ "id": "rcs:capability",
4613
4642
  "pluginAlias": "@sendly/cli",
4614
4643
  "pluginName": "@sendly/cli",
4615
4644
  "pluginType": "core",
@@ -4618,17 +4647,19 @@
4618
4647
  "relativePath": [
4619
4648
  "dist",
4620
4649
  "commands",
4621
- "numbers",
4622
- "get.js"
4650
+ "rcs",
4651
+ "capability.js"
4623
4652
  ]
4624
4653
  },
4625
- "numbers:list": {
4654
+ "rcs:send": {
4626
4655
  "aliases": [],
4627
4656
  "args": {},
4628
- "description": "List the phone numbers on your account",
4657
+ "description": "Send an RCS message rich text with suggestion chips or a rich card; recipients without RCS get it as plain SMS unless --no-fallback",
4629
4658
  "examples": [
4630
- "<%= config.bin %> numbers list",
4631
- "<%= config.bin %> numbers list --json"
4659
+ "<%= config.bin %> rcs send --to +15125550190 --text \"Your order shipped!\"",
4660
+ "<%= config.bin %> rcs send --to +15125550190 --text \"Need anything else?\" --suggest-reply \"Track order=TRACK\" --suggest-url \"View receipt=RECEIPT=https://example.com/r/4821\"",
4661
+ "<%= config.bin %> rcs send --to +15125550190 --card-title \"Spring sale\" --card-description \"20% off everything this weekend\" --card-media https://example.com/sale.jpg",
4662
+ "<%= config.bin %> rcs send --to +15125550190 --text \"RCS only please\" --no-fallback"
4632
4663
  ],
4633
4664
  "flags": {
4634
4665
  "json": {
@@ -4643,186 +4674,109 @@
4643
4674
  "name": "quiet",
4644
4675
  "allowNo": false,
4645
4676
  "type": "boolean"
4677
+ },
4678
+ "to": {
4679
+ "char": "t",
4680
+ "description": "Recipient phone number (E.164 format)",
4681
+ "name": "to",
4682
+ "required": true,
4683
+ "hasDynamicHelp": false,
4684
+ "multiple": false,
4685
+ "type": "option"
4686
+ },
4687
+ "text": {
4688
+ "char": "m",
4689
+ "description": "Message text (falls back to SMS for non-RCS recipients)",
4690
+ "exclusive": [
4691
+ "card-title",
4692
+ "card-description",
4693
+ "card-media",
4694
+ "card-orientation"
4695
+ ],
4696
+ "name": "text",
4697
+ "hasDynamicHelp": false,
4698
+ "multiple": false,
4699
+ "type": "option"
4700
+ },
4701
+ "agent": {
4702
+ "description": "RCS agent id to send from (only needed when your workspace has more than one — see `rcs agents`)",
4703
+ "name": "agent",
4704
+ "hasDynamicHelp": false,
4705
+ "multiple": false,
4706
+ "type": "option"
4707
+ },
4708
+ "card-title": {
4709
+ "description": "Rich card title (cards have no SMS form — RCS-capable recipients only)",
4710
+ "name": "card-title",
4711
+ "hasDynamicHelp": false,
4712
+ "multiple": false,
4713
+ "type": "option"
4714
+ },
4715
+ "card-description": {
4716
+ "dependsOn": [
4717
+ "card-title"
4718
+ ],
4719
+ "description": "Rich card body text; required with --card-title",
4720
+ "name": "card-description",
4721
+ "hasDynamicHelp": false,
4722
+ "multiple": false,
4723
+ "type": "option"
4724
+ },
4725
+ "card-media": {
4726
+ "dependsOn": [
4727
+ "card-title"
4728
+ ],
4729
+ "description": "Public JPEG, PNG, or GIF image URL for the card",
4730
+ "name": "card-media",
4731
+ "hasDynamicHelp": false,
4732
+ "multiple": false,
4733
+ "type": "option"
4734
+ },
4735
+ "card-orientation": {
4736
+ "dependsOn": [
4737
+ "card-title"
4738
+ ],
4739
+ "description": "Card layout",
4740
+ "name": "card-orientation",
4741
+ "hasDynamicHelp": false,
4742
+ "multiple": false,
4743
+ "options": [
4744
+ "vertical",
4745
+ "horizontal"
4746
+ ],
4747
+ "type": "option"
4748
+ },
4749
+ "suggest-reply": {
4750
+ "description": "Reply chip as \"text=postback\" (e.g. --suggest-reply \"Track order=TRACK\"). Repeatable.",
4751
+ "name": "suggest-reply",
4752
+ "hasDynamicHelp": false,
4753
+ "multiple": true,
4754
+ "type": "option"
4755
+ },
4756
+ "suggest-url": {
4757
+ "description": "Open-URL chip as \"text=postback=url\" (e.g. --suggest-url \"View order=VIEW=https://example.com/o/4821\"). Repeatable.",
4758
+ "name": "suggest-url",
4759
+ "hasDynamicHelp": false,
4760
+ "multiple": true,
4761
+ "type": "option"
4762
+ },
4763
+ "no-fallback": {
4764
+ "description": "Fail with an error instead of delivering as SMS when the recipient doesn't support RCS",
4765
+ "name": "no-fallback",
4766
+ "allowNo": false,
4767
+ "type": "boolean"
4768
+ },
4769
+ "idempotency-key": {
4770
+ "description": "Idempotency key (1-255 printable ASCII characters). Re-running with the same key within 24 hours returns the original result instead of sending again.",
4771
+ "name": "idempotency-key",
4772
+ "hasDynamicHelp": false,
4773
+ "multiple": false,
4774
+ "type": "option"
4646
4775
  }
4647
4776
  },
4648
4777
  "hasDynamicHelp": false,
4649
4778
  "hiddenAliases": [],
4650
- "id": "numbers:list",
4651
- "pluginAlias": "@sendly/cli",
4652
- "pluginName": "@sendly/cli",
4653
- "pluginType": "core",
4654
- "strict": true,
4655
- "isESM": true,
4656
- "relativePath": [
4657
- "dist",
4658
- "commands",
4659
- "numbers",
4660
- "list.js"
4661
- ]
4662
- },
4663
- "numbers:release": {
4664
- "aliases": [],
4665
- "args": {
4666
- "id": {
4667
- "description": "Phone number ID (from `sendly numbers list`)",
4668
- "name": "id",
4669
- "required": true
4670
- }
4671
- },
4672
- "description": "Release a number you own (paid purchases release at period end, others immediately)",
4673
- "examples": [
4674
- "<%= config.bin %> numbers release num_abc123",
4675
- "<%= config.bin %> numbers release num_abc123 --yes",
4676
- "<%= config.bin %> numbers release num_abc123 --json"
4677
- ],
4678
- "flags": {
4679
- "json": {
4680
- "description": "Output in JSON format",
4681
- "name": "json",
4682
- "allowNo": false,
4683
- "type": "boolean"
4684
- },
4685
- "quiet": {
4686
- "char": "q",
4687
- "description": "Minimal output",
4688
- "name": "quiet",
4689
- "allowNo": false,
4690
- "type": "boolean"
4691
- },
4692
- "yes": {
4693
- "char": "y",
4694
- "description": "Skip confirmation prompt",
4695
- "name": "yes",
4696
- "allowNo": false,
4697
- "type": "boolean"
4698
- }
4699
- },
4700
- "hasDynamicHelp": false,
4701
- "hiddenAliases": [],
4702
- "id": "numbers:release",
4703
- "pluginAlias": "@sendly/cli",
4704
- "pluginName": "@sendly/cli",
4705
- "pluginType": "core",
4706
- "strict": true,
4707
- "isESM": true,
4708
- "relativePath": [
4709
- "dist",
4710
- "commands",
4711
- "numbers",
4712
- "release.js"
4713
- ]
4714
- },
4715
- "numbers:search": {
4716
- "aliases": [],
4717
- "args": {},
4718
- "description": "Search for available phone numbers to buy in a country",
4719
- "examples": [
4720
- "<%= config.bin %> numbers search --country GB --type mobile",
4721
- "<%= config.bin %> numbers search --country US --type local --contains 555",
4722
- "<%= config.bin %> numbers search --country GB --type mobile --json"
4723
- ],
4724
- "flags": {
4725
- "json": {
4726
- "description": "Output in JSON format",
4727
- "name": "json",
4728
- "allowNo": false,
4729
- "type": "boolean"
4730
- },
4731
- "quiet": {
4732
- "char": "q",
4733
- "description": "Minimal output",
4734
- "name": "quiet",
4735
- "allowNo": false,
4736
- "type": "boolean"
4737
- },
4738
- "country": {
4739
- "char": "c",
4740
- "description": "ISO country code (e.g. GB, US)",
4741
- "name": "country",
4742
- "required": true,
4743
- "hasDynamicHelp": false,
4744
- "multiple": false,
4745
- "type": "option"
4746
- },
4747
- "type": {
4748
- "char": "t",
4749
- "description": "Number type (e.g. mobile, local, toll-free)",
4750
- "name": "type",
4751
- "required": true,
4752
- "hasDynamicHelp": false,
4753
- "multiple": false,
4754
- "type": "option"
4755
- },
4756
- "contains": {
4757
- "description": "Only return numbers containing this digit pattern",
4758
- "name": "contains",
4759
- "hasDynamicHelp": false,
4760
- "multiple": false,
4761
- "type": "option"
4762
- }
4763
- },
4764
- "hasDynamicHelp": false,
4765
- "hiddenAliases": [],
4766
- "id": "numbers:search",
4767
- "pluginAlias": "@sendly/cli",
4768
- "pluginName": "@sendly/cli",
4769
- "pluginType": "core",
4770
- "strict": true,
4771
- "isESM": true,
4772
- "relativePath": [
4773
- "dist",
4774
- "commands",
4775
- "numbers",
4776
- "search.js"
4777
- ]
4778
- },
4779
- "numbers:update": {
4780
- "aliases": [],
4781
- "args": {
4782
- "id": {
4783
- "description": "Phone number ID (from `sendly numbers list`)",
4784
- "name": "id",
4785
- "required": true
4786
- }
4787
- },
4788
- "description": "Update a number you own: make it the default sender (--default) or cancel a scheduled release (--keep)",
4789
- "examples": [
4790
- "<%= config.bin %> numbers update num_abc123 --default",
4791
- "<%= config.bin %> numbers update num_abc123 --keep",
4792
- "<%= config.bin %> numbers update num_abc123 --default --json"
4793
- ],
4794
- "flags": {
4795
- "json": {
4796
- "description": "Output in JSON format",
4797
- "name": "json",
4798
- "allowNo": false,
4799
- "type": "boolean"
4800
- },
4801
- "quiet": {
4802
- "char": "q",
4803
- "description": "Minimal output",
4804
- "name": "quiet",
4805
- "allowNo": false,
4806
- "type": "boolean"
4807
- },
4808
- "default": {
4809
- "char": "d",
4810
- "description": "Make this the workspace default sender (must be active)",
4811
- "name": "default",
4812
- "allowNo": false,
4813
- "type": "boolean"
4814
- },
4815
- "keep": {
4816
- "char": "k",
4817
- "description": "Cancel a scheduled release and keep the number",
4818
- "name": "keep",
4819
- "allowNo": false,
4820
- "type": "boolean"
4821
- }
4822
- },
4823
- "hasDynamicHelp": false,
4824
- "hiddenAliases": [],
4825
- "id": "numbers:update",
4779
+ "id": "rcs:send",
4826
4780
  "pluginAlias": "@sendly/cli",
4827
4781
  "pluginName": "@sendly/cli",
4828
4782
  "pluginType": "core",
@@ -4831,8 +4785,8 @@
4831
4785
  "relativePath": [
4832
4786
  "dist",
4833
4787
  "commands",
4834
- "numbers",
4835
- "update.js"
4788
+ "rcs",
4789
+ "send.js"
4836
4790
  ]
4837
4791
  },
4838
4792
  "rules:create": {
@@ -5108,6 +5062,16 @@
5108
5062
  "name": "history",
5109
5063
  "allowNo": false,
5110
5064
  "type": "boolean"
5065
+ },
5066
+ "idempotency-key": {
5067
+ "description": "Idempotency key (1-255 printable ASCII characters). Re-running with the same key within 24 hours returns the original result instead of sending again.",
5068
+ "exclusive": [
5069
+ "history"
5070
+ ],
5071
+ "name": "idempotency-key",
5072
+ "hasDynamicHelp": false,
5073
+ "multiple": false,
5074
+ "type": "option"
5111
5075
  }
5112
5076
  },
5113
5077
  "hasDynamicHelp": false,
@@ -5279,6 +5243,13 @@
5279
5243
  "hasDynamicHelp": false,
5280
5244
  "multiple": true,
5281
5245
  "type": "option"
5246
+ },
5247
+ "idempotency-key": {
5248
+ "description": "Idempotency key (1-255 printable ASCII characters). Re-running with the same key within 24 hours returns the original result instead of sending again.",
5249
+ "name": "idempotency-key",
5250
+ "hasDynamicHelp": false,
5251
+ "multiple": false,
5252
+ "type": "option"
5282
5253
  }
5283
5254
  },
5284
5255
  "hasDynamicHelp": false,
@@ -5444,6 +5415,13 @@
5444
5415
  "transactional"
5445
5416
  ],
5446
5417
  "type": "option"
5418
+ },
5419
+ "idempotency-key": {
5420
+ "description": "Idempotency key (1-255 printable ASCII characters). Re-running with the same key within 24 hours returns the original result instead of scheduling again.",
5421
+ "name": "idempotency-key",
5422
+ "hasDynamicHelp": false,
5423
+ "multiple": false,
5424
+ "type": "option"
5447
5425
  }
5448
5426
  },
5449
5427
  "hasDynamicHelp": false,
@@ -5656,6 +5634,13 @@
5656
5634
  "hasDynamicHelp": false,
5657
5635
  "multiple": true,
5658
5636
  "type": "option"
5637
+ },
5638
+ "idempotency-key": {
5639
+ "description": "Idempotency key (1-255 printable ASCII characters). Re-running with the same key within 24 hours returns the original result instead of sending again.",
5640
+ "name": "idempotency-key",
5641
+ "hasDynamicHelp": false,
5642
+ "multiple": false,
5643
+ "type": "option"
5659
5644
  }
5660
5645
  },
5661
5646
  "hasDynamicHelp": false,
@@ -7115,7 +7100,7 @@
7115
7100
  "char": "e",
7116
7101
  "description": "Comma-separated list of events to listen for. Default subscribes to all message.* and contact.* / contacts.* events so nothing is missed during local dev.",
7117
7102
  "name": "events",
7118
- "default": "message.sent,message.delivered,message.failed,message.bounced,message.retrying,message.received,message.opt_out,message.opt_in,contact.auto_flagged,contact.marked_valid,contacts.lookup_completed,contacts.bulk_marked_valid",
7103
+ "default": "message.sent,message.delivered,message.failed,message.bounced,message.retrying,message.received,message.opt_out,message.opt_in,contact.auto_flagged,contact.marked_valid,contacts.lookup_completed,contacts.bulk_marked_valid,brand.verified,brand.failed,campaign.approved,campaign.rejected,campaign.suspended,assignment.confirmed,assignment.failed,port.completed,port_out.requested,port_out.completed,port_out.rejected,port_out.cancelled,number.activated,number.failed,number.requirements_required,number.released",
7119
7104
  "hasDynamicHelp": false,
7120
7105
  "multiple": false,
7121
7106
  "type": "option"
@@ -7448,13 +7433,13 @@
7448
7433
  "update.js"
7449
7434
  ]
7450
7435
  },
7451
- "10dlc:assignments:list": {
7436
+ "whatsapp:connect": {
7452
7437
  "aliases": [],
7453
7438
  "args": {},
7454
- "description": "List number-to-campaign assignments",
7439
+ "description": "Connect one of your numbers to WhatsApp. Prints a secure link a person must open and sign in with Facebook to finish; the command then waits until the sender is active. One-time $19 connection fee — no monthly fee.",
7455
7440
  "examples": [
7456
- "<%= config.bin %> 10dlc assignments list",
7457
- "<%= config.bin %> 10dlc assignments list --json"
7441
+ "<%= config.bin %> whatsapp connect --number +15551234567",
7442
+ "<%= config.bin %> whatsapp connect --number +15551234567 --json"
7458
7443
  ],
7459
7444
  "flags": {
7460
7445
  "json": {
@@ -7469,11 +7454,20 @@
7469
7454
  "name": "quiet",
7470
7455
  "allowNo": false,
7471
7456
  "type": "boolean"
7457
+ },
7458
+ "number": {
7459
+ "char": "n",
7460
+ "description": "Number on your workspace to connect (E.164 format)",
7461
+ "name": "number",
7462
+ "required": true,
7463
+ "hasDynamicHelp": false,
7464
+ "multiple": false,
7465
+ "type": "option"
7472
7466
  }
7473
7467
  },
7474
7468
  "hasDynamicHelp": false,
7475
7469
  "hiddenAliases": [],
7476
- "id": "10dlc:assignments:list",
7470
+ "id": "whatsapp:connect",
7477
7471
  "pluginAlias": "@sendly/cli",
7478
7472
  "pluginName": "@sendly/cli",
7479
7473
  "pluginType": "core",
@@ -7482,18 +7476,18 @@
7482
7476
  "relativePath": [
7483
7477
  "dist",
7484
7478
  "commands",
7485
- "10dlc",
7486
- "assignments",
7487
- "list.js"
7479
+ "whatsapp",
7480
+ "connect.js"
7488
7481
  ]
7489
7482
  },
7490
- "10dlc:brands:create": {
7483
+ "whatsapp:send": {
7491
7484
  "aliases": [],
7492
7485
  "args": {},
7493
- "description": "Register a brand for carrier review (step 1 of enabling local-number texting)",
7486
+ "description": "Send a WhatsApp message free-form text inside the 24-hour reply window, or an approved template any time",
7494
7487
  "examples": [
7495
- "<%= config.bin %> 10dlc brands create --legal-name \"Acme Inc\" --ein \"12-3456789\" --website https://acme.com",
7496
- "<%= config.bin %> 10dlc brands create --legal-name \"Jane Doe\" --entity-type SOLE_PROPRIETOR --email jane@example.com"
7488
+ "<%= config.bin %> whatsapp send --to +15551234567 --from +15559876543 --text \"Your table is ready!\"",
7489
+ "<%= config.bin %> whatsapp send --to +447700900123 --from +15559876543 --template order_shipped --language en_US --var 1=TinyFat --var 2=4821",
7490
+ "<%= config.bin %> whatsapp send --to +15551234567 --from +15559876543 --text \"Hello!\" --json"
7497
7491
  ],
7498
7492
  "flags": {
7499
7493
  "json": {
@@ -7509,48 +7503,274 @@
7509
7503
  "allowNo": false,
7510
7504
  "type": "boolean"
7511
7505
  },
7512
- "legal-name": {
7513
- "description": "Legal business name",
7514
- "name": "legal-name",
7506
+ "to": {
7507
+ "char": "t",
7508
+ "description": "Recipient phone number (E.164 format)",
7509
+ "name": "to",
7515
7510
  "required": true,
7516
7511
  "hasDynamicHelp": false,
7517
7512
  "multiple": false,
7518
7513
  "type": "option"
7519
7514
  },
7520
- "dba": {
7521
- "description": "DBA / trading name",
7522
- "name": "dba",
7515
+ "from": {
7516
+ "char": "f",
7517
+ "description": "Your WhatsApp-connected sender number (E.164 format)",
7518
+ "name": "from",
7519
+ "required": true,
7523
7520
  "hasDynamicHelp": false,
7524
7521
  "multiple": false,
7525
7522
  "type": "option"
7526
7523
  },
7527
- "ein": {
7528
- "description": "EIN / tax ID",
7529
- "name": "ein",
7524
+ "text": {
7525
+ "char": "m",
7526
+ "description": "Free-form message text (only inside the 24-hour reply window)",
7527
+ "exclusive": [
7528
+ "template",
7529
+ "language",
7530
+ "var"
7531
+ ],
7532
+ "name": "text",
7530
7533
  "hasDynamicHelp": false,
7531
7534
  "multiple": false,
7532
7535
  "type": "option"
7533
7536
  },
7534
- "entity-type": {
7535
- "description": "Entity type (e.g. PRIVATE_PROFIT, SOLE_PROPRIETOR)",
7536
- "name": "entity-type",
7537
- "default": "PRIVATE_PROFIT",
7537
+ "template": {
7538
+ "description": "Approved template name (reaches contacts any time)",
7539
+ "name": "template",
7538
7540
  "hasDynamicHelp": false,
7539
7541
  "multiple": false,
7540
7542
  "type": "option"
7541
7543
  },
7542
- "vertical": {
7543
- "description": "Industry vertical (e.g. TECHNOLOGY, RETAIL)",
7544
- "name": "vertical",
7544
+ "language": {
7545
+ "char": "l",
7546
+ "dependsOn": [
7547
+ "template"
7548
+ ],
7549
+ "description": "Template language code (e.g. en_US); required with --template",
7550
+ "name": "language",
7545
7551
  "hasDynamicHelp": false,
7546
7552
  "multiple": false,
7547
7553
  "type": "option"
7548
7554
  },
7549
- "website": {
7550
- "description": "Business website URL",
7551
- "name": "website",
7555
+ "var": {
7556
+ "dependsOn": [
7557
+ "template"
7558
+ ],
7559
+ "description": "Template variable as n=value (e.g. --var 1=TinyFat). Repeatable.",
7560
+ "name": "var",
7552
7561
  "hasDynamicHelp": false,
7553
- "multiple": false,
7562
+ "multiple": true,
7563
+ "type": "option"
7564
+ },
7565
+ "idempotency-key": {
7566
+ "description": "Idempotency key (1-255 printable ASCII characters). Re-running with the same key within 24 hours returns the original result instead of sending again.",
7567
+ "name": "idempotency-key",
7568
+ "hasDynamicHelp": false,
7569
+ "multiple": false,
7570
+ "type": "option"
7571
+ }
7572
+ },
7573
+ "hasDynamicHelp": false,
7574
+ "hiddenAliases": [],
7575
+ "id": "whatsapp:send",
7576
+ "pluginAlias": "@sendly/cli",
7577
+ "pluginName": "@sendly/cli",
7578
+ "pluginType": "core",
7579
+ "strict": true,
7580
+ "isESM": true,
7581
+ "relativePath": [
7582
+ "dist",
7583
+ "commands",
7584
+ "whatsapp",
7585
+ "send.js"
7586
+ ]
7587
+ },
7588
+ "whatsapp:senders": {
7589
+ "aliases": [],
7590
+ "args": {},
7591
+ "description": "List the numbers connected to WhatsApp on your workspace",
7592
+ "examples": [
7593
+ "<%= config.bin %> whatsapp senders",
7594
+ "<%= config.bin %> whatsapp senders --json"
7595
+ ],
7596
+ "flags": {
7597
+ "json": {
7598
+ "description": "Output in JSON format",
7599
+ "name": "json",
7600
+ "allowNo": false,
7601
+ "type": "boolean"
7602
+ },
7603
+ "quiet": {
7604
+ "char": "q",
7605
+ "description": "Minimal output",
7606
+ "name": "quiet",
7607
+ "allowNo": false,
7608
+ "type": "boolean"
7609
+ }
7610
+ },
7611
+ "hasDynamicHelp": false,
7612
+ "hiddenAliases": [],
7613
+ "id": "whatsapp:senders",
7614
+ "pluginAlias": "@sendly/cli",
7615
+ "pluginName": "@sendly/cli",
7616
+ "pluginType": "core",
7617
+ "strict": true,
7618
+ "isESM": true,
7619
+ "relativePath": [
7620
+ "dist",
7621
+ "commands",
7622
+ "whatsapp",
7623
+ "senders.js"
7624
+ ]
7625
+ },
7626
+ "whatsapp:status": {
7627
+ "aliases": [],
7628
+ "args": {
7629
+ "id": {
7630
+ "description": "Signup id (from `whatsapp connect`); omit for the latest",
7631
+ "name": "id",
7632
+ "required": false
7633
+ }
7634
+ },
7635
+ "description": "Show the status of a WhatsApp connection (defaults to your most recent one)",
7636
+ "examples": [
7637
+ "<%= config.bin %> whatsapp status",
7638
+ "<%= config.bin %> whatsapp status 3f6a1c9e-0000-0000-0000-000000000000",
7639
+ "<%= config.bin %> whatsapp status --json"
7640
+ ],
7641
+ "flags": {
7642
+ "json": {
7643
+ "description": "Output in JSON format",
7644
+ "name": "json",
7645
+ "allowNo": false,
7646
+ "type": "boolean"
7647
+ },
7648
+ "quiet": {
7649
+ "char": "q",
7650
+ "description": "Minimal output",
7651
+ "name": "quiet",
7652
+ "allowNo": false,
7653
+ "type": "boolean"
7654
+ }
7655
+ },
7656
+ "hasDynamicHelp": false,
7657
+ "hiddenAliases": [],
7658
+ "id": "whatsapp:status",
7659
+ "pluginAlias": "@sendly/cli",
7660
+ "pluginName": "@sendly/cli",
7661
+ "pluginType": "core",
7662
+ "strict": true,
7663
+ "isESM": true,
7664
+ "relativePath": [
7665
+ "dist",
7666
+ "commands",
7667
+ "whatsapp",
7668
+ "status.js"
7669
+ ]
7670
+ },
7671
+ "10dlc:assignments:list": {
7672
+ "aliases": [],
7673
+ "args": {},
7674
+ "description": "List number-to-campaign assignments",
7675
+ "examples": [
7676
+ "<%= config.bin %> 10dlc assignments list",
7677
+ "<%= config.bin %> 10dlc assignments list --json"
7678
+ ],
7679
+ "flags": {
7680
+ "json": {
7681
+ "description": "Output in JSON format",
7682
+ "name": "json",
7683
+ "allowNo": false,
7684
+ "type": "boolean"
7685
+ },
7686
+ "quiet": {
7687
+ "char": "q",
7688
+ "description": "Minimal output",
7689
+ "name": "quiet",
7690
+ "allowNo": false,
7691
+ "type": "boolean"
7692
+ }
7693
+ },
7694
+ "hasDynamicHelp": false,
7695
+ "hiddenAliases": [],
7696
+ "id": "10dlc:assignments:list",
7697
+ "pluginAlias": "@sendly/cli",
7698
+ "pluginName": "@sendly/cli",
7699
+ "pluginType": "core",
7700
+ "strict": true,
7701
+ "isESM": true,
7702
+ "relativePath": [
7703
+ "dist",
7704
+ "commands",
7705
+ "10dlc",
7706
+ "assignments",
7707
+ "list.js"
7708
+ ]
7709
+ },
7710
+ "10dlc:brands:create": {
7711
+ "aliases": [],
7712
+ "args": {},
7713
+ "description": "Register a brand for carrier review (step 1 of enabling local-number texting)",
7714
+ "examples": [
7715
+ "<%= config.bin %> 10dlc brands create --legal-name \"Acme Inc\" --ein \"12-3456789\" --website https://acme.com",
7716
+ "<%= config.bin %> 10dlc brands create --legal-name \"Jane Doe\" --entity-type SOLE_PROPRIETOR --email jane@example.com"
7717
+ ],
7718
+ "flags": {
7719
+ "json": {
7720
+ "description": "Output in JSON format",
7721
+ "name": "json",
7722
+ "allowNo": false,
7723
+ "type": "boolean"
7724
+ },
7725
+ "quiet": {
7726
+ "char": "q",
7727
+ "description": "Minimal output",
7728
+ "name": "quiet",
7729
+ "allowNo": false,
7730
+ "type": "boolean"
7731
+ },
7732
+ "legal-name": {
7733
+ "description": "Legal business name",
7734
+ "name": "legal-name",
7735
+ "required": true,
7736
+ "hasDynamicHelp": false,
7737
+ "multiple": false,
7738
+ "type": "option"
7739
+ },
7740
+ "dba": {
7741
+ "description": "DBA / trading name",
7742
+ "name": "dba",
7743
+ "hasDynamicHelp": false,
7744
+ "multiple": false,
7745
+ "type": "option"
7746
+ },
7747
+ "ein": {
7748
+ "description": "EIN / tax ID",
7749
+ "name": "ein",
7750
+ "hasDynamicHelp": false,
7751
+ "multiple": false,
7752
+ "type": "option"
7753
+ },
7754
+ "entity-type": {
7755
+ "description": "Entity type (e.g. PRIVATE_PROFIT, SOLE_PROPRIETOR)",
7756
+ "name": "entity-type",
7757
+ "default": "PRIVATE_PROFIT",
7758
+ "hasDynamicHelp": false,
7759
+ "multiple": false,
7760
+ "type": "option"
7761
+ },
7762
+ "vertical": {
7763
+ "description": "Industry vertical (e.g. TECHNOLOGY, RETAIL)",
7764
+ "name": "vertical",
7765
+ "hasDynamicHelp": false,
7766
+ "multiple": false,
7767
+ "type": "option"
7768
+ },
7769
+ "website": {
7770
+ "description": "Business website URL",
7771
+ "name": "website",
7772
+ "hasDynamicHelp": false,
7773
+ "multiple": false,
7554
7774
  "type": "option"
7555
7775
  },
7556
7776
  "email": {
@@ -7999,19 +8219,14 @@
7999
8219
  "list.js"
8000
8220
  ]
8001
8221
  },
8002
- "contacts:lists:add": {
8222
+ "numbers:buy": {
8003
8223
  "aliases": [],
8004
- "args": {
8005
- "listId": {
8006
- "description": "Contact list ID",
8007
- "name": "listId",
8008
- "required": true
8009
- }
8010
- },
8011
- "description": "Add contacts to a list",
8224
+ "args": {},
8225
+ "description": "Buy a phone number. Handles document/payment steps interactively when a country requires them.",
8012
8226
  "examples": [
8013
- "<%= config.bin %> contacts lists add lst_xxx --contacts cnt_abc,cnt_def",
8014
- "<%= config.bin %> contacts lists add lst_xxx --contacts cnt_abc --contacts cnt_def"
8227
+ "<%= config.bin %> numbers buy --country GB --type mobile",
8228
+ "<%= config.bin %> numbers buy --country US --type local --number +15551234567",
8229
+ "<%= config.bin %> numbers buy --country GB --type mobile --json"
8015
8230
  ],
8016
8231
  "flags": {
8017
8232
  "json": {
@@ -8027,19 +8242,36 @@
8027
8242
  "allowNo": false,
8028
8243
  "type": "boolean"
8029
8244
  },
8030
- "contacts": {
8245
+ "country": {
8031
8246
  "char": "c",
8032
- "description": "Contact IDs to add (comma-separated or multiple flags)",
8033
- "name": "contacts",
8247
+ "description": "ISO country code (e.g. GB, US)",
8248
+ "name": "country",
8034
8249
  "required": true,
8035
8250
  "hasDynamicHelp": false,
8036
- "multiple": true,
8251
+ "multiple": false,
8252
+ "type": "option"
8253
+ },
8254
+ "type": {
8255
+ "char": "t",
8256
+ "description": "Number type (e.g. mobile, local, toll-free)",
8257
+ "name": "type",
8258
+ "required": true,
8259
+ "hasDynamicHelp": false,
8260
+ "multiple": false,
8261
+ "type": "option"
8262
+ },
8263
+ "number": {
8264
+ "char": "n",
8265
+ "description": "Specific number to buy in E.164 format (skips selection)",
8266
+ "name": "number",
8267
+ "hasDynamicHelp": false,
8268
+ "multiple": false,
8037
8269
  "type": "option"
8038
8270
  }
8039
8271
  },
8040
8272
  "hasDynamicHelp": false,
8041
8273
  "hiddenAliases": [],
8042
- "id": "contacts:lists:add",
8274
+ "id": "numbers:buy",
8043
8275
  "pluginAlias": "@sendly/cli",
8044
8276
  "pluginName": "@sendly/cli",
8045
8277
  "pluginType": "core",
@@ -8048,19 +8280,24 @@
8048
8280
  "relativePath": [
8049
8281
  "dist",
8050
8282
  "commands",
8051
- "contacts",
8052
- "lists",
8053
- "add.js"
8283
+ "numbers",
8284
+ "buy.js"
8054
8285
  ]
8055
8286
  },
8056
- "contacts:lists:create": {
8287
+ "numbers:get": {
8057
8288
  "aliases": [],
8058
- "args": {},
8059
- "description": "Create a new contact list",
8289
+ "args": {
8290
+ "id": {
8291
+ "description": "Phone number ID (from `sendly numbers list`)",
8292
+ "name": "id",
8293
+ "required": true
8294
+ }
8295
+ },
8296
+ "description": "Show details for one phone number you own",
8060
8297
  "examples": [
8061
- "<%= config.bin %> contacts lists create --name \"VIP Customers\"",
8062
- "<%= config.bin %> contacts lists create --name \"Newsletter\" --description \"Weekly newsletter subscribers\""
8063
- ],
8298
+ "<%= config.bin %> numbers get num_abc123",
8299
+ "<%= config.bin %> numbers get num_abc123 --json"
8300
+ ],
8064
8301
  "flags": {
8065
8302
  "json": {
8066
8303
  "description": "Output in JSON format",
@@ -8074,28 +8311,11 @@
8074
8311
  "name": "quiet",
8075
8312
  "allowNo": false,
8076
8313
  "type": "boolean"
8077
- },
8078
- "name": {
8079
- "char": "n",
8080
- "description": "List name",
8081
- "name": "name",
8082
- "required": true,
8083
- "hasDynamicHelp": false,
8084
- "multiple": false,
8085
- "type": "option"
8086
- },
8087
- "description": {
8088
- "char": "d",
8089
- "description": "List description",
8090
- "name": "description",
8091
- "hasDynamicHelp": false,
8092
- "multiple": false,
8093
- "type": "option"
8094
8314
  }
8095
8315
  },
8096
8316
  "hasDynamicHelp": false,
8097
8317
  "hiddenAliases": [],
8098
- "id": "contacts:lists:create",
8318
+ "id": "numbers:get",
8099
8319
  "pluginAlias": "@sendly/cli",
8100
8320
  "pluginName": "@sendly/cli",
8101
8321
  "pluginType": "core",
@@ -8104,24 +8324,17 @@
8104
8324
  "relativePath": [
8105
8325
  "dist",
8106
8326
  "commands",
8107
- "contacts",
8108
- "lists",
8109
- "create.js"
8327
+ "numbers",
8328
+ "get.js"
8110
8329
  ]
8111
8330
  },
8112
- "contacts:lists:delete": {
8331
+ "numbers:list": {
8113
8332
  "aliases": [],
8114
- "args": {
8115
- "id": {
8116
- "description": "Contact list ID to delete",
8117
- "name": "id",
8118
- "required": true
8119
- }
8120
- },
8121
- "description": "Delete a contact list (does not delete the contacts)",
8333
+ "args": {},
8334
+ "description": "List the phone numbers on your account",
8122
8335
  "examples": [
8123
- "<%= config.bin %> contacts lists delete lst_xxx",
8124
- "<%= config.bin %> contacts lists delete lst_xxx --yes"
8336
+ "<%= config.bin %> numbers list",
8337
+ "<%= config.bin %> numbers list --json"
8125
8338
  ],
8126
8339
  "flags": {
8127
8340
  "json": {
@@ -8136,18 +8349,11 @@
8136
8349
  "name": "quiet",
8137
8350
  "allowNo": false,
8138
8351
  "type": "boolean"
8139
- },
8140
- "yes": {
8141
- "char": "y",
8142
- "description": "Skip confirmation prompt",
8143
- "name": "yes",
8144
- "allowNo": false,
8145
- "type": "boolean"
8146
8352
  }
8147
8353
  },
8148
8354
  "hasDynamicHelp": false,
8149
8355
  "hiddenAliases": [],
8150
- "id": "contacts:lists:delete",
8356
+ "id": "numbers:list",
8151
8357
  "pluginAlias": "@sendly/cli",
8152
8358
  "pluginName": "@sendly/cli",
8153
8359
  "pluginType": "core",
@@ -8156,24 +8362,24 @@
8156
8362
  "relativePath": [
8157
8363
  "dist",
8158
8364
  "commands",
8159
- "contacts",
8160
- "lists",
8161
- "delete.js"
8365
+ "numbers",
8366
+ "list.js"
8162
8367
  ]
8163
8368
  },
8164
- "contacts:lists:get": {
8369
+ "numbers:release": {
8165
8370
  "aliases": [],
8166
8371
  "args": {
8167
8372
  "id": {
8168
- "description": "Contact list ID",
8373
+ "description": "Phone number ID (from `sendly numbers list`)",
8169
8374
  "name": "id",
8170
8375
  "required": true
8171
8376
  }
8172
8377
  },
8173
- "description": "Get contact list details",
8378
+ "description": "Release a number you own (paid purchases release at period end, others immediately)",
8174
8379
  "examples": [
8175
- "<%= config.bin %> contacts lists get lst_xxx",
8176
- "<%= config.bin %> contacts lists get lst_xxx --json"
8380
+ "<%= config.bin %> numbers release num_abc123",
8381
+ "<%= config.bin %> numbers release num_abc123 --yes",
8382
+ "<%= config.bin %> numbers release num_abc123 --json"
8177
8383
  ],
8178
8384
  "flags": {
8179
8385
  "json": {
@@ -8188,11 +8394,18 @@
8188
8394
  "name": "quiet",
8189
8395
  "allowNo": false,
8190
8396
  "type": "boolean"
8397
+ },
8398
+ "yes": {
8399
+ "char": "y",
8400
+ "description": "Skip confirmation prompt",
8401
+ "name": "yes",
8402
+ "allowNo": false,
8403
+ "type": "boolean"
8191
8404
  }
8192
8405
  },
8193
8406
  "hasDynamicHelp": false,
8194
8407
  "hiddenAliases": [],
8195
- "id": "contacts:lists:get",
8408
+ "id": "numbers:release",
8196
8409
  "pluginAlias": "@sendly/cli",
8197
8410
  "pluginName": "@sendly/cli",
8198
8411
  "pluginType": "core",
@@ -8201,18 +8414,18 @@
8201
8414
  "relativePath": [
8202
8415
  "dist",
8203
8416
  "commands",
8204
- "contacts",
8205
- "lists",
8206
- "get.js"
8417
+ "numbers",
8418
+ "release.js"
8207
8419
  ]
8208
8420
  },
8209
- "contacts:lists": {
8421
+ "numbers:search": {
8210
8422
  "aliases": [],
8211
8423
  "args": {},
8212
- "description": "List all contact lists",
8424
+ "description": "Search for available phone numbers to buy in a country",
8213
8425
  "examples": [
8214
- "<%= config.bin %> contacts lists",
8215
- "<%= config.bin %> contacts lists --json"
8426
+ "<%= config.bin %> numbers search --country GB --type mobile",
8427
+ "<%= config.bin %> numbers search --country US --type local --contains 555",
8428
+ "<%= config.bin %> numbers search --country GB --type mobile --json"
8216
8429
  ],
8217
8430
  "flags": {
8218
8431
  "json": {
@@ -8227,11 +8440,36 @@
8227
8440
  "name": "quiet",
8228
8441
  "allowNo": false,
8229
8442
  "type": "boolean"
8443
+ },
8444
+ "country": {
8445
+ "char": "c",
8446
+ "description": "ISO country code (e.g. GB, US)",
8447
+ "name": "country",
8448
+ "required": true,
8449
+ "hasDynamicHelp": false,
8450
+ "multiple": false,
8451
+ "type": "option"
8452
+ },
8453
+ "type": {
8454
+ "char": "t",
8455
+ "description": "Number type (e.g. mobile, local, toll-free)",
8456
+ "name": "type",
8457
+ "required": true,
8458
+ "hasDynamicHelp": false,
8459
+ "multiple": false,
8460
+ "type": "option"
8461
+ },
8462
+ "contains": {
8463
+ "description": "Only return numbers containing this digit pattern",
8464
+ "name": "contains",
8465
+ "hasDynamicHelp": false,
8466
+ "multiple": false,
8467
+ "type": "option"
8230
8468
  }
8231
8469
  },
8232
8470
  "hasDynamicHelp": false,
8233
8471
  "hiddenAliases": [],
8234
- "id": "contacts:lists",
8472
+ "id": "numbers:search",
8235
8473
  "pluginAlias": "@sendly/cli",
8236
8474
  "pluginName": "@sendly/cli",
8237
8475
  "pluginType": "core",
@@ -8240,28 +8478,24 @@
8240
8478
  "relativePath": [
8241
8479
  "dist",
8242
8480
  "commands",
8243
- "contacts",
8244
- "lists",
8245
- "index.js"
8481
+ "numbers",
8482
+ "search.js"
8246
8483
  ]
8247
8484
  },
8248
- "contacts:lists:remove": {
8485
+ "numbers:update": {
8249
8486
  "aliases": [],
8250
8487
  "args": {
8251
- "listId": {
8252
- "description": "Contact list ID",
8253
- "name": "listId",
8254
- "required": true
8255
- },
8256
- "contactId": {
8257
- "description": "Contact ID to remove",
8258
- "name": "contactId",
8488
+ "id": {
8489
+ "description": "Phone number ID (from `sendly numbers list`)",
8490
+ "name": "id",
8259
8491
  "required": true
8260
8492
  }
8261
8493
  },
8262
- "description": "Remove a contact from a list",
8494
+ "description": "Update a number you own: make it the default sender (--default) or cancel a scheduled release (--keep)",
8263
8495
  "examples": [
8264
- "<%= config.bin %> contacts lists remove lst_xxx cnt_abc"
8496
+ "<%= config.bin %> numbers update num_abc123 --default",
8497
+ "<%= config.bin %> numbers update num_abc123 --keep",
8498
+ "<%= config.bin %> numbers update num_abc123 --default --json"
8265
8499
  ],
8266
8500
  "flags": {
8267
8501
  "json": {
@@ -8276,11 +8510,25 @@
8276
8510
  "name": "quiet",
8277
8511
  "allowNo": false,
8278
8512
  "type": "boolean"
8513
+ },
8514
+ "default": {
8515
+ "char": "d",
8516
+ "description": "Make this the workspace default sender (must be active)",
8517
+ "name": "default",
8518
+ "allowNo": false,
8519
+ "type": "boolean"
8520
+ },
8521
+ "keep": {
8522
+ "char": "k",
8523
+ "description": "Cancel a scheduled release and keep the number",
8524
+ "name": "keep",
8525
+ "allowNo": false,
8526
+ "type": "boolean"
8279
8527
  }
8280
8528
  },
8281
8529
  "hasDynamicHelp": false,
8282
8530
  "hiddenAliases": [],
8283
- "id": "contacts:lists:remove",
8531
+ "id": "numbers:update",
8284
8532
  "pluginAlias": "@sendly/cli",
8285
8533
  "pluginName": "@sendly/cli",
8286
8534
  "pluginType": "core",
@@ -8289,24 +8537,23 @@
8289
8537
  "relativePath": [
8290
8538
  "dist",
8291
8539
  "commands",
8292
- "contacts",
8293
- "lists",
8294
- "remove.js"
8540
+ "numbers",
8541
+ "update.js"
8295
8542
  ]
8296
8543
  },
8297
- "contacts:lists:update": {
8544
+ "contacts:lists:add": {
8298
8545
  "aliases": [],
8299
8546
  "args": {
8300
- "id": {
8547
+ "listId": {
8301
8548
  "description": "Contact list ID",
8302
- "name": "id",
8549
+ "name": "listId",
8303
8550
  "required": true
8304
8551
  }
8305
8552
  },
8306
- "description": "Update a contact list",
8553
+ "description": "Add contacts to a list",
8307
8554
  "examples": [
8308
- "<%= config.bin %> contacts lists update lst_xxx --name \"VIP Customers\"",
8309
- "<%= config.bin %> contacts lists update lst_xxx --description \"Updated desc\""
8555
+ "<%= config.bin %> contacts lists add lst_xxx --contacts cnt_abc,cnt_def",
8556
+ "<%= config.bin %> contacts lists add lst_xxx --contacts cnt_abc --contacts cnt_def"
8310
8557
  ],
8311
8558
  "flags": {
8312
8559
  "json": {
@@ -8322,26 +8569,19 @@
8322
8569
  "allowNo": false,
8323
8570
  "type": "boolean"
8324
8571
  },
8325
- "name": {
8326
- "char": "n",
8327
- "description": "List name",
8328
- "name": "name",
8329
- "hasDynamicHelp": false,
8330
- "multiple": false,
8331
- "type": "option"
8332
- },
8333
- "description": {
8334
- "char": "d",
8335
- "description": "List description",
8336
- "name": "description",
8572
+ "contacts": {
8573
+ "char": "c",
8574
+ "description": "Contact IDs to add (comma-separated or multiple flags)",
8575
+ "name": "contacts",
8576
+ "required": true,
8337
8577
  "hasDynamicHelp": false,
8338
- "multiple": false,
8578
+ "multiple": true,
8339
8579
  "type": "option"
8340
8580
  }
8341
8581
  },
8342
8582
  "hasDynamicHelp": false,
8343
8583
  "hiddenAliases": [],
8344
- "id": "contacts:lists:update",
8584
+ "id": "contacts:lists:add",
8345
8585
  "pluginAlias": "@sendly/cli",
8346
8586
  "pluginName": "@sendly/cli",
8347
8587
  "pluginType": "core",
@@ -8352,17 +8592,16 @@
8352
8592
  "commands",
8353
8593
  "contacts",
8354
8594
  "lists",
8355
- "update.js"
8595
+ "add.js"
8356
8596
  ]
8357
8597
  },
8358
- "enterprise:analytics:credits": {
8598
+ "contacts:lists:create": {
8359
8599
  "aliases": [],
8360
8600
  "args": {},
8361
- "description": "Get credit usage analytics over time",
8601
+ "description": "Create a new contact list",
8362
8602
  "examples": [
8363
- "<%= config.bin %> enterprise analytics credits",
8364
- "<%= config.bin %> enterprise analytics credits --period 30d",
8365
- "<%= config.bin %> enterprise analytics credits --json"
8603
+ "<%= config.bin %> contacts lists create --name \"VIP Customers\"",
8604
+ "<%= config.bin %> contacts lists create --name \"Newsletter\" --description \"Weekly newsletter subscribers\""
8366
8605
  ],
8367
8606
  "flags": {
8368
8607
  "json": {
@@ -8378,24 +8617,27 @@
8378
8617
  "allowNo": false,
8379
8618
  "type": "boolean"
8380
8619
  },
8381
- "period": {
8382
- "char": "p",
8383
- "description": "Time period (7d, 30d, 90d)",
8384
- "name": "period",
8385
- "default": "7d",
8620
+ "name": {
8621
+ "char": "n",
8622
+ "description": "List name",
8623
+ "name": "name",
8624
+ "required": true,
8625
+ "hasDynamicHelp": false,
8626
+ "multiple": false,
8627
+ "type": "option"
8628
+ },
8629
+ "description": {
8630
+ "char": "d",
8631
+ "description": "List description",
8632
+ "name": "description",
8386
8633
  "hasDynamicHelp": false,
8387
8634
  "multiple": false,
8388
- "options": [
8389
- "7d",
8390
- "30d",
8391
- "90d"
8392
- ],
8393
8635
  "type": "option"
8394
8636
  }
8395
8637
  },
8396
8638
  "hasDynamicHelp": false,
8397
8639
  "hiddenAliases": [],
8398
- "id": "enterprise:analytics:credits",
8640
+ "id": "contacts:lists:create",
8399
8641
  "pluginAlias": "@sendly/cli",
8400
8642
  "pluginName": "@sendly/cli",
8401
8643
  "pluginType": "core",
@@ -8404,18 +8646,24 @@
8404
8646
  "relativePath": [
8405
8647
  "dist",
8406
8648
  "commands",
8407
- "enterprise",
8408
- "analytics",
8409
- "credits.js"
8649
+ "contacts",
8650
+ "lists",
8651
+ "create.js"
8410
8652
  ]
8411
8653
  },
8412
- "enterprise:analytics:delivery": {
8654
+ "contacts:lists:delete": {
8413
8655
  "aliases": [],
8414
- "args": {},
8415
- "description": "Get delivery rate analytics by workspace",
8656
+ "args": {
8657
+ "id": {
8658
+ "description": "Contact list ID to delete",
8659
+ "name": "id",
8660
+ "required": true
8661
+ }
8662
+ },
8663
+ "description": "Delete a contact list (does not delete the contacts)",
8416
8664
  "examples": [
8417
- "<%= config.bin %> enterprise analytics delivery",
8418
- "<%= config.bin %> enterprise analytics delivery --json"
8665
+ "<%= config.bin %> contacts lists delete lst_xxx",
8666
+ "<%= config.bin %> contacts lists delete lst_xxx --yes"
8419
8667
  ],
8420
8668
  "flags": {
8421
8669
  "json": {
@@ -8430,11 +8678,18 @@
8430
8678
  "name": "quiet",
8431
8679
  "allowNo": false,
8432
8680
  "type": "boolean"
8433
- }
8434
- },
8681
+ },
8682
+ "yes": {
8683
+ "char": "y",
8684
+ "description": "Skip confirmation prompt",
8685
+ "name": "yes",
8686
+ "allowNo": false,
8687
+ "type": "boolean"
8688
+ }
8689
+ },
8435
8690
  "hasDynamicHelp": false,
8436
8691
  "hiddenAliases": [],
8437
- "id": "enterprise:analytics:delivery",
8692
+ "id": "contacts:lists:delete",
8438
8693
  "pluginAlias": "@sendly/cli",
8439
8694
  "pluginName": "@sendly/cli",
8440
8695
  "pluginType": "core",
@@ -8443,19 +8698,24 @@
8443
8698
  "relativePath": [
8444
8699
  "dist",
8445
8700
  "commands",
8446
- "enterprise",
8447
- "analytics",
8448
- "delivery.js"
8701
+ "contacts",
8702
+ "lists",
8703
+ "delete.js"
8449
8704
  ]
8450
8705
  },
8451
- "enterprise:analytics:messages": {
8706
+ "contacts:lists:get": {
8452
8707
  "aliases": [],
8453
- "args": {},
8454
- "description": "Get message analytics across all workspaces",
8708
+ "args": {
8709
+ "id": {
8710
+ "description": "Contact list ID",
8711
+ "name": "id",
8712
+ "required": true
8713
+ }
8714
+ },
8715
+ "description": "Get contact list details",
8455
8716
  "examples": [
8456
- "<%= config.bin %> enterprise analytics messages",
8457
- "<%= config.bin %> enterprise analytics messages --period 30d",
8458
- "<%= config.bin %> enterprise analytics messages --period 90d --json"
8717
+ "<%= config.bin %> contacts lists get lst_xxx",
8718
+ "<%= config.bin %> contacts lists get lst_xxx --json"
8459
8719
  ],
8460
8720
  "flags": {
8461
8721
  "json": {
@@ -8470,25 +8730,11 @@
8470
8730
  "name": "quiet",
8471
8731
  "allowNo": false,
8472
8732
  "type": "boolean"
8473
- },
8474
- "period": {
8475
- "char": "p",
8476
- "description": "Time period (7d, 30d, 90d)",
8477
- "name": "period",
8478
- "default": "7d",
8479
- "hasDynamicHelp": false,
8480
- "multiple": false,
8481
- "options": [
8482
- "7d",
8483
- "30d",
8484
- "90d"
8485
- ],
8486
- "type": "option"
8487
8733
  }
8488
8734
  },
8489
8735
  "hasDynamicHelp": false,
8490
8736
  "hiddenAliases": [],
8491
- "id": "enterprise:analytics:messages",
8737
+ "id": "contacts:lists:get",
8492
8738
  "pluginAlias": "@sendly/cli",
8493
8739
  "pluginName": "@sendly/cli",
8494
8740
  "pluginType": "core",
@@ -8497,18 +8743,18 @@
8497
8743
  "relativePath": [
8498
8744
  "dist",
8499
8745
  "commands",
8500
- "enterprise",
8501
- "analytics",
8502
- "messages.js"
8746
+ "contacts",
8747
+ "lists",
8748
+ "get.js"
8503
8749
  ]
8504
8750
  },
8505
- "enterprise:analytics:overview": {
8751
+ "contacts:lists": {
8506
8752
  "aliases": [],
8507
8753
  "args": {},
8508
- "description": "Get enterprise-wide analytics overview",
8754
+ "description": "List all contact lists",
8509
8755
  "examples": [
8510
- "<%= config.bin %> enterprise analytics overview",
8511
- "<%= config.bin %> enterprise analytics overview --json"
8756
+ "<%= config.bin %> contacts lists",
8757
+ "<%= config.bin %> contacts lists --json"
8512
8758
  ],
8513
8759
  "flags": {
8514
8760
  "json": {
@@ -8527,7 +8773,7 @@
8527
8773
  },
8528
8774
  "hasDynamicHelp": false,
8529
8775
  "hiddenAliases": [],
8530
- "id": "enterprise:analytics:overview",
8776
+ "id": "contacts:lists",
8531
8777
  "pluginAlias": "@sendly/cli",
8532
8778
  "pluginName": "@sendly/cli",
8533
8779
  "pluginType": "core",
@@ -8536,24 +8782,28 @@
8536
8782
  "relativePath": [
8537
8783
  "dist",
8538
8784
  "commands",
8539
- "enterprise",
8540
- "analytics",
8541
- "overview.js"
8785
+ "contacts",
8786
+ "lists",
8787
+ "index.js"
8542
8788
  ]
8543
8789
  },
8544
- "enterprise:keys:create": {
8790
+ "contacts:lists:remove": {
8545
8791
  "aliases": [],
8546
8792
  "args": {
8547
- "workspaceId": {
8548
- "description": "Workspace ID",
8549
- "name": "workspaceId",
8793
+ "listId": {
8794
+ "description": "Contact list ID",
8795
+ "name": "listId",
8796
+ "required": true
8797
+ },
8798
+ "contactId": {
8799
+ "description": "Contact ID to remove",
8800
+ "name": "contactId",
8550
8801
  "required": true
8551
8802
  }
8552
8803
  },
8553
- "description": "Create an API key for an enterprise workspace",
8804
+ "description": "Remove a contact from a list",
8554
8805
  "examples": [
8555
- "<%= config.bin %> enterprise keys create org_abc123 --name \"Production\"",
8556
- "<%= config.bin %> enterprise keys create org_abc123 --name \"CI\" --type test"
8806
+ "<%= config.bin %> contacts lists remove lst_xxx cnt_abc"
8557
8807
  ],
8558
8808
  "flags": {
8559
8809
  "json": {
@@ -8568,33 +8818,11 @@
8568
8818
  "name": "quiet",
8569
8819
  "allowNo": false,
8570
8820
  "type": "boolean"
8571
- },
8572
- "name": {
8573
- "char": "n",
8574
- "description": "Name for the API key",
8575
- "name": "name",
8576
- "required": true,
8577
- "hasDynamicHelp": false,
8578
- "multiple": false,
8579
- "type": "option"
8580
- },
8581
- "type": {
8582
- "char": "t",
8583
- "description": "Key type (test or live)",
8584
- "name": "type",
8585
- "default": "live",
8586
- "hasDynamicHelp": false,
8587
- "multiple": false,
8588
- "options": [
8589
- "test",
8590
- "live"
8591
- ],
8592
- "type": "option"
8593
8821
  }
8594
8822
  },
8595
8823
  "hasDynamicHelp": false,
8596
8824
  "hiddenAliases": [],
8597
- "id": "enterprise:keys:create",
8825
+ "id": "contacts:lists:remove",
8598
8826
  "pluginAlias": "@sendly/cli",
8599
8827
  "pluginName": "@sendly/cli",
8600
8828
  "pluginType": "core",
@@ -8603,24 +8831,24 @@
8603
8831
  "relativePath": [
8604
8832
  "dist",
8605
8833
  "commands",
8606
- "enterprise",
8607
- "keys",
8608
- "create.js"
8834
+ "contacts",
8835
+ "lists",
8836
+ "remove.js"
8609
8837
  ]
8610
8838
  },
8611
- "enterprise:keys:list": {
8839
+ "contacts:lists:update": {
8612
8840
  "aliases": [],
8613
8841
  "args": {
8614
- "workspaceId": {
8615
- "description": "Workspace ID",
8616
- "name": "workspaceId",
8842
+ "id": {
8843
+ "description": "Contact list ID",
8844
+ "name": "id",
8617
8845
  "required": true
8618
8846
  }
8619
8847
  },
8620
- "description": "List API keys for an enterprise workspace",
8848
+ "description": "Update a contact list",
8621
8849
  "examples": [
8622
- "<%= config.bin %> enterprise keys list org_abc123",
8623
- "<%= config.bin %> enterprise keys list org_abc123 --json"
8850
+ "<%= config.bin %> contacts lists update lst_xxx --name \"VIP Customers\"",
8851
+ "<%= config.bin %> contacts lists update lst_xxx --description \"Updated desc\""
8624
8852
  ],
8625
8853
  "flags": {
8626
8854
  "json": {
@@ -8635,11 +8863,27 @@
8635
8863
  "name": "quiet",
8636
8864
  "allowNo": false,
8637
8865
  "type": "boolean"
8866
+ },
8867
+ "name": {
8868
+ "char": "n",
8869
+ "description": "List name",
8870
+ "name": "name",
8871
+ "hasDynamicHelp": false,
8872
+ "multiple": false,
8873
+ "type": "option"
8874
+ },
8875
+ "description": {
8876
+ "char": "d",
8877
+ "description": "List description",
8878
+ "name": "description",
8879
+ "hasDynamicHelp": false,
8880
+ "multiple": false,
8881
+ "type": "option"
8638
8882
  }
8639
8883
  },
8640
8884
  "hasDynamicHelp": false,
8641
8885
  "hiddenAliases": [],
8642
- "id": "enterprise:keys:list",
8886
+ "id": "contacts:lists:update",
8643
8887
  "pluginAlias": "@sendly/cli",
8644
8888
  "pluginName": "@sendly/cli",
8645
8889
  "pluginType": "core",
@@ -8648,29 +8892,19 @@
8648
8892
  "relativePath": [
8649
8893
  "dist",
8650
8894
  "commands",
8651
- "enterprise",
8652
- "keys",
8653
- "list.js"
8895
+ "contacts",
8896
+ "lists",
8897
+ "update.js"
8654
8898
  ]
8655
8899
  },
8656
- "enterprise:keys:revoke": {
8900
+ "enterprise:analytics:credits": {
8657
8901
  "aliases": [],
8658
- "args": {
8659
- "workspaceId": {
8660
- "description": "Workspace ID",
8661
- "name": "workspaceId",
8662
- "required": true
8663
- },
8664
- "keyId": {
8665
- "description": "API key ID to revoke",
8666
- "name": "keyId",
8667
- "required": true
8668
- }
8669
- },
8670
- "description": "Revoke an API key for an enterprise workspace",
8902
+ "args": {},
8903
+ "description": "Get credit usage analytics over time",
8671
8904
  "examples": [
8672
- "<%= config.bin %> enterprise keys revoke org_abc123 key_xyz",
8673
- "<%= config.bin %> enterprise keys revoke org_abc123 key_xyz --yes"
8905
+ "<%= config.bin %> enterprise analytics credits",
8906
+ "<%= config.bin %> enterprise analytics credits --period 30d",
8907
+ "<%= config.bin %> enterprise analytics credits --json"
8674
8908
  ],
8675
8909
  "flags": {
8676
8910
  "json": {
@@ -8686,17 +8920,24 @@
8686
8920
  "allowNo": false,
8687
8921
  "type": "boolean"
8688
8922
  },
8689
- "yes": {
8690
- "char": "y",
8691
- "description": "Skip confirmation prompt",
8692
- "name": "yes",
8693
- "allowNo": false,
8694
- "type": "boolean"
8923
+ "period": {
8924
+ "char": "p",
8925
+ "description": "Time period (7d, 30d, 90d)",
8926
+ "name": "period",
8927
+ "default": "7d",
8928
+ "hasDynamicHelp": false,
8929
+ "multiple": false,
8930
+ "options": [
8931
+ "7d",
8932
+ "30d",
8933
+ "90d"
8934
+ ],
8935
+ "type": "option"
8695
8936
  }
8696
8937
  },
8697
8938
  "hasDynamicHelp": false,
8698
8939
  "hiddenAliases": [],
8699
- "id": "enterprise:keys:revoke",
8940
+ "id": "enterprise:analytics:credits",
8700
8941
  "pluginAlias": "@sendly/cli",
8701
8942
  "pluginName": "@sendly/cli",
8702
8943
  "pluginType": "core",
@@ -8706,23 +8947,17 @@
8706
8947
  "dist",
8707
8948
  "commands",
8708
8949
  "enterprise",
8709
- "keys",
8710
- "revoke.js"
8950
+ "analytics",
8951
+ "credits.js"
8711
8952
  ]
8712
8953
  },
8713
- "enterprise:quota:get": {
8954
+ "enterprise:analytics:delivery": {
8714
8955
  "aliases": [],
8715
- "args": {
8716
- "workspaceId": {
8717
- "description": "Workspace ID",
8718
- "name": "workspaceId",
8719
- "required": true
8720
- }
8721
- },
8722
- "description": "Get message quota for an enterprise workspace",
8956
+ "args": {},
8957
+ "description": "Get delivery rate analytics by workspace",
8723
8958
  "examples": [
8724
- "<%= config.bin %> enterprise quota get org_abc123",
8725
- "<%= config.bin %> enterprise quota get org_abc123 --json"
8959
+ "<%= config.bin %> enterprise analytics delivery",
8960
+ "<%= config.bin %> enterprise analytics delivery --json"
8726
8961
  ],
8727
8962
  "flags": {
8728
8963
  "json": {
@@ -8741,7 +8976,7 @@
8741
8976
  },
8742
8977
  "hasDynamicHelp": false,
8743
8978
  "hiddenAliases": [],
8744
- "id": "enterprise:quota:get",
8979
+ "id": "enterprise:analytics:delivery",
8745
8980
  "pluginAlias": "@sendly/cli",
8746
8981
  "pluginName": "@sendly/cli",
8747
8982
  "pluginType": "core",
@@ -8751,25 +8986,18 @@
8751
8986
  "dist",
8752
8987
  "commands",
8753
8988
  "enterprise",
8754
- "quota",
8755
- "get.js"
8989
+ "analytics",
8990
+ "delivery.js"
8756
8991
  ]
8757
8992
  },
8758
- "enterprise:quota:set": {
8993
+ "enterprise:analytics:messages": {
8759
8994
  "aliases": [],
8760
- "args": {
8761
- "workspaceId": {
8762
- "description": "Workspace ID",
8763
- "name": "workspaceId",
8764
- "required": true
8765
- }
8766
- },
8767
- "description": "Set message quota for an enterprise workspace",
8995
+ "args": {},
8996
+ "description": "Get message analytics across all workspaces",
8768
8997
  "examples": [
8769
- "<%= config.bin %> enterprise quota set org_abc123 --daily 1000",
8770
- "<%= config.bin %> enterprise quota set org_abc123 --monthly 25000",
8771
- "<%= config.bin %> enterprise quota set org_abc123 --daily 1000 --monthly 25000",
8772
- "<%= config.bin %> enterprise quota set org_abc123 --daily unlimited"
8998
+ "<%= config.bin %> enterprise analytics messages",
8999
+ "<%= config.bin %> enterprise analytics messages --period 30d",
9000
+ "<%= config.bin %> enterprise analytics messages --period 90d --json"
8773
9001
  ],
8774
9002
  "flags": {
8775
9003
  "json": {
@@ -8785,13 +9013,327 @@
8785
9013
  "allowNo": false,
8786
9014
  "type": "boolean"
8787
9015
  },
8788
- "daily": {
8789
- "description": "Daily message limit (number or \"unlimited\")",
8790
- "name": "daily",
9016
+ "period": {
9017
+ "char": "p",
9018
+ "description": "Time period (7d, 30d, 90d)",
9019
+ "name": "period",
9020
+ "default": "7d",
8791
9021
  "hasDynamicHelp": false,
8792
9022
  "multiple": false,
8793
- "type": "option"
8794
- },
9023
+ "options": [
9024
+ "7d",
9025
+ "30d",
9026
+ "90d"
9027
+ ],
9028
+ "type": "option"
9029
+ }
9030
+ },
9031
+ "hasDynamicHelp": false,
9032
+ "hiddenAliases": [],
9033
+ "id": "enterprise:analytics:messages",
9034
+ "pluginAlias": "@sendly/cli",
9035
+ "pluginName": "@sendly/cli",
9036
+ "pluginType": "core",
9037
+ "strict": true,
9038
+ "isESM": true,
9039
+ "relativePath": [
9040
+ "dist",
9041
+ "commands",
9042
+ "enterprise",
9043
+ "analytics",
9044
+ "messages.js"
9045
+ ]
9046
+ },
9047
+ "enterprise:analytics:overview": {
9048
+ "aliases": [],
9049
+ "args": {},
9050
+ "description": "Get enterprise-wide analytics overview",
9051
+ "examples": [
9052
+ "<%= config.bin %> enterprise analytics overview",
9053
+ "<%= config.bin %> enterprise analytics overview --json"
9054
+ ],
9055
+ "flags": {
9056
+ "json": {
9057
+ "description": "Output in JSON format",
9058
+ "name": "json",
9059
+ "allowNo": false,
9060
+ "type": "boolean"
9061
+ },
9062
+ "quiet": {
9063
+ "char": "q",
9064
+ "description": "Minimal output",
9065
+ "name": "quiet",
9066
+ "allowNo": false,
9067
+ "type": "boolean"
9068
+ }
9069
+ },
9070
+ "hasDynamicHelp": false,
9071
+ "hiddenAliases": [],
9072
+ "id": "enterprise:analytics:overview",
9073
+ "pluginAlias": "@sendly/cli",
9074
+ "pluginName": "@sendly/cli",
9075
+ "pluginType": "core",
9076
+ "strict": true,
9077
+ "isESM": true,
9078
+ "relativePath": [
9079
+ "dist",
9080
+ "commands",
9081
+ "enterprise",
9082
+ "analytics",
9083
+ "overview.js"
9084
+ ]
9085
+ },
9086
+ "enterprise:keys:create": {
9087
+ "aliases": [],
9088
+ "args": {
9089
+ "workspaceId": {
9090
+ "description": "Workspace ID",
9091
+ "name": "workspaceId",
9092
+ "required": true
9093
+ }
9094
+ },
9095
+ "description": "Create an API key for an enterprise workspace",
9096
+ "examples": [
9097
+ "<%= config.bin %> enterprise keys create org_abc123 --name \"Production\"",
9098
+ "<%= config.bin %> enterprise keys create org_abc123 --name \"CI\" --type test"
9099
+ ],
9100
+ "flags": {
9101
+ "json": {
9102
+ "description": "Output in JSON format",
9103
+ "name": "json",
9104
+ "allowNo": false,
9105
+ "type": "boolean"
9106
+ },
9107
+ "quiet": {
9108
+ "char": "q",
9109
+ "description": "Minimal output",
9110
+ "name": "quiet",
9111
+ "allowNo": false,
9112
+ "type": "boolean"
9113
+ },
9114
+ "name": {
9115
+ "char": "n",
9116
+ "description": "Name for the API key",
9117
+ "name": "name",
9118
+ "required": true,
9119
+ "hasDynamicHelp": false,
9120
+ "multiple": false,
9121
+ "type": "option"
9122
+ },
9123
+ "type": {
9124
+ "char": "t",
9125
+ "description": "Key type (test or live)",
9126
+ "name": "type",
9127
+ "default": "live",
9128
+ "hasDynamicHelp": false,
9129
+ "multiple": false,
9130
+ "options": [
9131
+ "test",
9132
+ "live"
9133
+ ],
9134
+ "type": "option"
9135
+ }
9136
+ },
9137
+ "hasDynamicHelp": false,
9138
+ "hiddenAliases": [],
9139
+ "id": "enterprise:keys:create",
9140
+ "pluginAlias": "@sendly/cli",
9141
+ "pluginName": "@sendly/cli",
9142
+ "pluginType": "core",
9143
+ "strict": true,
9144
+ "isESM": true,
9145
+ "relativePath": [
9146
+ "dist",
9147
+ "commands",
9148
+ "enterprise",
9149
+ "keys",
9150
+ "create.js"
9151
+ ]
9152
+ },
9153
+ "enterprise:keys:list": {
9154
+ "aliases": [],
9155
+ "args": {
9156
+ "workspaceId": {
9157
+ "description": "Workspace ID",
9158
+ "name": "workspaceId",
9159
+ "required": true
9160
+ }
9161
+ },
9162
+ "description": "List API keys for an enterprise workspace",
9163
+ "examples": [
9164
+ "<%= config.bin %> enterprise keys list org_abc123",
9165
+ "<%= config.bin %> enterprise keys list org_abc123 --json"
9166
+ ],
9167
+ "flags": {
9168
+ "json": {
9169
+ "description": "Output in JSON format",
9170
+ "name": "json",
9171
+ "allowNo": false,
9172
+ "type": "boolean"
9173
+ },
9174
+ "quiet": {
9175
+ "char": "q",
9176
+ "description": "Minimal output",
9177
+ "name": "quiet",
9178
+ "allowNo": false,
9179
+ "type": "boolean"
9180
+ }
9181
+ },
9182
+ "hasDynamicHelp": false,
9183
+ "hiddenAliases": [],
9184
+ "id": "enterprise:keys:list",
9185
+ "pluginAlias": "@sendly/cli",
9186
+ "pluginName": "@sendly/cli",
9187
+ "pluginType": "core",
9188
+ "strict": true,
9189
+ "isESM": true,
9190
+ "relativePath": [
9191
+ "dist",
9192
+ "commands",
9193
+ "enterprise",
9194
+ "keys",
9195
+ "list.js"
9196
+ ]
9197
+ },
9198
+ "enterprise:keys:revoke": {
9199
+ "aliases": [],
9200
+ "args": {
9201
+ "workspaceId": {
9202
+ "description": "Workspace ID",
9203
+ "name": "workspaceId",
9204
+ "required": true
9205
+ },
9206
+ "keyId": {
9207
+ "description": "API key ID to revoke",
9208
+ "name": "keyId",
9209
+ "required": true
9210
+ }
9211
+ },
9212
+ "description": "Revoke an API key for an enterprise workspace",
9213
+ "examples": [
9214
+ "<%= config.bin %> enterprise keys revoke org_abc123 key_xyz",
9215
+ "<%= config.bin %> enterprise keys revoke org_abc123 key_xyz --yes"
9216
+ ],
9217
+ "flags": {
9218
+ "json": {
9219
+ "description": "Output in JSON format",
9220
+ "name": "json",
9221
+ "allowNo": false,
9222
+ "type": "boolean"
9223
+ },
9224
+ "quiet": {
9225
+ "char": "q",
9226
+ "description": "Minimal output",
9227
+ "name": "quiet",
9228
+ "allowNo": false,
9229
+ "type": "boolean"
9230
+ },
9231
+ "yes": {
9232
+ "char": "y",
9233
+ "description": "Skip confirmation prompt",
9234
+ "name": "yes",
9235
+ "allowNo": false,
9236
+ "type": "boolean"
9237
+ }
9238
+ },
9239
+ "hasDynamicHelp": false,
9240
+ "hiddenAliases": [],
9241
+ "id": "enterprise:keys:revoke",
9242
+ "pluginAlias": "@sendly/cli",
9243
+ "pluginName": "@sendly/cli",
9244
+ "pluginType": "core",
9245
+ "strict": true,
9246
+ "isESM": true,
9247
+ "relativePath": [
9248
+ "dist",
9249
+ "commands",
9250
+ "enterprise",
9251
+ "keys",
9252
+ "revoke.js"
9253
+ ]
9254
+ },
9255
+ "enterprise:quota:get": {
9256
+ "aliases": [],
9257
+ "args": {
9258
+ "workspaceId": {
9259
+ "description": "Workspace ID",
9260
+ "name": "workspaceId",
9261
+ "required": true
9262
+ }
9263
+ },
9264
+ "description": "Get message quota for an enterprise workspace",
9265
+ "examples": [
9266
+ "<%= config.bin %> enterprise quota get org_abc123",
9267
+ "<%= config.bin %> enterprise quota get org_abc123 --json"
9268
+ ],
9269
+ "flags": {
9270
+ "json": {
9271
+ "description": "Output in JSON format",
9272
+ "name": "json",
9273
+ "allowNo": false,
9274
+ "type": "boolean"
9275
+ },
9276
+ "quiet": {
9277
+ "char": "q",
9278
+ "description": "Minimal output",
9279
+ "name": "quiet",
9280
+ "allowNo": false,
9281
+ "type": "boolean"
9282
+ }
9283
+ },
9284
+ "hasDynamicHelp": false,
9285
+ "hiddenAliases": [],
9286
+ "id": "enterprise:quota:get",
9287
+ "pluginAlias": "@sendly/cli",
9288
+ "pluginName": "@sendly/cli",
9289
+ "pluginType": "core",
9290
+ "strict": true,
9291
+ "isESM": true,
9292
+ "relativePath": [
9293
+ "dist",
9294
+ "commands",
9295
+ "enterprise",
9296
+ "quota",
9297
+ "get.js"
9298
+ ]
9299
+ },
9300
+ "enterprise:quota:set": {
9301
+ "aliases": [],
9302
+ "args": {
9303
+ "workspaceId": {
9304
+ "description": "Workspace ID",
9305
+ "name": "workspaceId",
9306
+ "required": true
9307
+ }
9308
+ },
9309
+ "description": "Set message quota for an enterprise workspace",
9310
+ "examples": [
9311
+ "<%= config.bin %> enterprise quota set org_abc123 --daily 1000",
9312
+ "<%= config.bin %> enterprise quota set org_abc123 --monthly 25000",
9313
+ "<%= config.bin %> enterprise quota set org_abc123 --daily 1000 --monthly 25000",
9314
+ "<%= config.bin %> enterprise quota set org_abc123 --daily unlimited"
9315
+ ],
9316
+ "flags": {
9317
+ "json": {
9318
+ "description": "Output in JSON format",
9319
+ "name": "json",
9320
+ "allowNo": false,
9321
+ "type": "boolean"
9322
+ },
9323
+ "quiet": {
9324
+ "char": "q",
9325
+ "description": "Minimal output",
9326
+ "name": "quiet",
9327
+ "allowNo": false,
9328
+ "type": "boolean"
9329
+ },
9330
+ "daily": {
9331
+ "description": "Daily message limit (number or \"unlimited\")",
9332
+ "name": "daily",
9333
+ "hasDynamicHelp": false,
9334
+ "multiple": false,
9335
+ "type": "option"
9336
+ },
8795
9337
  "monthly": {
8796
9338
  "description": "Monthly message limit (number or \"unlimited\")",
8797
9339
  "name": "monthly",
@@ -9027,7 +9569,7 @@
9027
9569
  "type": "option"
9028
9570
  },
9029
9571
  "use-case": {
9030
- "description": "Use case (Telnyx use-case enum value)",
9572
+ "description": "Use case (carrier use-case value)",
9031
9573
  "name": "use-case",
9032
9574
  "hasDynamicHelp": false,
9033
9575
  "multiple": false,
@@ -9285,7 +9827,7 @@
9285
9827
  "type": "option"
9286
9828
  },
9287
9829
  "use-case": {
9288
- "description": "Use case (Telnyx use-case enum value)",
9830
+ "description": "Use case (carrier use-case value)",
9289
9831
  "name": "use-case",
9290
9832
  "hasDynamicHelp": false,
9291
9833
  "multiple": false,
@@ -9319,43 +9861,269 @@
9319
9861
  "multiple": false,
9320
9862
  "type": "option"
9321
9863
  },
9322
- "monthly-volume": {
9323
- "description": "Estimated monthly message volume",
9324
- "name": "monthly-volume",
9864
+ "monthly-volume": {
9865
+ "description": "Estimated monthly message volume",
9866
+ "name": "monthly-volume",
9867
+ "hasDynamicHelp": false,
9868
+ "multiple": false,
9869
+ "type": "option"
9870
+ },
9871
+ "additional-information": {
9872
+ "description": "Additional information for the carrier",
9873
+ "name": "additional-information",
9874
+ "hasDynamicHelp": false,
9875
+ "multiple": false,
9876
+ "type": "option"
9877
+ },
9878
+ "age-gated-content": {
9879
+ "description": "Mark traffic as age-gated content",
9880
+ "name": "age-gated-content",
9881
+ "allowNo": true,
9882
+ "type": "boolean"
9883
+ },
9884
+ "isv-reseller": {
9885
+ "description": "ISV / reseller name (if applicable)",
9886
+ "name": "isv-reseller",
9887
+ "hasDynamicHelp": false,
9888
+ "multiple": false,
9889
+ "type": "option"
9890
+ },
9891
+ "privacy-url": {
9892
+ "description": "Privacy policy URL",
9893
+ "name": "privacy-url",
9894
+ "hasDynamicHelp": false,
9895
+ "multiple": false,
9896
+ "type": "option"
9897
+ },
9898
+ "terms-url": {
9899
+ "description": "Terms of service URL",
9900
+ "name": "terms-url",
9901
+ "hasDynamicHelp": false,
9902
+ "multiple": false,
9903
+ "type": "option"
9904
+ }
9905
+ },
9906
+ "hasDynamicHelp": false,
9907
+ "hiddenAliases": [],
9908
+ "id": "enterprise:verification:submit",
9909
+ "pluginAlias": "@sendly/cli",
9910
+ "pluginName": "@sendly/cli",
9911
+ "pluginType": "core",
9912
+ "strict": true,
9913
+ "isESM": true,
9914
+ "relativePath": [
9915
+ "dist",
9916
+ "commands",
9917
+ "enterprise",
9918
+ "verification",
9919
+ "submit.js"
9920
+ ]
9921
+ },
9922
+ "enterprise:webhooks:delete": {
9923
+ "aliases": [],
9924
+ "args": {},
9925
+ "description": "Delete the enterprise webhook",
9926
+ "examples": [
9927
+ "<%= config.bin %> enterprise webhooks delete",
9928
+ "<%= config.bin %> enterprise webhooks delete --yes"
9929
+ ],
9930
+ "flags": {
9931
+ "json": {
9932
+ "description": "Output in JSON format",
9933
+ "name": "json",
9934
+ "allowNo": false,
9935
+ "type": "boolean"
9936
+ },
9937
+ "quiet": {
9938
+ "char": "q",
9939
+ "description": "Minimal output",
9940
+ "name": "quiet",
9941
+ "allowNo": false,
9942
+ "type": "boolean"
9943
+ },
9944
+ "yes": {
9945
+ "char": "y",
9946
+ "description": "Skip confirmation prompt",
9947
+ "name": "yes",
9948
+ "allowNo": false,
9949
+ "type": "boolean"
9950
+ }
9951
+ },
9952
+ "hasDynamicHelp": false,
9953
+ "hiddenAliases": [],
9954
+ "id": "enterprise:webhooks:delete",
9955
+ "pluginAlias": "@sendly/cli",
9956
+ "pluginName": "@sendly/cli",
9957
+ "pluginType": "core",
9958
+ "strict": true,
9959
+ "isESM": true,
9960
+ "relativePath": [
9961
+ "dist",
9962
+ "commands",
9963
+ "enterprise",
9964
+ "webhooks",
9965
+ "delete.js"
9966
+ ]
9967
+ },
9968
+ "enterprise:webhooks:get": {
9969
+ "aliases": [],
9970
+ "args": {},
9971
+ "description": "Get the enterprise webhook configuration",
9972
+ "examples": [
9973
+ "<%= config.bin %> enterprise webhooks get",
9974
+ "<%= config.bin %> enterprise webhooks get --json"
9975
+ ],
9976
+ "flags": {
9977
+ "json": {
9978
+ "description": "Output in JSON format",
9979
+ "name": "json",
9980
+ "allowNo": false,
9981
+ "type": "boolean"
9982
+ },
9983
+ "quiet": {
9984
+ "char": "q",
9985
+ "description": "Minimal output",
9986
+ "name": "quiet",
9987
+ "allowNo": false,
9988
+ "type": "boolean"
9989
+ }
9990
+ },
9991
+ "hasDynamicHelp": false,
9992
+ "hiddenAliases": [],
9993
+ "id": "enterprise:webhooks:get",
9994
+ "pluginAlias": "@sendly/cli",
9995
+ "pluginName": "@sendly/cli",
9996
+ "pluginType": "core",
9997
+ "strict": true,
9998
+ "isESM": true,
9999
+ "relativePath": [
10000
+ "dist",
10001
+ "commands",
10002
+ "enterprise",
10003
+ "webhooks",
10004
+ "get.js"
10005
+ ]
10006
+ },
10007
+ "enterprise:webhooks:set": {
10008
+ "aliases": [],
10009
+ "args": {},
10010
+ "description": "Create or update the enterprise-level webhook",
10011
+ "examples": [
10012
+ "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook",
10013
+ "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook --events \"message.sent,message.delivered\""
10014
+ ],
10015
+ "flags": {
10016
+ "json": {
10017
+ "description": "Output in JSON format",
10018
+ "name": "json",
10019
+ "allowNo": false,
10020
+ "type": "boolean"
10021
+ },
10022
+ "quiet": {
10023
+ "char": "q",
10024
+ "description": "Minimal output",
10025
+ "name": "quiet",
10026
+ "allowNo": false,
10027
+ "type": "boolean"
10028
+ },
10029
+ "url": {
10030
+ "description": "Webhook endpoint URL",
10031
+ "name": "url",
10032
+ "required": true,
9325
10033
  "hasDynamicHelp": false,
9326
10034
  "multiple": false,
9327
10035
  "type": "option"
9328
10036
  },
9329
- "additional-information": {
9330
- "description": "Additional information for the carrier",
9331
- "name": "additional-information",
10037
+ "events": {
10038
+ "description": "Comma-separated list of event types to subscribe to",
10039
+ "name": "events",
9332
10040
  "hasDynamicHelp": false,
9333
10041
  "multiple": false,
9334
10042
  "type": "option"
9335
- },
9336
- "age-gated-content": {
9337
- "description": "Mark traffic as age-gated content",
9338
- "name": "age-gated-content",
9339
- "allowNo": true,
10043
+ }
10044
+ },
10045
+ "hasDynamicHelp": false,
10046
+ "hiddenAliases": [],
10047
+ "id": "enterprise:webhooks:set",
10048
+ "pluginAlias": "@sendly/cli",
10049
+ "pluginName": "@sendly/cli",
10050
+ "pluginType": "core",
10051
+ "strict": true,
10052
+ "isESM": true,
10053
+ "relativePath": [
10054
+ "dist",
10055
+ "commands",
10056
+ "enterprise",
10057
+ "webhooks",
10058
+ "set.js"
10059
+ ]
10060
+ },
10061
+ "enterprise:webhooks:test": {
10062
+ "aliases": [],
10063
+ "args": {},
10064
+ "description": "Send a test event to the enterprise webhook",
10065
+ "examples": [
10066
+ "<%= config.bin %> enterprise webhooks test",
10067
+ "<%= config.bin %> enterprise webhooks test --json"
10068
+ ],
10069
+ "flags": {
10070
+ "json": {
10071
+ "description": "Output in JSON format",
10072
+ "name": "json",
10073
+ "allowNo": false,
9340
10074
  "type": "boolean"
9341
10075
  },
9342
- "isv-reseller": {
9343
- "description": "ISV / reseller name (if applicable)",
9344
- "name": "isv-reseller",
9345
- "hasDynamicHelp": false,
9346
- "multiple": false,
9347
- "type": "option"
10076
+ "quiet": {
10077
+ "char": "q",
10078
+ "description": "Minimal output",
10079
+ "name": "quiet",
10080
+ "allowNo": false,
10081
+ "type": "boolean"
10082
+ }
10083
+ },
10084
+ "hasDynamicHelp": false,
10085
+ "hiddenAliases": [],
10086
+ "id": "enterprise:webhooks:test",
10087
+ "pluginAlias": "@sendly/cli",
10088
+ "pluginName": "@sendly/cli",
10089
+ "pluginType": "core",
10090
+ "strict": true,
10091
+ "isESM": true,
10092
+ "relativePath": [
10093
+ "dist",
10094
+ "commands",
10095
+ "enterprise",
10096
+ "webhooks",
10097
+ "test.js"
10098
+ ]
10099
+ },
10100
+ "enterprise:workspaces:create": {
10101
+ "aliases": [],
10102
+ "args": {},
10103
+ "description": "Create a new enterprise workspace",
10104
+ "examples": [
10105
+ "<%= config.bin %> enterprise workspaces create --name \"Acme Corp\"",
10106
+ "<%= config.bin %> enterprise workspaces create --name \"Acme Corp\" --json"
10107
+ ],
10108
+ "flags": {
10109
+ "json": {
10110
+ "description": "Output in JSON format",
10111
+ "name": "json",
10112
+ "allowNo": false,
10113
+ "type": "boolean"
9348
10114
  },
9349
- "privacy-url": {
9350
- "description": "Privacy policy URL",
9351
- "name": "privacy-url",
9352
- "hasDynamicHelp": false,
9353
- "multiple": false,
9354
- "type": "option"
10115
+ "quiet": {
10116
+ "char": "q",
10117
+ "description": "Minimal output",
10118
+ "name": "quiet",
10119
+ "allowNo": false,
10120
+ "type": "boolean"
9355
10121
  },
9356
- "terms-url": {
9357
- "description": "Terms of service URL",
9358
- "name": "terms-url",
10122
+ "name": {
10123
+ "char": "n",
10124
+ "description": "Workspace name",
10125
+ "name": "name",
10126
+ "required": true,
9359
10127
  "hasDynamicHelp": false,
9360
10128
  "multiple": false,
9361
10129
  "type": "option"
@@ -9363,7 +10131,7 @@
9363
10131
  },
9364
10132
  "hasDynamicHelp": false,
9365
10133
  "hiddenAliases": [],
9366
- "id": "enterprise:verification:submit",
10134
+ "id": "enterprise:workspaces:create",
9367
10135
  "pluginAlias": "@sendly/cli",
9368
10136
  "pluginName": "@sendly/cli",
9369
10137
  "pluginType": "core",
@@ -9373,17 +10141,23 @@
9373
10141
  "dist",
9374
10142
  "commands",
9375
10143
  "enterprise",
9376
- "verification",
9377
- "submit.js"
10144
+ "workspaces",
10145
+ "create.js"
9378
10146
  ]
9379
10147
  },
9380
- "enterprise:webhooks:delete": {
10148
+ "enterprise:workspaces:delete": {
9381
10149
  "aliases": [],
9382
- "args": {},
9383
- "description": "Delete the enterprise webhook",
10150
+ "args": {
10151
+ "workspaceId": {
10152
+ "description": "Workspace ID",
10153
+ "name": "workspaceId",
10154
+ "required": true
10155
+ }
10156
+ },
10157
+ "description": "Delete an enterprise workspace",
9384
10158
  "examples": [
9385
- "<%= config.bin %> enterprise webhooks delete",
9386
- "<%= config.bin %> enterprise webhooks delete --yes"
10159
+ "<%= config.bin %> enterprise workspaces delete org_abc123",
10160
+ "<%= config.bin %> enterprise workspaces delete org_abc123 --yes"
9387
10161
  ],
9388
10162
  "flags": {
9389
10163
  "json": {
@@ -9409,7 +10183,7 @@
9409
10183
  },
9410
10184
  "hasDynamicHelp": false,
9411
10185
  "hiddenAliases": [],
9412
- "id": "enterprise:webhooks:delete",
10186
+ "id": "enterprise:workspaces:delete",
9413
10187
  "pluginAlias": "@sendly/cli",
9414
10188
  "pluginName": "@sendly/cli",
9415
10189
  "pluginType": "core",
@@ -9419,17 +10193,23 @@
9419
10193
  "dist",
9420
10194
  "commands",
9421
10195
  "enterprise",
9422
- "webhooks",
10196
+ "workspaces",
9423
10197
  "delete.js"
9424
10198
  ]
9425
10199
  },
9426
- "enterprise:webhooks:get": {
10200
+ "enterprise:workspaces:get": {
9427
10201
  "aliases": [],
9428
- "args": {},
9429
- "description": "Get the enterprise webhook configuration",
10202
+ "args": {
10203
+ "workspaceId": {
10204
+ "description": "Workspace ID",
10205
+ "name": "workspaceId",
10206
+ "required": true
10207
+ }
10208
+ },
10209
+ "description": "Get details of an enterprise workspace",
9430
10210
  "examples": [
9431
- "<%= config.bin %> enterprise webhooks get",
9432
- "<%= config.bin %> enterprise webhooks get --json"
10211
+ "<%= config.bin %> enterprise workspaces get org_abc123",
10212
+ "<%= config.bin %> enterprise workspaces get org_abc123 --json"
9433
10213
  ],
9434
10214
  "flags": {
9435
10215
  "json": {
@@ -9448,7 +10228,7 @@
9448
10228
  },
9449
10229
  "hasDynamicHelp": false,
9450
10230
  "hiddenAliases": [],
9451
- "id": "enterprise:webhooks:get",
10231
+ "id": "enterprise:workspaces:get",
9452
10232
  "pluginAlias": "@sendly/cli",
9453
10233
  "pluginName": "@sendly/cli",
9454
10234
  "pluginType": "core",
@@ -9458,17 +10238,17 @@
9458
10238
  "dist",
9459
10239
  "commands",
9460
10240
  "enterprise",
9461
- "webhooks",
10241
+ "workspaces",
9462
10242
  "get.js"
9463
10243
  ]
9464
10244
  },
9465
- "enterprise:webhooks:set": {
10245
+ "enterprise:workspaces:list": {
9466
10246
  "aliases": [],
9467
10247
  "args": {},
9468
- "description": "Create or update the enterprise-level webhook",
10248
+ "description": "List all enterprise workspaces",
9469
10249
  "examples": [
9470
- "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook",
9471
- "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook --events \"message.sent,message.delivered\""
10250
+ "<%= config.bin %> enterprise workspaces list",
10251
+ "<%= config.bin %> enterprise workspaces list --json"
9472
10252
  ],
9473
10253
  "flags": {
9474
10254
  "json": {
@@ -9483,26 +10263,11 @@
9483
10263
  "name": "quiet",
9484
10264
  "allowNo": false,
9485
10265
  "type": "boolean"
9486
- },
9487
- "url": {
9488
- "description": "Webhook endpoint URL",
9489
- "name": "url",
9490
- "required": true,
9491
- "hasDynamicHelp": false,
9492
- "multiple": false,
9493
- "type": "option"
9494
- },
9495
- "events": {
9496
- "description": "Comma-separated list of event types to subscribe to",
9497
- "name": "events",
9498
- "hasDynamicHelp": false,
9499
- "multiple": false,
9500
- "type": "option"
9501
10266
  }
9502
10267
  },
9503
10268
  "hasDynamicHelp": false,
9504
10269
  "hiddenAliases": [],
9505
- "id": "enterprise:webhooks:set",
10270
+ "id": "enterprise:workspaces:list",
9506
10271
  "pluginAlias": "@sendly/cli",
9507
10272
  "pluginName": "@sendly/cli",
9508
10273
  "pluginType": "core",
@@ -9512,17 +10277,67 @@
9512
10277
  "dist",
9513
10278
  "commands",
9514
10279
  "enterprise",
9515
- "webhooks",
9516
- "set.js"
10280
+ "workspaces",
10281
+ "list.js"
9517
10282
  ]
9518
10283
  },
9519
- "enterprise:webhooks:test": {
10284
+ "enterprise:workspaces:resume": {
9520
10285
  "aliases": [],
9521
- "args": {},
9522
- "description": "Send a test event to the enterprise webhook",
10286
+ "args": {
10287
+ "workspaceId": {
10288
+ "description": "Workspace ID",
10289
+ "name": "workspaceId",
10290
+ "required": true
10291
+ }
10292
+ },
10293
+ "description": "Resume a suspended enterprise workspace",
9523
10294
  "examples": [
9524
- "<%= config.bin %> enterprise webhooks test",
9525
- "<%= config.bin %> enterprise webhooks test --json"
10295
+ "<%= config.bin %> enterprise workspaces resume org_abc123"
10296
+ ],
10297
+ "flags": {
10298
+ "json": {
10299
+ "description": "Output in JSON format",
10300
+ "name": "json",
10301
+ "allowNo": false,
10302
+ "type": "boolean"
10303
+ },
10304
+ "quiet": {
10305
+ "char": "q",
10306
+ "description": "Minimal output",
10307
+ "name": "quiet",
10308
+ "allowNo": false,
10309
+ "type": "boolean"
10310
+ }
10311
+ },
10312
+ "hasDynamicHelp": false,
10313
+ "hiddenAliases": [],
10314
+ "id": "enterprise:workspaces:resume",
10315
+ "pluginAlias": "@sendly/cli",
10316
+ "pluginName": "@sendly/cli",
10317
+ "pluginType": "core",
10318
+ "strict": true,
10319
+ "isESM": true,
10320
+ "relativePath": [
10321
+ "dist",
10322
+ "commands",
10323
+ "enterprise",
10324
+ "workspaces",
10325
+ "resume.js"
10326
+ ]
10327
+ },
10328
+ "enterprise:workspaces:suspend": {
10329
+ "aliases": [],
10330
+ "args": {
10331
+ "workspaceId": {
10332
+ "description": "Workspace ID",
10333
+ "name": "workspaceId",
10334
+ "required": true
10335
+ }
10336
+ },
10337
+ "description": "Suspend an enterprise workspace",
10338
+ "examples": [
10339
+ "<%= config.bin %> enterprise workspaces suspend org_abc123",
10340
+ "<%= config.bin %> enterprise workspaces suspend org_abc123 --reason \"Policy violation\""
9526
10341
  ],
9527
10342
  "flags": {
9528
10343
  "json": {
@@ -9537,11 +10352,26 @@
9537
10352
  "name": "quiet",
9538
10353
  "allowNo": false,
9539
10354
  "type": "boolean"
10355
+ },
10356
+ "reason": {
10357
+ "char": "r",
10358
+ "description": "Reason for suspension",
10359
+ "name": "reason",
10360
+ "hasDynamicHelp": false,
10361
+ "multiple": false,
10362
+ "type": "option"
10363
+ },
10364
+ "yes": {
10365
+ "char": "y",
10366
+ "description": "Skip confirmation prompt",
10367
+ "name": "yes",
10368
+ "allowNo": false,
10369
+ "type": "boolean"
9540
10370
  }
9541
10371
  },
9542
10372
  "hasDynamicHelp": false,
9543
10373
  "hiddenAliases": [],
9544
- "id": "enterprise:webhooks:test",
10374
+ "id": "enterprise:workspaces:suspend",
9545
10375
  "pluginAlias": "@sendly/cli",
9546
10376
  "pluginName": "@sendly/cli",
9547
10377
  "pluginType": "core",
@@ -9551,17 +10381,23 @@
9551
10381
  "dist",
9552
10382
  "commands",
9553
10383
  "enterprise",
9554
- "webhooks",
9555
- "test.js"
10384
+ "workspaces",
10385
+ "suspend.js"
9556
10386
  ]
9557
10387
  },
9558
- "enterprise:workspaces:create": {
10388
+ "whatsapp:profile:get": {
9559
10389
  "aliases": [],
9560
- "args": {},
9561
- "description": "Create a new enterprise workspace",
10390
+ "args": {
10391
+ "number": {
10392
+ "description": "WhatsApp-connected sender number (E.164 format)",
10393
+ "name": "number",
10394
+ "required": true
10395
+ }
10396
+ },
10397
+ "description": "Show the WhatsApp business profile customers see for one of your connected numbers",
9562
10398
  "examples": [
9563
- "<%= config.bin %> enterprise workspaces create --name \"Acme Corp\"",
9564
- "<%= config.bin %> enterprise workspaces create --name \"Acme Corp\" --json"
10399
+ "<%= config.bin %> whatsapp profile get +15551234567",
10400
+ "<%= config.bin %> whatsapp profile get +15551234567 --json"
9565
10401
  ],
9566
10402
  "flags": {
9567
10403
  "json": {
@@ -9576,20 +10412,11 @@
9576
10412
  "name": "quiet",
9577
10413
  "allowNo": false,
9578
10414
  "type": "boolean"
9579
- },
9580
- "name": {
9581
- "char": "n",
9582
- "description": "Workspace name",
9583
- "name": "name",
9584
- "required": true,
9585
- "hasDynamicHelp": false,
9586
- "multiple": false,
9587
- "type": "option"
9588
10415
  }
9589
10416
  },
9590
10417
  "hasDynamicHelp": false,
9591
10418
  "hiddenAliases": [],
9592
- "id": "enterprise:workspaces:create",
10419
+ "id": "whatsapp:profile:get",
9593
10420
  "pluginAlias": "@sendly/cli",
9594
10421
  "pluginName": "@sendly/cli",
9595
10422
  "pluginType": "core",
@@ -9598,24 +10425,24 @@
9598
10425
  "relativePath": [
9599
10426
  "dist",
9600
10427
  "commands",
9601
- "enterprise",
9602
- "workspaces",
9603
- "create.js"
10428
+ "whatsapp",
10429
+ "profile",
10430
+ "get.js"
9604
10431
  ]
9605
10432
  },
9606
- "enterprise:workspaces:delete": {
10433
+ "whatsapp:profile:update": {
9607
10434
  "aliases": [],
9608
10435
  "args": {
9609
- "workspaceId": {
9610
- "description": "Workspace ID",
9611
- "name": "workspaceId",
10436
+ "number": {
10437
+ "description": "WhatsApp-connected sender number (E.164 format)",
10438
+ "name": "number",
9612
10439
  "required": true
9613
10440
  }
9614
10441
  },
9615
- "description": "Delete an enterprise workspace",
10442
+ "description": "Update the WhatsApp business profile customers see for one of your connected numbers",
9616
10443
  "examples": [
9617
- "<%= config.bin %> enterprise workspaces delete org_abc123",
9618
- "<%= config.bin %> enterprise workspaces delete org_abc123 --yes"
10444
+ "<%= config.bin %> whatsapp profile update +15551234567 --about \"Family-run bakery in Austin\"",
10445
+ "<%= config.bin %> whatsapp profile update +15551234567 --website https://example.com --email hello@example.com"
9619
10446
  ],
9620
10447
  "flags": {
9621
10448
  "json": {
@@ -9631,17 +10458,59 @@
9631
10458
  "allowNo": false,
9632
10459
  "type": "boolean"
9633
10460
  },
9634
- "yes": {
9635
- "char": "y",
9636
- "description": "Skip confirmation prompt",
9637
- "name": "yes",
9638
- "allowNo": false,
9639
- "type": "boolean"
10461
+ "display-name": {
10462
+ "description": "Business name shown to customers",
10463
+ "name": "display-name",
10464
+ "hasDynamicHelp": false,
10465
+ "multiple": false,
10466
+ "type": "option"
10467
+ },
10468
+ "about": {
10469
+ "description": "Short about line (max 139 characters)",
10470
+ "name": "about",
10471
+ "hasDynamicHelp": false,
10472
+ "multiple": false,
10473
+ "type": "option"
10474
+ },
10475
+ "description": {
10476
+ "description": "Longer business description (max 512 characters)",
10477
+ "name": "description",
10478
+ "hasDynamicHelp": false,
10479
+ "multiple": false,
10480
+ "type": "option"
10481
+ },
10482
+ "category": {
10483
+ "description": "Business category",
10484
+ "name": "category",
10485
+ "hasDynamicHelp": false,
10486
+ "multiple": false,
10487
+ "type": "option"
10488
+ },
10489
+ "email": {
10490
+ "description": "Contact email shown on the profile",
10491
+ "name": "email",
10492
+ "hasDynamicHelp": false,
10493
+ "multiple": false,
10494
+ "type": "option"
10495
+ },
10496
+ "website": {
10497
+ "description": "Website URL shown on the profile",
10498
+ "name": "website",
10499
+ "hasDynamicHelp": false,
10500
+ "multiple": false,
10501
+ "type": "option"
10502
+ },
10503
+ "address": {
10504
+ "description": "Business address shown on the profile",
10505
+ "name": "address",
10506
+ "hasDynamicHelp": false,
10507
+ "multiple": false,
10508
+ "type": "option"
9640
10509
  }
9641
10510
  },
9642
10511
  "hasDynamicHelp": false,
9643
10512
  "hiddenAliases": [],
9644
- "id": "enterprise:workspaces:delete",
10513
+ "id": "whatsapp:profile:update",
9645
10514
  "pluginAlias": "@sendly/cli",
9646
10515
  "pluginName": "@sendly/cli",
9647
10516
  "pluginType": "core",
@@ -9650,24 +10519,19 @@
9650
10519
  "relativePath": [
9651
10520
  "dist",
9652
10521
  "commands",
9653
- "enterprise",
9654
- "workspaces",
9655
- "delete.js"
10522
+ "whatsapp",
10523
+ "profile",
10524
+ "update.js"
9656
10525
  ]
9657
10526
  },
9658
- "enterprise:workspaces:get": {
10527
+ "whatsapp:templates:create": {
9659
10528
  "aliases": [],
9660
- "args": {
9661
- "workspaceId": {
9662
- "description": "Workspace ID",
9663
- "name": "workspaceId",
9664
- "required": true
9665
- }
9666
- },
9667
- "description": "Get details of an enterprise workspace",
10529
+ "args": {},
10530
+ "description": "Create a WhatsApp template and submit it to Meta for review",
9668
10531
  "examples": [
9669
- "<%= config.bin %> enterprise workspaces get org_abc123",
9670
- "<%= config.bin %> enterprise workspaces get org_abc123 --json"
10532
+ "<%= config.bin %> whatsapp templates create --sender +15551234567 --name order_shipped --language en_US --category utility --body \"Hi {{1}}, order {{2}} shipped!\" --example 1=TinyFat --example 2=4821",
10533
+ "<%= config.bin %> whatsapp templates create --sender +15551234567 --name summer_sale --language en_US --category marketing --body \"Our sale is on!\" --footer \"Reply STOP to opt out\" --button \"quick_reply:Stop promotions\"",
10534
+ "<%= config.bin %> whatsapp templates create --sender +15551234567 --name login_code --language en_US --category authentication --body \"{{1}} is your code\" --example 1=123456 --button \"otp:Copy code\""
9671
10535
  ],
9672
10536
  "flags": {
9673
10537
  "json": {
@@ -9682,11 +10546,89 @@
9682
10546
  "name": "quiet",
9683
10547
  "allowNo": false,
9684
10548
  "type": "boolean"
10549
+ },
10550
+ "sender": {
10551
+ "char": "s",
10552
+ "description": "WhatsApp-connected sender number (E.164 format)",
10553
+ "name": "sender",
10554
+ "required": true,
10555
+ "hasDynamicHelp": false,
10556
+ "multiple": false,
10557
+ "type": "option"
10558
+ },
10559
+ "name": {
10560
+ "char": "n",
10561
+ "description": "Template name (lowercase letters, numbers, and underscores)",
10562
+ "name": "name",
10563
+ "required": true,
10564
+ "hasDynamicHelp": false,
10565
+ "multiple": false,
10566
+ "type": "option"
10567
+ },
10568
+ "language": {
10569
+ "char": "l",
10570
+ "description": "Template language code (e.g. en_US)",
10571
+ "name": "language",
10572
+ "required": true,
10573
+ "hasDynamicHelp": false,
10574
+ "multiple": false,
10575
+ "type": "option"
10576
+ },
10577
+ "category": {
10578
+ "char": "c",
10579
+ "description": "Template category",
10580
+ "name": "category",
10581
+ "required": true,
10582
+ "hasDynamicHelp": false,
10583
+ "multiple": false,
10584
+ "options": [
10585
+ "authentication",
10586
+ "utility",
10587
+ "marketing"
10588
+ ],
10589
+ "type": "option"
10590
+ },
10591
+ "body": {
10592
+ "char": "b",
10593
+ "description": "Body text; use {{1}}, {{2}}, ... for variables",
10594
+ "name": "body",
10595
+ "required": true,
10596
+ "hasDynamicHelp": false,
10597
+ "multiple": false,
10598
+ "type": "option"
10599
+ },
10600
+ "footer": {
10601
+ "description": "Footer text (optional)",
10602
+ "name": "footer",
10603
+ "hasDynamicHelp": false,
10604
+ "multiple": false,
10605
+ "type": "option"
10606
+ },
10607
+ "header": {
10608
+ "description": "Header text (optional)",
10609
+ "name": "header",
10610
+ "hasDynamicHelp": false,
10611
+ "multiple": false,
10612
+ "type": "option"
10613
+ },
10614
+ "button": {
10615
+ "description": "Button as \"type:text\" or \"url:text:https://...\" (types: quick_reply, url, otp). Repeatable.",
10616
+ "name": "button",
10617
+ "hasDynamicHelp": false,
10618
+ "multiple": true,
10619
+ "type": "option"
10620
+ },
10621
+ "example": {
10622
+ "description": "Example value for a body variable, as n=value (required for every {{n}}). Repeatable.",
10623
+ "name": "example",
10624
+ "hasDynamicHelp": false,
10625
+ "multiple": true,
10626
+ "type": "option"
9685
10627
  }
9686
10628
  },
9687
10629
  "hasDynamicHelp": false,
9688
10630
  "hiddenAliases": [],
9689
- "id": "enterprise:workspaces:get",
10631
+ "id": "whatsapp:templates:create",
9690
10632
  "pluginAlias": "@sendly/cli",
9691
10633
  "pluginName": "@sendly/cli",
9692
10634
  "pluginType": "core",
@@ -9695,18 +10637,24 @@
9695
10637
  "relativePath": [
9696
10638
  "dist",
9697
10639
  "commands",
9698
- "enterprise",
9699
- "workspaces",
9700
- "get.js"
10640
+ "whatsapp",
10641
+ "templates",
10642
+ "create.js"
9701
10643
  ]
9702
10644
  },
9703
- "enterprise:workspaces:list": {
10645
+ "whatsapp:templates:delete": {
9704
10646
  "aliases": [],
9705
- "args": {},
9706
- "description": "List all enterprise workspaces",
10647
+ "args": {
10648
+ "id": {
10649
+ "description": "Template ID",
10650
+ "name": "id",
10651
+ "required": true
10652
+ }
10653
+ },
10654
+ "description": "Delete a WhatsApp template",
9707
10655
  "examples": [
9708
- "<%= config.bin %> enterprise workspaces list",
9709
- "<%= config.bin %> enterprise workspaces list --json"
10656
+ "<%= config.bin %> whatsapp templates delete 3f6a1c9e-0000-0000-0000-000000000000",
10657
+ "<%= config.bin %> whatsapp templates delete 3f6a1c9e-0000-0000-0000-000000000000 --force"
9710
10658
  ],
9711
10659
  "flags": {
9712
10660
  "json": {
@@ -9721,11 +10669,18 @@
9721
10669
  "name": "quiet",
9722
10670
  "allowNo": false,
9723
10671
  "type": "boolean"
10672
+ },
10673
+ "force": {
10674
+ "char": "f",
10675
+ "description": "Skip confirmation",
10676
+ "name": "force",
10677
+ "allowNo": false,
10678
+ "type": "boolean"
9724
10679
  }
9725
10680
  },
9726
10681
  "hasDynamicHelp": false,
9727
10682
  "hiddenAliases": [],
9728
- "id": "enterprise:workspaces:list",
10683
+ "id": "whatsapp:templates:delete",
9729
10684
  "pluginAlias": "@sendly/cli",
9730
10685
  "pluginName": "@sendly/cli",
9731
10686
  "pluginType": "core",
@@ -9734,23 +10689,18 @@
9734
10689
  "relativePath": [
9735
10690
  "dist",
9736
10691
  "commands",
9737
- "enterprise",
9738
- "workspaces",
9739
- "list.js"
10692
+ "whatsapp",
10693
+ "templates",
10694
+ "delete.js"
9740
10695
  ]
9741
10696
  },
9742
- "enterprise:workspaces:resume": {
10697
+ "whatsapp:templates:list": {
9743
10698
  "aliases": [],
9744
- "args": {
9745
- "workspaceId": {
9746
- "description": "Workspace ID",
9747
- "name": "workspaceId",
9748
- "required": true
9749
- }
9750
- },
9751
- "description": "Resume a suspended enterprise workspace",
10699
+ "args": {},
10700
+ "description": "List your WhatsApp message templates",
9752
10701
  "examples": [
9753
- "<%= config.bin %> enterprise workspaces resume org_abc123"
10702
+ "<%= config.bin %> whatsapp templates list",
10703
+ "<%= config.bin %> whatsapp templates list --json"
9754
10704
  ],
9755
10705
  "flags": {
9756
10706
  "json": {
@@ -9769,7 +10719,7 @@
9769
10719
  },
9770
10720
  "hasDynamicHelp": false,
9771
10721
  "hiddenAliases": [],
9772
- "id": "enterprise:workspaces:resume",
10722
+ "id": "whatsapp:templates:list",
9773
10723
  "pluginAlias": "@sendly/cli",
9774
10724
  "pluginName": "@sendly/cli",
9775
10725
  "pluginType": "core",
@@ -9778,24 +10728,24 @@
9778
10728
  "relativePath": [
9779
10729
  "dist",
9780
10730
  "commands",
9781
- "enterprise",
9782
- "workspaces",
9783
- "resume.js"
10731
+ "whatsapp",
10732
+ "templates",
10733
+ "list.js"
9784
10734
  ]
9785
10735
  },
9786
- "enterprise:workspaces:suspend": {
10736
+ "whatsapp:templates:update": {
9787
10737
  "aliases": [],
9788
10738
  "args": {
9789
- "workspaceId": {
9790
- "description": "Workspace ID",
9791
- "name": "workspaceId",
10739
+ "id": {
10740
+ "description": "Template ID",
10741
+ "name": "id",
9792
10742
  "required": true
9793
10743
  }
9794
10744
  },
9795
- "description": "Suspend an enterprise workspace",
10745
+ "description": "Edit an approved or rejected WhatsApp template and resubmit it to Meta for review",
9796
10746
  "examples": [
9797
- "<%= config.bin %> enterprise workspaces suspend org_abc123",
9798
- "<%= config.bin %> enterprise workspaces suspend org_abc123 --reason \"Policy violation\""
10747
+ "<%= config.bin %> whatsapp templates update 3f6a1c9e-0000-0000-0000-000000000000 --body \"Hi {{1}}, your order shipped!\" --example 1=TinyFat",
10748
+ "<%= config.bin %> whatsapp templates update 3f6a1c9e-0000-0000-0000-000000000000 --footer \"\""
9799
10749
  ],
9800
10750
  "flags": {
9801
10751
  "json": {
@@ -9811,25 +10761,46 @@
9811
10761
  "allowNo": false,
9812
10762
  "type": "boolean"
9813
10763
  },
9814
- "reason": {
9815
- "char": "r",
9816
- "description": "Reason for suspension",
9817
- "name": "reason",
10764
+ "body": {
10765
+ "char": "b",
10766
+ "description": "New body text; use {{1}}, {{2}}, ... for variables",
10767
+ "name": "body",
9818
10768
  "hasDynamicHelp": false,
9819
10769
  "multiple": false,
9820
10770
  "type": "option"
9821
10771
  },
9822
- "yes": {
9823
- "char": "y",
9824
- "description": "Skip confirmation prompt",
9825
- "name": "yes",
9826
- "allowNo": false,
9827
- "type": "boolean"
10772
+ "footer": {
10773
+ "description": "New footer text (pass \"\" to remove it)",
10774
+ "name": "footer",
10775
+ "hasDynamicHelp": false,
10776
+ "multiple": false,
10777
+ "type": "option"
10778
+ },
10779
+ "header": {
10780
+ "description": "New header text (pass \"\" to remove it)",
10781
+ "name": "header",
10782
+ "hasDynamicHelp": false,
10783
+ "multiple": false,
10784
+ "type": "option"
10785
+ },
10786
+ "button": {
10787
+ "description": "Replace all buttons: \"type:text\" or \"url:text:https://...\" (types: quick_reply, url, otp). Repeatable.",
10788
+ "name": "button",
10789
+ "hasDynamicHelp": false,
10790
+ "multiple": true,
10791
+ "type": "option"
10792
+ },
10793
+ "example": {
10794
+ "description": "Replace example values for body variables, as n=value. Repeatable.",
10795
+ "name": "example",
10796
+ "hasDynamicHelp": false,
10797
+ "multiple": true,
10798
+ "type": "option"
9828
10799
  }
9829
10800
  },
9830
10801
  "hasDynamicHelp": false,
9831
10802
  "hiddenAliases": [],
9832
- "id": "enterprise:workspaces:suspend",
10803
+ "id": "whatsapp:templates:update",
9833
10804
  "pluginAlias": "@sendly/cli",
9834
10805
  "pluginName": "@sendly/cli",
9835
10806
  "pluginType": "core",
@@ -9838,11 +10809,11 @@
9838
10809
  "relativePath": [
9839
10810
  "dist",
9840
10811
  "commands",
9841
- "enterprise",
9842
- "workspaces",
9843
- "suspend.js"
10812
+ "whatsapp",
10813
+ "templates",
10814
+ "update.js"
9844
10815
  ]
9845
10816
  }
9846
10817
  },
9847
- "version": "3.37.0"
10818
+ "version": "3.38.0"
9848
10819
  }