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