@sendly/cli 3.20.0 → 3.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/commands/conversations/close.d.ts +13 -0
  2. package/dist/commands/conversations/close.js +43 -0
  3. package/dist/commands/conversations/get.d.ts +15 -0
  4. package/dist/commands/conversations/get.js +87 -0
  5. package/dist/commands/conversations/index.d.ts +10 -0
  6. package/dist/commands/conversations/index.js +79 -0
  7. package/dist/commands/conversations/list.d.ts +13 -0
  8. package/dist/commands/conversations/list.js +99 -0
  9. package/dist/commands/conversations/mark-read.d.ts +13 -0
  10. package/dist/commands/conversations/mark-read.js +42 -0
  11. package/dist/commands/conversations/reopen.d.ts +13 -0
  12. package/dist/commands/conversations/reopen.js +43 -0
  13. package/dist/commands/conversations/reply.d.ts +14 -0
  14. package/dist/commands/conversations/reply.js +47 -0
  15. package/dist/commands/drafts/approve.d.ts +13 -0
  16. package/dist/commands/drafts/approve.js +43 -0
  17. package/dist/commands/drafts/create.d.ts +14 -0
  18. package/dist/commands/drafts/create.js +50 -0
  19. package/dist/commands/drafts/index.d.ts +10 -0
  20. package/dist/commands/drafts/index.js +66 -0
  21. package/dist/commands/drafts/list.d.ts +12 -0
  22. package/dist/commands/drafts/list.js +80 -0
  23. package/dist/commands/drafts/reject.d.ts +14 -0
  24. package/dist/commands/drafts/reject.js +51 -0
  25. package/dist/commands/labels/create.d.ts +15 -0
  26. package/dist/commands/labels/create.js +58 -0
  27. package/dist/commands/labels/delete.d.ts +13 -0
  28. package/dist/commands/labels/delete.js +41 -0
  29. package/dist/commands/labels/index.d.ts +10 -0
  30. package/dist/commands/labels/index.js +59 -0
  31. package/dist/commands/labels/list.d.ts +10 -0
  32. package/dist/commands/labels/list.js +59 -0
  33. package/dist/commands/sms/schedule.js +2 -2
  34. package/oclif.manifest.json +1553 -778
  35. package/package.json +1 -1
@@ -342,18 +342,25 @@
342
342
  "whoami.js"
343
343
  ]
344
344
  },
345
- "campaigns:cancel": {
345
+ "config:get": {
346
346
  "aliases": [],
347
347
  "args": {
348
- "id": {
349
- "description": "Campaign ID",
350
- "name": "id",
348
+ "key": {
349
+ "description": "Configuration key",
350
+ "name": "key",
351
+ "options": [
352
+ "environment",
353
+ "baseUrl",
354
+ "defaultFormat",
355
+ "colorEnabled"
356
+ ],
351
357
  "required": true
352
358
  }
353
359
  },
354
- "description": "Cancel a scheduled campaign",
360
+ "description": "Get a configuration value",
355
361
  "examples": [
356
- "<%= config.bin %> campaigns cancel cmp_xxx"
362
+ "<%= config.bin %> config get environment",
363
+ "<%= config.bin %> config get baseUrl"
357
364
  ],
358
365
  "flags": {
359
366
  "json": {
@@ -372,32 +379,84 @@
372
379
  },
373
380
  "hasDynamicHelp": false,
374
381
  "hiddenAliases": [],
375
- "id": "campaigns:cancel",
382
+ "id": "config:get",
376
383
  "pluginAlias": "@sendly/cli",
377
384
  "pluginName": "@sendly/cli",
378
385
  "pluginType": "core",
379
386
  "strict": true,
387
+ "enableJsonFlag": false,
380
388
  "isESM": true,
381
389
  "relativePath": [
382
390
  "dist",
383
391
  "commands",
384
- "campaigns",
385
- "cancel.js"
392
+ "config",
393
+ "get.js"
386
394
  ]
387
395
  },
388
- "campaigns:clone": {
396
+ "config:list": {
397
+ "aliases": [],
398
+ "args": {},
399
+ "description": "List all configuration values",
400
+ "examples": [
401
+ "<%= config.bin %> config list",
402
+ "<%= config.bin %> config list --json"
403
+ ],
404
+ "flags": {
405
+ "json": {
406
+ "description": "Output in JSON format",
407
+ "name": "json",
408
+ "allowNo": false,
409
+ "type": "boolean"
410
+ },
411
+ "quiet": {
412
+ "char": "q",
413
+ "description": "Minimal output",
414
+ "name": "quiet",
415
+ "allowNo": false,
416
+ "type": "boolean"
417
+ }
418
+ },
419
+ "hasDynamicHelp": false,
420
+ "hiddenAliases": [],
421
+ "id": "config:list",
422
+ "pluginAlias": "@sendly/cli",
423
+ "pluginName": "@sendly/cli",
424
+ "pluginType": "core",
425
+ "strict": true,
426
+ "enableJsonFlag": false,
427
+ "isESM": true,
428
+ "relativePath": [
429
+ "dist",
430
+ "commands",
431
+ "config",
432
+ "list.js"
433
+ ]
434
+ },
435
+ "config:set": {
389
436
  "aliases": [],
390
437
  "args": {
391
- "id": {
392
- "description": "Campaign ID to clone",
393
- "name": "id",
438
+ "key": {
439
+ "description": "Configuration key",
440
+ "name": "key",
441
+ "options": [
442
+ "environment",
443
+ "baseUrl",
444
+ "defaultFormat",
445
+ "colorEnabled"
446
+ ],
447
+ "required": true
448
+ },
449
+ "value": {
450
+ "description": "Configuration value",
451
+ "name": "value",
394
452
  "required": true
395
453
  }
396
454
  },
397
- "description": "Clone an existing campaign",
455
+ "description": "Set a configuration value",
398
456
  "examples": [
399
- "<%= config.bin %> campaigns clone cmp_xxx",
400
- "<%= config.bin %> campaigns clone cmp_xxx --name \"Copy of Sale\""
457
+ "<%= config.bin %> config set environment live",
458
+ "<%= config.bin %> config set defaultFormat json",
459
+ "<%= config.bin %> config set baseUrl https://api.sendly.live"
401
460
  ],
402
461
  "flags": {
403
462
  "json": {
@@ -412,39 +471,33 @@
412
471
  "name": "quiet",
413
472
  "allowNo": false,
414
473
  "type": "boolean"
415
- },
416
- "name": {
417
- "char": "n",
418
- "description": "Name for the cloned campaign",
419
- "name": "name",
420
- "hasDynamicHelp": false,
421
- "multiple": false,
422
- "type": "option"
423
474
  }
424
475
  },
425
476
  "hasDynamicHelp": false,
426
477
  "hiddenAliases": [],
427
- "id": "campaigns:clone",
478
+ "id": "config:set",
428
479
  "pluginAlias": "@sendly/cli",
429
480
  "pluginName": "@sendly/cli",
430
481
  "pluginType": "core",
431
482
  "strict": true,
483
+ "enableJsonFlag": false,
432
484
  "isESM": true,
433
485
  "relativePath": [
434
486
  "dist",
435
487
  "commands",
436
- "campaigns",
437
- "clone.js"
488
+ "config",
489
+ "set.js"
438
490
  ]
439
491
  },
440
- "campaigns:create": {
492
+ "contacts:create": {
441
493
  "aliases": [],
442
494
  "args": {},
443
- "description": "Create a new campaign",
495
+ "description": "Create a new contact",
444
496
  "examples": [
445
- "<%= config.bin %> campaigns create --name \"Welcome\" --text \"Hello {{name}}!\" --list lst_xxx",
446
- "<%= config.bin %> campaigns create --name \"Sale\" --text \"50% off today!\" --list lst_customers --list lst_subscribers",
447
- "<%= config.bin %> campaigns create --name \"OTP\" --template tpl_preset_otp --list lst_xxx"
497
+ "<%= config.bin %> contacts create --phone +15551234567",
498
+ "<%= config.bin %> contacts create --phone +15551234567 --name \"John Doe\"",
499
+ "<%= config.bin %> contacts create --phone +15551234567 --name \"John\" --email john@example.com",
500
+ "<%= config.bin %> contacts create --phone +15551234567 --json"
448
501
  ],
449
502
  "flags": {
450
503
  "json": {
@@ -460,43 +513,35 @@
460
513
  "allowNo": false,
461
514
  "type": "boolean"
462
515
  },
463
- "name": {
464
- "char": "n",
465
- "description": "Campaign name",
466
- "name": "name",
516
+ "phone": {
517
+ "char": "p",
518
+ "description": "Phone number in E.164 format (e.g., +15551234567)",
519
+ "name": "phone",
467
520
  "required": true,
468
521
  "hasDynamicHelp": false,
469
522
  "multiple": false,
470
523
  "type": "option"
471
524
  },
472
- "text": {
473
- "char": "t",
474
- "description": "Message text (supports {{variables}})",
475
- "name": "text",
525
+ "name": {
526
+ "char": "n",
527
+ "description": "Contact name",
528
+ "name": "name",
476
529
  "hasDynamicHelp": false,
477
530
  "multiple": false,
478
531
  "type": "option"
479
532
  },
480
- "template": {
481
- "description": "Template ID to use instead of text",
482
- "name": "template",
533
+ "email": {
534
+ "char": "e",
535
+ "description": "Contact email",
536
+ "name": "email",
483
537
  "hasDynamicHelp": false,
484
538
  "multiple": false,
485
539
  "type": "option"
486
- },
487
- "list": {
488
- "char": "l",
489
- "description": "Contact list ID (can specify multiple)",
490
- "name": "list",
491
- "required": true,
492
- "hasDynamicHelp": false,
493
- "multiple": true,
494
- "type": "option"
495
540
  }
496
541
  },
497
542
  "hasDynamicHelp": false,
498
543
  "hiddenAliases": [],
499
- "id": "campaigns:create",
544
+ "id": "contacts:create",
500
545
  "pluginAlias": "@sendly/cli",
501
546
  "pluginName": "@sendly/cli",
502
547
  "pluginType": "core",
@@ -505,23 +550,23 @@
505
550
  "relativePath": [
506
551
  "dist",
507
552
  "commands",
508
- "campaigns",
553
+ "contacts",
509
554
  "create.js"
510
555
  ]
511
556
  },
512
- "campaigns:delete": {
557
+ "contacts:delete": {
513
558
  "aliases": [],
514
559
  "args": {
515
560
  "id": {
516
- "description": "Campaign ID",
561
+ "description": "Contact ID to delete",
517
562
  "name": "id",
518
563
  "required": true
519
564
  }
520
565
  },
521
- "description": "Delete a campaign",
566
+ "description": "Delete a contact",
522
567
  "examples": [
523
- "<%= config.bin %> campaigns delete cmp_xxx",
524
- "<%= config.bin %> campaigns delete cmp_xxx --yes"
568
+ "<%= config.bin %> contacts delete cnt_xxx",
569
+ "<%= config.bin %> contacts delete cnt_xxx --yes"
525
570
  ],
526
571
  "flags": {
527
572
  "json": {
@@ -547,7 +592,7 @@
547
592
  },
548
593
  "hasDynamicHelp": false,
549
594
  "hiddenAliases": [],
550
- "id": "campaigns:delete",
595
+ "id": "contacts:delete",
551
596
  "pluginAlias": "@sendly/cli",
552
597
  "pluginName": "@sendly/cli",
553
598
  "pluginType": "core",
@@ -556,23 +601,23 @@
556
601
  "relativePath": [
557
602
  "dist",
558
603
  "commands",
559
- "campaigns",
604
+ "contacts",
560
605
  "delete.js"
561
606
  ]
562
607
  },
563
- "campaigns:get": {
608
+ "contacts:get": {
564
609
  "aliases": [],
565
610
  "args": {
566
611
  "id": {
567
- "description": "Campaign ID",
612
+ "description": "Contact ID",
568
613
  "name": "id",
569
614
  "required": true
570
615
  }
571
616
  },
572
- "description": "Get campaign details",
617
+ "description": "Get contact details",
573
618
  "examples": [
574
- "<%= config.bin %> campaigns get cmp_xxx",
575
- "<%= config.bin %> campaigns get cmp_xxx --json"
619
+ "<%= config.bin %> contacts get cnt_xxx",
620
+ "<%= config.bin %> contacts get cnt_xxx --json"
576
621
  ],
577
622
  "flags": {
578
623
  "json": {
@@ -591,7 +636,7 @@
591
636
  },
592
637
  "hasDynamicHelp": false,
593
638
  "hiddenAliases": [],
594
- "id": "campaigns:get",
639
+ "id": "contacts:get",
595
640
  "pluginAlias": "@sendly/cli",
596
641
  "pluginName": "@sendly/cli",
597
642
  "pluginType": "core",
@@ -600,19 +645,24 @@
600
645
  "relativePath": [
601
646
  "dist",
602
647
  "commands",
603
- "campaigns",
648
+ "contacts",
604
649
  "get.js"
605
650
  ]
606
651
  },
607
- "campaigns:list": {
652
+ "contacts:import": {
608
653
  "aliases": [],
609
- "args": {},
610
- "description": "List campaigns",
654
+ "args": {
655
+ "file": {
656
+ "description": "Path to CSV file (columns: phone, name, email)",
657
+ "name": "file",
658
+ "required": true
659
+ }
660
+ },
661
+ "description": "Import contacts from a CSV file",
611
662
  "examples": [
612
- "<%= config.bin %> campaigns list",
613
- "<%= config.bin %> campaigns list --status draft",
614
- "<%= config.bin %> campaigns list --limit 10",
615
- "<%= config.bin %> campaigns list --json"
663
+ "<%= config.bin %> contacts import contacts.csv",
664
+ "<%= config.bin %> contacts import contacts.csv --list lst_xxx",
665
+ "<%= config.bin %> contacts import contacts.csv --list lst_xxx --json"
616
666
  ],
617
667
  "flags": {
618
668
  "json": {
@@ -628,27 +678,10 @@
628
678
  "allowNo": false,
629
679
  "type": "boolean"
630
680
  },
631
- "limit": {
681
+ "list": {
632
682
  "char": "l",
633
- "description": "Number of campaigns to show",
634
- "name": "limit",
635
- "default": 20,
636
- "hasDynamicHelp": false,
637
- "multiple": false,
638
- "type": "option"
639
- },
640
- "offset": {
641
- "description": "Offset for pagination",
642
- "name": "offset",
643
- "default": 0,
644
- "hasDynamicHelp": false,
645
- "multiple": false,
646
- "type": "option"
647
- },
648
- "status": {
649
- "char": "s",
650
- "description": "Filter by status (draft, scheduled, sending, sent, cancelled)",
651
- "name": "status",
683
+ "description": "Contact list ID to add imported contacts to",
684
+ "name": "list",
652
685
  "hasDynamicHelp": false,
653
686
  "multiple": false,
654
687
  "type": "option"
@@ -656,7 +689,7 @@
656
689
  },
657
690
  "hasDynamicHelp": false,
658
691
  "hiddenAliases": [],
659
- "id": "campaigns:list",
692
+ "id": "contacts:import",
660
693
  "pluginAlias": "@sendly/cli",
661
694
  "pluginName": "@sendly/cli",
662
695
  "pluginType": "core",
@@ -665,23 +698,20 @@
665
698
  "relativePath": [
666
699
  "dist",
667
700
  "commands",
668
- "campaigns",
669
- "list.js"
701
+ "contacts",
702
+ "import.js"
670
703
  ]
671
704
  },
672
- "campaigns:preview": {
705
+ "contacts:list": {
673
706
  "aliases": [],
674
- "args": {
675
- "id": {
676
- "description": "Campaign ID",
677
- "name": "id",
678
- "required": true
679
- }
680
- },
681
- "description": "Preview campaign cost and recipients",
707
+ "args": {},
708
+ "description": "List contacts",
682
709
  "examples": [
683
- "<%= config.bin %> campaigns preview cmp_xxx",
684
- "<%= config.bin %> campaigns preview cmp_xxx --json"
710
+ "<%= config.bin %> contacts list",
711
+ "<%= config.bin %> contacts list --search john",
712
+ "<%= config.bin %> contacts list --list lst_xxx",
713
+ "<%= config.bin %> contacts list --limit 50",
714
+ "<%= config.bin %> contacts list --json"
685
715
  ],
686
716
  "flags": {
687
717
  "json": {
@@ -696,36 +726,69 @@
696
726
  "name": "quiet",
697
727
  "allowNo": false,
698
728
  "type": "boolean"
699
- }
700
- },
701
- "hasDynamicHelp": false,
702
- "hiddenAliases": [],
703
- "id": "campaigns:preview",
704
- "pluginAlias": "@sendly/cli",
705
- "pluginName": "@sendly/cli",
706
- "pluginType": "core",
729
+ },
730
+ "limit": {
731
+ "char": "l",
732
+ "description": "Number of contacts to show",
733
+ "name": "limit",
734
+ "default": 50,
735
+ "hasDynamicHelp": false,
736
+ "multiple": false,
737
+ "type": "option"
738
+ },
739
+ "offset": {
740
+ "description": "Offset for pagination",
741
+ "name": "offset",
742
+ "default": 0,
743
+ "hasDynamicHelp": false,
744
+ "multiple": false,
745
+ "type": "option"
746
+ },
747
+ "search": {
748
+ "char": "s",
749
+ "description": "Search by name, phone, or email",
750
+ "name": "search",
751
+ "hasDynamicHelp": false,
752
+ "multiple": false,
753
+ "type": "option"
754
+ },
755
+ "list": {
756
+ "description": "Filter by contact list ID",
757
+ "name": "list",
758
+ "hasDynamicHelp": false,
759
+ "multiple": false,
760
+ "type": "option"
761
+ }
762
+ },
763
+ "hasDynamicHelp": false,
764
+ "hiddenAliases": [],
765
+ "id": "contacts:list",
766
+ "pluginAlias": "@sendly/cli",
767
+ "pluginName": "@sendly/cli",
768
+ "pluginType": "core",
707
769
  "strict": true,
708
770
  "isESM": true,
709
771
  "relativePath": [
710
772
  "dist",
711
773
  "commands",
712
- "campaigns",
713
- "preview.js"
774
+ "contacts",
775
+ "list.js"
714
776
  ]
715
777
  },
716
- "campaigns:schedule": {
778
+ "contacts:update": {
717
779
  "aliases": [],
718
780
  "args": {
719
781
  "id": {
720
- "description": "Campaign ID",
782
+ "description": "Contact ID",
721
783
  "name": "id",
722
784
  "required": true
723
785
  }
724
786
  },
725
- "description": "Schedule a campaign for later",
787
+ "description": "Update a contact",
726
788
  "examples": [
727
- "<%= config.bin %> campaigns schedule cmp_xxx --at \"2024-01-15T10:00:00Z\"",
728
- "<%= config.bin %> campaigns schedule cmp_xxx --at \"2024-01-15T10:00:00\" --timezone \"America/New_York\""
789
+ "<%= config.bin %> contacts update cnt_xxx --name \"John Doe\"",
790
+ "<%= config.bin %> contacts update cnt_xxx --email john@example.com",
791
+ "<%= config.bin %> contacts update cnt_xxx --name \"John\" --email john@example.com"
729
792
  ],
730
793
  "flags": {
731
794
  "json": {
@@ -741,18 +804,18 @@
741
804
  "allowNo": false,
742
805
  "type": "boolean"
743
806
  },
744
- "at": {
745
- "description": "When to send (ISO 8601 datetime)",
746
- "name": "at",
747
- "required": true,
807
+ "name": {
808
+ "char": "n",
809
+ "description": "Contact name",
810
+ "name": "name",
748
811
  "hasDynamicHelp": false,
749
812
  "multiple": false,
750
813
  "type": "option"
751
814
  },
752
- "timezone": {
753
- "char": "z",
754
- "description": "Timezone (e.g., \"America/New_York\")",
755
- "name": "timezone",
815
+ "email": {
816
+ "char": "e",
817
+ "description": "Contact email",
818
+ "name": "email",
756
819
  "hasDynamicHelp": false,
757
820
  "multiple": false,
758
821
  "type": "option"
@@ -760,7 +823,7 @@
760
823
  },
761
824
  "hasDynamicHelp": false,
762
825
  "hiddenAliases": [],
763
- "id": "campaigns:schedule",
826
+ "id": "contacts:update",
764
827
  "pluginAlias": "@sendly/cli",
765
828
  "pluginName": "@sendly/cli",
766
829
  "pluginType": "core",
@@ -769,23 +832,23 @@
769
832
  "relativePath": [
770
833
  "dist",
771
834
  "commands",
772
- "campaigns",
773
- "schedule.js"
835
+ "contacts",
836
+ "update.js"
774
837
  ]
775
838
  },
776
- "campaigns:send": {
839
+ "conversations:close": {
777
840
  "aliases": [],
778
841
  "args": {
779
842
  "id": {
780
- "description": "Campaign ID",
843
+ "description": "Conversation ID",
781
844
  "name": "id",
782
845
  "required": true
783
846
  }
784
847
  },
785
- "description": "Send a campaign immediately",
848
+ "description": "Close a conversation",
786
849
  "examples": [
787
- "<%= config.bin %> campaigns send cmp_xxx",
788
- "<%= config.bin %> campaigns send cmp_xxx --yes"
850
+ "<%= config.bin %> conversations close conv_abc123",
851
+ "<%= config.bin %> conversations close conv_abc123 --json"
789
852
  ],
790
853
  "flags": {
791
854
  "json": {
@@ -800,18 +863,11 @@
800
863
  "name": "quiet",
801
864
  "allowNo": false,
802
865
  "type": "boolean"
803
- },
804
- "yes": {
805
- "char": "y",
806
- "description": "Skip confirmation prompt",
807
- "name": "yes",
808
- "allowNo": false,
809
- "type": "boolean"
810
866
  }
811
867
  },
812
868
  "hasDynamicHelp": false,
813
869
  "hiddenAliases": [],
814
- "id": "campaigns:send",
870
+ "id": "conversations:close",
815
871
  "pluginAlias": "@sendly/cli",
816
872
  "pluginName": "@sendly/cli",
817
873
  "pluginType": "core",
@@ -820,25 +876,25 @@
820
876
  "relativePath": [
821
877
  "dist",
822
878
  "commands",
823
- "campaigns",
824
- "send.js"
879
+ "conversations",
880
+ "close.js"
825
881
  ]
826
882
  },
827
- "campaigns:update": {
883
+ "conversations:get": {
828
884
  "aliases": [],
829
885
  "args": {
830
886
  "id": {
831
- "description": "Campaign ID",
887
+ "description": "Conversation ID",
832
888
  "name": "id",
833
889
  "required": true
834
890
  }
835
891
  },
836
- "description": "Update a campaign",
892
+ "description": "Get details of a conversation",
837
893
  "examples": [
838
- "<%= config.bin %> campaigns update cmp_xxx --name \"New Name\"",
839
- "<%= config.bin %> campaigns update cmp_xxx --text \"Updated message\"",
840
- "<%= config.bin %> campaigns update cmp_xxx --list lst_xxx",
841
- "<%= config.bin %> campaigns update cmp_xxx --name \"Sale\" --text \"50% off!\""
894
+ "<%= config.bin %> conversations get conv_abc123",
895
+ "<%= config.bin %> conversations get conv_abc123 --messages",
896
+ "<%= config.bin %> conversations get conv_abc123 --messages --limit 10",
897
+ "<%= config.bin %> conversations get conv_abc123 --json"
842
898
  ],
843
899
  "flags": {
844
900
  "json": {
@@ -854,41 +910,64 @@
854
910
  "allowNo": false,
855
911
  "type": "boolean"
856
912
  },
857
- "name": {
858
- "char": "n",
859
- "description": "Campaign name",
860
- "name": "name",
861
- "hasDynamicHelp": false,
862
- "multiple": false,
863
- "type": "option"
864
- },
865
- "text": {
866
- "char": "t",
867
- "description": "Message text (supports {{variables}})",
868
- "name": "text",
869
- "hasDynamicHelp": false,
870
- "multiple": false,
871
- "type": "option"
913
+ "messages": {
914
+ "char": "m",
915
+ "description": "Include message thread",
916
+ "name": "messages",
917
+ "allowNo": false,
918
+ "type": "boolean"
872
919
  },
873
- "list": {
920
+ "limit": {
874
921
  "char": "l",
875
- "description": "Contact list ID",
876
- "name": "list",
922
+ "description": "Number of messages to include (requires --messages)",
923
+ "name": "limit",
924
+ "default": 50,
877
925
  "hasDynamicHelp": false,
878
926
  "multiple": false,
879
927
  "type": "option"
928
+ }
929
+ },
930
+ "hasDynamicHelp": false,
931
+ "hiddenAliases": [],
932
+ "id": "conversations:get",
933
+ "pluginAlias": "@sendly/cli",
934
+ "pluginName": "@sendly/cli",
935
+ "pluginType": "core",
936
+ "strict": true,
937
+ "isESM": true,
938
+ "relativePath": [
939
+ "dist",
940
+ "commands",
941
+ "conversations",
942
+ "get.js"
943
+ ]
944
+ },
945
+ "conversations": {
946
+ "aliases": [],
947
+ "args": {},
948
+ "description": "List conversations (default subcommand)",
949
+ "examples": [
950
+ "<%= config.bin %> conversations",
951
+ "<%= config.bin %> conversations --json"
952
+ ],
953
+ "flags": {
954
+ "json": {
955
+ "description": "Output in JSON format",
956
+ "name": "json",
957
+ "allowNo": false,
958
+ "type": "boolean"
880
959
  },
881
- "template": {
882
- "description": "Template ID",
883
- "name": "template",
884
- "hasDynamicHelp": false,
885
- "multiple": false,
886
- "type": "option"
960
+ "quiet": {
961
+ "char": "q",
962
+ "description": "Minimal output",
963
+ "name": "quiet",
964
+ "allowNo": false,
965
+ "type": "boolean"
887
966
  }
888
967
  },
889
968
  "hasDynamicHelp": false,
890
969
  "hiddenAliases": [],
891
- "id": "campaigns:update",
970
+ "id": "conversations",
892
971
  "pluginAlias": "@sendly/cli",
893
972
  "pluginName": "@sendly/cli",
894
973
  "pluginType": "core",
@@ -897,19 +976,19 @@
897
976
  "relativePath": [
898
977
  "dist",
899
978
  "commands",
900
- "campaigns",
901
- "update.js"
979
+ "conversations",
980
+ "index.js"
902
981
  ]
903
982
  },
904
- "contacts:create": {
983
+ "conversations:list": {
905
984
  "aliases": [],
906
985
  "args": {},
907
- "description": "Create a new contact",
986
+ "description": "List conversations",
908
987
  "examples": [
909
- "<%= config.bin %> contacts create --phone +15551234567",
910
- "<%= config.bin %> contacts create --phone +15551234567 --name \"John Doe\"",
911
- "<%= config.bin %> contacts create --phone +15551234567 --name \"John\" --email john@example.com",
912
- "<%= config.bin %> contacts create --phone +15551234567 --json"
988
+ "<%= config.bin %> conversations list",
989
+ "<%= config.bin %> conversations list --status active",
990
+ "<%= config.bin %> conversations list --limit 10",
991
+ "<%= config.bin %> conversations list --json"
913
992
  ],
914
993
  "flags": {
915
994
  "json": {
@@ -925,35 +1004,38 @@
925
1004
  "allowNo": false,
926
1005
  "type": "boolean"
927
1006
  },
928
- "phone": {
929
- "char": "p",
930
- "description": "Phone number in E.164 format (e.g., +15551234567)",
931
- "name": "phone",
932
- "required": true,
1007
+ "limit": {
1008
+ "char": "l",
1009
+ "description": "Number of conversations per page",
1010
+ "name": "limit",
1011
+ "default": 20,
933
1012
  "hasDynamicHelp": false,
934
1013
  "multiple": false,
935
1014
  "type": "option"
936
1015
  },
937
- "name": {
938
- "char": "n",
939
- "description": "Contact name",
940
- "name": "name",
1016
+ "offset": {
1017
+ "description": "Offset from start",
1018
+ "name": "offset",
941
1019
  "hasDynamicHelp": false,
942
1020
  "multiple": false,
943
1021
  "type": "option"
944
1022
  },
945
- "email": {
946
- "char": "e",
947
- "description": "Contact email",
948
- "name": "email",
1023
+ "status": {
1024
+ "char": "s",
1025
+ "description": "Filter by status (active, closed)",
1026
+ "name": "status",
949
1027
  "hasDynamicHelp": false,
950
1028
  "multiple": false,
1029
+ "options": [
1030
+ "active",
1031
+ "closed"
1032
+ ],
951
1033
  "type": "option"
952
1034
  }
953
1035
  },
954
1036
  "hasDynamicHelp": false,
955
1037
  "hiddenAliases": [],
956
- "id": "contacts:create",
1038
+ "id": "conversations:list",
957
1039
  "pluginAlias": "@sendly/cli",
958
1040
  "pluginName": "@sendly/cli",
959
1041
  "pluginType": "core",
@@ -962,23 +1044,23 @@
962
1044
  "relativePath": [
963
1045
  "dist",
964
1046
  "commands",
965
- "contacts",
966
- "create.js"
1047
+ "conversations",
1048
+ "list.js"
967
1049
  ]
968
1050
  },
969
- "contacts:delete": {
1051
+ "conversations:mark-read": {
970
1052
  "aliases": [],
971
1053
  "args": {
972
1054
  "id": {
973
- "description": "Contact ID to delete",
1055
+ "description": "Conversation ID",
974
1056
  "name": "id",
975
1057
  "required": true
976
1058
  }
977
1059
  },
978
- "description": "Delete a contact",
1060
+ "description": "Mark a conversation as read",
979
1061
  "examples": [
980
- "<%= config.bin %> contacts delete cnt_xxx",
981
- "<%= config.bin %> contacts delete cnt_xxx --yes"
1062
+ "<%= config.bin %> conversations mark-read conv_abc123",
1063
+ "<%= config.bin %> conversations mark-read conv_abc123 --json"
982
1064
  ],
983
1065
  "flags": {
984
1066
  "json": {
@@ -993,18 +1075,11 @@
993
1075
  "name": "quiet",
994
1076
  "allowNo": false,
995
1077
  "type": "boolean"
996
- },
997
- "yes": {
998
- "char": "y",
999
- "description": "Skip confirmation prompt",
1000
- "name": "yes",
1001
- "allowNo": false,
1002
- "type": "boolean"
1003
1078
  }
1004
1079
  },
1005
1080
  "hasDynamicHelp": false,
1006
1081
  "hiddenAliases": [],
1007
- "id": "contacts:delete",
1082
+ "id": "conversations:mark-read",
1008
1083
  "pluginAlias": "@sendly/cli",
1009
1084
  "pluginName": "@sendly/cli",
1010
1085
  "pluginType": "core",
@@ -1013,23 +1088,23 @@
1013
1088
  "relativePath": [
1014
1089
  "dist",
1015
1090
  "commands",
1016
- "contacts",
1017
- "delete.js"
1091
+ "conversations",
1092
+ "mark-read.js"
1018
1093
  ]
1019
1094
  },
1020
- "contacts:get": {
1095
+ "conversations:reopen": {
1021
1096
  "aliases": [],
1022
1097
  "args": {
1023
1098
  "id": {
1024
- "description": "Contact ID",
1099
+ "description": "Conversation ID",
1025
1100
  "name": "id",
1026
1101
  "required": true
1027
1102
  }
1028
1103
  },
1029
- "description": "Get contact details",
1104
+ "description": "Reopen a closed conversation",
1030
1105
  "examples": [
1031
- "<%= config.bin %> contacts get cnt_xxx",
1032
- "<%= config.bin %> contacts get cnt_xxx --json"
1106
+ "<%= config.bin %> conversations reopen conv_abc123",
1107
+ "<%= config.bin %> conversations reopen conv_abc123 --json"
1033
1108
  ],
1034
1109
  "flags": {
1035
1110
  "json": {
@@ -1048,7 +1123,7 @@
1048
1123
  },
1049
1124
  "hasDynamicHelp": false,
1050
1125
  "hiddenAliases": [],
1051
- "id": "contacts:get",
1126
+ "id": "conversations:reopen",
1052
1127
  "pluginAlias": "@sendly/cli",
1053
1128
  "pluginName": "@sendly/cli",
1054
1129
  "pluginType": "core",
@@ -1057,24 +1132,28 @@
1057
1132
  "relativePath": [
1058
1133
  "dist",
1059
1134
  "commands",
1060
- "contacts",
1061
- "get.js"
1135
+ "conversations",
1136
+ "reopen.js"
1062
1137
  ]
1063
1138
  },
1064
- "contacts:import": {
1139
+ "conversations:reply": {
1065
1140
  "aliases": [],
1066
1141
  "args": {
1067
- "file": {
1068
- "description": "Path to CSV file (columns: phone, name, email)",
1069
- "name": "file",
1142
+ "id": {
1143
+ "description": "Conversation ID",
1144
+ "name": "id",
1145
+ "required": true
1146
+ },
1147
+ "text": {
1148
+ "description": "Reply message text",
1149
+ "name": "text",
1070
1150
  "required": true
1071
1151
  }
1072
1152
  },
1073
- "description": "Import contacts from a CSV file",
1153
+ "description": "Send a reply in a conversation",
1074
1154
  "examples": [
1075
- "<%= config.bin %> contacts import contacts.csv",
1076
- "<%= config.bin %> contacts import contacts.csv --list lst_xxx",
1077
- "<%= config.bin %> contacts import contacts.csv --list lst_xxx --json"
1155
+ "<%= config.bin %> conversations reply conv_abc123 \"Thanks for reaching out!\"",
1156
+ "<%= config.bin %> conversations reply conv_abc123 \"Got it\" --json"
1078
1157
  ],
1079
1158
  "flags": {
1080
1159
  "json": {
@@ -1089,19 +1168,11 @@
1089
1168
  "name": "quiet",
1090
1169
  "allowNo": false,
1091
1170
  "type": "boolean"
1092
- },
1093
- "list": {
1094
- "char": "l",
1095
- "description": "Contact list ID to add imported contacts to",
1096
- "name": "list",
1097
- "hasDynamicHelp": false,
1098
- "multiple": false,
1099
- "type": "option"
1100
1171
  }
1101
1172
  },
1102
1173
  "hasDynamicHelp": false,
1103
1174
  "hiddenAliases": [],
1104
- "id": "contacts:import",
1175
+ "id": "conversations:reply",
1105
1176
  "pluginAlias": "@sendly/cli",
1106
1177
  "pluginName": "@sendly/cli",
1107
1178
  "pluginType": "core",
@@ -1110,21 +1181,429 @@
1110
1181
  "relativePath": [
1111
1182
  "dist",
1112
1183
  "commands",
1113
- "contacts",
1114
- "import.js"
1184
+ "conversations",
1185
+ "reply.js"
1115
1186
  ]
1116
1187
  },
1117
- "contacts:list": {
1188
+ "credits:balance": {
1118
1189
  "aliases": [],
1119
1190
  "args": {},
1120
- "description": "List contacts",
1191
+ "description": "Check your credit balance",
1121
1192
  "examples": [
1122
- "<%= config.bin %> contacts list",
1123
- "<%= config.bin %> contacts list --search john",
1124
- "<%= config.bin %> contacts list --list lst_xxx",
1125
- "<%= config.bin %> contacts list --limit 50",
1126
- "<%= config.bin %> contacts list --json"
1127
- ],
1193
+ "<%= config.bin %> credits balance",
1194
+ "<%= config.bin %> credits balance --json"
1195
+ ],
1196
+ "flags": {
1197
+ "json": {
1198
+ "description": "Output in JSON format",
1199
+ "name": "json",
1200
+ "allowNo": false,
1201
+ "type": "boolean"
1202
+ },
1203
+ "quiet": {
1204
+ "char": "q",
1205
+ "description": "Minimal output",
1206
+ "name": "quiet",
1207
+ "allowNo": false,
1208
+ "type": "boolean"
1209
+ }
1210
+ },
1211
+ "hasDynamicHelp": false,
1212
+ "hiddenAliases": [],
1213
+ "id": "credits:balance",
1214
+ "pluginAlias": "@sendly/cli",
1215
+ "pluginName": "@sendly/cli",
1216
+ "pluginType": "core",
1217
+ "strict": true,
1218
+ "isESM": true,
1219
+ "relativePath": [
1220
+ "dist",
1221
+ "commands",
1222
+ "credits",
1223
+ "balance.js"
1224
+ ]
1225
+ },
1226
+ "credits:history": {
1227
+ "aliases": [],
1228
+ "args": {},
1229
+ "description": "View credit transaction history",
1230
+ "examples": [
1231
+ "<%= config.bin %> credits history",
1232
+ "<%= config.bin %> credits history --limit 10",
1233
+ "<%= config.bin %> credits history --json"
1234
+ ],
1235
+ "flags": {
1236
+ "json": {
1237
+ "description": "Output in JSON format",
1238
+ "name": "json",
1239
+ "allowNo": false,
1240
+ "type": "boolean"
1241
+ },
1242
+ "quiet": {
1243
+ "char": "q",
1244
+ "description": "Minimal output",
1245
+ "name": "quiet",
1246
+ "allowNo": false,
1247
+ "type": "boolean"
1248
+ },
1249
+ "limit": {
1250
+ "char": "l",
1251
+ "description": "Number of transactions to show",
1252
+ "name": "limit",
1253
+ "default": 20,
1254
+ "hasDynamicHelp": false,
1255
+ "multiple": false,
1256
+ "type": "option"
1257
+ }
1258
+ },
1259
+ "hasDynamicHelp": false,
1260
+ "hiddenAliases": [],
1261
+ "id": "credits:history",
1262
+ "pluginAlias": "@sendly/cli",
1263
+ "pluginName": "@sendly/cli",
1264
+ "pluginType": "core",
1265
+ "strict": true,
1266
+ "isESM": true,
1267
+ "relativePath": [
1268
+ "dist",
1269
+ "commands",
1270
+ "credits",
1271
+ "history.js"
1272
+ ]
1273
+ },
1274
+ "credits:transfer": {
1275
+ "aliases": [],
1276
+ "args": {},
1277
+ "description": "Transfer credits between workspaces",
1278
+ "examples": [
1279
+ "<%= config.bin %> credits transfer --to org_abc123 --amount 500",
1280
+ "<%= config.bin %> credits transfer --amount 1000",
1281
+ "<%= config.bin %> credits transfer --to org_abc123 --amount 500 --yes"
1282
+ ],
1283
+ "flags": {
1284
+ "json": {
1285
+ "description": "Output in JSON format",
1286
+ "name": "json",
1287
+ "allowNo": false,
1288
+ "type": "boolean"
1289
+ },
1290
+ "quiet": {
1291
+ "char": "q",
1292
+ "description": "Minimal output",
1293
+ "name": "quiet",
1294
+ "allowNo": false,
1295
+ "type": "boolean"
1296
+ },
1297
+ "to": {
1298
+ "description": "Target workspace ID to transfer credits to",
1299
+ "name": "to",
1300
+ "hasDynamicHelp": false,
1301
+ "multiple": false,
1302
+ "type": "option"
1303
+ },
1304
+ "amount": {
1305
+ "char": "a",
1306
+ "description": "Number of credits to transfer",
1307
+ "name": "amount",
1308
+ "hasDynamicHelp": false,
1309
+ "multiple": false,
1310
+ "type": "option"
1311
+ },
1312
+ "yes": {
1313
+ "char": "y",
1314
+ "description": "Skip confirmation prompt",
1315
+ "name": "yes",
1316
+ "allowNo": false,
1317
+ "type": "boolean"
1318
+ }
1319
+ },
1320
+ "hasDynamicHelp": false,
1321
+ "hiddenAliases": [],
1322
+ "id": "credits:transfer",
1323
+ "pluginAlias": "@sendly/cli",
1324
+ "pluginName": "@sendly/cli",
1325
+ "pluginType": "core",
1326
+ "strict": true,
1327
+ "isESM": true,
1328
+ "relativePath": [
1329
+ "dist",
1330
+ "commands",
1331
+ "credits",
1332
+ "transfer.js"
1333
+ ]
1334
+ },
1335
+ "campaigns:cancel": {
1336
+ "aliases": [],
1337
+ "args": {
1338
+ "id": {
1339
+ "description": "Campaign ID",
1340
+ "name": "id",
1341
+ "required": true
1342
+ }
1343
+ },
1344
+ "description": "Cancel a scheduled campaign",
1345
+ "examples": [
1346
+ "<%= config.bin %> campaigns cancel cmp_xxx"
1347
+ ],
1348
+ "flags": {
1349
+ "json": {
1350
+ "description": "Output in JSON format",
1351
+ "name": "json",
1352
+ "allowNo": false,
1353
+ "type": "boolean"
1354
+ },
1355
+ "quiet": {
1356
+ "char": "q",
1357
+ "description": "Minimal output",
1358
+ "name": "quiet",
1359
+ "allowNo": false,
1360
+ "type": "boolean"
1361
+ }
1362
+ },
1363
+ "hasDynamicHelp": false,
1364
+ "hiddenAliases": [],
1365
+ "id": "campaigns:cancel",
1366
+ "pluginAlias": "@sendly/cli",
1367
+ "pluginName": "@sendly/cli",
1368
+ "pluginType": "core",
1369
+ "strict": true,
1370
+ "isESM": true,
1371
+ "relativePath": [
1372
+ "dist",
1373
+ "commands",
1374
+ "campaigns",
1375
+ "cancel.js"
1376
+ ]
1377
+ },
1378
+ "campaigns:clone": {
1379
+ "aliases": [],
1380
+ "args": {
1381
+ "id": {
1382
+ "description": "Campaign ID to clone",
1383
+ "name": "id",
1384
+ "required": true
1385
+ }
1386
+ },
1387
+ "description": "Clone an existing campaign",
1388
+ "examples": [
1389
+ "<%= config.bin %> campaigns clone cmp_xxx",
1390
+ "<%= config.bin %> campaigns clone cmp_xxx --name \"Copy of Sale\""
1391
+ ],
1392
+ "flags": {
1393
+ "json": {
1394
+ "description": "Output in JSON format",
1395
+ "name": "json",
1396
+ "allowNo": false,
1397
+ "type": "boolean"
1398
+ },
1399
+ "quiet": {
1400
+ "char": "q",
1401
+ "description": "Minimal output",
1402
+ "name": "quiet",
1403
+ "allowNo": false,
1404
+ "type": "boolean"
1405
+ },
1406
+ "name": {
1407
+ "char": "n",
1408
+ "description": "Name for the cloned campaign",
1409
+ "name": "name",
1410
+ "hasDynamicHelp": false,
1411
+ "multiple": false,
1412
+ "type": "option"
1413
+ }
1414
+ },
1415
+ "hasDynamicHelp": false,
1416
+ "hiddenAliases": [],
1417
+ "id": "campaigns:clone",
1418
+ "pluginAlias": "@sendly/cli",
1419
+ "pluginName": "@sendly/cli",
1420
+ "pluginType": "core",
1421
+ "strict": true,
1422
+ "isESM": true,
1423
+ "relativePath": [
1424
+ "dist",
1425
+ "commands",
1426
+ "campaigns",
1427
+ "clone.js"
1428
+ ]
1429
+ },
1430
+ "campaigns:create": {
1431
+ "aliases": [],
1432
+ "args": {},
1433
+ "description": "Create a new campaign",
1434
+ "examples": [
1435
+ "<%= config.bin %> campaigns create --name \"Welcome\" --text \"Hello {{name}}!\" --list lst_xxx",
1436
+ "<%= config.bin %> campaigns create --name \"Sale\" --text \"50% off today!\" --list lst_customers --list lst_subscribers",
1437
+ "<%= config.bin %> campaigns create --name \"OTP\" --template tpl_preset_otp --list lst_xxx"
1438
+ ],
1439
+ "flags": {
1440
+ "json": {
1441
+ "description": "Output in JSON format",
1442
+ "name": "json",
1443
+ "allowNo": false,
1444
+ "type": "boolean"
1445
+ },
1446
+ "quiet": {
1447
+ "char": "q",
1448
+ "description": "Minimal output",
1449
+ "name": "quiet",
1450
+ "allowNo": false,
1451
+ "type": "boolean"
1452
+ },
1453
+ "name": {
1454
+ "char": "n",
1455
+ "description": "Campaign name",
1456
+ "name": "name",
1457
+ "required": true,
1458
+ "hasDynamicHelp": false,
1459
+ "multiple": false,
1460
+ "type": "option"
1461
+ },
1462
+ "text": {
1463
+ "char": "t",
1464
+ "description": "Message text (supports {{variables}})",
1465
+ "name": "text",
1466
+ "hasDynamicHelp": false,
1467
+ "multiple": false,
1468
+ "type": "option"
1469
+ },
1470
+ "template": {
1471
+ "description": "Template ID to use instead of text",
1472
+ "name": "template",
1473
+ "hasDynamicHelp": false,
1474
+ "multiple": false,
1475
+ "type": "option"
1476
+ },
1477
+ "list": {
1478
+ "char": "l",
1479
+ "description": "Contact list ID (can specify multiple)",
1480
+ "name": "list",
1481
+ "required": true,
1482
+ "hasDynamicHelp": false,
1483
+ "multiple": true,
1484
+ "type": "option"
1485
+ }
1486
+ },
1487
+ "hasDynamicHelp": false,
1488
+ "hiddenAliases": [],
1489
+ "id": "campaigns:create",
1490
+ "pluginAlias": "@sendly/cli",
1491
+ "pluginName": "@sendly/cli",
1492
+ "pluginType": "core",
1493
+ "strict": true,
1494
+ "isESM": true,
1495
+ "relativePath": [
1496
+ "dist",
1497
+ "commands",
1498
+ "campaigns",
1499
+ "create.js"
1500
+ ]
1501
+ },
1502
+ "campaigns:delete": {
1503
+ "aliases": [],
1504
+ "args": {
1505
+ "id": {
1506
+ "description": "Campaign ID",
1507
+ "name": "id",
1508
+ "required": true
1509
+ }
1510
+ },
1511
+ "description": "Delete a campaign",
1512
+ "examples": [
1513
+ "<%= config.bin %> campaigns delete cmp_xxx",
1514
+ "<%= config.bin %> campaigns delete cmp_xxx --yes"
1515
+ ],
1516
+ "flags": {
1517
+ "json": {
1518
+ "description": "Output in JSON format",
1519
+ "name": "json",
1520
+ "allowNo": false,
1521
+ "type": "boolean"
1522
+ },
1523
+ "quiet": {
1524
+ "char": "q",
1525
+ "description": "Minimal output",
1526
+ "name": "quiet",
1527
+ "allowNo": false,
1528
+ "type": "boolean"
1529
+ },
1530
+ "yes": {
1531
+ "char": "y",
1532
+ "description": "Skip confirmation prompt",
1533
+ "name": "yes",
1534
+ "allowNo": false,
1535
+ "type": "boolean"
1536
+ }
1537
+ },
1538
+ "hasDynamicHelp": false,
1539
+ "hiddenAliases": [],
1540
+ "id": "campaigns:delete",
1541
+ "pluginAlias": "@sendly/cli",
1542
+ "pluginName": "@sendly/cli",
1543
+ "pluginType": "core",
1544
+ "strict": true,
1545
+ "isESM": true,
1546
+ "relativePath": [
1547
+ "dist",
1548
+ "commands",
1549
+ "campaigns",
1550
+ "delete.js"
1551
+ ]
1552
+ },
1553
+ "campaigns:get": {
1554
+ "aliases": [],
1555
+ "args": {
1556
+ "id": {
1557
+ "description": "Campaign ID",
1558
+ "name": "id",
1559
+ "required": true
1560
+ }
1561
+ },
1562
+ "description": "Get campaign details",
1563
+ "examples": [
1564
+ "<%= config.bin %> campaigns get cmp_xxx",
1565
+ "<%= config.bin %> campaigns get cmp_xxx --json"
1566
+ ],
1567
+ "flags": {
1568
+ "json": {
1569
+ "description": "Output in JSON format",
1570
+ "name": "json",
1571
+ "allowNo": false,
1572
+ "type": "boolean"
1573
+ },
1574
+ "quiet": {
1575
+ "char": "q",
1576
+ "description": "Minimal output",
1577
+ "name": "quiet",
1578
+ "allowNo": false,
1579
+ "type": "boolean"
1580
+ }
1581
+ },
1582
+ "hasDynamicHelp": false,
1583
+ "hiddenAliases": [],
1584
+ "id": "campaigns:get",
1585
+ "pluginAlias": "@sendly/cli",
1586
+ "pluginName": "@sendly/cli",
1587
+ "pluginType": "core",
1588
+ "strict": true,
1589
+ "isESM": true,
1590
+ "relativePath": [
1591
+ "dist",
1592
+ "commands",
1593
+ "campaigns",
1594
+ "get.js"
1595
+ ]
1596
+ },
1597
+ "campaigns:list": {
1598
+ "aliases": [],
1599
+ "args": {},
1600
+ "description": "List campaigns",
1601
+ "examples": [
1602
+ "<%= config.bin %> campaigns list",
1603
+ "<%= config.bin %> campaigns list --status draft",
1604
+ "<%= config.bin %> campaigns list --limit 10",
1605
+ "<%= config.bin %> campaigns list --json"
1606
+ ],
1128
1607
  "flags": {
1129
1608
  "json": {
1130
1609
  "description": "Output in JSON format",
@@ -1141,9 +1620,9 @@
1141
1620
  },
1142
1621
  "limit": {
1143
1622
  "char": "l",
1144
- "description": "Number of contacts to show",
1623
+ "description": "Number of campaigns to show",
1145
1624
  "name": "limit",
1146
- "default": 50,
1625
+ "default": 20,
1147
1626
  "hasDynamicHelp": false,
1148
1627
  "multiple": false,
1149
1628
  "type": "option"
@@ -1156,17 +1635,10 @@
1156
1635
  "multiple": false,
1157
1636
  "type": "option"
1158
1637
  },
1159
- "search": {
1638
+ "status": {
1160
1639
  "char": "s",
1161
- "description": "Search by name, phone, or email",
1162
- "name": "search",
1163
- "hasDynamicHelp": false,
1164
- "multiple": false,
1165
- "type": "option"
1166
- },
1167
- "list": {
1168
- "description": "Filter by contact list ID",
1169
- "name": "list",
1640
+ "description": "Filter by status (draft, scheduled, sending, sent, cancelled)",
1641
+ "name": "status",
1170
1642
  "hasDynamicHelp": false,
1171
1643
  "multiple": false,
1172
1644
  "type": "option"
@@ -1174,7 +1646,7 @@
1174
1646
  },
1175
1647
  "hasDynamicHelp": false,
1176
1648
  "hiddenAliases": [],
1177
- "id": "contacts:list",
1649
+ "id": "campaigns:list",
1178
1650
  "pluginAlias": "@sendly/cli",
1179
1651
  "pluginName": "@sendly/cli",
1180
1652
  "pluginType": "core",
@@ -1183,24 +1655,67 @@
1183
1655
  "relativePath": [
1184
1656
  "dist",
1185
1657
  "commands",
1186
- "contacts",
1658
+ "campaigns",
1187
1659
  "list.js"
1188
1660
  ]
1189
1661
  },
1190
- "contacts:update": {
1662
+ "campaigns:preview": {
1191
1663
  "aliases": [],
1192
1664
  "args": {
1193
1665
  "id": {
1194
- "description": "Contact ID",
1666
+ "description": "Campaign ID",
1195
1667
  "name": "id",
1196
1668
  "required": true
1197
1669
  }
1198
1670
  },
1199
- "description": "Update a contact",
1671
+ "description": "Preview campaign cost and recipients",
1200
1672
  "examples": [
1201
- "<%= config.bin %> contacts update cnt_xxx --name \"John Doe\"",
1202
- "<%= config.bin %> contacts update cnt_xxx --email john@example.com",
1203
- "<%= config.bin %> contacts update cnt_xxx --name \"John\" --email john@example.com"
1673
+ "<%= config.bin %> campaigns preview cmp_xxx",
1674
+ "<%= config.bin %> campaigns preview cmp_xxx --json"
1675
+ ],
1676
+ "flags": {
1677
+ "json": {
1678
+ "description": "Output in JSON format",
1679
+ "name": "json",
1680
+ "allowNo": false,
1681
+ "type": "boolean"
1682
+ },
1683
+ "quiet": {
1684
+ "char": "q",
1685
+ "description": "Minimal output",
1686
+ "name": "quiet",
1687
+ "allowNo": false,
1688
+ "type": "boolean"
1689
+ }
1690
+ },
1691
+ "hasDynamicHelp": false,
1692
+ "hiddenAliases": [],
1693
+ "id": "campaigns:preview",
1694
+ "pluginAlias": "@sendly/cli",
1695
+ "pluginName": "@sendly/cli",
1696
+ "pluginType": "core",
1697
+ "strict": true,
1698
+ "isESM": true,
1699
+ "relativePath": [
1700
+ "dist",
1701
+ "commands",
1702
+ "campaigns",
1703
+ "preview.js"
1704
+ ]
1705
+ },
1706
+ "campaigns:schedule": {
1707
+ "aliases": [],
1708
+ "args": {
1709
+ "id": {
1710
+ "description": "Campaign ID",
1711
+ "name": "id",
1712
+ "required": true
1713
+ }
1714
+ },
1715
+ "description": "Schedule a campaign for later",
1716
+ "examples": [
1717
+ "<%= config.bin %> campaigns schedule cmp_xxx --at \"2024-01-15T10:00:00Z\"",
1718
+ "<%= config.bin %> campaigns schedule cmp_xxx --at \"2024-01-15T10:00:00\" --timezone \"America/New_York\""
1204
1719
  ],
1205
1720
  "flags": {
1206
1721
  "json": {
@@ -1216,18 +1731,18 @@
1216
1731
  "allowNo": false,
1217
1732
  "type": "boolean"
1218
1733
  },
1219
- "name": {
1220
- "char": "n",
1221
- "description": "Contact name",
1222
- "name": "name",
1734
+ "at": {
1735
+ "description": "When to send (ISO 8601 datetime)",
1736
+ "name": "at",
1737
+ "required": true,
1223
1738
  "hasDynamicHelp": false,
1224
1739
  "multiple": false,
1225
1740
  "type": "option"
1226
1741
  },
1227
- "email": {
1228
- "char": "e",
1229
- "description": "Contact email",
1230
- "name": "email",
1742
+ "timezone": {
1743
+ "char": "z",
1744
+ "description": "Timezone (e.g., \"America/New_York\")",
1745
+ "name": "timezone",
1231
1746
  "hasDynamicHelp": false,
1232
1747
  "multiple": false,
1233
1748
  "type": "option"
@@ -1235,7 +1750,7 @@
1235
1750
  },
1236
1751
  "hasDynamicHelp": false,
1237
1752
  "hiddenAliases": [],
1238
- "id": "contacts:update",
1753
+ "id": "campaigns:schedule",
1239
1754
  "pluginAlias": "@sendly/cli",
1240
1755
  "pluginName": "@sendly/cli",
1241
1756
  "pluginType": "core",
@@ -1244,17 +1759,23 @@
1244
1759
  "relativePath": [
1245
1760
  "dist",
1246
1761
  "commands",
1247
- "contacts",
1248
- "update.js"
1762
+ "campaigns",
1763
+ "schedule.js"
1249
1764
  ]
1250
1765
  },
1251
- "credits:balance": {
1766
+ "campaigns:send": {
1252
1767
  "aliases": [],
1253
- "args": {},
1254
- "description": "Check your credit balance",
1768
+ "args": {
1769
+ "id": {
1770
+ "description": "Campaign ID",
1771
+ "name": "id",
1772
+ "required": true
1773
+ }
1774
+ },
1775
+ "description": "Send a campaign immediately",
1255
1776
  "examples": [
1256
- "<%= config.bin %> credits balance",
1257
- "<%= config.bin %> credits balance --json"
1777
+ "<%= config.bin %> campaigns send cmp_xxx",
1778
+ "<%= config.bin %> campaigns send cmp_xxx --yes"
1258
1779
  ],
1259
1780
  "flags": {
1260
1781
  "json": {
@@ -1269,11 +1790,18 @@
1269
1790
  "name": "quiet",
1270
1791
  "allowNo": false,
1271
1792
  "type": "boolean"
1793
+ },
1794
+ "yes": {
1795
+ "char": "y",
1796
+ "description": "Skip confirmation prompt",
1797
+ "name": "yes",
1798
+ "allowNo": false,
1799
+ "type": "boolean"
1272
1800
  }
1273
1801
  },
1274
1802
  "hasDynamicHelp": false,
1275
1803
  "hiddenAliases": [],
1276
- "id": "credits:balance",
1804
+ "id": "campaigns:send",
1277
1805
  "pluginAlias": "@sendly/cli",
1278
1806
  "pluginName": "@sendly/cli",
1279
1807
  "pluginType": "core",
@@ -1282,18 +1810,25 @@
1282
1810
  "relativePath": [
1283
1811
  "dist",
1284
1812
  "commands",
1285
- "credits",
1286
- "balance.js"
1813
+ "campaigns",
1814
+ "send.js"
1287
1815
  ]
1288
1816
  },
1289
- "credits:history": {
1817
+ "campaigns:update": {
1290
1818
  "aliases": [],
1291
- "args": {},
1292
- "description": "View credit transaction history",
1819
+ "args": {
1820
+ "id": {
1821
+ "description": "Campaign ID",
1822
+ "name": "id",
1823
+ "required": true
1824
+ }
1825
+ },
1826
+ "description": "Update a campaign",
1293
1827
  "examples": [
1294
- "<%= config.bin %> credits history",
1295
- "<%= config.bin %> credits history --limit 10",
1296
- "<%= config.bin %> credits history --json"
1828
+ "<%= config.bin %> campaigns update cmp_xxx --name \"New Name\"",
1829
+ "<%= config.bin %> campaigns update cmp_xxx --text \"Updated message\"",
1830
+ "<%= config.bin %> campaigns update cmp_xxx --list lst_xxx",
1831
+ "<%= config.bin %> campaigns update cmp_xxx --name \"Sale\" --text \"50% off!\""
1297
1832
  ],
1298
1833
  "flags": {
1299
1834
  "json": {
@@ -1309,11 +1844,33 @@
1309
1844
  "allowNo": false,
1310
1845
  "type": "boolean"
1311
1846
  },
1312
- "limit": {
1847
+ "name": {
1848
+ "char": "n",
1849
+ "description": "Campaign name",
1850
+ "name": "name",
1851
+ "hasDynamicHelp": false,
1852
+ "multiple": false,
1853
+ "type": "option"
1854
+ },
1855
+ "text": {
1856
+ "char": "t",
1857
+ "description": "Message text (supports {{variables}})",
1858
+ "name": "text",
1859
+ "hasDynamicHelp": false,
1860
+ "multiple": false,
1861
+ "type": "option"
1862
+ },
1863
+ "list": {
1313
1864
  "char": "l",
1314
- "description": "Number of transactions to show",
1315
- "name": "limit",
1316
- "default": 20,
1865
+ "description": "Contact list ID",
1866
+ "name": "list",
1867
+ "hasDynamicHelp": false,
1868
+ "multiple": false,
1869
+ "type": "option"
1870
+ },
1871
+ "template": {
1872
+ "description": "Template ID",
1873
+ "name": "template",
1317
1874
  "hasDynamicHelp": false,
1318
1875
  "multiple": false,
1319
1876
  "type": "option"
@@ -1321,7 +1878,7 @@
1321
1878
  },
1322
1879
  "hasDynamicHelp": false,
1323
1880
  "hiddenAliases": [],
1324
- "id": "credits:history",
1881
+ "id": "campaigns:update",
1325
1882
  "pluginAlias": "@sendly/cli",
1326
1883
  "pluginName": "@sendly/cli",
1327
1884
  "pluginType": "core",
@@ -1330,18 +1887,23 @@
1330
1887
  "relativePath": [
1331
1888
  "dist",
1332
1889
  "commands",
1333
- "credits",
1334
- "history.js"
1890
+ "campaigns",
1891
+ "update.js"
1335
1892
  ]
1336
1893
  },
1337
- "credits:transfer": {
1894
+ "drafts:approve": {
1338
1895
  "aliases": [],
1339
- "args": {},
1340
- "description": "Transfer credits between workspaces",
1896
+ "args": {
1897
+ "id": {
1898
+ "description": "Draft ID",
1899
+ "name": "id",
1900
+ "required": true
1901
+ }
1902
+ },
1903
+ "description": "Approve a draft and send it",
1341
1904
  "examples": [
1342
- "<%= config.bin %> credits transfer --to org_abc123 --amount 500",
1343
- "<%= config.bin %> credits transfer --amount 1000",
1344
- "<%= config.bin %> credits transfer --to org_abc123 --amount 500 --yes"
1905
+ "<%= config.bin %> drafts approve draft_abc123",
1906
+ "<%= config.bin %> drafts approve draft_abc123 --json"
1345
1907
  ],
1346
1908
  "flags": {
1347
1909
  "json": {
@@ -1356,33 +1918,60 @@
1356
1918
  "name": "quiet",
1357
1919
  "allowNo": false,
1358
1920
  "type": "boolean"
1921
+ }
1922
+ },
1923
+ "hasDynamicHelp": false,
1924
+ "hiddenAliases": [],
1925
+ "id": "drafts:approve",
1926
+ "pluginAlias": "@sendly/cli",
1927
+ "pluginName": "@sendly/cli",
1928
+ "pluginType": "core",
1929
+ "strict": true,
1930
+ "isESM": true,
1931
+ "relativePath": [
1932
+ "dist",
1933
+ "commands",
1934
+ "drafts",
1935
+ "approve.js"
1936
+ ]
1937
+ },
1938
+ "drafts:create": {
1939
+ "aliases": [],
1940
+ "args": {
1941
+ "conversation-id": {
1942
+ "description": "Conversation ID",
1943
+ "name": "conversation-id",
1944
+ "required": true
1359
1945
  },
1360
- "to": {
1361
- "description": "Target workspace ID to transfer credits to",
1362
- "name": "to",
1363
- "hasDynamicHelp": false,
1364
- "multiple": false,
1365
- "type": "option"
1366
- },
1367
- "amount": {
1368
- "char": "a",
1369
- "description": "Number of credits to transfer",
1370
- "name": "amount",
1371
- "hasDynamicHelp": false,
1372
- "multiple": false,
1373
- "type": "option"
1946
+ "text": {
1947
+ "description": "Draft message text",
1948
+ "name": "text",
1949
+ "required": true
1950
+ }
1951
+ },
1952
+ "description": "Create a draft reply in a conversation",
1953
+ "examples": [
1954
+ "<%= config.bin %> drafts create conv_abc123 \"Thanks for reaching out!\"",
1955
+ "<%= config.bin %> drafts create conv_abc123 \"We will look into this\" --json"
1956
+ ],
1957
+ "flags": {
1958
+ "json": {
1959
+ "description": "Output in JSON format",
1960
+ "name": "json",
1961
+ "allowNo": false,
1962
+ "type": "boolean"
1374
1963
  },
1375
- "yes": {
1376
- "char": "y",
1377
- "description": "Skip confirmation prompt",
1378
- "name": "yes",
1964
+ "quiet": {
1965
+ "char": "q",
1966
+ "description": "Minimal output",
1967
+ "name": "quiet",
1379
1968
  "allowNo": false,
1380
1969
  "type": "boolean"
1381
1970
  }
1382
1971
  },
1383
1972
  "hasDynamicHelp": false,
1384
1973
  "hiddenAliases": [],
1385
- "id": "credits:transfer",
1974
+ "id": "drafts:create",
1386
1975
  "pluginAlias": "@sendly/cli",
1387
1976
  "pluginName": "@sendly/cli",
1388
1977
  "pluginType": "core",
@@ -1391,29 +1980,17 @@
1391
1980
  "relativePath": [
1392
1981
  "dist",
1393
1982
  "commands",
1394
- "credits",
1395
- "transfer.js"
1983
+ "drafts",
1984
+ "create.js"
1396
1985
  ]
1397
1986
  },
1398
- "config:get": {
1987
+ "drafts": {
1399
1988
  "aliases": [],
1400
- "args": {
1401
- "key": {
1402
- "description": "Configuration key",
1403
- "name": "key",
1404
- "options": [
1405
- "environment",
1406
- "baseUrl",
1407
- "defaultFormat",
1408
- "colorEnabled"
1409
- ],
1410
- "required": true
1411
- }
1412
- },
1413
- "description": "Get a configuration value",
1989
+ "args": {},
1990
+ "description": "List pending drafts (default subcommand)",
1414
1991
  "examples": [
1415
- "<%= config.bin %> config get environment",
1416
- "<%= config.bin %> config get baseUrl"
1992
+ "<%= config.bin %> drafts",
1993
+ "<%= config.bin %> drafts --json"
1417
1994
  ],
1418
1995
  "flags": {
1419
1996
  "json": {
@@ -1432,27 +2009,28 @@
1432
2009
  },
1433
2010
  "hasDynamicHelp": false,
1434
2011
  "hiddenAliases": [],
1435
- "id": "config:get",
2012
+ "id": "drafts",
1436
2013
  "pluginAlias": "@sendly/cli",
1437
2014
  "pluginName": "@sendly/cli",
1438
2015
  "pluginType": "core",
1439
2016
  "strict": true,
1440
- "enableJsonFlag": false,
1441
2017
  "isESM": true,
1442
2018
  "relativePath": [
1443
2019
  "dist",
1444
2020
  "commands",
1445
- "config",
1446
- "get.js"
2021
+ "drafts",
2022
+ "index.js"
1447
2023
  ]
1448
2024
  },
1449
- "config:list": {
2025
+ "drafts:list": {
1450
2026
  "aliases": [],
1451
2027
  "args": {},
1452
- "description": "List all configuration values",
2028
+ "description": "List drafts",
1453
2029
  "examples": [
1454
- "<%= config.bin %> config list",
1455
- "<%= config.bin %> config list --json"
2030
+ "<%= config.bin %> drafts list",
2031
+ "<%= config.bin %> drafts list --status pending",
2032
+ "<%= config.bin %> drafts list --conversation-id conv_abc123",
2033
+ "<%= config.bin %> drafts list --json"
1456
2034
  ],
1457
2035
  "flags": {
1458
2036
  "json": {
@@ -1467,49 +2045,57 @@
1467
2045
  "name": "quiet",
1468
2046
  "allowNo": false,
1469
2047
  "type": "boolean"
2048
+ },
2049
+ "conversation-id": {
2050
+ "description": "Filter by conversation ID",
2051
+ "name": "conversation-id",
2052
+ "hasDynamicHelp": false,
2053
+ "multiple": false,
2054
+ "type": "option"
2055
+ },
2056
+ "status": {
2057
+ "char": "s",
2058
+ "description": "Filter by status (pending, approved, rejected)",
2059
+ "name": "status",
2060
+ "hasDynamicHelp": false,
2061
+ "multiple": false,
2062
+ "options": [
2063
+ "pending",
2064
+ "approved",
2065
+ "rejected"
2066
+ ],
2067
+ "type": "option"
1470
2068
  }
1471
2069
  },
1472
2070
  "hasDynamicHelp": false,
1473
2071
  "hiddenAliases": [],
1474
- "id": "config:list",
2072
+ "id": "drafts:list",
1475
2073
  "pluginAlias": "@sendly/cli",
1476
2074
  "pluginName": "@sendly/cli",
1477
2075
  "pluginType": "core",
1478
2076
  "strict": true,
1479
- "enableJsonFlag": false,
1480
2077
  "isESM": true,
1481
2078
  "relativePath": [
1482
2079
  "dist",
1483
2080
  "commands",
1484
- "config",
2081
+ "drafts",
1485
2082
  "list.js"
1486
2083
  ]
1487
2084
  },
1488
- "config:set": {
2085
+ "drafts:reject": {
1489
2086
  "aliases": [],
1490
2087
  "args": {
1491
- "key": {
1492
- "description": "Configuration key",
1493
- "name": "key",
1494
- "options": [
1495
- "environment",
1496
- "baseUrl",
1497
- "defaultFormat",
1498
- "colorEnabled"
1499
- ],
1500
- "required": true
1501
- },
1502
- "value": {
1503
- "description": "Configuration value",
1504
- "name": "value",
2088
+ "id": {
2089
+ "description": "Draft ID",
2090
+ "name": "id",
1505
2091
  "required": true
1506
2092
  }
1507
2093
  },
1508
- "description": "Set a configuration value",
2094
+ "description": "Reject a draft",
1509
2095
  "examples": [
1510
- "<%= config.bin %> config set environment live",
1511
- "<%= config.bin %> config set defaultFormat json",
1512
- "<%= config.bin %> config set baseUrl https://api.sendly.live"
2096
+ "<%= config.bin %> drafts reject draft_abc123",
2097
+ "<%= config.bin %> drafts reject draft_abc123 --reason \"Tone is too informal\"",
2098
+ "<%= config.bin %> drafts reject draft_abc123 --json"
1513
2099
  ],
1514
2100
  "flags": {
1515
2101
  "json": {
@@ -1524,22 +2110,29 @@
1524
2110
  "name": "quiet",
1525
2111
  "allowNo": false,
1526
2112
  "type": "boolean"
2113
+ },
2114
+ "reason": {
2115
+ "char": "r",
2116
+ "description": "Reason for rejection",
2117
+ "name": "reason",
2118
+ "hasDynamicHelp": false,
2119
+ "multiple": false,
2120
+ "type": "option"
1527
2121
  }
1528
2122
  },
1529
2123
  "hasDynamicHelp": false,
1530
2124
  "hiddenAliases": [],
1531
- "id": "config:set",
2125
+ "id": "drafts:reject",
1532
2126
  "pluginAlias": "@sendly/cli",
1533
2127
  "pluginName": "@sendly/cli",
1534
2128
  "pluginType": "core",
1535
2129
  "strict": true,
1536
- "enableJsonFlag": false,
1537
2130
  "isESM": true,
1538
2131
  "relativePath": [
1539
2132
  "dist",
1540
2133
  "commands",
1541
- "config",
1542
- "set.js"
2134
+ "drafts",
2135
+ "reject.js"
1543
2136
  ]
1544
2137
  },
1545
2138
  "enterprise:billing": {
@@ -2125,17 +2718,205 @@
2125
2718
  "multiple": false,
2126
2719
  "type": "option"
2127
2720
  },
2128
- "yes": {
2129
- "char": "y",
2130
- "description": "Skip confirmation prompt",
2131
- "name": "yes",
2721
+ "yes": {
2722
+ "char": "y",
2723
+ "description": "Skip confirmation prompt",
2724
+ "name": "yes",
2725
+ "allowNo": false,
2726
+ "type": "boolean"
2727
+ }
2728
+ },
2729
+ "hasDynamicHelp": false,
2730
+ "hiddenAliases": [],
2731
+ "id": "keys:rotate",
2732
+ "pluginAlias": "@sendly/cli",
2733
+ "pluginName": "@sendly/cli",
2734
+ "pluginType": "core",
2735
+ "strict": true,
2736
+ "isESM": true,
2737
+ "relativePath": [
2738
+ "dist",
2739
+ "commands",
2740
+ "keys",
2741
+ "rotate.js"
2742
+ ]
2743
+ },
2744
+ "keys:usage": {
2745
+ "aliases": [],
2746
+ "args": {
2747
+ "id": {
2748
+ "description": "API key ID",
2749
+ "name": "id",
2750
+ "required": true
2751
+ }
2752
+ },
2753
+ "description": "Get usage statistics for an API key",
2754
+ "examples": [
2755
+ "<%= config.bin %> keys usage KEY_ID",
2756
+ "<%= config.bin %> keys usage KEY_ID --json"
2757
+ ],
2758
+ "flags": {
2759
+ "json": {
2760
+ "description": "Output in JSON format",
2761
+ "name": "json",
2762
+ "allowNo": false,
2763
+ "type": "boolean"
2764
+ },
2765
+ "quiet": {
2766
+ "char": "q",
2767
+ "description": "Minimal output",
2768
+ "name": "quiet",
2769
+ "allowNo": false,
2770
+ "type": "boolean"
2771
+ }
2772
+ },
2773
+ "hasDynamicHelp": false,
2774
+ "hiddenAliases": [],
2775
+ "id": "keys:usage",
2776
+ "pluginAlias": "@sendly/cli",
2777
+ "pluginName": "@sendly/cli",
2778
+ "pluginType": "core",
2779
+ "strict": true,
2780
+ "isESM": true,
2781
+ "relativePath": [
2782
+ "dist",
2783
+ "commands",
2784
+ "keys",
2785
+ "usage.js"
2786
+ ]
2787
+ },
2788
+ "labels:create": {
2789
+ "aliases": [],
2790
+ "args": {
2791
+ "name": {
2792
+ "description": "Label name",
2793
+ "name": "name",
2794
+ "required": true
2795
+ }
2796
+ },
2797
+ "description": "Create a label",
2798
+ "examples": [
2799
+ "<%= config.bin %> labels create \"VIP\"",
2800
+ "<%= config.bin %> labels create \"Urgent\" --color \"#FF0000\"",
2801
+ "<%= config.bin %> labels create \"Support\" --color \"#0000FF\" --description \"Support tickets\"",
2802
+ "<%= config.bin %> labels create \"VIP\" --json"
2803
+ ],
2804
+ "flags": {
2805
+ "json": {
2806
+ "description": "Output in JSON format",
2807
+ "name": "json",
2808
+ "allowNo": false,
2809
+ "type": "boolean"
2810
+ },
2811
+ "quiet": {
2812
+ "char": "q",
2813
+ "description": "Minimal output",
2814
+ "name": "quiet",
2815
+ "allowNo": false,
2816
+ "type": "boolean"
2817
+ },
2818
+ "color": {
2819
+ "char": "c",
2820
+ "description": "Label color (hex, e.g. #FF0000)",
2821
+ "name": "color",
2822
+ "hasDynamicHelp": false,
2823
+ "multiple": false,
2824
+ "type": "option"
2825
+ },
2826
+ "description": {
2827
+ "char": "d",
2828
+ "description": "Label description",
2829
+ "name": "description",
2830
+ "hasDynamicHelp": false,
2831
+ "multiple": false,
2832
+ "type": "option"
2833
+ }
2834
+ },
2835
+ "hasDynamicHelp": false,
2836
+ "hiddenAliases": [],
2837
+ "id": "labels:create",
2838
+ "pluginAlias": "@sendly/cli",
2839
+ "pluginName": "@sendly/cli",
2840
+ "pluginType": "core",
2841
+ "strict": true,
2842
+ "isESM": true,
2843
+ "relativePath": [
2844
+ "dist",
2845
+ "commands",
2846
+ "labels",
2847
+ "create.js"
2848
+ ]
2849
+ },
2850
+ "labels:delete": {
2851
+ "aliases": [],
2852
+ "args": {
2853
+ "id": {
2854
+ "description": "Label ID",
2855
+ "name": "id",
2856
+ "required": true
2857
+ }
2858
+ },
2859
+ "description": "Delete a label",
2860
+ "examples": [
2861
+ "<%= config.bin %> labels delete lbl_abc123",
2862
+ "<%= config.bin %> labels delete lbl_abc123 --json"
2863
+ ],
2864
+ "flags": {
2865
+ "json": {
2866
+ "description": "Output in JSON format",
2867
+ "name": "json",
2868
+ "allowNo": false,
2869
+ "type": "boolean"
2870
+ },
2871
+ "quiet": {
2872
+ "char": "q",
2873
+ "description": "Minimal output",
2874
+ "name": "quiet",
2875
+ "allowNo": false,
2876
+ "type": "boolean"
2877
+ }
2878
+ },
2879
+ "hasDynamicHelp": false,
2880
+ "hiddenAliases": [],
2881
+ "id": "labels:delete",
2882
+ "pluginAlias": "@sendly/cli",
2883
+ "pluginName": "@sendly/cli",
2884
+ "pluginType": "core",
2885
+ "strict": true,
2886
+ "isESM": true,
2887
+ "relativePath": [
2888
+ "dist",
2889
+ "commands",
2890
+ "labels",
2891
+ "delete.js"
2892
+ ]
2893
+ },
2894
+ "labels": {
2895
+ "aliases": [],
2896
+ "args": {},
2897
+ "description": "List labels (default subcommand)",
2898
+ "examples": [
2899
+ "<%= config.bin %> labels",
2900
+ "<%= config.bin %> labels --json"
2901
+ ],
2902
+ "flags": {
2903
+ "json": {
2904
+ "description": "Output in JSON format",
2905
+ "name": "json",
2906
+ "allowNo": false,
2907
+ "type": "boolean"
2908
+ },
2909
+ "quiet": {
2910
+ "char": "q",
2911
+ "description": "Minimal output",
2912
+ "name": "quiet",
2132
2913
  "allowNo": false,
2133
2914
  "type": "boolean"
2134
2915
  }
2135
2916
  },
2136
2917
  "hasDynamicHelp": false,
2137
2918
  "hiddenAliases": [],
2138
- "id": "keys:rotate",
2919
+ "id": "labels",
2139
2920
  "pluginAlias": "@sendly/cli",
2140
2921
  "pluginName": "@sendly/cli",
2141
2922
  "pluginType": "core",
@@ -2144,23 +2925,17 @@
2144
2925
  "relativePath": [
2145
2926
  "dist",
2146
2927
  "commands",
2147
- "keys",
2148
- "rotate.js"
2928
+ "labels",
2929
+ "index.js"
2149
2930
  ]
2150
2931
  },
2151
- "keys:usage": {
2932
+ "labels:list": {
2152
2933
  "aliases": [],
2153
- "args": {
2154
- "id": {
2155
- "description": "API key ID",
2156
- "name": "id",
2157
- "required": true
2158
- }
2159
- },
2160
- "description": "Get usage statistics for an API key",
2934
+ "args": {},
2935
+ "description": "List labels",
2161
2936
  "examples": [
2162
- "<%= config.bin %> keys usage KEY_ID",
2163
- "<%= config.bin %> keys usage KEY_ID --json"
2937
+ "<%= config.bin %> labels list",
2938
+ "<%= config.bin %> labels list --json"
2164
2939
  ],
2165
2940
  "flags": {
2166
2941
  "json": {
@@ -2179,7 +2954,7 @@
2179
2954
  },
2180
2955
  "hasDynamicHelp": false,
2181
2956
  "hiddenAliases": [],
2182
- "id": "keys:usage",
2957
+ "id": "labels:list",
2183
2958
  "pluginAlias": "@sendly/cli",
2184
2959
  "pluginName": "@sendly/cli",
2185
2960
  "pluginType": "core",
@@ -2188,8 +2963,8 @@
2188
2963
  "relativePath": [
2189
2964
  "dist",
2190
2965
  "commands",
2191
- "keys",
2192
- "usage.js"
2966
+ "labels",
2967
+ "list.js"
2193
2968
  ]
2194
2969
  },
2195
2970
  "logs:tail": {
@@ -2781,20 +3556,13 @@
2781
3556
  "send.js"
2782
3557
  ]
2783
3558
  },
2784
- "templates:clone": {
3559
+ "teams:create": {
2785
3560
  "aliases": [],
2786
- "args": {
2787
- "id": {
2788
- "description": "Template ID to clone",
2789
- "name": "id",
2790
- "required": true
2791
- }
2792
- },
2793
- "description": "Clone a template",
3561
+ "args": {},
3562
+ "description": "Create a new team",
2794
3563
  "examples": [
2795
- "<%= config.bin %> templates clone tpl_preset_otp",
2796
- "<%= config.bin %> templates clone tpl_preset_otp --name \"My Custom OTP\"",
2797
- "<%= config.bin %> templates clone tpl_xxx --json"
3564
+ "<%= config.bin %> teams create --name \"Acme Corp\"",
3565
+ "<%= config.bin %> teams create --name \"Acme Corp\" --description \"Our main team\""
2798
3566
  ],
2799
3567
  "flags": {
2800
3568
  "json": {
@@ -2812,8 +3580,17 @@
2812
3580
  },
2813
3581
  "name": {
2814
3582
  "char": "n",
2815
- "description": "Name for the cloned template",
3583
+ "description": "Team name",
2816
3584
  "name": "name",
3585
+ "required": true,
3586
+ "hasDynamicHelp": false,
3587
+ "multiple": false,
3588
+ "type": "option"
3589
+ },
3590
+ "description": {
3591
+ "char": "d",
3592
+ "description": "Team description",
3593
+ "name": "description",
2817
3594
  "hasDynamicHelp": false,
2818
3595
  "multiple": false,
2819
3596
  "type": "option"
@@ -2821,7 +3598,7 @@
2821
3598
  },
2822
3599
  "hasDynamicHelp": false,
2823
3600
  "hiddenAliases": [],
2824
- "id": "templates:clone",
3601
+ "id": "teams:create",
2825
3602
  "pluginAlias": "@sendly/cli",
2826
3603
  "pluginName": "@sendly/cli",
2827
3604
  "pluginType": "core",
@@ -2830,17 +3607,17 @@
2830
3607
  "relativePath": [
2831
3608
  "dist",
2832
3609
  "commands",
2833
- "templates",
2834
- "clone.js"
3610
+ "teams",
3611
+ "create.js"
2835
3612
  ]
2836
3613
  },
2837
- "templates:create": {
3614
+ "teams:current": {
2838
3615
  "aliases": [],
2839
3616
  "args": {},
2840
- "description": "Create a new SMS template",
3617
+ "description": "Show the currently active team",
2841
3618
  "examples": [
2842
- "<%= config.bin %> templates create --name \"My OTP\" --text \"Your code is {{code}}\"",
2843
- "<%= config.bin %> templates create --name \"Login\" --text \"{{code}} is your {{app_name}} login code\""
3619
+ "<%= config.bin %> teams current",
3620
+ "<%= config.bin %> teams current --json"
2844
3621
  ],
2845
3622
  "flags": {
2846
3623
  "json": {
@@ -2855,29 +3632,11 @@
2855
3632
  "name": "quiet",
2856
3633
  "allowNo": false,
2857
3634
  "type": "boolean"
2858
- },
2859
- "name": {
2860
- "char": "n",
2861
- "description": "Template name",
2862
- "name": "name",
2863
- "required": true,
2864
- "hasDynamicHelp": false,
2865
- "multiple": false,
2866
- "type": "option"
2867
- },
2868
- "text": {
2869
- "char": "t",
2870
- "description": "Message text (use {{code}} and {{app_name}} variables)",
2871
- "name": "text",
2872
- "required": true,
2873
- "hasDynamicHelp": false,
2874
- "multiple": false,
2875
- "type": "option"
2876
3635
  }
2877
3636
  },
2878
3637
  "hasDynamicHelp": false,
2879
3638
  "hiddenAliases": [],
2880
- "id": "templates:create",
3639
+ "id": "teams:current",
2881
3640
  "pluginAlias": "@sendly/cli",
2882
3641
  "pluginName": "@sendly/cli",
2883
3642
  "pluginType": "core",
@@ -2886,23 +3645,23 @@
2886
3645
  "relativePath": [
2887
3646
  "dist",
2888
3647
  "commands",
2889
- "templates",
2890
- "create.js"
3648
+ "teams",
3649
+ "current.js"
2891
3650
  ]
2892
3651
  },
2893
- "templates:delete": {
3652
+ "teams:invite": {
2894
3653
  "aliases": [],
2895
3654
  "args": {
2896
- "id": {
2897
- "description": "Template ID",
2898
- "name": "id",
3655
+ "email": {
3656
+ "description": "Email address to invite",
3657
+ "name": "email",
2899
3658
  "required": true
2900
3659
  }
2901
3660
  },
2902
- "description": "Delete a template",
3661
+ "description": "Invite a member to the current team",
2903
3662
  "examples": [
2904
- "<%= config.bin %> templates delete tpl_xxx",
2905
- "<%= config.bin %> templates delete tpl_xxx --force"
3663
+ "<%= config.bin %> teams invite user@example.com",
3664
+ "<%= config.bin %> teams invite user@example.com --role admin"
2906
3665
  ],
2907
3666
  "flags": {
2908
3667
  "json": {
@@ -2918,17 +3677,24 @@
2918
3677
  "allowNo": false,
2919
3678
  "type": "boolean"
2920
3679
  },
2921
- "force": {
2922
- "char": "f",
2923
- "description": "Skip confirmation",
2924
- "name": "force",
2925
- "allowNo": false,
2926
- "type": "boolean"
3680
+ "role": {
3681
+ "char": "r",
3682
+ "description": "Role to assign (admin, member, viewer)",
3683
+ "name": "role",
3684
+ "default": "member",
3685
+ "hasDynamicHelp": false,
3686
+ "multiple": false,
3687
+ "options": [
3688
+ "admin",
3689
+ "member",
3690
+ "viewer"
3691
+ ],
3692
+ "type": "option"
2927
3693
  }
2928
3694
  },
2929
3695
  "hasDynamicHelp": false,
2930
3696
  "hiddenAliases": [],
2931
- "id": "templates:delete",
3697
+ "id": "teams:invite",
2932
3698
  "pluginAlias": "@sendly/cli",
2933
3699
  "pluginName": "@sendly/cli",
2934
3700
  "pluginType": "core",
@@ -2937,23 +3703,17 @@
2937
3703
  "relativePath": [
2938
3704
  "dist",
2939
3705
  "commands",
2940
- "templates",
2941
- "delete.js"
3706
+ "teams",
3707
+ "invite.js"
2942
3708
  ]
2943
3709
  },
2944
- "templates:get": {
3710
+ "teams:list": {
2945
3711
  "aliases": [],
2946
- "args": {
2947
- "id": {
2948
- "description": "Template ID",
2949
- "name": "id",
2950
- "required": true
2951
- }
2952
- },
2953
- "description": "Get template details",
3712
+ "args": {},
3713
+ "description": "List your teams",
2954
3714
  "examples": [
2955
- "<%= config.bin %> templates get tpl_xxx",
2956
- "<%= config.bin %> templates get tpl_preset_2fa"
3715
+ "<%= config.bin %> teams list",
3716
+ "<%= config.bin %> teams list --json"
2957
3717
  ],
2958
3718
  "flags": {
2959
3719
  "json": {
@@ -2972,7 +3732,7 @@
2972
3732
  },
2973
3733
  "hasDynamicHelp": false,
2974
3734
  "hiddenAliases": [],
2975
- "id": "templates:get",
3735
+ "id": "teams:list",
2976
3736
  "pluginAlias": "@sendly/cli",
2977
3737
  "pluginName": "@sendly/cli",
2978
3738
  "pluginType": "core",
@@ -2981,17 +3741,17 @@
2981
3741
  "relativePath": [
2982
3742
  "dist",
2983
3743
  "commands",
2984
- "templates",
2985
- "get.js"
3744
+ "teams",
3745
+ "list.js"
2986
3746
  ]
2987
3747
  },
2988
- "templates:list": {
3748
+ "teams:members": {
2989
3749
  "aliases": [],
2990
3750
  "args": {},
2991
- "description": "List your SMS templates",
3751
+ "description": "List members of the current team",
2992
3752
  "examples": [
2993
- "<%= config.bin %> templates list",
2994
- "<%= config.bin %> templates list --json"
3753
+ "<%= config.bin %> teams members",
3754
+ "<%= config.bin %> teams members --json"
2995
3755
  ],
2996
3756
  "flags": {
2997
3757
  "json": {
@@ -3010,7 +3770,7 @@
3010
3770
  },
3011
3771
  "hasDynamicHelp": false,
3012
3772
  "hiddenAliases": [],
3013
- "id": "templates:list",
3773
+ "id": "teams:members",
3014
3774
  "pluginAlias": "@sendly/cli",
3015
3775
  "pluginName": "@sendly/cli",
3016
3776
  "pluginType": "core",
@@ -3019,17 +3779,24 @@
3019
3779
  "relativePath": [
3020
3780
  "dist",
3021
3781
  "commands",
3022
- "templates",
3023
- "list.js"
3782
+ "teams",
3783
+ "members.js"
3024
3784
  ]
3025
3785
  },
3026
- "templates:presets": {
3786
+ "teams:switch": {
3027
3787
  "aliases": [],
3028
- "args": {},
3029
- "description": "List available preset templates",
3788
+ "args": {
3789
+ "org": {
3790
+ "description": "Organization ID or slug to switch to",
3791
+ "name": "org",
3792
+ "required": false
3793
+ }
3794
+ },
3795
+ "description": "Switch the active team",
3030
3796
  "examples": [
3031
- "<%= config.bin %> templates presets",
3032
- "<%= config.bin %> templates presets --json"
3797
+ "<%= config.bin %> teams switch",
3798
+ "<%= config.bin %> teams switch <org-id-or-slug>",
3799
+ "<%= config.bin %> teams switch --clear"
3033
3800
  ],
3034
3801
  "flags": {
3035
3802
  "json": {
@@ -3048,7 +3815,7 @@
3048
3815
  },
3049
3816
  "hasDynamicHelp": false,
3050
3817
  "hiddenAliases": [],
3051
- "id": "templates:presets",
3818
+ "id": "teams:switch",
3052
3819
  "pluginAlias": "@sendly/cli",
3053
3820
  "pluginName": "@sendly/cli",
3054
3821
  "pluginType": "core",
@@ -3057,22 +3824,24 @@
3057
3824
  "relativePath": [
3058
3825
  "dist",
3059
3826
  "commands",
3060
- "templates",
3061
- "presets.js"
3827
+ "teams",
3828
+ "switch.js"
3062
3829
  ]
3063
3830
  },
3064
- "templates:publish": {
3831
+ "templates:clone": {
3065
3832
  "aliases": [],
3066
3833
  "args": {
3067
3834
  "id": {
3068
- "description": "Template ID",
3835
+ "description": "Template ID to clone",
3069
3836
  "name": "id",
3070
3837
  "required": true
3071
3838
  }
3072
3839
  },
3073
- "description": "Publish a draft template (locks it for use)",
3840
+ "description": "Clone a template",
3074
3841
  "examples": [
3075
- "<%= config.bin %> templates publish tpl_xxx"
3842
+ "<%= config.bin %> templates clone tpl_preset_otp",
3843
+ "<%= config.bin %> templates clone tpl_preset_otp --name \"My Custom OTP\"",
3844
+ "<%= config.bin %> templates clone tpl_xxx --json"
3076
3845
  ],
3077
3846
  "flags": {
3078
3847
  "json": {
@@ -3087,11 +3856,19 @@
3087
3856
  "name": "quiet",
3088
3857
  "allowNo": false,
3089
3858
  "type": "boolean"
3859
+ },
3860
+ "name": {
3861
+ "char": "n",
3862
+ "description": "Name for the cloned template",
3863
+ "name": "name",
3864
+ "hasDynamicHelp": false,
3865
+ "multiple": false,
3866
+ "type": "option"
3090
3867
  }
3091
3868
  },
3092
3869
  "hasDynamicHelp": false,
3093
3870
  "hiddenAliases": [],
3094
- "id": "templates:publish",
3871
+ "id": "templates:clone",
3095
3872
  "pluginAlias": "@sendly/cli",
3096
3873
  "pluginName": "@sendly/cli",
3097
3874
  "pluginType": "core",
@@ -3101,16 +3878,16 @@
3101
3878
  "dist",
3102
3879
  "commands",
3103
3880
  "templates",
3104
- "publish.js"
3881
+ "clone.js"
3105
3882
  ]
3106
3883
  },
3107
- "teams:create": {
3884
+ "templates:create": {
3108
3885
  "aliases": [],
3109
3886
  "args": {},
3110
- "description": "Create a new team",
3887
+ "description": "Create a new SMS template",
3111
3888
  "examples": [
3112
- "<%= config.bin %> teams create --name \"Acme Corp\"",
3113
- "<%= config.bin %> teams create --name \"Acme Corp\" --description \"Our main team\""
3889
+ "<%= config.bin %> templates create --name \"My OTP\" --text \"Your code is {{code}}\"",
3890
+ "<%= config.bin %> templates create --name \"Login\" --text \"{{code}} is your {{app_name}} login code\""
3114
3891
  ],
3115
3892
  "flags": {
3116
3893
  "json": {
@@ -3128,17 +3905,18 @@
3128
3905
  },
3129
3906
  "name": {
3130
3907
  "char": "n",
3131
- "description": "Team name",
3908
+ "description": "Template name",
3132
3909
  "name": "name",
3133
3910
  "required": true,
3134
3911
  "hasDynamicHelp": false,
3135
3912
  "multiple": false,
3136
3913
  "type": "option"
3137
3914
  },
3138
- "description": {
3139
- "char": "d",
3140
- "description": "Team description",
3141
- "name": "description",
3915
+ "text": {
3916
+ "char": "t",
3917
+ "description": "Message text (use {{code}} and {{app_name}} variables)",
3918
+ "name": "text",
3919
+ "required": true,
3142
3920
  "hasDynamicHelp": false,
3143
3921
  "multiple": false,
3144
3922
  "type": "option"
@@ -3146,7 +3924,7 @@
3146
3924
  },
3147
3925
  "hasDynamicHelp": false,
3148
3926
  "hiddenAliases": [],
3149
- "id": "teams:create",
3927
+ "id": "templates:create",
3150
3928
  "pluginAlias": "@sendly/cli",
3151
3929
  "pluginName": "@sendly/cli",
3152
3930
  "pluginType": "core",
@@ -3155,17 +3933,23 @@
3155
3933
  "relativePath": [
3156
3934
  "dist",
3157
3935
  "commands",
3158
- "teams",
3936
+ "templates",
3159
3937
  "create.js"
3160
3938
  ]
3161
3939
  },
3162
- "teams:current": {
3940
+ "templates:delete": {
3163
3941
  "aliases": [],
3164
- "args": {},
3165
- "description": "Show the currently active team",
3942
+ "args": {
3943
+ "id": {
3944
+ "description": "Template ID",
3945
+ "name": "id",
3946
+ "required": true
3947
+ }
3948
+ },
3949
+ "description": "Delete a template",
3166
3950
  "examples": [
3167
- "<%= config.bin %> teams current",
3168
- "<%= config.bin %> teams current --json"
3951
+ "<%= config.bin %> templates delete tpl_xxx",
3952
+ "<%= config.bin %> templates delete tpl_xxx --force"
3169
3953
  ],
3170
3954
  "flags": {
3171
3955
  "json": {
@@ -3180,11 +3964,18 @@
3180
3964
  "name": "quiet",
3181
3965
  "allowNo": false,
3182
3966
  "type": "boolean"
3967
+ },
3968
+ "force": {
3969
+ "char": "f",
3970
+ "description": "Skip confirmation",
3971
+ "name": "force",
3972
+ "allowNo": false,
3973
+ "type": "boolean"
3183
3974
  }
3184
3975
  },
3185
3976
  "hasDynamicHelp": false,
3186
3977
  "hiddenAliases": [],
3187
- "id": "teams:current",
3978
+ "id": "templates:delete",
3188
3979
  "pluginAlias": "@sendly/cli",
3189
3980
  "pluginName": "@sendly/cli",
3190
3981
  "pluginType": "core",
@@ -3193,23 +3984,23 @@
3193
3984
  "relativePath": [
3194
3985
  "dist",
3195
3986
  "commands",
3196
- "teams",
3197
- "current.js"
3987
+ "templates",
3988
+ "delete.js"
3198
3989
  ]
3199
3990
  },
3200
- "teams:invite": {
3991
+ "templates:get": {
3201
3992
  "aliases": [],
3202
3993
  "args": {
3203
- "email": {
3204
- "description": "Email address to invite",
3205
- "name": "email",
3994
+ "id": {
3995
+ "description": "Template ID",
3996
+ "name": "id",
3206
3997
  "required": true
3207
3998
  }
3208
3999
  },
3209
- "description": "Invite a member to the current team",
4000
+ "description": "Get template details",
3210
4001
  "examples": [
3211
- "<%= config.bin %> teams invite user@example.com",
3212
- "<%= config.bin %> teams invite user@example.com --role admin"
4002
+ "<%= config.bin %> templates get tpl_xxx",
4003
+ "<%= config.bin %> templates get tpl_preset_2fa"
3213
4004
  ],
3214
4005
  "flags": {
3215
4006
  "json": {
@@ -3224,25 +4015,11 @@
3224
4015
  "name": "quiet",
3225
4016
  "allowNo": false,
3226
4017
  "type": "boolean"
3227
- },
3228
- "role": {
3229
- "char": "r",
3230
- "description": "Role to assign (admin, member, viewer)",
3231
- "name": "role",
3232
- "default": "member",
3233
- "hasDynamicHelp": false,
3234
- "multiple": false,
3235
- "options": [
3236
- "admin",
3237
- "member",
3238
- "viewer"
3239
- ],
3240
- "type": "option"
3241
4018
  }
3242
4019
  },
3243
4020
  "hasDynamicHelp": false,
3244
4021
  "hiddenAliases": [],
3245
- "id": "teams:invite",
4022
+ "id": "templates:get",
3246
4023
  "pluginAlias": "@sendly/cli",
3247
4024
  "pluginName": "@sendly/cli",
3248
4025
  "pluginType": "core",
@@ -3251,17 +4028,17 @@
3251
4028
  "relativePath": [
3252
4029
  "dist",
3253
4030
  "commands",
3254
- "teams",
3255
- "invite.js"
4031
+ "templates",
4032
+ "get.js"
3256
4033
  ]
3257
4034
  },
3258
- "teams:list": {
4035
+ "templates:list": {
3259
4036
  "aliases": [],
3260
4037
  "args": {},
3261
- "description": "List your teams",
4038
+ "description": "List your SMS templates",
3262
4039
  "examples": [
3263
- "<%= config.bin %> teams list",
3264
- "<%= config.bin %> teams list --json"
4040
+ "<%= config.bin %> templates list",
4041
+ "<%= config.bin %> templates list --json"
3265
4042
  ],
3266
4043
  "flags": {
3267
4044
  "json": {
@@ -3280,7 +4057,7 @@
3280
4057
  },
3281
4058
  "hasDynamicHelp": false,
3282
4059
  "hiddenAliases": [],
3283
- "id": "teams:list",
4060
+ "id": "templates:list",
3284
4061
  "pluginAlias": "@sendly/cli",
3285
4062
  "pluginName": "@sendly/cli",
3286
4063
  "pluginType": "core",
@@ -3289,17 +4066,17 @@
3289
4066
  "relativePath": [
3290
4067
  "dist",
3291
4068
  "commands",
3292
- "teams",
4069
+ "templates",
3293
4070
  "list.js"
3294
4071
  ]
3295
4072
  },
3296
- "teams:members": {
4073
+ "templates:presets": {
3297
4074
  "aliases": [],
3298
4075
  "args": {},
3299
- "description": "List members of the current team",
4076
+ "description": "List available preset templates",
3300
4077
  "examples": [
3301
- "<%= config.bin %> teams members",
3302
- "<%= config.bin %> teams members --json"
4078
+ "<%= config.bin %> templates presets",
4079
+ "<%= config.bin %> templates presets --json"
3303
4080
  ],
3304
4081
  "flags": {
3305
4082
  "json": {
@@ -3318,7 +4095,7 @@
3318
4095
  },
3319
4096
  "hasDynamicHelp": false,
3320
4097
  "hiddenAliases": [],
3321
- "id": "teams:members",
4098
+ "id": "templates:presets",
3322
4099
  "pluginAlias": "@sendly/cli",
3323
4100
  "pluginName": "@sendly/cli",
3324
4101
  "pluginType": "core",
@@ -3327,24 +4104,22 @@
3327
4104
  "relativePath": [
3328
4105
  "dist",
3329
4106
  "commands",
3330
- "teams",
3331
- "members.js"
4107
+ "templates",
4108
+ "presets.js"
3332
4109
  ]
3333
4110
  },
3334
- "teams:switch": {
4111
+ "templates:publish": {
3335
4112
  "aliases": [],
3336
4113
  "args": {
3337
- "org": {
3338
- "description": "Organization ID or slug to switch to",
3339
- "name": "org",
3340
- "required": false
4114
+ "id": {
4115
+ "description": "Template ID",
4116
+ "name": "id",
4117
+ "required": true
3341
4118
  }
3342
4119
  },
3343
- "description": "Switch the active team",
4120
+ "description": "Publish a draft template (locks it for use)",
3344
4121
  "examples": [
3345
- "<%= config.bin %> teams switch",
3346
- "<%= config.bin %> teams switch <org-id-or-slug>",
3347
- "<%= config.bin %> teams switch --clear"
4122
+ "<%= config.bin %> templates publish tpl_xxx"
3348
4123
  ],
3349
4124
  "flags": {
3350
4125
  "json": {
@@ -3363,7 +4138,7 @@
3363
4138
  },
3364
4139
  "hasDynamicHelp": false,
3365
4140
  "hiddenAliases": [],
3366
- "id": "teams:switch",
4141
+ "id": "templates:publish",
3367
4142
  "pluginAlias": "@sendly/cli",
3368
4143
  "pluginName": "@sendly/cli",
3369
4144
  "pluginType": "core",
@@ -3372,8 +4147,8 @@
3372
4147
  "relativePath": [
3373
4148
  "dist",
3374
4149
  "commands",
3375
- "teams",
3376
- "switch.js"
4150
+ "templates",
4151
+ "publish.js"
3377
4152
  ]
3378
4153
  },
3379
4154
  "verify:check": {
@@ -4737,6 +5512,112 @@
4737
5512
  "overview.js"
4738
5513
  ]
4739
5514
  },
5515
+ "enterprise:quota:get": {
5516
+ "aliases": [],
5517
+ "args": {
5518
+ "workspaceId": {
5519
+ "description": "Workspace ID",
5520
+ "name": "workspaceId",
5521
+ "required": true
5522
+ }
5523
+ },
5524
+ "description": "Get message quota for an enterprise workspace",
5525
+ "examples": [
5526
+ "<%= config.bin %> enterprise quota get org_abc123",
5527
+ "<%= config.bin %> enterprise quota get org_abc123 --json"
5528
+ ],
5529
+ "flags": {
5530
+ "json": {
5531
+ "description": "Output in JSON format",
5532
+ "name": "json",
5533
+ "allowNo": false,
5534
+ "type": "boolean"
5535
+ },
5536
+ "quiet": {
5537
+ "char": "q",
5538
+ "description": "Minimal output",
5539
+ "name": "quiet",
5540
+ "allowNo": false,
5541
+ "type": "boolean"
5542
+ }
5543
+ },
5544
+ "hasDynamicHelp": false,
5545
+ "hiddenAliases": [],
5546
+ "id": "enterprise:quota:get",
5547
+ "pluginAlias": "@sendly/cli",
5548
+ "pluginName": "@sendly/cli",
5549
+ "pluginType": "core",
5550
+ "strict": true,
5551
+ "isESM": true,
5552
+ "relativePath": [
5553
+ "dist",
5554
+ "commands",
5555
+ "enterprise",
5556
+ "quota",
5557
+ "get.js"
5558
+ ]
5559
+ },
5560
+ "enterprise:quota:set": {
5561
+ "aliases": [],
5562
+ "args": {
5563
+ "workspaceId": {
5564
+ "description": "Workspace ID",
5565
+ "name": "workspaceId",
5566
+ "required": true
5567
+ }
5568
+ },
5569
+ "description": "Set message quota for an enterprise workspace",
5570
+ "examples": [
5571
+ "<%= config.bin %> enterprise quota set org_abc123 --daily 1000",
5572
+ "<%= config.bin %> enterprise quota set org_abc123 --monthly 25000",
5573
+ "<%= config.bin %> enterprise quota set org_abc123 --daily 1000 --monthly 25000",
5574
+ "<%= config.bin %> enterprise quota set org_abc123 --daily unlimited"
5575
+ ],
5576
+ "flags": {
5577
+ "json": {
5578
+ "description": "Output in JSON format",
5579
+ "name": "json",
5580
+ "allowNo": false,
5581
+ "type": "boolean"
5582
+ },
5583
+ "quiet": {
5584
+ "char": "q",
5585
+ "description": "Minimal output",
5586
+ "name": "quiet",
5587
+ "allowNo": false,
5588
+ "type": "boolean"
5589
+ },
5590
+ "daily": {
5591
+ "description": "Daily message limit (number or \"unlimited\")",
5592
+ "name": "daily",
5593
+ "hasDynamicHelp": false,
5594
+ "multiple": false,
5595
+ "type": "option"
5596
+ },
5597
+ "monthly": {
5598
+ "description": "Monthly message limit (number or \"unlimited\")",
5599
+ "name": "monthly",
5600
+ "hasDynamicHelp": false,
5601
+ "multiple": false,
5602
+ "type": "option"
5603
+ }
5604
+ },
5605
+ "hasDynamicHelp": false,
5606
+ "hiddenAliases": [],
5607
+ "id": "enterprise:quota:set",
5608
+ "pluginAlias": "@sendly/cli",
5609
+ "pluginName": "@sendly/cli",
5610
+ "pluginType": "core",
5611
+ "strict": true,
5612
+ "isESM": true,
5613
+ "relativePath": [
5614
+ "dist",
5615
+ "commands",
5616
+ "enterprise",
5617
+ "quota",
5618
+ "set.js"
5619
+ ]
5620
+ },
4740
5621
  "enterprise:keys:create": {
4741
5622
  "aliases": [],
4742
5623
  "args": {
@@ -4906,19 +5787,59 @@
4906
5787
  "revoke.js"
4907
5788
  ]
4908
5789
  },
4909
- "enterprise:quota:get": {
5790
+ "enterprise:webhooks:delete": {
4910
5791
  "aliases": [],
4911
- "args": {
4912
- "workspaceId": {
4913
- "description": "Workspace ID",
4914
- "name": "workspaceId",
4915
- "required": true
5792
+ "args": {},
5793
+ "description": "Delete the enterprise webhook",
5794
+ "examples": [
5795
+ "<%= config.bin %> enterprise webhooks delete",
5796
+ "<%= config.bin %> enterprise webhooks delete --yes"
5797
+ ],
5798
+ "flags": {
5799
+ "json": {
5800
+ "description": "Output in JSON format",
5801
+ "name": "json",
5802
+ "allowNo": false,
5803
+ "type": "boolean"
5804
+ },
5805
+ "quiet": {
5806
+ "char": "q",
5807
+ "description": "Minimal output",
5808
+ "name": "quiet",
5809
+ "allowNo": false,
5810
+ "type": "boolean"
5811
+ },
5812
+ "yes": {
5813
+ "char": "y",
5814
+ "description": "Skip confirmation prompt",
5815
+ "name": "yes",
5816
+ "allowNo": false,
5817
+ "type": "boolean"
4916
5818
  }
4917
5819
  },
4918
- "description": "Get message quota for an enterprise workspace",
5820
+ "hasDynamicHelp": false,
5821
+ "hiddenAliases": [],
5822
+ "id": "enterprise:webhooks:delete",
5823
+ "pluginAlias": "@sendly/cli",
5824
+ "pluginName": "@sendly/cli",
5825
+ "pluginType": "core",
5826
+ "strict": true,
5827
+ "isESM": true,
5828
+ "relativePath": [
5829
+ "dist",
5830
+ "commands",
5831
+ "enterprise",
5832
+ "webhooks",
5833
+ "delete.js"
5834
+ ]
5835
+ },
5836
+ "enterprise:webhooks:get": {
5837
+ "aliases": [],
5838
+ "args": {},
5839
+ "description": "Get the enterprise webhook configuration",
4919
5840
  "examples": [
4920
- "<%= config.bin %> enterprise quota get org_abc123",
4921
- "<%= config.bin %> enterprise quota get org_abc123 --json"
5841
+ "<%= config.bin %> enterprise webhooks get",
5842
+ "<%= config.bin %> enterprise webhooks get --json"
4922
5843
  ],
4923
5844
  "flags": {
4924
5845
  "json": {
@@ -4937,7 +5858,7 @@
4937
5858
  },
4938
5859
  "hasDynamicHelp": false,
4939
5860
  "hiddenAliases": [],
4940
- "id": "enterprise:quota:get",
5861
+ "id": "enterprise:webhooks:get",
4941
5862
  "pluginAlias": "@sendly/cli",
4942
5863
  "pluginName": "@sendly/cli",
4943
5864
  "pluginType": "core",
@@ -4947,25 +5868,17 @@
4947
5868
  "dist",
4948
5869
  "commands",
4949
5870
  "enterprise",
4950
- "quota",
5871
+ "webhooks",
4951
5872
  "get.js"
4952
5873
  ]
4953
5874
  },
4954
- "enterprise:quota:set": {
5875
+ "enterprise:webhooks:set": {
4955
5876
  "aliases": [],
4956
- "args": {
4957
- "workspaceId": {
4958
- "description": "Workspace ID",
4959
- "name": "workspaceId",
4960
- "required": true
4961
- }
4962
- },
4963
- "description": "Set message quota for an enterprise workspace",
5877
+ "args": {},
5878
+ "description": "Create or update the enterprise-level webhook",
4964
5879
  "examples": [
4965
- "<%= config.bin %> enterprise quota set org_abc123 --daily 1000",
4966
- "<%= config.bin %> enterprise quota set org_abc123 --monthly 25000",
4967
- "<%= config.bin %> enterprise quota set org_abc123 --daily 1000 --monthly 25000",
4968
- "<%= config.bin %> enterprise quota set org_abc123 --daily unlimited"
5880
+ "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook",
5881
+ "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook --events \"message.sent,message.delivered\""
4969
5882
  ],
4970
5883
  "flags": {
4971
5884
  "json": {
@@ -4981,16 +5894,17 @@
4981
5894
  "allowNo": false,
4982
5895
  "type": "boolean"
4983
5896
  },
4984
- "daily": {
4985
- "description": "Daily message limit (number or \"unlimited\")",
4986
- "name": "daily",
5897
+ "url": {
5898
+ "description": "Webhook endpoint URL",
5899
+ "name": "url",
5900
+ "required": true,
4987
5901
  "hasDynamicHelp": false,
4988
5902
  "multiple": false,
4989
5903
  "type": "option"
4990
5904
  },
4991
- "monthly": {
4992
- "description": "Monthly message limit (number or \"unlimited\")",
4993
- "name": "monthly",
5905
+ "events": {
5906
+ "description": "Comma-separated list of event types to subscribe to",
5907
+ "name": "events",
4994
5908
  "hasDynamicHelp": false,
4995
5909
  "multiple": false,
4996
5910
  "type": "option"
@@ -4998,7 +5912,7 @@
4998
5912
  },
4999
5913
  "hasDynamicHelp": false,
5000
5914
  "hiddenAliases": [],
5001
- "id": "enterprise:quota:set",
5915
+ "id": "enterprise:webhooks:set",
5002
5916
  "pluginAlias": "@sendly/cli",
5003
5917
  "pluginName": "@sendly/cli",
5004
5918
  "pluginType": "core",
@@ -5008,10 +5922,49 @@
5008
5922
  "dist",
5009
5923
  "commands",
5010
5924
  "enterprise",
5011
- "quota",
5925
+ "webhooks",
5012
5926
  "set.js"
5013
5927
  ]
5014
5928
  },
5929
+ "enterprise:webhooks:test": {
5930
+ "aliases": [],
5931
+ "args": {},
5932
+ "description": "Send a test event to the enterprise webhook",
5933
+ "examples": [
5934
+ "<%= config.bin %> enterprise webhooks test",
5935
+ "<%= config.bin %> enterprise webhooks test --json"
5936
+ ],
5937
+ "flags": {
5938
+ "json": {
5939
+ "description": "Output in JSON format",
5940
+ "name": "json",
5941
+ "allowNo": false,
5942
+ "type": "boolean"
5943
+ },
5944
+ "quiet": {
5945
+ "char": "q",
5946
+ "description": "Minimal output",
5947
+ "name": "quiet",
5948
+ "allowNo": false,
5949
+ "type": "boolean"
5950
+ }
5951
+ },
5952
+ "hasDynamicHelp": false,
5953
+ "hiddenAliases": [],
5954
+ "id": "enterprise:webhooks:test",
5955
+ "pluginAlias": "@sendly/cli",
5956
+ "pluginName": "@sendly/cli",
5957
+ "pluginType": "core",
5958
+ "strict": true,
5959
+ "isESM": true,
5960
+ "relativePath": [
5961
+ "dist",
5962
+ "commands",
5963
+ "enterprise",
5964
+ "webhooks",
5965
+ "test.js"
5966
+ ]
5967
+ },
5015
5968
  "enterprise:workspaces:create": {
5016
5969
  "aliases": [],
5017
5970
  "args": {},
@@ -5299,185 +6252,7 @@
5299
6252
  "workspaces",
5300
6253
  "suspend.js"
5301
6254
  ]
5302
- },
5303
- "enterprise:webhooks:delete": {
5304
- "aliases": [],
5305
- "args": {},
5306
- "description": "Delete the enterprise webhook",
5307
- "examples": [
5308
- "<%= config.bin %> enterprise webhooks delete",
5309
- "<%= config.bin %> enterprise webhooks delete --yes"
5310
- ],
5311
- "flags": {
5312
- "json": {
5313
- "description": "Output in JSON format",
5314
- "name": "json",
5315
- "allowNo": false,
5316
- "type": "boolean"
5317
- },
5318
- "quiet": {
5319
- "char": "q",
5320
- "description": "Minimal output",
5321
- "name": "quiet",
5322
- "allowNo": false,
5323
- "type": "boolean"
5324
- },
5325
- "yes": {
5326
- "char": "y",
5327
- "description": "Skip confirmation prompt",
5328
- "name": "yes",
5329
- "allowNo": false,
5330
- "type": "boolean"
5331
- }
5332
- },
5333
- "hasDynamicHelp": false,
5334
- "hiddenAliases": [],
5335
- "id": "enterprise:webhooks:delete",
5336
- "pluginAlias": "@sendly/cli",
5337
- "pluginName": "@sendly/cli",
5338
- "pluginType": "core",
5339
- "strict": true,
5340
- "isESM": true,
5341
- "relativePath": [
5342
- "dist",
5343
- "commands",
5344
- "enterprise",
5345
- "webhooks",
5346
- "delete.js"
5347
- ]
5348
- },
5349
- "enterprise:webhooks:get": {
5350
- "aliases": [],
5351
- "args": {},
5352
- "description": "Get the enterprise webhook configuration",
5353
- "examples": [
5354
- "<%= config.bin %> enterprise webhooks get",
5355
- "<%= config.bin %> enterprise webhooks get --json"
5356
- ],
5357
- "flags": {
5358
- "json": {
5359
- "description": "Output in JSON format",
5360
- "name": "json",
5361
- "allowNo": false,
5362
- "type": "boolean"
5363
- },
5364
- "quiet": {
5365
- "char": "q",
5366
- "description": "Minimal output",
5367
- "name": "quiet",
5368
- "allowNo": false,
5369
- "type": "boolean"
5370
- }
5371
- },
5372
- "hasDynamicHelp": false,
5373
- "hiddenAliases": [],
5374
- "id": "enterprise:webhooks:get",
5375
- "pluginAlias": "@sendly/cli",
5376
- "pluginName": "@sendly/cli",
5377
- "pluginType": "core",
5378
- "strict": true,
5379
- "isESM": true,
5380
- "relativePath": [
5381
- "dist",
5382
- "commands",
5383
- "enterprise",
5384
- "webhooks",
5385
- "get.js"
5386
- ]
5387
- },
5388
- "enterprise:webhooks:set": {
5389
- "aliases": [],
5390
- "args": {},
5391
- "description": "Create or update the enterprise-level webhook",
5392
- "examples": [
5393
- "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook",
5394
- "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook --events \"message.sent,message.delivered\""
5395
- ],
5396
- "flags": {
5397
- "json": {
5398
- "description": "Output in JSON format",
5399
- "name": "json",
5400
- "allowNo": false,
5401
- "type": "boolean"
5402
- },
5403
- "quiet": {
5404
- "char": "q",
5405
- "description": "Minimal output",
5406
- "name": "quiet",
5407
- "allowNo": false,
5408
- "type": "boolean"
5409
- },
5410
- "url": {
5411
- "description": "Webhook endpoint URL",
5412
- "name": "url",
5413
- "required": true,
5414
- "hasDynamicHelp": false,
5415
- "multiple": false,
5416
- "type": "option"
5417
- },
5418
- "events": {
5419
- "description": "Comma-separated list of event types to subscribe to",
5420
- "name": "events",
5421
- "hasDynamicHelp": false,
5422
- "multiple": false,
5423
- "type": "option"
5424
- }
5425
- },
5426
- "hasDynamicHelp": false,
5427
- "hiddenAliases": [],
5428
- "id": "enterprise:webhooks:set",
5429
- "pluginAlias": "@sendly/cli",
5430
- "pluginName": "@sendly/cli",
5431
- "pluginType": "core",
5432
- "strict": true,
5433
- "isESM": true,
5434
- "relativePath": [
5435
- "dist",
5436
- "commands",
5437
- "enterprise",
5438
- "webhooks",
5439
- "set.js"
5440
- ]
5441
- },
5442
- "enterprise:webhooks:test": {
5443
- "aliases": [],
5444
- "args": {},
5445
- "description": "Send a test event to the enterprise webhook",
5446
- "examples": [
5447
- "<%= config.bin %> enterprise webhooks test",
5448
- "<%= config.bin %> enterprise webhooks test --json"
5449
- ],
5450
- "flags": {
5451
- "json": {
5452
- "description": "Output in JSON format",
5453
- "name": "json",
5454
- "allowNo": false,
5455
- "type": "boolean"
5456
- },
5457
- "quiet": {
5458
- "char": "q",
5459
- "description": "Minimal output",
5460
- "name": "quiet",
5461
- "allowNo": false,
5462
- "type": "boolean"
5463
- }
5464
- },
5465
- "hasDynamicHelp": false,
5466
- "hiddenAliases": [],
5467
- "id": "enterprise:webhooks:test",
5468
- "pluginAlias": "@sendly/cli",
5469
- "pluginName": "@sendly/cli",
5470
- "pluginType": "core",
5471
- "strict": true,
5472
- "isESM": true,
5473
- "relativePath": [
5474
- "dist",
5475
- "commands",
5476
- "enterprise",
5477
- "webhooks",
5478
- "test.js"
5479
- ]
5480
6255
  }
5481
6256
  },
5482
- "version": "3.20.0"
6257
+ "version": "3.24.0"
5483
6258
  }