@sendly/cli 3.5.4 → 3.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/commands/logout.js +15 -2
- package/dist/commands/trigger.d.ts +13 -0
- package/dist/commands/trigger.js +61 -0
- package/dist/commands/webhooks/listen.d.ts +6 -5
- package/dist/commands/webhooks/listen.js +98 -88
- package/dist/lib/auth.js +1 -2
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.js +110 -17
- package/oclif.manifest.json +501 -458
- package/package.json +1 -3
package/oclif.manifest.json
CHANGED
|
@@ -253,6 +253,57 @@
|
|
|
253
253
|
"status.js"
|
|
254
254
|
]
|
|
255
255
|
},
|
|
256
|
+
"trigger": {
|
|
257
|
+
"aliases": [],
|
|
258
|
+
"args": {
|
|
259
|
+
"event": {
|
|
260
|
+
"description": "Event type to trigger",
|
|
261
|
+
"name": "event",
|
|
262
|
+
"options": [
|
|
263
|
+
"message.sent",
|
|
264
|
+
"message.delivered",
|
|
265
|
+
"message.failed",
|
|
266
|
+
"message.bounced",
|
|
267
|
+
"message.received"
|
|
268
|
+
],
|
|
269
|
+
"required": true
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
"description": "Trigger a test webhook event. Sends a synthetic event to your active CLI listener.",
|
|
273
|
+
"examples": [
|
|
274
|
+
"<%= config.bin %> trigger message.delivered",
|
|
275
|
+
"<%= config.bin %> trigger message.failed",
|
|
276
|
+
"<%= config.bin %> trigger message.sent"
|
|
277
|
+
],
|
|
278
|
+
"flags": {
|
|
279
|
+
"json": {
|
|
280
|
+
"description": "Output in JSON format",
|
|
281
|
+
"name": "json",
|
|
282
|
+
"allowNo": false,
|
|
283
|
+
"type": "boolean"
|
|
284
|
+
},
|
|
285
|
+
"quiet": {
|
|
286
|
+
"char": "q",
|
|
287
|
+
"description": "Minimal output",
|
|
288
|
+
"name": "quiet",
|
|
289
|
+
"allowNo": false,
|
|
290
|
+
"type": "boolean"
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
"hasDynamicHelp": false,
|
|
294
|
+
"hiddenAliases": [],
|
|
295
|
+
"id": "trigger",
|
|
296
|
+
"pluginAlias": "@sendly/cli",
|
|
297
|
+
"pluginName": "@sendly/cli",
|
|
298
|
+
"pluginType": "core",
|
|
299
|
+
"strict": true,
|
|
300
|
+
"isESM": true,
|
|
301
|
+
"relativePath": [
|
|
302
|
+
"dist",
|
|
303
|
+
"commands",
|
|
304
|
+
"trigger.js"
|
|
305
|
+
]
|
|
306
|
+
},
|
|
256
307
|
"whoami": {
|
|
257
308
|
"aliases": [],
|
|
258
309
|
"args": {},
|
|
@@ -745,18 +796,14 @@
|
|
|
745
796
|
"tail.js"
|
|
746
797
|
]
|
|
747
798
|
},
|
|
748
|
-
"
|
|
799
|
+
"webhooks:create": {
|
|
749
800
|
"aliases": [],
|
|
750
801
|
"args": {},
|
|
751
|
-
"description": "
|
|
802
|
+
"description": "Create a webhook",
|
|
752
803
|
"examples": [
|
|
753
|
-
"<%= config.bin %>
|
|
754
|
-
"<%= config.bin %>
|
|
755
|
-
"<%= config.bin %>
|
|
756
|
-
"<%= config.bin %> sms batch --file recipients.csv --dry-run",
|
|
757
|
-
"<%= config.bin %> sms batch --file phones.csv --text \"Code: 123\" --type transactional",
|
|
758
|
-
"<%= config.bin %> sms batch --reuse abc123-def456",
|
|
759
|
-
"<%= config.bin %> sms batch --history"
|
|
804
|
+
"<%= config.bin %> webhooks create --url https://myapp.com/webhook --events message.delivered",
|
|
805
|
+
"<%= config.bin %> webhooks create --url https://myapp.com/webhook --events message.delivered,message.failed --description \"Production webhook\"",
|
|
806
|
+
"<%= config.bin %> webhooks create --url https://webhook.site/abc123 --events message.sent --json"
|
|
760
807
|
],
|
|
761
808
|
"flags": {
|
|
762
809
|
"json": {
|
|
@@ -772,94 +819,102 @@
|
|
|
772
819
|
"allowNo": false,
|
|
773
820
|
"type": "boolean"
|
|
774
821
|
},
|
|
775
|
-
"
|
|
776
|
-
"char": "
|
|
777
|
-
"description": "
|
|
778
|
-
"
|
|
779
|
-
|
|
780
|
-
"reuse",
|
|
781
|
-
"history"
|
|
782
|
-
],
|
|
783
|
-
"name": "file",
|
|
784
|
-
"hasDynamicHelp": false,
|
|
785
|
-
"multiple": false,
|
|
786
|
-
"type": "option"
|
|
787
|
-
},
|
|
788
|
-
"to": {
|
|
789
|
-
"char": "t",
|
|
790
|
-
"description": "Comma-separated recipient phone numbers (E.164 format)",
|
|
791
|
-
"exclusive": [
|
|
792
|
-
"file",
|
|
793
|
-
"reuse",
|
|
794
|
-
"history"
|
|
795
|
-
],
|
|
796
|
-
"name": "to",
|
|
822
|
+
"url": {
|
|
823
|
+
"char": "u",
|
|
824
|
+
"description": "Webhook URL (must be HTTPS)",
|
|
825
|
+
"name": "url",
|
|
826
|
+
"required": true,
|
|
797
827
|
"hasDynamicHelp": false,
|
|
798
828
|
"multiple": false,
|
|
799
829
|
"type": "option"
|
|
800
830
|
},
|
|
801
|
-
"
|
|
802
|
-
"char": "
|
|
803
|
-
"description": "
|
|
804
|
-
"name": "
|
|
831
|
+
"events": {
|
|
832
|
+
"char": "e",
|
|
833
|
+
"description": "Comma-separated list of events to listen for",
|
|
834
|
+
"name": "events",
|
|
835
|
+
"required": true,
|
|
805
836
|
"hasDynamicHelp": false,
|
|
806
837
|
"multiple": false,
|
|
807
838
|
"type": "option"
|
|
808
839
|
},
|
|
809
|
-
"
|
|
810
|
-
"char": "
|
|
811
|
-
"description": "
|
|
812
|
-
"name": "
|
|
840
|
+
"description": {
|
|
841
|
+
"char": "d",
|
|
842
|
+
"description": "Description for the webhook",
|
|
843
|
+
"name": "description",
|
|
813
844
|
"hasDynamicHelp": false,
|
|
814
845
|
"multiple": false,
|
|
815
846
|
"type": "option"
|
|
816
847
|
},
|
|
817
|
-
"
|
|
818
|
-
"
|
|
819
|
-
"
|
|
820
|
-
"
|
|
848
|
+
"mode": {
|
|
849
|
+
"char": "m",
|
|
850
|
+
"description": "Event mode filter: all (default), test (sandbox only), live (production only)",
|
|
851
|
+
"name": "mode",
|
|
852
|
+
"default": "all",
|
|
821
853
|
"hasDynamicHelp": false,
|
|
822
854
|
"multiple": false,
|
|
823
855
|
"options": [
|
|
824
|
-
"
|
|
825
|
-
"
|
|
856
|
+
"all",
|
|
857
|
+
"test",
|
|
858
|
+
"live"
|
|
826
859
|
],
|
|
827
860
|
"type": "option"
|
|
828
|
-
}
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
861
|
+
}
|
|
862
|
+
},
|
|
863
|
+
"hasDynamicHelp": false,
|
|
864
|
+
"hiddenAliases": [],
|
|
865
|
+
"id": "webhooks:create",
|
|
866
|
+
"pluginAlias": "@sendly/cli",
|
|
867
|
+
"pluginName": "@sendly/cli",
|
|
868
|
+
"pluginType": "core",
|
|
869
|
+
"strict": true,
|
|
870
|
+
"isESM": true,
|
|
871
|
+
"relativePath": [
|
|
872
|
+
"dist",
|
|
873
|
+
"commands",
|
|
874
|
+
"webhooks",
|
|
875
|
+
"create.js"
|
|
876
|
+
]
|
|
877
|
+
},
|
|
878
|
+
"webhooks:delete": {
|
|
879
|
+
"aliases": [],
|
|
880
|
+
"args": {
|
|
881
|
+
"id": {
|
|
882
|
+
"description": "Webhook ID to delete",
|
|
883
|
+
"name": "id",
|
|
884
|
+
"required": true
|
|
885
|
+
}
|
|
886
|
+
},
|
|
887
|
+
"description": "Delete a webhook",
|
|
888
|
+
"examples": [
|
|
889
|
+
"<%= config.bin %> webhooks delete whk_abc123",
|
|
890
|
+
"<%= config.bin %> webhooks delete whk_abc123 --yes",
|
|
891
|
+
"<%= config.bin %> webhooks delete whk_abc123 --json"
|
|
892
|
+
],
|
|
893
|
+
"flags": {
|
|
894
|
+
"json": {
|
|
895
|
+
"description": "Output in JSON format",
|
|
896
|
+
"name": "json",
|
|
833
897
|
"allowNo": false,
|
|
834
898
|
"type": "boolean"
|
|
835
899
|
},
|
|
836
|
-
"
|
|
837
|
-
"
|
|
838
|
-
"
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
],
|
|
843
|
-
"name": "reuse",
|
|
844
|
-
"hasDynamicHelp": false,
|
|
845
|
-
"multiple": false,
|
|
846
|
-
"type": "option"
|
|
900
|
+
"quiet": {
|
|
901
|
+
"char": "q",
|
|
902
|
+
"description": "Minimal output",
|
|
903
|
+
"name": "quiet",
|
|
904
|
+
"allowNo": false,
|
|
905
|
+
"type": "boolean"
|
|
847
906
|
},
|
|
848
|
-
"
|
|
849
|
-
"
|
|
850
|
-
"
|
|
851
|
-
|
|
852
|
-
"to",
|
|
853
|
-
"reuse"
|
|
854
|
-
],
|
|
855
|
-
"name": "history",
|
|
907
|
+
"yes": {
|
|
908
|
+
"char": "y",
|
|
909
|
+
"description": "Skip confirmation prompt",
|
|
910
|
+
"name": "yes",
|
|
856
911
|
"allowNo": false,
|
|
857
912
|
"type": "boolean"
|
|
858
913
|
}
|
|
859
914
|
},
|
|
860
915
|
"hasDynamicHelp": false,
|
|
861
916
|
"hiddenAliases": [],
|
|
862
|
-
"id": "
|
|
917
|
+
"id": "webhooks:delete",
|
|
863
918
|
"pluginAlias": "@sendly/cli",
|
|
864
919
|
"pluginName": "@sendly/cli",
|
|
865
920
|
"pluginType": "core",
|
|
@@ -868,23 +923,25 @@
|
|
|
868
923
|
"relativePath": [
|
|
869
924
|
"dist",
|
|
870
925
|
"commands",
|
|
871
|
-
"
|
|
872
|
-
"
|
|
926
|
+
"webhooks",
|
|
927
|
+
"delete.js"
|
|
873
928
|
]
|
|
874
929
|
},
|
|
875
|
-
"
|
|
930
|
+
"webhooks:deliveries": {
|
|
876
931
|
"aliases": [],
|
|
877
932
|
"args": {
|
|
878
933
|
"id": {
|
|
879
|
-
"description": "
|
|
934
|
+
"description": "Webhook ID",
|
|
880
935
|
"name": "id",
|
|
881
936
|
"required": true
|
|
882
937
|
}
|
|
883
938
|
},
|
|
884
|
-
"description": "
|
|
939
|
+
"description": "View webhook delivery history",
|
|
885
940
|
"examples": [
|
|
886
|
-
"<%= config.bin %>
|
|
887
|
-
"<%= config.bin %>
|
|
941
|
+
"<%= config.bin %> webhooks deliveries whk_abc123",
|
|
942
|
+
"<%= config.bin %> webhooks deliveries whk_abc123 --limit 20",
|
|
943
|
+
"<%= config.bin %> webhooks deliveries whk_abc123 --failed-only",
|
|
944
|
+
"<%= config.bin %> webhooks deliveries whk_abc123 --json"
|
|
888
945
|
],
|
|
889
946
|
"flags": {
|
|
890
947
|
"json": {
|
|
@@ -899,11 +956,26 @@
|
|
|
899
956
|
"name": "quiet",
|
|
900
957
|
"allowNo": false,
|
|
901
958
|
"type": "boolean"
|
|
959
|
+
},
|
|
960
|
+
"limit": {
|
|
961
|
+
"char": "l",
|
|
962
|
+
"description": "Number of deliveries to show",
|
|
963
|
+
"name": "limit",
|
|
964
|
+
"default": 10,
|
|
965
|
+
"hasDynamicHelp": false,
|
|
966
|
+
"multiple": false,
|
|
967
|
+
"type": "option"
|
|
968
|
+
},
|
|
969
|
+
"failed-only": {
|
|
970
|
+
"description": "Show only failed deliveries",
|
|
971
|
+
"name": "failed-only",
|
|
972
|
+
"allowNo": false,
|
|
973
|
+
"type": "boolean"
|
|
902
974
|
}
|
|
903
975
|
},
|
|
904
976
|
"hasDynamicHelp": false,
|
|
905
977
|
"hiddenAliases": [],
|
|
906
|
-
"id": "
|
|
978
|
+
"id": "webhooks:deliveries",
|
|
907
979
|
"pluginAlias": "@sendly/cli",
|
|
908
980
|
"pluginName": "@sendly/cli",
|
|
909
981
|
"pluginType": "core",
|
|
@@ -912,23 +984,23 @@
|
|
|
912
984
|
"relativePath": [
|
|
913
985
|
"dist",
|
|
914
986
|
"commands",
|
|
915
|
-
"
|
|
916
|
-
"
|
|
987
|
+
"webhooks",
|
|
988
|
+
"deliveries.js"
|
|
917
989
|
]
|
|
918
990
|
},
|
|
919
|
-
"
|
|
991
|
+
"webhooks:get": {
|
|
920
992
|
"aliases": [],
|
|
921
993
|
"args": {
|
|
922
994
|
"id": {
|
|
923
|
-
"description": "
|
|
995
|
+
"description": "Webhook ID",
|
|
924
996
|
"name": "id",
|
|
925
997
|
"required": true
|
|
926
998
|
}
|
|
927
999
|
},
|
|
928
|
-
"description": "Get details
|
|
1000
|
+
"description": "Get webhook details",
|
|
929
1001
|
"examples": [
|
|
930
|
-
"<%= config.bin %>
|
|
931
|
-
"<%= config.bin %>
|
|
1002
|
+
"<%= config.bin %> webhooks get whk_abc123",
|
|
1003
|
+
"<%= config.bin %> webhooks get whk_abc123 --json"
|
|
932
1004
|
],
|
|
933
1005
|
"flags": {
|
|
934
1006
|
"json": {
|
|
@@ -947,7 +1019,7 @@
|
|
|
947
1019
|
},
|
|
948
1020
|
"hasDynamicHelp": false,
|
|
949
1021
|
"hiddenAliases": [],
|
|
950
|
-
"id": "
|
|
1022
|
+
"id": "webhooks:get",
|
|
951
1023
|
"pluginAlias": "@sendly/cli",
|
|
952
1024
|
"pluginName": "@sendly/cli",
|
|
953
1025
|
"pluginType": "core",
|
|
@@ -956,21 +1028,17 @@
|
|
|
956
1028
|
"relativePath": [
|
|
957
1029
|
"dist",
|
|
958
1030
|
"commands",
|
|
959
|
-
"
|
|
1031
|
+
"webhooks",
|
|
960
1032
|
"get.js"
|
|
961
1033
|
]
|
|
962
1034
|
},
|
|
963
|
-
"
|
|
1035
|
+
"webhooks:list": {
|
|
964
1036
|
"aliases": [],
|
|
965
1037
|
"args": {},
|
|
966
|
-
"description": "List
|
|
1038
|
+
"description": "List configured webhooks",
|
|
967
1039
|
"examples": [
|
|
968
|
-
"<%= config.bin %>
|
|
969
|
-
"<%= config.bin %>
|
|
970
|
-
"<%= config.bin %> sms list --page 2",
|
|
971
|
-
"<%= config.bin %> sms list --status delivered",
|
|
972
|
-
"<%= config.bin %> sms list --sandbox",
|
|
973
|
-
"<%= config.bin %> sms list --json"
|
|
1040
|
+
"<%= config.bin %> webhooks list",
|
|
1041
|
+
"<%= config.bin %> webhooks list --json"
|
|
974
1042
|
],
|
|
975
1043
|
"flags": {
|
|
976
1044
|
"json": {
|
|
@@ -985,49 +1053,11 @@
|
|
|
985
1053
|
"name": "quiet",
|
|
986
1054
|
"allowNo": false,
|
|
987
1055
|
"type": "boolean"
|
|
988
|
-
},
|
|
989
|
-
"limit": {
|
|
990
|
-
"char": "l",
|
|
991
|
-
"description": "Number of messages per page",
|
|
992
|
-
"name": "limit",
|
|
993
|
-
"default": 20,
|
|
994
|
-
"hasDynamicHelp": false,
|
|
995
|
-
"multiple": false,
|
|
996
|
-
"type": "option"
|
|
997
|
-
},
|
|
998
|
-
"page": {
|
|
999
|
-
"char": "p",
|
|
1000
|
-
"description": "Page number (starts at 1)",
|
|
1001
|
-
"name": "page",
|
|
1002
|
-
"hasDynamicHelp": false,
|
|
1003
|
-
"multiple": false,
|
|
1004
|
-
"type": "option"
|
|
1005
|
-
},
|
|
1006
|
-
"offset": {
|
|
1007
|
-
"description": "Offset from start (alternative to --page)",
|
|
1008
|
-
"name": "offset",
|
|
1009
|
-
"hasDynamicHelp": false,
|
|
1010
|
-
"multiple": false,
|
|
1011
|
-
"type": "option"
|
|
1012
|
-
},
|
|
1013
|
-
"status": {
|
|
1014
|
-
"char": "s",
|
|
1015
|
-
"description": "Filter by status (queued, sent, delivered, failed)",
|
|
1016
|
-
"name": "status",
|
|
1017
|
-
"hasDynamicHelp": false,
|
|
1018
|
-
"multiple": false,
|
|
1019
|
-
"type": "option"
|
|
1020
|
-
},
|
|
1021
|
-
"sandbox": {
|
|
1022
|
-
"description": "Show sandbox/test messages (live keys only)",
|
|
1023
|
-
"name": "sandbox",
|
|
1024
|
-
"allowNo": false,
|
|
1025
|
-
"type": "boolean"
|
|
1026
1056
|
}
|
|
1027
1057
|
},
|
|
1028
1058
|
"hasDynamicHelp": false,
|
|
1029
1059
|
"hiddenAliases": [],
|
|
1030
|
-
"id": "
|
|
1060
|
+
"id": "webhooks:list",
|
|
1031
1061
|
"pluginAlias": "@sendly/cli",
|
|
1032
1062
|
"pluginName": "@sendly/cli",
|
|
1033
1063
|
"pluginType": "core",
|
|
@@ -1036,19 +1066,18 @@
|
|
|
1036
1066
|
"relativePath": [
|
|
1037
1067
|
"dist",
|
|
1038
1068
|
"commands",
|
|
1039
|
-
"
|
|
1069
|
+
"webhooks",
|
|
1040
1070
|
"list.js"
|
|
1041
1071
|
]
|
|
1042
1072
|
},
|
|
1043
|
-
"
|
|
1073
|
+
"webhooks:listen": {
|
|
1044
1074
|
"aliases": [],
|
|
1045
1075
|
"args": {},
|
|
1046
|
-
"description": "
|
|
1076
|
+
"description": "Listen for webhooks locally. Receives events in real-time via WebSocket and forwards them to your local server.",
|
|
1047
1077
|
"examples": [
|
|
1048
|
-
"<%= config.bin %>
|
|
1049
|
-
"<%= config.bin %>
|
|
1050
|
-
"<%= config.bin %>
|
|
1051
|
-
"<%= config.bin %> sms schedule --to +15551234567 --text \"Hello!\" --at \"2025-01-20T10:00:00Z\" --json"
|
|
1078
|
+
"<%= config.bin %> webhooks listen",
|
|
1079
|
+
"<%= config.bin %> webhooks listen --forward http://localhost:3000/webhook",
|
|
1080
|
+
"<%= config.bin %> webhooks listen --events message.delivered,message.failed"
|
|
1052
1081
|
],
|
|
1053
1082
|
"flags": {
|
|
1054
1083
|
"json": {
|
|
@@ -1064,57 +1093,28 @@
|
|
|
1064
1093
|
"allowNo": false,
|
|
1065
1094
|
"type": "boolean"
|
|
1066
1095
|
},
|
|
1067
|
-
"
|
|
1068
|
-
"char": "t",
|
|
1069
|
-
"description": "Recipient phone number (E.164 format)",
|
|
1070
|
-
"name": "to",
|
|
1071
|
-
"required": true,
|
|
1072
|
-
"hasDynamicHelp": false,
|
|
1073
|
-
"multiple": false,
|
|
1074
|
-
"type": "option"
|
|
1075
|
-
},
|
|
1076
|
-
"text": {
|
|
1077
|
-
"char": "m",
|
|
1078
|
-
"description": "Message text",
|
|
1079
|
-
"name": "text",
|
|
1080
|
-
"required": true,
|
|
1081
|
-
"hasDynamicHelp": false,
|
|
1082
|
-
"multiple": false,
|
|
1083
|
-
"type": "option"
|
|
1084
|
-
},
|
|
1085
|
-
"at": {
|
|
1086
|
-
"char": "a",
|
|
1087
|
-
"description": "Scheduled time (ISO 8601 format, e.g., 2025-01-20T10:00:00Z)",
|
|
1088
|
-
"name": "at",
|
|
1089
|
-
"required": true,
|
|
1090
|
-
"hasDynamicHelp": false,
|
|
1091
|
-
"multiple": false,
|
|
1092
|
-
"type": "option"
|
|
1093
|
-
},
|
|
1094
|
-
"from": {
|
|
1096
|
+
"forward": {
|
|
1095
1097
|
"char": "f",
|
|
1096
|
-
"description": "
|
|
1097
|
-
"name": "
|
|
1098
|
+
"description": "Local URL to forward events to",
|
|
1099
|
+
"name": "forward",
|
|
1100
|
+
"default": "http://localhost:3000/webhook",
|
|
1098
1101
|
"hasDynamicHelp": false,
|
|
1099
1102
|
"multiple": false,
|
|
1100
1103
|
"type": "option"
|
|
1101
1104
|
},
|
|
1102
|
-
"
|
|
1103
|
-
"
|
|
1104
|
-
"
|
|
1105
|
-
"
|
|
1105
|
+
"events": {
|
|
1106
|
+
"char": "e",
|
|
1107
|
+
"description": "Comma-separated list of events to listen for",
|
|
1108
|
+
"name": "events",
|
|
1109
|
+
"default": "message.sent,message.delivered,message.failed,message.bounced",
|
|
1106
1110
|
"hasDynamicHelp": false,
|
|
1107
1111
|
"multiple": false,
|
|
1108
|
-
"options": [
|
|
1109
|
-
"marketing",
|
|
1110
|
-
"transactional"
|
|
1111
|
-
],
|
|
1112
1112
|
"type": "option"
|
|
1113
1113
|
}
|
|
1114
1114
|
},
|
|
1115
1115
|
"hasDynamicHelp": false,
|
|
1116
1116
|
"hiddenAliases": [],
|
|
1117
|
-
"id": "
|
|
1117
|
+
"id": "webhooks:listen",
|
|
1118
1118
|
"pluginAlias": "@sendly/cli",
|
|
1119
1119
|
"pluginName": "@sendly/cli",
|
|
1120
1120
|
"pluginType": "core",
|
|
@@ -1123,19 +1123,24 @@
|
|
|
1123
1123
|
"relativePath": [
|
|
1124
1124
|
"dist",
|
|
1125
1125
|
"commands",
|
|
1126
|
-
"
|
|
1127
|
-
"
|
|
1126
|
+
"webhooks",
|
|
1127
|
+
"listen.js"
|
|
1128
1128
|
]
|
|
1129
1129
|
},
|
|
1130
|
-
"
|
|
1130
|
+
"webhooks:rotate-secret": {
|
|
1131
1131
|
"aliases": [],
|
|
1132
|
-
"args": {
|
|
1133
|
-
|
|
1132
|
+
"args": {
|
|
1133
|
+
"id": {
|
|
1134
|
+
"description": "Webhook ID",
|
|
1135
|
+
"name": "id",
|
|
1136
|
+
"required": true
|
|
1137
|
+
}
|
|
1138
|
+
},
|
|
1139
|
+
"description": "Rotate webhook secret",
|
|
1134
1140
|
"examples": [
|
|
1135
|
-
"<%= config.bin %>
|
|
1136
|
-
"<%= config.bin %>
|
|
1137
|
-
"<%= config.bin %>
|
|
1138
|
-
"<%= config.bin %> sms scheduled --json"
|
|
1141
|
+
"<%= config.bin %> webhooks rotate-secret whk_abc123",
|
|
1142
|
+
"<%= config.bin %> webhooks rotate-secret whk_abc123 --yes",
|
|
1143
|
+
"<%= config.bin %> webhooks rotate-secret whk_abc123 --json"
|
|
1139
1144
|
],
|
|
1140
1145
|
"flags": {
|
|
1141
1146
|
"json": {
|
|
@@ -1151,27 +1156,17 @@
|
|
|
1151
1156
|
"allowNo": false,
|
|
1152
1157
|
"type": "boolean"
|
|
1153
1158
|
},
|
|
1154
|
-
"
|
|
1155
|
-
"char": "
|
|
1156
|
-
"description": "
|
|
1157
|
-
"name": "
|
|
1158
|
-
"
|
|
1159
|
-
"
|
|
1160
|
-
"multiple": false,
|
|
1161
|
-
"type": "option"
|
|
1162
|
-
},
|
|
1163
|
-
"status": {
|
|
1164
|
-
"char": "s",
|
|
1165
|
-
"description": "Filter by status (scheduled, sent, cancelled, failed)",
|
|
1166
|
-
"name": "status",
|
|
1167
|
-
"hasDynamicHelp": false,
|
|
1168
|
-
"multiple": false,
|
|
1169
|
-
"type": "option"
|
|
1159
|
+
"yes": {
|
|
1160
|
+
"char": "y",
|
|
1161
|
+
"description": "Skip confirmation prompt",
|
|
1162
|
+
"name": "yes",
|
|
1163
|
+
"allowNo": false,
|
|
1164
|
+
"type": "boolean"
|
|
1170
1165
|
}
|
|
1171
1166
|
},
|
|
1172
1167
|
"hasDynamicHelp": false,
|
|
1173
1168
|
"hiddenAliases": [],
|
|
1174
|
-
"id": "
|
|
1169
|
+
"id": "webhooks:rotate-secret",
|
|
1175
1170
|
"pluginAlias": "@sendly/cli",
|
|
1176
1171
|
"pluginName": "@sendly/cli",
|
|
1177
1172
|
"pluginType": "core",
|
|
@@ -1180,19 +1175,23 @@
|
|
|
1180
1175
|
"relativePath": [
|
|
1181
1176
|
"dist",
|
|
1182
1177
|
"commands",
|
|
1183
|
-
"
|
|
1184
|
-
"
|
|
1178
|
+
"webhooks",
|
|
1179
|
+
"rotate-secret.js"
|
|
1185
1180
|
]
|
|
1186
1181
|
},
|
|
1187
|
-
"
|
|
1182
|
+
"webhooks:test": {
|
|
1188
1183
|
"aliases": [],
|
|
1189
|
-
"args": {
|
|
1190
|
-
|
|
1184
|
+
"args": {
|
|
1185
|
+
"id": {
|
|
1186
|
+
"description": "Webhook ID to test",
|
|
1187
|
+
"name": "id",
|
|
1188
|
+
"required": true
|
|
1189
|
+
}
|
|
1190
|
+
},
|
|
1191
|
+
"description": "Send a test event to a webhook",
|
|
1191
1192
|
"examples": [
|
|
1192
|
-
"<%= config.bin %>
|
|
1193
|
-
"<%= config.bin %>
|
|
1194
|
-
"<%= config.bin %> sms send --to +15551234567 --text \"Hello!\" --type transactional",
|
|
1195
|
-
"<%= config.bin %> sms send --to +15551234567 --text \"Hello!\" --json"
|
|
1193
|
+
"<%= config.bin %> webhooks test whk_abc123",
|
|
1194
|
+
"<%= config.bin %> webhooks test whk_abc123 --json"
|
|
1196
1195
|
],
|
|
1197
1196
|
"flags": {
|
|
1198
1197
|
"json": {
|
|
@@ -1207,49 +1206,11 @@
|
|
|
1207
1206
|
"name": "quiet",
|
|
1208
1207
|
"allowNo": false,
|
|
1209
1208
|
"type": "boolean"
|
|
1210
|
-
},
|
|
1211
|
-
"to": {
|
|
1212
|
-
"char": "t",
|
|
1213
|
-
"description": "Recipient phone number (E.164 format)",
|
|
1214
|
-
"name": "to",
|
|
1215
|
-
"required": true,
|
|
1216
|
-
"hasDynamicHelp": false,
|
|
1217
|
-
"multiple": false,
|
|
1218
|
-
"type": "option"
|
|
1219
|
-
},
|
|
1220
|
-
"text": {
|
|
1221
|
-
"char": "m",
|
|
1222
|
-
"description": "Message text",
|
|
1223
|
-
"name": "text",
|
|
1224
|
-
"required": true,
|
|
1225
|
-
"hasDynamicHelp": false,
|
|
1226
|
-
"multiple": false,
|
|
1227
|
-
"type": "option"
|
|
1228
|
-
},
|
|
1229
|
-
"from": {
|
|
1230
|
-
"char": "f",
|
|
1231
|
-
"description": "Sender ID or phone number",
|
|
1232
|
-
"name": "from",
|
|
1233
|
-
"hasDynamicHelp": false,
|
|
1234
|
-
"multiple": false,
|
|
1235
|
-
"type": "option"
|
|
1236
|
-
},
|
|
1237
|
-
"type": {
|
|
1238
|
-
"description": "Message type: marketing (default) or transactional",
|
|
1239
|
-
"name": "type",
|
|
1240
|
-
"default": "marketing",
|
|
1241
|
-
"hasDynamicHelp": false,
|
|
1242
|
-
"multiple": false,
|
|
1243
|
-
"options": [
|
|
1244
|
-
"marketing",
|
|
1245
|
-
"transactional"
|
|
1246
|
-
],
|
|
1247
|
-
"type": "option"
|
|
1248
1209
|
}
|
|
1249
1210
|
},
|
|
1250
1211
|
"hasDynamicHelp": false,
|
|
1251
1212
|
"hiddenAliases": [],
|
|
1252
|
-
"id": "
|
|
1213
|
+
"id": "webhooks:test",
|
|
1253
1214
|
"pluginAlias": "@sendly/cli",
|
|
1254
1215
|
"pluginName": "@sendly/cli",
|
|
1255
1216
|
"pluginType": "core",
|
|
@@ -1258,18 +1219,26 @@
|
|
|
1258
1219
|
"relativePath": [
|
|
1259
1220
|
"dist",
|
|
1260
1221
|
"commands",
|
|
1261
|
-
"
|
|
1262
|
-
"
|
|
1222
|
+
"webhooks",
|
|
1223
|
+
"test.js"
|
|
1263
1224
|
]
|
|
1264
1225
|
},
|
|
1265
|
-
"webhooks:
|
|
1226
|
+
"webhooks:update": {
|
|
1266
1227
|
"aliases": [],
|
|
1267
|
-
"args": {
|
|
1268
|
-
|
|
1228
|
+
"args": {
|
|
1229
|
+
"id": {
|
|
1230
|
+
"description": "Webhook ID to update",
|
|
1231
|
+
"name": "id",
|
|
1232
|
+
"required": true
|
|
1233
|
+
}
|
|
1234
|
+
},
|
|
1235
|
+
"description": "Update a webhook",
|
|
1269
1236
|
"examples": [
|
|
1270
|
-
"<%= config.bin %> webhooks
|
|
1271
|
-
"<%= config.bin %> webhooks
|
|
1272
|
-
"<%= config.bin %> webhooks
|
|
1237
|
+
"<%= config.bin %> webhooks update whk_abc123 --url https://newdomain.com/webhook",
|
|
1238
|
+
"<%= config.bin %> webhooks update whk_abc123 --events message.delivered,message.failed",
|
|
1239
|
+
"<%= config.bin %> webhooks update whk_abc123 --description \"Updated production webhook\"",
|
|
1240
|
+
"<%= config.bin %> webhooks update whk_abc123 --active false",
|
|
1241
|
+
"<%= config.bin %> webhooks update whk_abc123 --url https://newdomain.com/webhook --events message.sent --json"
|
|
1273
1242
|
],
|
|
1274
1243
|
"flags": {
|
|
1275
1244
|
"json": {
|
|
@@ -1287,35 +1256,39 @@
|
|
|
1287
1256
|
},
|
|
1288
1257
|
"url": {
|
|
1289
1258
|
"char": "u",
|
|
1290
|
-
"description": "
|
|
1259
|
+
"description": "Update webhook URL (must be HTTPS)",
|
|
1291
1260
|
"name": "url",
|
|
1292
|
-
"required": true,
|
|
1293
1261
|
"hasDynamicHelp": false,
|
|
1294
1262
|
"multiple": false,
|
|
1295
1263
|
"type": "option"
|
|
1296
1264
|
},
|
|
1297
1265
|
"events": {
|
|
1298
1266
|
"char": "e",
|
|
1299
|
-
"description": "
|
|
1267
|
+
"description": "Update events list (comma-separated)",
|
|
1300
1268
|
"name": "events",
|
|
1301
|
-
"required": true,
|
|
1302
1269
|
"hasDynamicHelp": false,
|
|
1303
1270
|
"multiple": false,
|
|
1304
1271
|
"type": "option"
|
|
1305
1272
|
},
|
|
1306
1273
|
"description": {
|
|
1307
1274
|
"char": "d",
|
|
1308
|
-
"description": "
|
|
1275
|
+
"description": "Update description",
|
|
1309
1276
|
"name": "description",
|
|
1310
1277
|
"hasDynamicHelp": false,
|
|
1311
1278
|
"multiple": false,
|
|
1312
1279
|
"type": "option"
|
|
1313
1280
|
},
|
|
1281
|
+
"active": {
|
|
1282
|
+
"char": "a",
|
|
1283
|
+
"description": "Enable or disable the webhook",
|
|
1284
|
+
"name": "active",
|
|
1285
|
+
"allowNo": true,
|
|
1286
|
+
"type": "boolean"
|
|
1287
|
+
},
|
|
1314
1288
|
"mode": {
|
|
1315
1289
|
"char": "m",
|
|
1316
|
-
"description": "
|
|
1290
|
+
"description": "Update event mode filter: all, test (sandbox only), live (production only)",
|
|
1317
1291
|
"name": "mode",
|
|
1318
|
-
"default": "all",
|
|
1319
1292
|
"hasDynamicHelp": false,
|
|
1320
1293
|
"multiple": false,
|
|
1321
1294
|
"options": [
|
|
@@ -1328,7 +1301,7 @@
|
|
|
1328
1301
|
},
|
|
1329
1302
|
"hasDynamicHelp": false,
|
|
1330
1303
|
"hiddenAliases": [],
|
|
1331
|
-
"id": "webhooks:
|
|
1304
|
+
"id": "webhooks:update",
|
|
1332
1305
|
"pluginAlias": "@sendly/cli",
|
|
1333
1306
|
"pluginName": "@sendly/cli",
|
|
1334
1307
|
"pluginType": "core",
|
|
@@ -1338,23 +1311,21 @@
|
|
|
1338
1311
|
"dist",
|
|
1339
1312
|
"commands",
|
|
1340
1313
|
"webhooks",
|
|
1341
|
-
"
|
|
1314
|
+
"update.js"
|
|
1342
1315
|
]
|
|
1343
1316
|
},
|
|
1344
|
-
"
|
|
1317
|
+
"sms:batch": {
|
|
1345
1318
|
"aliases": [],
|
|
1346
|
-
"args": {
|
|
1347
|
-
|
|
1348
|
-
"description": "Webhook ID to delete",
|
|
1349
|
-
"name": "id",
|
|
1350
|
-
"required": true
|
|
1351
|
-
}
|
|
1352
|
-
},
|
|
1353
|
-
"description": "Delete a webhook",
|
|
1319
|
+
"args": {},
|
|
1320
|
+
"description": "Send batch SMS messages (uploads CSV to cloud for audit trail)",
|
|
1354
1321
|
"examples": [
|
|
1355
|
-
"<%= config.bin %>
|
|
1356
|
-
"<%= config.bin %>
|
|
1357
|
-
"<%= config.bin %>
|
|
1322
|
+
"<%= config.bin %> sms batch --file recipients.csv",
|
|
1323
|
+
"<%= config.bin %> sms batch --file phones.csv --text \"Hello everyone!\"",
|
|
1324
|
+
"<%= config.bin %> sms batch --to +15551234567,+15559876543 --text \"Hello!\"",
|
|
1325
|
+
"<%= config.bin %> sms batch --file recipients.csv --dry-run",
|
|
1326
|
+
"<%= config.bin %> sms batch --file phones.csv --text \"Code: 123\" --type transactional",
|
|
1327
|
+
"<%= config.bin %> sms batch --reuse abc123-def456",
|
|
1328
|
+
"<%= config.bin %> sms batch --history"
|
|
1358
1329
|
],
|
|
1359
1330
|
"flags": {
|
|
1360
1331
|
"json": {
|
|
@@ -1370,17 +1341,94 @@
|
|
|
1370
1341
|
"allowNo": false,
|
|
1371
1342
|
"type": "boolean"
|
|
1372
1343
|
},
|
|
1373
|
-
"
|
|
1374
|
-
"char": "
|
|
1375
|
-
"description": "
|
|
1376
|
-
"
|
|
1344
|
+
"file": {
|
|
1345
|
+
"char": "F",
|
|
1346
|
+
"description": "CSV file with phone numbers (and optional message text)",
|
|
1347
|
+
"exclusive": [
|
|
1348
|
+
"to",
|
|
1349
|
+
"reuse",
|
|
1350
|
+
"history"
|
|
1351
|
+
],
|
|
1352
|
+
"name": "file",
|
|
1353
|
+
"hasDynamicHelp": false,
|
|
1354
|
+
"multiple": false,
|
|
1355
|
+
"type": "option"
|
|
1356
|
+
},
|
|
1357
|
+
"to": {
|
|
1358
|
+
"char": "t",
|
|
1359
|
+
"description": "Comma-separated recipient phone numbers (E.164 format)",
|
|
1360
|
+
"exclusive": [
|
|
1361
|
+
"file",
|
|
1362
|
+
"reuse",
|
|
1363
|
+
"history"
|
|
1364
|
+
],
|
|
1365
|
+
"name": "to",
|
|
1366
|
+
"hasDynamicHelp": false,
|
|
1367
|
+
"multiple": false,
|
|
1368
|
+
"type": "option"
|
|
1369
|
+
},
|
|
1370
|
+
"text": {
|
|
1371
|
+
"char": "m",
|
|
1372
|
+
"description": "Message text (required with --to, optional with --file if CSV has text column)",
|
|
1373
|
+
"name": "text",
|
|
1374
|
+
"hasDynamicHelp": false,
|
|
1375
|
+
"multiple": false,
|
|
1376
|
+
"type": "option"
|
|
1377
|
+
},
|
|
1378
|
+
"from": {
|
|
1379
|
+
"char": "f",
|
|
1380
|
+
"description": "Sender ID or phone number for all messages",
|
|
1381
|
+
"name": "from",
|
|
1382
|
+
"hasDynamicHelp": false,
|
|
1383
|
+
"multiple": false,
|
|
1384
|
+
"type": "option"
|
|
1385
|
+
},
|
|
1386
|
+
"type": {
|
|
1387
|
+
"description": "Message type: marketing (default) or transactional. Transactional bypasses quiet hours.",
|
|
1388
|
+
"name": "type",
|
|
1389
|
+
"default": "marketing",
|
|
1390
|
+
"hasDynamicHelp": false,
|
|
1391
|
+
"multiple": false,
|
|
1392
|
+
"options": [
|
|
1393
|
+
"marketing",
|
|
1394
|
+
"transactional"
|
|
1395
|
+
],
|
|
1396
|
+
"type": "option"
|
|
1397
|
+
},
|
|
1398
|
+
"dry-run": {
|
|
1399
|
+
"char": "d",
|
|
1400
|
+
"description": "Preview batch without sending (validates access, shows cost and compliance breakdown)",
|
|
1401
|
+
"name": "dry-run",
|
|
1402
|
+
"allowNo": false,
|
|
1403
|
+
"type": "boolean"
|
|
1404
|
+
},
|
|
1405
|
+
"reuse": {
|
|
1406
|
+
"description": "Re-use a previous batch upload by ID (see --history)",
|
|
1407
|
+
"exclusive": [
|
|
1408
|
+
"file",
|
|
1409
|
+
"to",
|
|
1410
|
+
"history"
|
|
1411
|
+
],
|
|
1412
|
+
"name": "reuse",
|
|
1413
|
+
"hasDynamicHelp": false,
|
|
1414
|
+
"multiple": false,
|
|
1415
|
+
"type": "option"
|
|
1416
|
+
},
|
|
1417
|
+
"history": {
|
|
1418
|
+
"description": "Show recent batch upload history",
|
|
1419
|
+
"exclusive": [
|
|
1420
|
+
"file",
|
|
1421
|
+
"to",
|
|
1422
|
+
"reuse"
|
|
1423
|
+
],
|
|
1424
|
+
"name": "history",
|
|
1377
1425
|
"allowNo": false,
|
|
1378
1426
|
"type": "boolean"
|
|
1379
1427
|
}
|
|
1380
1428
|
},
|
|
1381
1429
|
"hasDynamicHelp": false,
|
|
1382
1430
|
"hiddenAliases": [],
|
|
1383
|
-
"id": "
|
|
1431
|
+
"id": "sms:batch",
|
|
1384
1432
|
"pluginAlias": "@sendly/cli",
|
|
1385
1433
|
"pluginName": "@sendly/cli",
|
|
1386
1434
|
"pluginType": "core",
|
|
@@ -1389,25 +1437,23 @@
|
|
|
1389
1437
|
"relativePath": [
|
|
1390
1438
|
"dist",
|
|
1391
1439
|
"commands",
|
|
1392
|
-
"
|
|
1393
|
-
"
|
|
1440
|
+
"sms",
|
|
1441
|
+
"batch.js"
|
|
1394
1442
|
]
|
|
1395
1443
|
},
|
|
1396
|
-
"
|
|
1444
|
+
"sms:cancel": {
|
|
1397
1445
|
"aliases": [],
|
|
1398
1446
|
"args": {
|
|
1399
1447
|
"id": {
|
|
1400
|
-
"description": "
|
|
1448
|
+
"description": "Scheduled message ID to cancel",
|
|
1401
1449
|
"name": "id",
|
|
1402
1450
|
"required": true
|
|
1403
1451
|
}
|
|
1404
1452
|
},
|
|
1405
|
-
"description": "
|
|
1453
|
+
"description": "Cancel a scheduled message",
|
|
1406
1454
|
"examples": [
|
|
1407
|
-
"<%= config.bin %>
|
|
1408
|
-
"<%= config.bin %>
|
|
1409
|
-
"<%= config.bin %> webhooks deliveries whk_abc123 --failed-only",
|
|
1410
|
-
"<%= config.bin %> webhooks deliveries whk_abc123 --json"
|
|
1455
|
+
"<%= config.bin %> sms cancel sched_abc123",
|
|
1456
|
+
"<%= config.bin %> sms cancel sched_abc123 --json"
|
|
1411
1457
|
],
|
|
1412
1458
|
"flags": {
|
|
1413
1459
|
"json": {
|
|
@@ -1422,26 +1468,11 @@
|
|
|
1422
1468
|
"name": "quiet",
|
|
1423
1469
|
"allowNo": false,
|
|
1424
1470
|
"type": "boolean"
|
|
1425
|
-
},
|
|
1426
|
-
"limit": {
|
|
1427
|
-
"char": "l",
|
|
1428
|
-
"description": "Number of deliveries to show",
|
|
1429
|
-
"name": "limit",
|
|
1430
|
-
"default": 10,
|
|
1431
|
-
"hasDynamicHelp": false,
|
|
1432
|
-
"multiple": false,
|
|
1433
|
-
"type": "option"
|
|
1434
|
-
},
|
|
1435
|
-
"failed-only": {
|
|
1436
|
-
"description": "Show only failed deliveries",
|
|
1437
|
-
"name": "failed-only",
|
|
1438
|
-
"allowNo": false,
|
|
1439
|
-
"type": "boolean"
|
|
1440
1471
|
}
|
|
1441
1472
|
},
|
|
1442
1473
|
"hasDynamicHelp": false,
|
|
1443
1474
|
"hiddenAliases": [],
|
|
1444
|
-
"id": "
|
|
1475
|
+
"id": "sms:cancel",
|
|
1445
1476
|
"pluginAlias": "@sendly/cli",
|
|
1446
1477
|
"pluginName": "@sendly/cli",
|
|
1447
1478
|
"pluginType": "core",
|
|
@@ -1450,23 +1481,23 @@
|
|
|
1450
1481
|
"relativePath": [
|
|
1451
1482
|
"dist",
|
|
1452
1483
|
"commands",
|
|
1453
|
-
"
|
|
1454
|
-
"
|
|
1484
|
+
"sms",
|
|
1485
|
+
"cancel.js"
|
|
1455
1486
|
]
|
|
1456
1487
|
},
|
|
1457
|
-
"
|
|
1488
|
+
"sms:get": {
|
|
1458
1489
|
"aliases": [],
|
|
1459
1490
|
"args": {
|
|
1460
1491
|
"id": {
|
|
1461
|
-
"description": "
|
|
1492
|
+
"description": "Message ID",
|
|
1462
1493
|
"name": "id",
|
|
1463
1494
|
"required": true
|
|
1464
1495
|
}
|
|
1465
1496
|
},
|
|
1466
|
-
"description": "Get
|
|
1497
|
+
"description": "Get details of a specific message",
|
|
1467
1498
|
"examples": [
|
|
1468
|
-
"<%= config.bin %>
|
|
1469
|
-
"<%= config.bin %>
|
|
1499
|
+
"<%= config.bin %> sms get msg_abc123",
|
|
1500
|
+
"<%= config.bin %> sms get msg_abc123 --json"
|
|
1470
1501
|
],
|
|
1471
1502
|
"flags": {
|
|
1472
1503
|
"json": {
|
|
@@ -1485,7 +1516,7 @@
|
|
|
1485
1516
|
},
|
|
1486
1517
|
"hasDynamicHelp": false,
|
|
1487
1518
|
"hiddenAliases": [],
|
|
1488
|
-
"id": "
|
|
1519
|
+
"id": "sms:get",
|
|
1489
1520
|
"pluginAlias": "@sendly/cli",
|
|
1490
1521
|
"pluginName": "@sendly/cli",
|
|
1491
1522
|
"pluginType": "core",
|
|
@@ -1494,17 +1525,21 @@
|
|
|
1494
1525
|
"relativePath": [
|
|
1495
1526
|
"dist",
|
|
1496
1527
|
"commands",
|
|
1497
|
-
"
|
|
1528
|
+
"sms",
|
|
1498
1529
|
"get.js"
|
|
1499
1530
|
]
|
|
1500
1531
|
},
|
|
1501
|
-
"
|
|
1532
|
+
"sms:list": {
|
|
1502
1533
|
"aliases": [],
|
|
1503
1534
|
"args": {},
|
|
1504
|
-
"description": "List
|
|
1535
|
+
"description": "List sent messages",
|
|
1505
1536
|
"examples": [
|
|
1506
|
-
"<%= config.bin %>
|
|
1507
|
-
"<%= config.bin %>
|
|
1537
|
+
"<%= config.bin %> sms list",
|
|
1538
|
+
"<%= config.bin %> sms list --limit 10",
|
|
1539
|
+
"<%= config.bin %> sms list --page 2",
|
|
1540
|
+
"<%= config.bin %> sms list --status delivered",
|
|
1541
|
+
"<%= config.bin %> sms list --sandbox",
|
|
1542
|
+
"<%= config.bin %> sms list --json"
|
|
1508
1543
|
],
|
|
1509
1544
|
"flags": {
|
|
1510
1545
|
"json": {
|
|
@@ -1519,11 +1554,49 @@
|
|
|
1519
1554
|
"name": "quiet",
|
|
1520
1555
|
"allowNo": false,
|
|
1521
1556
|
"type": "boolean"
|
|
1557
|
+
},
|
|
1558
|
+
"limit": {
|
|
1559
|
+
"char": "l",
|
|
1560
|
+
"description": "Number of messages per page",
|
|
1561
|
+
"name": "limit",
|
|
1562
|
+
"default": 20,
|
|
1563
|
+
"hasDynamicHelp": false,
|
|
1564
|
+
"multiple": false,
|
|
1565
|
+
"type": "option"
|
|
1566
|
+
},
|
|
1567
|
+
"page": {
|
|
1568
|
+
"char": "p",
|
|
1569
|
+
"description": "Page number (starts at 1)",
|
|
1570
|
+
"name": "page",
|
|
1571
|
+
"hasDynamicHelp": false,
|
|
1572
|
+
"multiple": false,
|
|
1573
|
+
"type": "option"
|
|
1574
|
+
},
|
|
1575
|
+
"offset": {
|
|
1576
|
+
"description": "Offset from start (alternative to --page)",
|
|
1577
|
+
"name": "offset",
|
|
1578
|
+
"hasDynamicHelp": false,
|
|
1579
|
+
"multiple": false,
|
|
1580
|
+
"type": "option"
|
|
1581
|
+
},
|
|
1582
|
+
"status": {
|
|
1583
|
+
"char": "s",
|
|
1584
|
+
"description": "Filter by status (queued, sent, delivered, failed)",
|
|
1585
|
+
"name": "status",
|
|
1586
|
+
"hasDynamicHelp": false,
|
|
1587
|
+
"multiple": false,
|
|
1588
|
+
"type": "option"
|
|
1589
|
+
},
|
|
1590
|
+
"sandbox": {
|
|
1591
|
+
"description": "Show sandbox/test messages (live keys only)",
|
|
1592
|
+
"name": "sandbox",
|
|
1593
|
+
"allowNo": false,
|
|
1594
|
+
"type": "boolean"
|
|
1522
1595
|
}
|
|
1523
1596
|
},
|
|
1524
1597
|
"hasDynamicHelp": false,
|
|
1525
1598
|
"hiddenAliases": [],
|
|
1526
|
-
"id": "
|
|
1599
|
+
"id": "sms:list",
|
|
1527
1600
|
"pluginAlias": "@sendly/cli",
|
|
1528
1601
|
"pluginName": "@sendly/cli",
|
|
1529
1602
|
"pluginType": "core",
|
|
@@ -1532,18 +1605,19 @@
|
|
|
1532
1605
|
"relativePath": [
|
|
1533
1606
|
"dist",
|
|
1534
1607
|
"commands",
|
|
1535
|
-
"
|
|
1608
|
+
"sms",
|
|
1536
1609
|
"list.js"
|
|
1537
1610
|
]
|
|
1538
1611
|
},
|
|
1539
|
-
"
|
|
1612
|
+
"sms:schedule": {
|
|
1540
1613
|
"aliases": [],
|
|
1541
1614
|
"args": {},
|
|
1542
|
-
"description": "
|
|
1615
|
+
"description": "Schedule an SMS message for future delivery",
|
|
1543
1616
|
"examples": [
|
|
1544
|
-
"<%= config.bin %>
|
|
1545
|
-
"<%= config.bin %>
|
|
1546
|
-
"<%= config.bin %>
|
|
1617
|
+
"<%= config.bin %> sms schedule --to +15551234567 --text \"Reminder!\" --at \"2025-01-20T10:00:00Z\"",
|
|
1618
|
+
"<%= config.bin %> sms schedule --to +15551234567 --text \"Meeting in 1 hour\" --at \"2025-01-15T14:00:00Z\" --from \"Sendly\"",
|
|
1619
|
+
"<%= config.bin %> sms schedule --to +15551234567 --text \"Your code: 123456\" --at \"2025-01-20T10:00:00Z\" --type transactional",
|
|
1620
|
+
"<%= config.bin %> sms schedule --to +15551234567 --text \"Hello!\" --at \"2025-01-20T10:00:00Z\" --json"
|
|
1547
1621
|
],
|
|
1548
1622
|
"flags": {
|
|
1549
1623
|
"json": {
|
|
@@ -1559,88 +1633,57 @@
|
|
|
1559
1633
|
"allowNo": false,
|
|
1560
1634
|
"type": "boolean"
|
|
1561
1635
|
},
|
|
1562
|
-
"
|
|
1563
|
-
"char": "
|
|
1564
|
-
"description": "
|
|
1565
|
-
"name": "
|
|
1566
|
-
"
|
|
1636
|
+
"to": {
|
|
1637
|
+
"char": "t",
|
|
1638
|
+
"description": "Recipient phone number (E.164 format)",
|
|
1639
|
+
"name": "to",
|
|
1640
|
+
"required": true,
|
|
1567
1641
|
"hasDynamicHelp": false,
|
|
1568
1642
|
"multiple": false,
|
|
1569
1643
|
"type": "option"
|
|
1570
1644
|
},
|
|
1571
|
-
"
|
|
1572
|
-
"char": "
|
|
1573
|
-
"description": "
|
|
1574
|
-
"name": "
|
|
1575
|
-
"
|
|
1645
|
+
"text": {
|
|
1646
|
+
"char": "m",
|
|
1647
|
+
"description": "Message text",
|
|
1648
|
+
"name": "text",
|
|
1649
|
+
"required": true,
|
|
1576
1650
|
"hasDynamicHelp": false,
|
|
1577
1651
|
"multiple": false,
|
|
1578
1652
|
"type": "option"
|
|
1579
1653
|
},
|
|
1580
|
-
"
|
|
1581
|
-
"char": "
|
|
1582
|
-
"description": "
|
|
1583
|
-
"name": "
|
|
1654
|
+
"at": {
|
|
1655
|
+
"char": "a",
|
|
1656
|
+
"description": "Scheduled time (ISO 8601 format, e.g., 2025-01-20T10:00:00Z)",
|
|
1657
|
+
"name": "at",
|
|
1658
|
+
"required": true,
|
|
1584
1659
|
"hasDynamicHelp": false,
|
|
1585
1660
|
"multiple": false,
|
|
1586
1661
|
"type": "option"
|
|
1587
|
-
}
|
|
1588
|
-
},
|
|
1589
|
-
"hasDynamicHelp": false,
|
|
1590
|
-
"hiddenAliases": [],
|
|
1591
|
-
"id": "webhooks:listen",
|
|
1592
|
-
"pluginAlias": "@sendly/cli",
|
|
1593
|
-
"pluginName": "@sendly/cli",
|
|
1594
|
-
"pluginType": "core",
|
|
1595
|
-
"strict": true,
|
|
1596
|
-
"isESM": true,
|
|
1597
|
-
"relativePath": [
|
|
1598
|
-
"dist",
|
|
1599
|
-
"commands",
|
|
1600
|
-
"webhooks",
|
|
1601
|
-
"listen.js"
|
|
1602
|
-
]
|
|
1603
|
-
},
|
|
1604
|
-
"webhooks:rotate-secret": {
|
|
1605
|
-
"aliases": [],
|
|
1606
|
-
"args": {
|
|
1607
|
-
"id": {
|
|
1608
|
-
"description": "Webhook ID",
|
|
1609
|
-
"name": "id",
|
|
1610
|
-
"required": true
|
|
1611
|
-
}
|
|
1612
|
-
},
|
|
1613
|
-
"description": "Rotate webhook secret",
|
|
1614
|
-
"examples": [
|
|
1615
|
-
"<%= config.bin %> webhooks rotate-secret whk_abc123",
|
|
1616
|
-
"<%= config.bin %> webhooks rotate-secret whk_abc123 --yes",
|
|
1617
|
-
"<%= config.bin %> webhooks rotate-secret whk_abc123 --json"
|
|
1618
|
-
],
|
|
1619
|
-
"flags": {
|
|
1620
|
-
"json": {
|
|
1621
|
-
"description": "Output in JSON format",
|
|
1622
|
-
"name": "json",
|
|
1623
|
-
"allowNo": false,
|
|
1624
|
-
"type": "boolean"
|
|
1625
1662
|
},
|
|
1626
|
-
"
|
|
1627
|
-
"char": "
|
|
1628
|
-
"description": "
|
|
1629
|
-
"name": "
|
|
1630
|
-
"
|
|
1631
|
-
"
|
|
1663
|
+
"from": {
|
|
1664
|
+
"char": "f",
|
|
1665
|
+
"description": "Sender ID or phone number",
|
|
1666
|
+
"name": "from",
|
|
1667
|
+
"hasDynamicHelp": false,
|
|
1668
|
+
"multiple": false,
|
|
1669
|
+
"type": "option"
|
|
1632
1670
|
},
|
|
1633
|
-
"
|
|
1634
|
-
"
|
|
1635
|
-
"
|
|
1636
|
-
"
|
|
1637
|
-
"
|
|
1638
|
-
"
|
|
1671
|
+
"type": {
|
|
1672
|
+
"description": "Message type: marketing (default) or transactional. Transactional messages bypass quiet hours.",
|
|
1673
|
+
"name": "type",
|
|
1674
|
+
"default": "marketing",
|
|
1675
|
+
"hasDynamicHelp": false,
|
|
1676
|
+
"multiple": false,
|
|
1677
|
+
"options": [
|
|
1678
|
+
"marketing",
|
|
1679
|
+
"transactional"
|
|
1680
|
+
],
|
|
1681
|
+
"type": "option"
|
|
1639
1682
|
}
|
|
1640
1683
|
},
|
|
1641
1684
|
"hasDynamicHelp": false,
|
|
1642
1685
|
"hiddenAliases": [],
|
|
1643
|
-
"id": "
|
|
1686
|
+
"id": "sms:schedule",
|
|
1644
1687
|
"pluginAlias": "@sendly/cli",
|
|
1645
1688
|
"pluginName": "@sendly/cli",
|
|
1646
1689
|
"pluginType": "core",
|
|
@@ -1649,23 +1692,19 @@
|
|
|
1649
1692
|
"relativePath": [
|
|
1650
1693
|
"dist",
|
|
1651
1694
|
"commands",
|
|
1652
|
-
"
|
|
1653
|
-
"
|
|
1695
|
+
"sms",
|
|
1696
|
+
"schedule.js"
|
|
1654
1697
|
]
|
|
1655
1698
|
},
|
|
1656
|
-
"
|
|
1699
|
+
"sms:scheduled": {
|
|
1657
1700
|
"aliases": [],
|
|
1658
|
-
"args": {
|
|
1659
|
-
|
|
1660
|
-
"description": "Webhook ID to test",
|
|
1661
|
-
"name": "id",
|
|
1662
|
-
"required": true
|
|
1663
|
-
}
|
|
1664
|
-
},
|
|
1665
|
-
"description": "Send a test event to a webhook",
|
|
1701
|
+
"args": {},
|
|
1702
|
+
"description": "List scheduled messages",
|
|
1666
1703
|
"examples": [
|
|
1667
|
-
"<%= config.bin %>
|
|
1668
|
-
"<%= config.bin %>
|
|
1704
|
+
"<%= config.bin %> sms scheduled",
|
|
1705
|
+
"<%= config.bin %> sms scheduled --limit 10",
|
|
1706
|
+
"<%= config.bin %> sms scheduled --status scheduled",
|
|
1707
|
+
"<%= config.bin %> sms scheduled --json"
|
|
1669
1708
|
],
|
|
1670
1709
|
"flags": {
|
|
1671
1710
|
"json": {
|
|
@@ -1680,11 +1719,28 @@
|
|
|
1680
1719
|
"name": "quiet",
|
|
1681
1720
|
"allowNo": false,
|
|
1682
1721
|
"type": "boolean"
|
|
1722
|
+
},
|
|
1723
|
+
"limit": {
|
|
1724
|
+
"char": "l",
|
|
1725
|
+
"description": "Number of messages to show",
|
|
1726
|
+
"name": "limit",
|
|
1727
|
+
"default": 20,
|
|
1728
|
+
"hasDynamicHelp": false,
|
|
1729
|
+
"multiple": false,
|
|
1730
|
+
"type": "option"
|
|
1731
|
+
},
|
|
1732
|
+
"status": {
|
|
1733
|
+
"char": "s",
|
|
1734
|
+
"description": "Filter by status (scheduled, sent, cancelled, failed)",
|
|
1735
|
+
"name": "status",
|
|
1736
|
+
"hasDynamicHelp": false,
|
|
1737
|
+
"multiple": false,
|
|
1738
|
+
"type": "option"
|
|
1683
1739
|
}
|
|
1684
1740
|
},
|
|
1685
1741
|
"hasDynamicHelp": false,
|
|
1686
1742
|
"hiddenAliases": [],
|
|
1687
|
-
"id": "
|
|
1743
|
+
"id": "sms:scheduled",
|
|
1688
1744
|
"pluginAlias": "@sendly/cli",
|
|
1689
1745
|
"pluginName": "@sendly/cli",
|
|
1690
1746
|
"pluginType": "core",
|
|
@@ -1693,26 +1749,19 @@
|
|
|
1693
1749
|
"relativePath": [
|
|
1694
1750
|
"dist",
|
|
1695
1751
|
"commands",
|
|
1696
|
-
"
|
|
1697
|
-
"
|
|
1752
|
+
"sms",
|
|
1753
|
+
"scheduled.js"
|
|
1698
1754
|
]
|
|
1699
1755
|
},
|
|
1700
|
-
"
|
|
1756
|
+
"sms:send": {
|
|
1701
1757
|
"aliases": [],
|
|
1702
|
-
"args": {
|
|
1703
|
-
|
|
1704
|
-
"description": "Webhook ID to update",
|
|
1705
|
-
"name": "id",
|
|
1706
|
-
"required": true
|
|
1707
|
-
}
|
|
1708
|
-
},
|
|
1709
|
-
"description": "Update a webhook",
|
|
1758
|
+
"args": {},
|
|
1759
|
+
"description": "Send an SMS message",
|
|
1710
1760
|
"examples": [
|
|
1711
|
-
"<%= config.bin %>
|
|
1712
|
-
"<%= config.bin %>
|
|
1713
|
-
"<%= config.bin %>
|
|
1714
|
-
"<%= config.bin %>
|
|
1715
|
-
"<%= config.bin %> webhooks update whk_abc123 --url https://newdomain.com/webhook --events message.sent --json"
|
|
1761
|
+
"<%= config.bin %> sms send --to +15551234567 --text \"Hello!\"",
|
|
1762
|
+
"<%= config.bin %> sms send --to +15551234567 --text \"Hello!\" --from \"Sendly\"",
|
|
1763
|
+
"<%= config.bin %> sms send --to +15551234567 --text \"Hello!\" --type transactional",
|
|
1764
|
+
"<%= config.bin %> sms send --to +15551234567 --text \"Hello!\" --json"
|
|
1716
1765
|
],
|
|
1717
1766
|
"flags": {
|
|
1718
1767
|
"json": {
|
|
@@ -1728,54 +1777,48 @@
|
|
|
1728
1777
|
"allowNo": false,
|
|
1729
1778
|
"type": "boolean"
|
|
1730
1779
|
},
|
|
1731
|
-
"
|
|
1732
|
-
"char": "
|
|
1733
|
-
"description": "
|
|
1734
|
-
"name": "
|
|
1780
|
+
"to": {
|
|
1781
|
+
"char": "t",
|
|
1782
|
+
"description": "Recipient phone number (E.164 format)",
|
|
1783
|
+
"name": "to",
|
|
1784
|
+
"required": true,
|
|
1735
1785
|
"hasDynamicHelp": false,
|
|
1736
1786
|
"multiple": false,
|
|
1737
1787
|
"type": "option"
|
|
1738
1788
|
},
|
|
1739
|
-
"
|
|
1740
|
-
"char": "
|
|
1741
|
-
"description": "
|
|
1742
|
-
"name": "
|
|
1789
|
+
"text": {
|
|
1790
|
+
"char": "m",
|
|
1791
|
+
"description": "Message text",
|
|
1792
|
+
"name": "text",
|
|
1793
|
+
"required": true,
|
|
1743
1794
|
"hasDynamicHelp": false,
|
|
1744
1795
|
"multiple": false,
|
|
1745
1796
|
"type": "option"
|
|
1746
1797
|
},
|
|
1747
|
-
"
|
|
1748
|
-
"char": "
|
|
1749
|
-
"description": "
|
|
1750
|
-
"name": "
|
|
1798
|
+
"from": {
|
|
1799
|
+
"char": "f",
|
|
1800
|
+
"description": "Sender ID or phone number",
|
|
1801
|
+
"name": "from",
|
|
1751
1802
|
"hasDynamicHelp": false,
|
|
1752
1803
|
"multiple": false,
|
|
1753
1804
|
"type": "option"
|
|
1754
1805
|
},
|
|
1755
|
-
"
|
|
1756
|
-
"
|
|
1757
|
-
"
|
|
1758
|
-
"
|
|
1759
|
-
"allowNo": true,
|
|
1760
|
-
"type": "boolean"
|
|
1761
|
-
},
|
|
1762
|
-
"mode": {
|
|
1763
|
-
"char": "m",
|
|
1764
|
-
"description": "Update event mode filter: all, test (sandbox only), live (production only)",
|
|
1765
|
-
"name": "mode",
|
|
1806
|
+
"type": {
|
|
1807
|
+
"description": "Message type: marketing (default) or transactional",
|
|
1808
|
+
"name": "type",
|
|
1809
|
+
"default": "marketing",
|
|
1766
1810
|
"hasDynamicHelp": false,
|
|
1767
1811
|
"multiple": false,
|
|
1768
1812
|
"options": [
|
|
1769
|
-
"
|
|
1770
|
-
"
|
|
1771
|
-
"live"
|
|
1813
|
+
"marketing",
|
|
1814
|
+
"transactional"
|
|
1772
1815
|
],
|
|
1773
1816
|
"type": "option"
|
|
1774
1817
|
}
|
|
1775
1818
|
},
|
|
1776
1819
|
"hasDynamicHelp": false,
|
|
1777
1820
|
"hiddenAliases": [],
|
|
1778
|
-
"id": "
|
|
1821
|
+
"id": "sms:send",
|
|
1779
1822
|
"pluginAlias": "@sendly/cli",
|
|
1780
1823
|
"pluginName": "@sendly/cli",
|
|
1781
1824
|
"pluginType": "core",
|
|
@@ -1784,10 +1827,10 @@
|
|
|
1784
1827
|
"relativePath": [
|
|
1785
1828
|
"dist",
|
|
1786
1829
|
"commands",
|
|
1787
|
-
"
|
|
1788
|
-
"
|
|
1830
|
+
"sms",
|
|
1831
|
+
"send.js"
|
|
1789
1832
|
]
|
|
1790
1833
|
}
|
|
1791
1834
|
},
|
|
1792
|
-
"version": "3.
|
|
1835
|
+
"version": "3.6.1"
|
|
1793
1836
|
}
|