@sendly/cli 3.37.1 → 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 (64) 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/whatsapp/connect.d.ts +17 -0
  33. package/dist/commands/whatsapp/connect.js +166 -0
  34. package/dist/commands/whatsapp/profile/get.d.ts +13 -0
  35. package/dist/commands/whatsapp/profile/get.js +67 -0
  36. package/dist/commands/whatsapp/profile/update.d.ts +20 -0
  37. package/dist/commands/whatsapp/profile/update.js +109 -0
  38. package/dist/commands/whatsapp/send.d.ts +17 -0
  39. package/dist/commands/whatsapp/send.js +151 -0
  40. package/dist/commands/whatsapp/senders.d.ts +10 -0
  41. package/dist/commands/whatsapp/senders.js +74 -0
  42. package/dist/commands/whatsapp/status.d.ts +13 -0
  43. package/dist/commands/whatsapp/status.js +92 -0
  44. package/dist/commands/whatsapp/templates/create.d.ts +19 -0
  45. package/dist/commands/whatsapp/templates/create.js +205 -0
  46. package/dist/commands/whatsapp/templates/delete.d.ts +14 -0
  47. package/dist/commands/whatsapp/templates/delete.js +69 -0
  48. package/dist/commands/whatsapp/templates/list.d.ts +10 -0
  49. package/dist/commands/whatsapp/templates/list.js +77 -0
  50. package/dist/commands/whatsapp/templates/update.d.ts +18 -0
  51. package/dist/commands/whatsapp/templates/update.js +160 -0
  52. package/dist/commands/whoami.js +32 -6
  53. package/dist/hooks/command-not-found.js +46 -61
  54. package/dist/lib/api-client.d.ts +9 -1
  55. package/dist/lib/api-client.js +78 -9
  56. package/dist/lib/auth.js +10 -6
  57. package/dist/lib/base-command.js +9 -1
  58. package/dist/lib/config.d.ts +50 -1
  59. package/dist/lib/config.js +144 -7
  60. package/dist/lib/help.d.ts +10 -0
  61. package/dist/lib/help.js +23 -0
  62. package/dist/lib/onboarding.js +3 -3
  63. package/oclif.manifest.json +1707 -736
  64. 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": {},
@@ -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,29 +4579,58 @@
4535
4579
  "name": "quiet",
4536
4580
  "allowNo": false,
4537
4581
  "type": "boolean"
4582
+ }
4583
+ },
4584
+ "hasDynamicHelp": false,
4585
+ "hiddenAliases": [],
4586
+ "id": "rcs:agents",
4587
+ "pluginAlias": "@sendly/cli",
4588
+ "pluginName": "@sendly/cli",
4589
+ "pluginType": "core",
4590
+ "strict": true,
4591
+ "isESM": true,
4592
+ "relativePath": [
4593
+ "dist",
4594
+ "commands",
4595
+ "rcs",
4596
+ "agents.js"
4597
+ ]
4598
+ },
4599
+ "rcs:capability": {
4600
+ "aliases": [],
4601
+ "args": {},
4602
+ "description": "Check whether a recipient's device can receive RCS before you send",
4603
+ "examples": [
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"
4607
+ ],
4608
+ "flags": {
4609
+ "json": {
4610
+ "description": "Output in JSON format",
4611
+ "name": "json",
4612
+ "allowNo": false,
4613
+ "type": "boolean"
4538
4614
  },
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"
4615
+ "quiet": {
4616
+ "char": "q",
4617
+ "description": "Minimal output",
4618
+ "name": "quiet",
4619
+ "allowNo": false,
4620
+ "type": "boolean"
4547
4621
  },
4548
- "type": {
4622
+ "to": {
4549
4623
  "char": "t",
4550
- "description": "Number type (e.g. mobile, local, toll-free)",
4551
- "name": "type",
4624
+ "description": "Recipient phone number to check (E.164 format)",
4625
+ "name": "to",
4552
4626
  "required": true,
4553
4627
  "hasDynamicHelp": false,
4554
4628
  "multiple": false,
4555
4629
  "type": "option"
4556
4630
  },
4557
- "number": {
4558
- "char": "n",
4559
- "description": "Specific number to buy in E.164 format (skips selection)",
4560
- "name": "number",
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",
4561
4634
  "hasDynamicHelp": false,
4562
4635
  "multiple": false,
4563
4636
  "type": "option"
@@ -4565,7 +4638,7 @@
4565
4638
  },
4566
4639
  "hasDynamicHelp": false,
4567
4640
  "hiddenAliases": [],
4568
- "id": "numbers:buy",
4641
+ "id": "rcs:capability",
4569
4642
  "pluginAlias": "@sendly/cli",
4570
4643
  "pluginName": "@sendly/cli",
4571
4644
  "pluginType": "core",
@@ -4574,23 +4647,19 @@
4574
4647
  "relativePath": [
4575
4648
  "dist",
4576
4649
  "commands",
4577
- "numbers",
4578
- "buy.js"
4650
+ "rcs",
4651
+ "capability.js"
4579
4652
  ]
4580
4653
  },
4581
- "numbers:get": {
4654
+ "rcs:send": {
4582
4655
  "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",
4656
+ "args": {},
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",
4591
4658
  "examples": [
4592
- "<%= config.bin %> numbers get num_abc123",
4593
- "<%= config.bin %> numbers get num_abc123 --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"
4594
4663
  ],
4595
4664
  "flags": {
4596
4665
  "json": {
@@ -4605,11 +4674,109 @@
4605
4674
  "name": "quiet",
4606
4675
  "allowNo": false,
4607
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"
4608
4775
  }
4609
4776
  },
4610
4777
  "hasDynamicHelp": false,
4611
4778
  "hiddenAliases": [],
4612
- "id": "numbers:get",
4779
+ "id": "rcs:send",
4613
4780
  "pluginAlias": "@sendly/cli",
4614
4781
  "pluginName": "@sendly/cli",
4615
4782
  "pluginType": "core",
@@ -4618,17 +4785,18 @@
4618
4785
  "relativePath": [
4619
4786
  "dist",
4620
4787
  "commands",
4621
- "numbers",
4622
- "get.js"
4788
+ "rcs",
4789
+ "send.js"
4623
4790
  ]
4624
4791
  },
4625
- "numbers:list": {
4792
+ "rules:create": {
4626
4793
  "aliases": [],
4627
4794
  "args": {},
4628
- "description": "List the phone numbers on your account",
4795
+ "description": "Create an auto-labeling rule",
4629
4796
  "examples": [
4630
- "<%= config.bin %> numbers list",
4631
- "<%= config.bin %> numbers list --json"
4797
+ "<%= config.bin %> rules create --name \"Flag complaints\" --intent complaint --label label_abc",
4798
+ "<%= config.bin %> rules create --name \"Close opt-outs\" --intent opt_out --close",
4799
+ "<%= config.bin %> rules create --name \"Negative\" --sentiment negative --label label_xyz --priority 1"
4632
4800
  ],
4633
4801
  "flags": {
4634
4802
  "json": {
@@ -4643,11 +4811,54 @@
4643
4811
  "name": "quiet",
4644
4812
  "allowNo": false,
4645
4813
  "type": "boolean"
4814
+ },
4815
+ "name": {
4816
+ "description": "Rule name",
4817
+ "name": "name",
4818
+ "required": true,
4819
+ "hasDynamicHelp": false,
4820
+ "multiple": false,
4821
+ "type": "option"
4822
+ },
4823
+ "intent": {
4824
+ "description": "Match intent (question, appointment, complaint, order_status, feedback, opt_out, greeting, confirmation, other)",
4825
+ "name": "intent",
4826
+ "hasDynamicHelp": false,
4827
+ "multiple": true,
4828
+ "type": "option"
4829
+ },
4830
+ "sentiment": {
4831
+ "description": "Match sentiment (positive, neutral, negative)",
4832
+ "name": "sentiment",
4833
+ "hasDynamicHelp": false,
4834
+ "multiple": true,
4835
+ "type": "option"
4836
+ },
4837
+ "label": {
4838
+ "description": "Label ID to apply when rule matches",
4839
+ "name": "label",
4840
+ "hasDynamicHelp": false,
4841
+ "multiple": true,
4842
+ "type": "option"
4843
+ },
4844
+ "close": {
4845
+ "description": "Close the conversation when rule matches",
4846
+ "name": "close",
4847
+ "allowNo": false,
4848
+ "type": "boolean"
4849
+ },
4850
+ "priority": {
4851
+ "description": "Priority (lower runs first)",
4852
+ "name": "priority",
4853
+ "default": 0,
4854
+ "hasDynamicHelp": false,
4855
+ "multiple": false,
4856
+ "type": "option"
4646
4857
  }
4647
4858
  },
4648
4859
  "hasDynamicHelp": false,
4649
4860
  "hiddenAliases": [],
4650
- "id": "numbers:list",
4861
+ "id": "rules:create",
4651
4862
  "pluginAlias": "@sendly/cli",
4652
4863
  "pluginName": "@sendly/cli",
4653
4864
  "pluginType": "core",
@@ -4656,24 +4867,22 @@
4656
4867
  "relativePath": [
4657
4868
  "dist",
4658
4869
  "commands",
4659
- "numbers",
4660
- "list.js"
4870
+ "rules",
4871
+ "create.js"
4661
4872
  ]
4662
4873
  },
4663
- "numbers:release": {
4874
+ "rules:delete": {
4664
4875
  "aliases": [],
4665
4876
  "args": {
4666
4877
  "id": {
4667
- "description": "Phone number ID (from `sendly numbers list`)",
4878
+ "description": "Rule ID",
4668
4879
  "name": "id",
4669
4880
  "required": true
4670
4881
  }
4671
4882
  },
4672
- "description": "Release a number you own (paid purchases release at period end, others immediately)",
4883
+ "description": "Delete an auto-labeling rule",
4673
4884
  "examples": [
4674
- "<%= config.bin %> numbers release num_abc123",
4675
- "<%= config.bin %> numbers release num_abc123 --yes",
4676
- "<%= config.bin %> numbers release num_abc123 --json"
4885
+ "<%= config.bin %> rules delete rule_abc123"
4677
4886
  ],
4678
4887
  "flags": {
4679
4888
  "json": {
@@ -4688,18 +4897,11 @@
4688
4897
  "name": "quiet",
4689
4898
  "allowNo": false,
4690
4899
  "type": "boolean"
4691
- },
4692
- "yes": {
4693
- "char": "y",
4694
- "description": "Skip confirmation prompt",
4695
- "name": "yes",
4696
- "allowNo": false,
4697
- "type": "boolean"
4698
4900
  }
4699
4901
  },
4700
4902
  "hasDynamicHelp": false,
4701
4903
  "hiddenAliases": [],
4702
- "id": "numbers:release",
4904
+ "id": "rules:delete",
4703
4905
  "pluginAlias": "@sendly/cli",
4704
4906
  "pluginName": "@sendly/cli",
4705
4907
  "pluginType": "core",
@@ -4708,262 +4910,14 @@
4708
4910
  "relativePath": [
4709
4911
  "dist",
4710
4912
  "commands",
4711
- "numbers",
4712
- "release.js"
4913
+ "rules",
4914
+ "delete.js"
4713
4915
  ]
4714
4916
  },
4715
- "numbers:search": {
4917
+ "rules": {
4716
4918
  "aliases": [],
4717
4919
  "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",
4826
- "pluginAlias": "@sendly/cli",
4827
- "pluginName": "@sendly/cli",
4828
- "pluginType": "core",
4829
- "strict": true,
4830
- "isESM": true,
4831
- "relativePath": [
4832
- "dist",
4833
- "commands",
4834
- "numbers",
4835
- "update.js"
4836
- ]
4837
- },
4838
- "rules:create": {
4839
- "aliases": [],
4840
- "args": {},
4841
- "description": "Create an auto-labeling rule",
4842
- "examples": [
4843
- "<%= config.bin %> rules create --name \"Flag complaints\" --intent complaint --label label_abc",
4844
- "<%= config.bin %> rules create --name \"Close opt-outs\" --intent opt_out --close",
4845
- "<%= config.bin %> rules create --name \"Negative\" --sentiment negative --label label_xyz --priority 1"
4846
- ],
4847
- "flags": {
4848
- "json": {
4849
- "description": "Output in JSON format",
4850
- "name": "json",
4851
- "allowNo": false,
4852
- "type": "boolean"
4853
- },
4854
- "quiet": {
4855
- "char": "q",
4856
- "description": "Minimal output",
4857
- "name": "quiet",
4858
- "allowNo": false,
4859
- "type": "boolean"
4860
- },
4861
- "name": {
4862
- "description": "Rule name",
4863
- "name": "name",
4864
- "required": true,
4865
- "hasDynamicHelp": false,
4866
- "multiple": false,
4867
- "type": "option"
4868
- },
4869
- "intent": {
4870
- "description": "Match intent (question, appointment, complaint, order_status, feedback, opt_out, greeting, confirmation, other)",
4871
- "name": "intent",
4872
- "hasDynamicHelp": false,
4873
- "multiple": true,
4874
- "type": "option"
4875
- },
4876
- "sentiment": {
4877
- "description": "Match sentiment (positive, neutral, negative)",
4878
- "name": "sentiment",
4879
- "hasDynamicHelp": false,
4880
- "multiple": true,
4881
- "type": "option"
4882
- },
4883
- "label": {
4884
- "description": "Label ID to apply when rule matches",
4885
- "name": "label",
4886
- "hasDynamicHelp": false,
4887
- "multiple": true,
4888
- "type": "option"
4889
- },
4890
- "close": {
4891
- "description": "Close the conversation when rule matches",
4892
- "name": "close",
4893
- "allowNo": false,
4894
- "type": "boolean"
4895
- },
4896
- "priority": {
4897
- "description": "Priority (lower runs first)",
4898
- "name": "priority",
4899
- "default": 0,
4900
- "hasDynamicHelp": false,
4901
- "multiple": false,
4902
- "type": "option"
4903
- }
4904
- },
4905
- "hasDynamicHelp": false,
4906
- "hiddenAliases": [],
4907
- "id": "rules:create",
4908
- "pluginAlias": "@sendly/cli",
4909
- "pluginName": "@sendly/cli",
4910
- "pluginType": "core",
4911
- "strict": true,
4912
- "isESM": true,
4913
- "relativePath": [
4914
- "dist",
4915
- "commands",
4916
- "rules",
4917
- "create.js"
4918
- ]
4919
- },
4920
- "rules:delete": {
4921
- "aliases": [],
4922
- "args": {
4923
- "id": {
4924
- "description": "Rule ID",
4925
- "name": "id",
4926
- "required": true
4927
- }
4928
- },
4929
- "description": "Delete an auto-labeling rule",
4930
- "examples": [
4931
- "<%= config.bin %> rules delete rule_abc123"
4932
- ],
4933
- "flags": {
4934
- "json": {
4935
- "description": "Output in JSON format",
4936
- "name": "json",
4937
- "allowNo": false,
4938
- "type": "boolean"
4939
- },
4940
- "quiet": {
4941
- "char": "q",
4942
- "description": "Minimal output",
4943
- "name": "quiet",
4944
- "allowNo": false,
4945
- "type": "boolean"
4946
- }
4947
- },
4948
- "hasDynamicHelp": false,
4949
- "hiddenAliases": [],
4950
- "id": "rules:delete",
4951
- "pluginAlias": "@sendly/cli",
4952
- "pluginName": "@sendly/cli",
4953
- "pluginType": "core",
4954
- "strict": true,
4955
- "isESM": true,
4956
- "relativePath": [
4957
- "dist",
4958
- "commands",
4959
- "rules",
4960
- "delete.js"
4961
- ]
4962
- },
4963
- "rules": {
4964
- "aliases": [],
4965
- "args": {},
4966
- "description": "List auto-labeling rules",
4920
+ "description": "List auto-labeling rules",
4967
4921
  "examples": [
4968
4922
  "<%= config.bin %> rules",
4969
4923
  "<%= config.bin %> rules --json"
@@ -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,8 +5243,15 @@
5279
5243
  "hasDynamicHelp": false,
5280
5244
  "multiple": true,
5281
5245
  "type": "option"
5282
- }
5283
- },
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"
5253
+ }
5254
+ },
5284
5255
  "hasDynamicHelp": false,
5285
5256
  "hiddenAliases": [],
5286
5257
  "id": "sms:group",
@@ -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,
@@ -7448,6 +7433,241 @@
7448
7433
  "update.js"
7449
7434
  ]
7450
7435
  },
7436
+ "whatsapp:connect": {
7437
+ "aliases": [],
7438
+ "args": {},
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.",
7440
+ "examples": [
7441
+ "<%= config.bin %> whatsapp connect --number +15551234567",
7442
+ "<%= config.bin %> whatsapp connect --number +15551234567 --json"
7443
+ ],
7444
+ "flags": {
7445
+ "json": {
7446
+ "description": "Output in JSON format",
7447
+ "name": "json",
7448
+ "allowNo": false,
7449
+ "type": "boolean"
7450
+ },
7451
+ "quiet": {
7452
+ "char": "q",
7453
+ "description": "Minimal output",
7454
+ "name": "quiet",
7455
+ "allowNo": false,
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"
7466
+ }
7467
+ },
7468
+ "hasDynamicHelp": false,
7469
+ "hiddenAliases": [],
7470
+ "id": "whatsapp:connect",
7471
+ "pluginAlias": "@sendly/cli",
7472
+ "pluginName": "@sendly/cli",
7473
+ "pluginType": "core",
7474
+ "strict": true,
7475
+ "isESM": true,
7476
+ "relativePath": [
7477
+ "dist",
7478
+ "commands",
7479
+ "whatsapp",
7480
+ "connect.js"
7481
+ ]
7482
+ },
7483
+ "whatsapp:send": {
7484
+ "aliases": [],
7485
+ "args": {},
7486
+ "description": "Send a WhatsApp message — free-form text inside the 24-hour reply window, or an approved template any time",
7487
+ "examples": [
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"
7491
+ ],
7492
+ "flags": {
7493
+ "json": {
7494
+ "description": "Output in JSON format",
7495
+ "name": "json",
7496
+ "allowNo": false,
7497
+ "type": "boolean"
7498
+ },
7499
+ "quiet": {
7500
+ "char": "q",
7501
+ "description": "Minimal output",
7502
+ "name": "quiet",
7503
+ "allowNo": false,
7504
+ "type": "boolean"
7505
+ },
7506
+ "to": {
7507
+ "char": "t",
7508
+ "description": "Recipient phone number (E.164 format)",
7509
+ "name": "to",
7510
+ "required": true,
7511
+ "hasDynamicHelp": false,
7512
+ "multiple": false,
7513
+ "type": "option"
7514
+ },
7515
+ "from": {
7516
+ "char": "f",
7517
+ "description": "Your WhatsApp-connected sender number (E.164 format)",
7518
+ "name": "from",
7519
+ "required": true,
7520
+ "hasDynamicHelp": false,
7521
+ "multiple": false,
7522
+ "type": "option"
7523
+ },
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",
7533
+ "hasDynamicHelp": false,
7534
+ "multiple": false,
7535
+ "type": "option"
7536
+ },
7537
+ "template": {
7538
+ "description": "Approved template name (reaches contacts any time)",
7539
+ "name": "template",
7540
+ "hasDynamicHelp": false,
7541
+ "multiple": false,
7542
+ "type": "option"
7543
+ },
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",
7551
+ "hasDynamicHelp": false,
7552
+ "multiple": false,
7553
+ "type": "option"
7554
+ },
7555
+ "var": {
7556
+ "dependsOn": [
7557
+ "template"
7558
+ ],
7559
+ "description": "Template variable as n=value (e.g. --var 1=TinyFat). Repeatable.",
7560
+ "name": "var",
7561
+ "hasDynamicHelp": 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
+ },
7451
7671
  "10dlc:assignments:list": {
7452
7672
  "aliases": [],
7453
7673
  "args": {},
@@ -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,18 +8280,23 @@
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",
8060
- "examples": [
8061
- "<%= config.bin %> contacts lists create --name \"VIP Customers\"",
8062
- "<%= config.bin %> contacts lists create --name \"Newsletter\" --description \"Weekly newsletter subscribers\""
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",
8297
+ "examples": [
8298
+ "<%= config.bin %> numbers get num_abc123",
8299
+ "<%= config.bin %> numbers get num_abc123 --json"
8063
8300
  ],
8064
8301
  "flags": {
8065
8302
  "json": {
@@ -8074,28 +8311,49 @@
8074
8311
  "name": "quiet",
8075
8312
  "allowNo": false,
8076
8313
  "type": "boolean"
8314
+ }
8315
+ },
8316
+ "hasDynamicHelp": false,
8317
+ "hiddenAliases": [],
8318
+ "id": "numbers:get",
8319
+ "pluginAlias": "@sendly/cli",
8320
+ "pluginName": "@sendly/cli",
8321
+ "pluginType": "core",
8322
+ "strict": true,
8323
+ "isESM": true,
8324
+ "relativePath": [
8325
+ "dist",
8326
+ "commands",
8327
+ "numbers",
8328
+ "get.js"
8329
+ ]
8330
+ },
8331
+ "numbers:list": {
8332
+ "aliases": [],
8333
+ "args": {},
8334
+ "description": "List the phone numbers on your account",
8335
+ "examples": [
8336
+ "<%= config.bin %> numbers list",
8337
+ "<%= config.bin %> numbers list --json"
8338
+ ],
8339
+ "flags": {
8340
+ "json": {
8341
+ "description": "Output in JSON format",
8342
+ "name": "json",
8343
+ "allowNo": false,
8344
+ "type": "boolean"
8077
8345
  },
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"
8346
+ "quiet": {
8347
+ "char": "q",
8348
+ "description": "Minimal output",
8349
+ "name": "quiet",
8350
+ "allowNo": false,
8351
+ "type": "boolean"
8094
8352
  }
8095
8353
  },
8096
8354
  "hasDynamicHelp": false,
8097
8355
  "hiddenAliases": [],
8098
- "id": "contacts:lists:create",
8356
+ "id": "numbers:list",
8099
8357
  "pluginAlias": "@sendly/cli",
8100
8358
  "pluginName": "@sendly/cli",
8101
8359
  "pluginType": "core",
@@ -8104,24 +8362,24 @@
8104
8362
  "relativePath": [
8105
8363
  "dist",
8106
8364
  "commands",
8107
- "contacts",
8108
- "lists",
8109
- "create.js"
8365
+ "numbers",
8366
+ "list.js"
8110
8367
  ]
8111
8368
  },
8112
- "contacts:lists:delete": {
8369
+ "numbers:release": {
8113
8370
  "aliases": [],
8114
8371
  "args": {
8115
8372
  "id": {
8116
- "description": "Contact list ID to delete",
8373
+ "description": "Phone number ID (from `sendly numbers list`)",
8117
8374
  "name": "id",
8118
8375
  "required": true
8119
8376
  }
8120
8377
  },
8121
- "description": "Delete a contact list (does not delete the contacts)",
8378
+ "description": "Release a number you own (paid purchases release at period end, others immediately)",
8122
8379
  "examples": [
8123
- "<%= config.bin %> contacts lists delete lst_xxx",
8124
- "<%= config.bin %> contacts lists delete lst_xxx --yes"
8380
+ "<%= config.bin %> numbers release num_abc123",
8381
+ "<%= config.bin %> numbers release num_abc123 --yes",
8382
+ "<%= config.bin %> numbers release num_abc123 --json"
8125
8383
  ],
8126
8384
  "flags": {
8127
8385
  "json": {
@@ -8147,7 +8405,7 @@
8147
8405
  },
8148
8406
  "hasDynamicHelp": false,
8149
8407
  "hiddenAliases": [],
8150
- "id": "contacts:lists:delete",
8408
+ "id": "numbers:release",
8151
8409
  "pluginAlias": "@sendly/cli",
8152
8410
  "pluginName": "@sendly/cli",
8153
8411
  "pluginType": "core",
@@ -8156,24 +8414,18 @@
8156
8414
  "relativePath": [
8157
8415
  "dist",
8158
8416
  "commands",
8159
- "contacts",
8160
- "lists",
8161
- "delete.js"
8417
+ "numbers",
8418
+ "release.js"
8162
8419
  ]
8163
8420
  },
8164
- "contacts:lists:get": {
8421
+ "numbers:search": {
8165
8422
  "aliases": [],
8166
- "args": {
8167
- "id": {
8168
- "description": "Contact list ID",
8169
- "name": "id",
8170
- "required": true
8171
- }
8172
- },
8173
- "description": "Get contact list details",
8423
+ "args": {},
8424
+ "description": "Search for available phone numbers to buy in a country",
8174
8425
  "examples": [
8175
- "<%= config.bin %> contacts lists get lst_xxx",
8176
- "<%= config.bin %> contacts lists get lst_xxx --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"
8177
8429
  ],
8178
8430
  "flags": {
8179
8431
  "json": {
@@ -8188,11 +8440,36 @@
8188
8440
  "name": "quiet",
8189
8441
  "allowNo": false,
8190
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"
8191
8468
  }
8192
8469
  },
8193
8470
  "hasDynamicHelp": false,
8194
8471
  "hiddenAliases": [],
8195
- "id": "contacts:lists:get",
8472
+ "id": "numbers:search",
8196
8473
  "pluginAlias": "@sendly/cli",
8197
8474
  "pluginName": "@sendly/cli",
8198
8475
  "pluginType": "core",
@@ -8201,18 +8478,24 @@
8201
8478
  "relativePath": [
8202
8479
  "dist",
8203
8480
  "commands",
8204
- "contacts",
8205
- "lists",
8206
- "get.js"
8481
+ "numbers",
8482
+ "search.js"
8207
8483
  ]
8208
8484
  },
8209
- "contacts:lists": {
8485
+ "numbers:update": {
8210
8486
  "aliases": [],
8211
- "args": {},
8212
- "description": "List all contact lists",
8487
+ "args": {
8488
+ "id": {
8489
+ "description": "Phone number ID (from `sendly numbers list`)",
8490
+ "name": "id",
8491
+ "required": true
8492
+ }
8493
+ },
8494
+ "description": "Update a number you own: make it the default sender (--default) or cancel a scheduled release (--keep)",
8213
8495
  "examples": [
8214
- "<%= config.bin %> contacts lists",
8215
- "<%= config.bin %> contacts lists --json"
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"
8216
8499
  ],
8217
8500
  "flags": {
8218
8501
  "json": {
@@ -8227,11 +8510,25 @@
8227
8510
  "name": "quiet",
8228
8511
  "allowNo": false,
8229
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"
8230
8527
  }
8231
8528
  },
8232
8529
  "hasDynamicHelp": false,
8233
8530
  "hiddenAliases": [],
8234
- "id": "contacts:lists",
8531
+ "id": "numbers:update",
8235
8532
  "pluginAlias": "@sendly/cli",
8236
8533
  "pluginName": "@sendly/cli",
8237
8534
  "pluginType": "core",
@@ -8240,28 +8537,23 @@
8240
8537
  "relativePath": [
8241
8538
  "dist",
8242
8539
  "commands",
8243
- "contacts",
8244
- "lists",
8245
- "index.js"
8540
+ "numbers",
8541
+ "update.js"
8246
8542
  ]
8247
8543
  },
8248
- "contacts:lists:remove": {
8544
+ "contacts:lists:add": {
8249
8545
  "aliases": [],
8250
8546
  "args": {
8251
8547
  "listId": {
8252
8548
  "description": "Contact list ID",
8253
8549
  "name": "listId",
8254
8550
  "required": true
8255
- },
8256
- "contactId": {
8257
- "description": "Contact ID to remove",
8258
- "name": "contactId",
8259
- "required": true
8260
8551
  }
8261
8552
  },
8262
- "description": "Remove a contact from a list",
8553
+ "description": "Add contacts to a list",
8263
8554
  "examples": [
8264
- "<%= config.bin %> contacts lists remove lst_xxx cnt_abc"
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"
8265
8557
  ],
8266
8558
  "flags": {
8267
8559
  "json": {
@@ -8276,11 +8568,20 @@
8276
8568
  "name": "quiet",
8277
8569
  "allowNo": false,
8278
8570
  "type": "boolean"
8571
+ },
8572
+ "contacts": {
8573
+ "char": "c",
8574
+ "description": "Contact IDs to add (comma-separated or multiple flags)",
8575
+ "name": "contacts",
8576
+ "required": true,
8577
+ "hasDynamicHelp": false,
8578
+ "multiple": true,
8579
+ "type": "option"
8279
8580
  }
8280
8581
  },
8281
8582
  "hasDynamicHelp": false,
8282
8583
  "hiddenAliases": [],
8283
- "id": "contacts:lists:remove",
8584
+ "id": "contacts:lists:add",
8284
8585
  "pluginAlias": "@sendly/cli",
8285
8586
  "pluginName": "@sendly/cli",
8286
8587
  "pluginType": "core",
@@ -8291,22 +8592,16 @@
8291
8592
  "commands",
8292
8593
  "contacts",
8293
8594
  "lists",
8294
- "remove.js"
8595
+ "add.js"
8295
8596
  ]
8296
8597
  },
8297
- "contacts:lists:update": {
8598
+ "contacts:lists:create": {
8298
8599
  "aliases": [],
8299
- "args": {
8300
- "id": {
8301
- "description": "Contact list ID",
8302
- "name": "id",
8303
- "required": true
8304
- }
8305
- },
8306
- "description": "Update a contact list",
8600
+ "args": {},
8601
+ "description": "Create a new contact list",
8307
8602
  "examples": [
8308
- "<%= config.bin %> contacts lists update lst_xxx --name \"VIP Customers\"",
8309
- "<%= config.bin %> contacts lists update lst_xxx --description \"Updated desc\""
8603
+ "<%= config.bin %> contacts lists create --name \"VIP Customers\"",
8604
+ "<%= config.bin %> contacts lists create --name \"Newsletter\" --description \"Weekly newsletter subscribers\""
8310
8605
  ],
8311
8606
  "flags": {
8312
8607
  "json": {
@@ -8326,6 +8621,7 @@
8326
8621
  "char": "n",
8327
8622
  "description": "List name",
8328
8623
  "name": "name",
8624
+ "required": true,
8329
8625
  "hasDynamicHelp": false,
8330
8626
  "multiple": false,
8331
8627
  "type": "option"
@@ -8341,7 +8637,7 @@
8341
8637
  },
8342
8638
  "hasDynamicHelp": false,
8343
8639
  "hiddenAliases": [],
8344
- "id": "contacts:lists:update",
8640
+ "id": "contacts:lists:create",
8345
8641
  "pluginAlias": "@sendly/cli",
8346
8642
  "pluginName": "@sendly/cli",
8347
8643
  "pluginType": "core",
@@ -8352,17 +8648,22 @@
8352
8648
  "commands",
8353
8649
  "contacts",
8354
8650
  "lists",
8355
- "update.js"
8651
+ "create.js"
8356
8652
  ]
8357
8653
  },
8358
- "enterprise:analytics:credits": {
8654
+ "contacts:lists:delete": {
8359
8655
  "aliases": [],
8360
- "args": {},
8361
- "description": "Get credit usage analytics over time",
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)",
8362
8664
  "examples": [
8363
- "<%= config.bin %> enterprise analytics credits",
8364
- "<%= config.bin %> enterprise analytics credits --period 30d",
8365
- "<%= config.bin %> enterprise analytics credits --json"
8665
+ "<%= config.bin %> contacts lists delete lst_xxx",
8666
+ "<%= config.bin %> contacts lists delete lst_xxx --yes"
8366
8667
  ],
8367
8668
  "flags": {
8368
8669
  "json": {
@@ -8378,24 +8679,17 @@
8378
8679
  "allowNo": false,
8379
8680
  "type": "boolean"
8380
8681
  },
8381
- "period": {
8382
- "char": "p",
8383
- "description": "Time period (7d, 30d, 90d)",
8384
- "name": "period",
8385
- "default": "7d",
8386
- "hasDynamicHelp": false,
8387
- "multiple": false,
8388
- "options": [
8389
- "7d",
8390
- "30d",
8391
- "90d"
8392
- ],
8393
- "type": "option"
8394
- }
8395
- },
8396
- "hasDynamicHelp": false,
8397
- "hiddenAliases": [],
8398
- "id": "enterprise:analytics:credits",
8682
+ "yes": {
8683
+ "char": "y",
8684
+ "description": "Skip confirmation prompt",
8685
+ "name": "yes",
8686
+ "allowNo": false,
8687
+ "type": "boolean"
8688
+ }
8689
+ },
8690
+ "hasDynamicHelp": false,
8691
+ "hiddenAliases": [],
8692
+ "id": "contacts:lists:delete",
8399
8693
  "pluginAlias": "@sendly/cli",
8400
8694
  "pluginName": "@sendly/cli",
8401
8695
  "pluginType": "core",
@@ -8404,18 +8698,24 @@
8404
8698
  "relativePath": [
8405
8699
  "dist",
8406
8700
  "commands",
8407
- "enterprise",
8408
- "analytics",
8409
- "credits.js"
8701
+ "contacts",
8702
+ "lists",
8703
+ "delete.js"
8410
8704
  ]
8411
8705
  },
8412
- "enterprise:analytics:delivery": {
8706
+ "contacts:lists:get": {
8413
8707
  "aliases": [],
8414
- "args": {},
8415
- "description": "Get delivery rate analytics by workspace",
8708
+ "args": {
8709
+ "id": {
8710
+ "description": "Contact list ID",
8711
+ "name": "id",
8712
+ "required": true
8713
+ }
8714
+ },
8715
+ "description": "Get contact list details",
8416
8716
  "examples": [
8417
- "<%= config.bin %> enterprise analytics delivery",
8418
- "<%= config.bin %> enterprise analytics delivery --json"
8717
+ "<%= config.bin %> contacts lists get lst_xxx",
8718
+ "<%= config.bin %> contacts lists get lst_xxx --json"
8419
8719
  ],
8420
8720
  "flags": {
8421
8721
  "json": {
@@ -8434,7 +8734,7 @@
8434
8734
  },
8435
8735
  "hasDynamicHelp": false,
8436
8736
  "hiddenAliases": [],
8437
- "id": "enterprise:analytics:delivery",
8737
+ "id": "contacts:lists:get",
8438
8738
  "pluginAlias": "@sendly/cli",
8439
8739
  "pluginName": "@sendly/cli",
8440
8740
  "pluginType": "core",
@@ -8443,19 +8743,18 @@
8443
8743
  "relativePath": [
8444
8744
  "dist",
8445
8745
  "commands",
8446
- "enterprise",
8447
- "analytics",
8448
- "delivery.js"
8746
+ "contacts",
8747
+ "lists",
8748
+ "get.js"
8449
8749
  ]
8450
8750
  },
8451
- "enterprise:analytics:messages": {
8751
+ "contacts:lists": {
8452
8752
  "aliases": [],
8453
8753
  "args": {},
8454
- "description": "Get message analytics across all workspaces",
8754
+ "description": "List all contact lists",
8455
8755
  "examples": [
8456
- "<%= config.bin %> enterprise analytics messages",
8457
- "<%= config.bin %> enterprise analytics messages --period 30d",
8458
- "<%= config.bin %> enterprise analytics messages --period 90d --json"
8756
+ "<%= config.bin %> contacts lists",
8757
+ "<%= config.bin %> contacts lists --json"
8459
8758
  ],
8460
8759
  "flags": {
8461
8760
  "json": {
@@ -8470,25 +8769,11 @@
8470
8769
  "name": "quiet",
8471
8770
  "allowNo": false,
8472
8771
  "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
8772
  }
8488
8773
  },
8489
8774
  "hasDynamicHelp": false,
8490
8775
  "hiddenAliases": [],
8491
- "id": "enterprise:analytics:messages",
8776
+ "id": "contacts:lists",
8492
8777
  "pluginAlias": "@sendly/cli",
8493
8778
  "pluginName": "@sendly/cli",
8494
8779
  "pluginType": "core",
@@ -8497,18 +8782,28 @@
8497
8782
  "relativePath": [
8498
8783
  "dist",
8499
8784
  "commands",
8500
- "enterprise",
8501
- "analytics",
8502
- "messages.js"
8785
+ "contacts",
8786
+ "lists",
8787
+ "index.js"
8503
8788
  ]
8504
8789
  },
8505
- "enterprise:analytics:overview": {
8790
+ "contacts:lists:remove": {
8506
8791
  "aliases": [],
8507
- "args": {},
8508
- "description": "Get enterprise-wide analytics overview",
8792
+ "args": {
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",
8801
+ "required": true
8802
+ }
8803
+ },
8804
+ "description": "Remove a contact from a list",
8509
8805
  "examples": [
8510
- "<%= config.bin %> enterprise analytics overview",
8511
- "<%= config.bin %> enterprise analytics overview --json"
8806
+ "<%= config.bin %> contacts lists remove lst_xxx cnt_abc"
8512
8807
  ],
8513
8808
  "flags": {
8514
8809
  "json": {
@@ -8527,7 +8822,7 @@
8527
8822
  },
8528
8823
  "hasDynamicHelp": false,
8529
8824
  "hiddenAliases": [],
8530
- "id": "enterprise:analytics:overview",
8825
+ "id": "contacts:lists:remove",
8531
8826
  "pluginAlias": "@sendly/cli",
8532
8827
  "pluginName": "@sendly/cli",
8533
8828
  "pluginType": "core",
@@ -8536,24 +8831,24 @@
8536
8831
  "relativePath": [
8537
8832
  "dist",
8538
8833
  "commands",
8539
- "enterprise",
8540
- "analytics",
8541
- "overview.js"
8834
+ "contacts",
8835
+ "lists",
8836
+ "remove.js"
8542
8837
  ]
8543
8838
  },
8544
- "enterprise:keys:create": {
8839
+ "contacts:lists:update": {
8545
8840
  "aliases": [],
8546
8841
  "args": {
8547
- "workspaceId": {
8548
- "description": "Workspace ID",
8549
- "name": "workspaceId",
8842
+ "id": {
8843
+ "description": "Contact list ID",
8844
+ "name": "id",
8550
8845
  "required": true
8551
8846
  }
8552
8847
  },
8553
- "description": "Create an API key for an enterprise workspace",
8848
+ "description": "Update a contact list",
8554
8849
  "examples": [
8555
- "<%= config.bin %> enterprise keys create org_abc123 --name \"Production\"",
8556
- "<%= config.bin %> enterprise keys create org_abc123 --name \"CI\" --type test"
8850
+ "<%= config.bin %> contacts lists update lst_xxx --name \"VIP Customers\"",
8851
+ "<%= config.bin %> contacts lists update lst_xxx --description \"Updated desc\""
8557
8852
  ],
8558
8853
  "flags": {
8559
8854
  "json": {
@@ -8571,30 +8866,24 @@
8571
8866
  },
8572
8867
  "name": {
8573
8868
  "char": "n",
8574
- "description": "Name for the API key",
8869
+ "description": "List name",
8575
8870
  "name": "name",
8576
- "required": true,
8577
8871
  "hasDynamicHelp": false,
8578
8872
  "multiple": false,
8579
8873
  "type": "option"
8580
8874
  },
8581
- "type": {
8582
- "char": "t",
8583
- "description": "Key type (test or live)",
8584
- "name": "type",
8585
- "default": "live",
8875
+ "description": {
8876
+ "char": "d",
8877
+ "description": "List description",
8878
+ "name": "description",
8586
8879
  "hasDynamicHelp": false,
8587
8880
  "multiple": false,
8588
- "options": [
8589
- "test",
8590
- "live"
8591
- ],
8592
8881
  "type": "option"
8593
8882
  }
8594
8883
  },
8595
8884
  "hasDynamicHelp": false,
8596
8885
  "hiddenAliases": [],
8597
- "id": "enterprise:keys:create",
8886
+ "id": "contacts:lists:update",
8598
8887
  "pluginAlias": "@sendly/cli",
8599
8888
  "pluginName": "@sendly/cli",
8600
8889
  "pluginType": "core",
@@ -8603,24 +8892,19 @@
8603
8892
  "relativePath": [
8604
8893
  "dist",
8605
8894
  "commands",
8606
- "enterprise",
8607
- "keys",
8608
- "create.js"
8895
+ "contacts",
8896
+ "lists",
8897
+ "update.js"
8609
8898
  ]
8610
8899
  },
8611
- "enterprise:keys:list": {
8900
+ "enterprise:analytics:credits": {
8612
8901
  "aliases": [],
8613
- "args": {
8614
- "workspaceId": {
8615
- "description": "Workspace ID",
8616
- "name": "workspaceId",
8617
- "required": true
8618
- }
8619
- },
8620
- "description": "List API keys for an enterprise workspace",
8902
+ "args": {},
8903
+ "description": "Get credit usage analytics over time",
8621
8904
  "examples": [
8622
- "<%= config.bin %> enterprise keys list org_abc123",
8623
- "<%= config.bin %> enterprise keys list org_abc123 --json"
8905
+ "<%= config.bin %> enterprise analytics credits",
8906
+ "<%= config.bin %> enterprise analytics credits --period 30d",
8907
+ "<%= config.bin %> enterprise analytics credits --json"
8624
8908
  ],
8625
8909
  "flags": {
8626
8910
  "json": {
@@ -8635,11 +8919,25 @@
8635
8919
  "name": "quiet",
8636
8920
  "allowNo": false,
8637
8921
  "type": "boolean"
8922
+ },
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"
8638
8936
  }
8639
8937
  },
8640
8938
  "hasDynamicHelp": false,
8641
8939
  "hiddenAliases": [],
8642
- "id": "enterprise:keys:list",
8940
+ "id": "enterprise:analytics:credits",
8643
8941
  "pluginAlias": "@sendly/cli",
8644
8942
  "pluginName": "@sendly/cli",
8645
8943
  "pluginType": "core",
@@ -8649,28 +8947,17 @@
8649
8947
  "dist",
8650
8948
  "commands",
8651
8949
  "enterprise",
8652
- "keys",
8653
- "list.js"
8950
+ "analytics",
8951
+ "credits.js"
8654
8952
  ]
8655
8953
  },
8656
- "enterprise:keys:revoke": {
8954
+ "enterprise:analytics:delivery": {
8657
8955
  "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",
8956
+ "args": {},
8957
+ "description": "Get delivery rate analytics by workspace",
8671
8958
  "examples": [
8672
- "<%= config.bin %> enterprise keys revoke org_abc123 key_xyz",
8673
- "<%= config.bin %> enterprise keys revoke org_abc123 key_xyz --yes"
8959
+ "<%= config.bin %> enterprise analytics delivery",
8960
+ "<%= config.bin %> enterprise analytics delivery --json"
8674
8961
  ],
8675
8962
  "flags": {
8676
8963
  "json": {
@@ -8685,18 +8972,11 @@
8685
8972
  "name": "quiet",
8686
8973
  "allowNo": false,
8687
8974
  "type": "boolean"
8688
- },
8689
- "yes": {
8690
- "char": "y",
8691
- "description": "Skip confirmation prompt",
8692
- "name": "yes",
8693
- "allowNo": false,
8694
- "type": "boolean"
8695
8975
  }
8696
8976
  },
8697
8977
  "hasDynamicHelp": false,
8698
8978
  "hiddenAliases": [],
8699
- "id": "enterprise:keys:revoke",
8979
+ "id": "enterprise:analytics:delivery",
8700
8980
  "pluginAlias": "@sendly/cli",
8701
8981
  "pluginName": "@sendly/cli",
8702
8982
  "pluginType": "core",
@@ -8706,23 +8986,18 @@
8706
8986
  "dist",
8707
8987
  "commands",
8708
8988
  "enterprise",
8709
- "keys",
8710
- "revoke.js"
8989
+ "analytics",
8990
+ "delivery.js"
8711
8991
  ]
8712
8992
  },
8713
- "enterprise:quota:get": {
8993
+ "enterprise:analytics:messages": {
8714
8994
  "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",
8995
+ "args": {},
8996
+ "description": "Get message analytics across all workspaces",
8723
8997
  "examples": [
8724
- "<%= config.bin %> enterprise quota get org_abc123",
8725
- "<%= config.bin %> enterprise quota get org_abc123 --json"
8998
+ "<%= config.bin %> enterprise analytics messages",
8999
+ "<%= config.bin %> enterprise analytics messages --period 30d",
9000
+ "<%= config.bin %> enterprise analytics messages --period 90d --json"
8726
9001
  ],
8727
9002
  "flags": {
8728
9003
  "json": {
@@ -8737,11 +9012,25 @@
8737
9012
  "name": "quiet",
8738
9013
  "allowNo": false,
8739
9014
  "type": "boolean"
9015
+ },
9016
+ "period": {
9017
+ "char": "p",
9018
+ "description": "Time period (7d, 30d, 90d)",
9019
+ "name": "period",
9020
+ "default": "7d",
9021
+ "hasDynamicHelp": false,
9022
+ "multiple": false,
9023
+ "options": [
9024
+ "7d",
9025
+ "30d",
9026
+ "90d"
9027
+ ],
9028
+ "type": "option"
8740
9029
  }
8741
9030
  },
8742
9031
  "hasDynamicHelp": false,
8743
9032
  "hiddenAliases": [],
8744
- "id": "enterprise:quota:get",
9033
+ "id": "enterprise:analytics:messages",
8745
9034
  "pluginAlias": "@sendly/cli",
8746
9035
  "pluginName": "@sendly/cli",
8747
9036
  "pluginType": "core",
@@ -8751,19 +9040,272 @@
8751
9040
  "dist",
8752
9041
  "commands",
8753
9042
  "enterprise",
8754
- "quota",
8755
- "get.js"
9043
+ "analytics",
9044
+ "messages.js"
8756
9045
  ]
8757
9046
  },
8758
- "enterprise:quota:set": {
9047
+ "enterprise:analytics:overview": {
8759
9048
  "aliases": [],
8760
- "args": {
8761
- "workspaceId": {
8762
- "description": "Workspace ID",
8763
- "name": "workspaceId",
8764
- "required": true
8765
- }
8766
- },
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
+ },
8767
9309
  "description": "Set message quota for an enterprise workspace",
8768
9310
  "examples": [
8769
9311
  "<%= config.bin %> enterprise quota set org_abc123 --daily 1000",
@@ -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.1"
10818
+ "version": "3.38.0"
9848
10819
  }