@sendly/cli
Advanced tools
+453
-453
@@ -799,10 +799,14 @@ { | ||
| }, | ||
| "webhooks:create": { | ||
| "sms:batch": { | ||
| "aliases": [], | ||
| "args": {}, | ||
| "description": "Create a webhook", | ||
| "description": "Send batch SMS messages (uploads CSV to cloud for audit trail)", | ||
| "examples": [ | ||
| "<%= config.bin %> webhooks create --url https://myapp.com/webhook --events message.delivered", | ||
| "<%= config.bin %> webhooks create --url https://myapp.com/webhook --events message.delivered,message.failed --description \"Production webhook\"", | ||
| "<%= config.bin %> webhooks create --url https://webhook.site/abc123 --events message.sent --json" | ||
| "<%= config.bin %> sms batch --file recipients.csv", | ||
| "<%= config.bin %> sms batch --file phones.csv --text \"Hello everyone!\"", | ||
| "<%= config.bin %> sms batch --to +15551234567,+15559876543 --text \"Hello!\"", | ||
| "<%= config.bin %> sms batch --file recipients.csv --dry-run", | ||
| "<%= config.bin %> sms batch --file phones.csv --text \"Code: 123\" --type transactional", | ||
| "<%= config.bin %> sms batch --reuse abc123-def456", | ||
| "<%= config.bin %> sms batch --history" | ||
| ], | ||
@@ -823,7 +827,11 @@ "flags": { | ||
| }, | ||
| "url": { | ||
| "char": "u", | ||
| "description": "Webhook URL (must be HTTPS)", | ||
| "name": "url", | ||
| "required": true, | ||
| "file": { | ||
| "char": "F", | ||
| "description": "CSV file with phone numbers (and optional message text)", | ||
| "exclusive": [ | ||
| "to", | ||
| "reuse", | ||
| "history" | ||
| ], | ||
| "name": "file", | ||
| "hasDynamicHelp": false, | ||
@@ -833,7 +841,11 @@ "multiple": false, | ||
| }, | ||
| "events": { | ||
| "char": "e", | ||
| "description": "Comma-separated list of events to listen for", | ||
| "name": "events", | ||
| "required": true, | ||
| "to": { | ||
| "char": "t", | ||
| "description": "Comma-separated recipient phone numbers (E.164 format)", | ||
| "exclusive": [ | ||
| "file", | ||
| "reuse", | ||
| "history" | ||
| ], | ||
| "name": "to", | ||
| "hasDynamicHelp": false, | ||
@@ -843,6 +855,6 @@ "multiple": false, | ||
| }, | ||
| "description": { | ||
| "char": "d", | ||
| "description": "Description for the webhook", | ||
| "name": "description", | ||
| "text": { | ||
| "char": "m", | ||
| "description": "Message text (required with --to, optional with --file if CSV has text column)", | ||
| "name": "text", | ||
| "hasDynamicHelp": false, | ||
@@ -852,65 +864,49 @@ "multiple": false, | ||
| }, | ||
| "mode": { | ||
| "char": "m", | ||
| "description": "Event mode filter: all (default), test (sandbox only), live (production only)", | ||
| "name": "mode", | ||
| "default": "all", | ||
| "from": { | ||
| "char": "f", | ||
| "description": "Sender ID or phone number for all messages", | ||
| "name": "from", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "type": { | ||
| "description": "Message type: marketing (default) or transactional. Transactional bypasses quiet hours.", | ||
| "name": "type", | ||
| "default": "marketing", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "options": [ | ||
| "all", | ||
| "test", | ||
| "live" | ||
| "marketing", | ||
| "transactional" | ||
| ], | ||
| "type": "option" | ||
| } | ||
| }, | ||
| "hasDynamicHelp": false, | ||
| "hiddenAliases": [], | ||
| "id": "webhooks:create", | ||
| "pluginAlias": "@sendly/cli", | ||
| "pluginName": "@sendly/cli", | ||
| "pluginType": "core", | ||
| "strict": true, | ||
| "isESM": true, | ||
| "relativePath": [ | ||
| "dist", | ||
| "commands", | ||
| "webhooks", | ||
| "create.js" | ||
| ] | ||
| }, | ||
| "webhooks:delete": { | ||
| "aliases": [], | ||
| "args": { | ||
| "id": { | ||
| "description": "Webhook ID to delete", | ||
| "name": "id", | ||
| "required": true | ||
| } | ||
| }, | ||
| "description": "Delete a webhook", | ||
| "examples": [ | ||
| "<%= config.bin %> webhooks delete whk_abc123", | ||
| "<%= config.bin %> webhooks delete whk_abc123 --yes", | ||
| "<%= config.bin %> webhooks delete whk_abc123 --json" | ||
| ], | ||
| "flags": { | ||
| "json": { | ||
| "description": "Output in JSON format", | ||
| "name": "json", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "quiet": { | ||
| "char": "q", | ||
| "description": "Minimal output", | ||
| "name": "quiet", | ||
| "dry-run": { | ||
| "char": "d", | ||
| "description": "Preview batch without sending (validates access, shows cost and compliance breakdown)", | ||
| "name": "dry-run", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "yes": { | ||
| "char": "y", | ||
| "description": "Skip confirmation prompt", | ||
| "name": "yes", | ||
| "reuse": { | ||
| "description": "Re-use a previous batch upload by ID (see --history)", | ||
| "exclusive": [ | ||
| "file", | ||
| "to", | ||
| "history" | ||
| ], | ||
| "name": "reuse", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "history": { | ||
| "description": "Show recent batch upload history", | ||
| "exclusive": [ | ||
| "file", | ||
| "to", | ||
| "reuse" | ||
| ], | ||
| "name": "history", | ||
| "allowNo": false, | ||
@@ -922,3 +918,3 @@ "type": "boolean" | ||
| "hiddenAliases": [], | ||
| "id": "webhooks:delete", | ||
| "id": "sms:batch", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -932,11 +928,11 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "webhooks", | ||
| "delete.js" | ||
| "sms", | ||
| "batch.js" | ||
| ] | ||
| }, | ||
| "webhooks:deliveries": { | ||
| "sms:cancel": { | ||
| "aliases": [], | ||
| "args": { | ||
| "id": { | ||
| "description": "Webhook ID", | ||
| "description": "Scheduled message ID to cancel", | ||
| "name": "id", | ||
@@ -946,8 +942,6 @@ "required": true | ||
| }, | ||
| "description": "View webhook delivery history", | ||
| "description": "Cancel a scheduled message", | ||
| "examples": [ | ||
| "<%= config.bin %> webhooks deliveries whk_abc123", | ||
| "<%= config.bin %> webhooks deliveries whk_abc123 --limit 20", | ||
| "<%= config.bin %> webhooks deliveries whk_abc123 --failed-only", | ||
| "<%= config.bin %> webhooks deliveries whk_abc123 --json" | ||
| "<%= config.bin %> sms cancel sched_abc123", | ||
| "<%= config.bin %> sms cancel sched_abc123 --json" | ||
| ], | ||
@@ -967,17 +961,2 @@ "flags": { | ||
| "type": "boolean" | ||
| }, | ||
| "limit": { | ||
| "char": "l", | ||
| "description": "Number of deliveries to show", | ||
| "name": "limit", | ||
| "default": 10, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "failed-only": { | ||
| "description": "Show only failed deliveries", | ||
| "name": "failed-only", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| } | ||
@@ -987,3 +966,3 @@ }, | ||
| "hiddenAliases": [], | ||
| "id": "webhooks:deliveries", | ||
| "id": "sms:cancel", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -997,11 +976,11 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "webhooks", | ||
| "deliveries.js" | ||
| "sms", | ||
| "cancel.js" | ||
| ] | ||
| }, | ||
| "webhooks:get": { | ||
| "sms:get": { | ||
| "aliases": [], | ||
| "args": { | ||
| "id": { | ||
| "description": "Webhook ID", | ||
| "description": "Message ID", | ||
| "name": "id", | ||
@@ -1011,6 +990,6 @@ "required": true | ||
| }, | ||
| "description": "Get webhook details", | ||
| "description": "Get details of a specific message", | ||
| "examples": [ | ||
| "<%= config.bin %> webhooks get whk_abc123", | ||
| "<%= config.bin %> webhooks get whk_abc123 --json" | ||
| "<%= config.bin %> sms get msg_abc123", | ||
| "<%= config.bin %> sms get msg_abc123 --json" | ||
| ], | ||
@@ -1034,3 +1013,3 @@ "flags": { | ||
| "hiddenAliases": [], | ||
| "id": "webhooks:get", | ||
| "id": "sms:get", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1044,13 +1023,17 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "webhooks", | ||
| "sms", | ||
| "get.js" | ||
| ] | ||
| }, | ||
| "webhooks:list": { | ||
| "sms:list": { | ||
| "aliases": [], | ||
| "args": {}, | ||
| "description": "List configured webhooks", | ||
| "description": "List sent messages", | ||
| "examples": [ | ||
| "<%= config.bin %> webhooks list", | ||
| "<%= config.bin %> webhooks list --json" | ||
| "<%= config.bin %> sms list", | ||
| "<%= config.bin %> sms list --limit 10", | ||
| "<%= config.bin %> sms list --page 2", | ||
| "<%= config.bin %> sms list --status delivered", | ||
| "<%= config.bin %> sms list --sandbox", | ||
| "<%= config.bin %> sms list --json" | ||
| ], | ||
@@ -1070,2 +1053,40 @@ "flags": { | ||
| "type": "boolean" | ||
| }, | ||
| "limit": { | ||
| "char": "l", | ||
| "description": "Number of messages per page", | ||
| "name": "limit", | ||
| "default": 20, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "page": { | ||
| "char": "p", | ||
| "description": "Page number (starts at 1)", | ||
| "name": "page", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "offset": { | ||
| "description": "Offset from start (alternative to --page)", | ||
| "name": "offset", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "status": { | ||
| "char": "s", | ||
| "description": "Filter by status (queued, sent, delivered, failed)", | ||
| "name": "status", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "sandbox": { | ||
| "description": "Show sandbox/test messages (live keys only)", | ||
| "name": "sandbox", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| } | ||
@@ -1075,3 +1096,3 @@ }, | ||
| "hiddenAliases": [], | ||
| "id": "webhooks:list", | ||
| "id": "sms:list", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1085,14 +1106,15 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "webhooks", | ||
| "sms", | ||
| "list.js" | ||
| ] | ||
| }, | ||
| "webhooks:listen": { | ||
| "sms:schedule": { | ||
| "aliases": [], | ||
| "args": {}, | ||
| "description": "Listen for webhooks locally. Receives events in real-time via WebSocket and forwards them to your local server.", | ||
| "description": "Schedule an SMS message for future delivery", | ||
| "examples": [ | ||
| "<%= config.bin %> webhooks listen", | ||
| "<%= config.bin %> webhooks listen --forward http://localhost:3000/webhook", | ||
| "<%= config.bin %> webhooks listen --events message.delivered,message.failed" | ||
| "<%= config.bin %> sms schedule --to +15551234567 --text \"Reminder!\" --at \"2025-01-20T10:00:00Z\"", | ||
| "<%= config.bin %> sms schedule --to +15551234567 --text \"Meeting in 1 hour\" --at \"2025-01-15T14:00:00Z\" --from \"Sendly\"", | ||
| "<%= config.bin %> sms schedule --to +15551234567 --text \"Your code: 123456\" --at \"2025-01-20T10:00:00Z\" --type transactional", | ||
| "<%= config.bin %> sms schedule --to +15551234567 --text \"Hello!\" --at \"2025-01-20T10:00:00Z\" --json" | ||
| ], | ||
@@ -1113,7 +1135,33 @@ "flags": { | ||
| }, | ||
| "forward": { | ||
| "to": { | ||
| "char": "t", | ||
| "description": "Recipient phone number (E.164 format)", | ||
| "name": "to", | ||
| "required": true, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "text": { | ||
| "char": "m", | ||
| "description": "Message text", | ||
| "name": "text", | ||
| "required": true, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "at": { | ||
| "char": "a", | ||
| "description": "Scheduled time (ISO 8601 format, e.g., 2025-01-20T10:00:00Z)", | ||
| "name": "at", | ||
| "required": true, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "from": { | ||
| "char": "f", | ||
| "description": "Local URL to forward events to", | ||
| "name": "forward", | ||
| "default": "http://localhost:3000/webhook", | ||
| "description": "Sender ID or phone number", | ||
| "name": "from", | ||
| "hasDynamicHelp": false, | ||
@@ -1123,9 +1171,12 @@ "multiple": false, | ||
| }, | ||
| "events": { | ||
| "char": "e", | ||
| "description": "Comma-separated list of events to listen for", | ||
| "name": "events", | ||
| "default": "message.sent,message.delivered,message.failed,message.bounced", | ||
| "type": { | ||
| "description": "Message type: marketing (default) or transactional. Transactional messages bypass quiet hours.", | ||
| "name": "type", | ||
| "default": "marketing", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "options": [ | ||
| "marketing", | ||
| "transactional" | ||
| ], | ||
| "type": "option" | ||
@@ -1136,3 +1187,3 @@ } | ||
| "hiddenAliases": [], | ||
| "id": "webhooks:listen", | ||
| "id": "sms:schedule", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1146,20 +1197,15 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "webhooks", | ||
| "listen.js" | ||
| "sms", | ||
| "schedule.js" | ||
| ] | ||
| }, | ||
| "webhooks:rotate-secret": { | ||
| "sms:scheduled": { | ||
| "aliases": [], | ||
| "args": { | ||
| "id": { | ||
| "description": "Webhook ID", | ||
| "name": "id", | ||
| "required": true | ||
| } | ||
| }, | ||
| "description": "Rotate webhook secret", | ||
| "args": {}, | ||
| "description": "List scheduled messages", | ||
| "examples": [ | ||
| "<%= config.bin %> webhooks rotate-secret whk_abc123", | ||
| "<%= config.bin %> webhooks rotate-secret whk_abc123 --yes", | ||
| "<%= config.bin %> webhooks rotate-secret whk_abc123 --json" | ||
| "<%= config.bin %> sms scheduled", | ||
| "<%= config.bin %> sms scheduled --limit 10", | ||
| "<%= config.bin %> sms scheduled --status scheduled", | ||
| "<%= config.bin %> sms scheduled --json" | ||
| ], | ||
@@ -1180,8 +1226,18 @@ "flags": { | ||
| }, | ||
| "yes": { | ||
| "char": "y", | ||
| "description": "Skip confirmation prompt", | ||
| "name": "yes", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| "limit": { | ||
| "char": "l", | ||
| "description": "Number of messages to show", | ||
| "name": "limit", | ||
| "default": 20, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "status": { | ||
| "char": "s", | ||
| "description": "Filter by status (scheduled, sent, cancelled, failed)", | ||
| "name": "status", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| } | ||
@@ -1191,3 +1247,3 @@ }, | ||
| "hiddenAliases": [], | ||
| "id": "webhooks:rotate-secret", | ||
| "id": "sms:scheduled", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1201,19 +1257,15 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "webhooks", | ||
| "rotate-secret.js" | ||
| "sms", | ||
| "scheduled.js" | ||
| ] | ||
| }, | ||
| "webhooks:test": { | ||
| "sms:send": { | ||
| "aliases": [], | ||
| "args": { | ||
| "id": { | ||
| "description": "Webhook ID to test", | ||
| "name": "id", | ||
| "required": true | ||
| } | ||
| }, | ||
| "description": "Send a test event to a webhook", | ||
| "args": {}, | ||
| "description": "Send an SMS message", | ||
| "examples": [ | ||
| "<%= config.bin %> webhooks test whk_abc123", | ||
| "<%= config.bin %> webhooks test whk_abc123 --json" | ||
| "<%= config.bin %> sms send --to +15551234567 --text \"Hello!\"", | ||
| "<%= config.bin %> sms send --to +15551234567 --text \"Hello!\" --from \"Sendly\"", | ||
| "<%= config.bin %> sms send --to +15551234567 --text \"Hello!\" --type transactional", | ||
| "<%= config.bin %> sms send --to +15551234567 --text \"Hello!\" --json" | ||
| ], | ||
@@ -1233,2 +1285,40 @@ "flags": { | ||
| "type": "boolean" | ||
| }, | ||
| "to": { | ||
| "char": "t", | ||
| "description": "Recipient phone number (E.164 format)", | ||
| "name": "to", | ||
| "required": true, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "text": { | ||
| "char": "m", | ||
| "description": "Message text", | ||
| "name": "text", | ||
| "required": true, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "from": { | ||
| "char": "f", | ||
| "description": "Sender ID or phone number", | ||
| "name": "from", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "type": { | ||
| "description": "Message type: marketing (default) or transactional", | ||
| "name": "type", | ||
| "default": "marketing", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "options": [ | ||
| "marketing", | ||
| "transactional" | ||
| ], | ||
| "type": "option" | ||
| } | ||
@@ -1238,3 +1328,3 @@ }, | ||
| "hiddenAliases": [], | ||
| "id": "webhooks:test", | ||
| "id": "sms:send", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1248,22 +1338,14 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "webhooks", | ||
| "test.js" | ||
| "sms", | ||
| "send.js" | ||
| ] | ||
| }, | ||
| "webhooks:update": { | ||
| "webhooks:create": { | ||
| "aliases": [], | ||
| "args": { | ||
| "id": { | ||
| "description": "Webhook ID to update", | ||
| "name": "id", | ||
| "required": true | ||
| } | ||
| }, | ||
| "description": "Update a webhook", | ||
| "args": {}, | ||
| "description": "Create a webhook", | ||
| "examples": [ | ||
| "<%= config.bin %> webhooks update whk_abc123 --url https://newdomain.com/webhook", | ||
| "<%= config.bin %> webhooks update whk_abc123 --events message.delivered,message.failed", | ||
| "<%= config.bin %> webhooks update whk_abc123 --description \"Updated production webhook\"", | ||
| "<%= config.bin %> webhooks update whk_abc123 --active false", | ||
| "<%= config.bin %> webhooks update whk_abc123 --url https://newdomain.com/webhook --events message.sent --json" | ||
| "<%= config.bin %> webhooks create --url https://myapp.com/webhook --events message.delivered", | ||
| "<%= config.bin %> webhooks create --url https://myapp.com/webhook --events message.delivered,message.failed --description \"Production webhook\"", | ||
| "<%= config.bin %> webhooks create --url https://webhook.site/abc123 --events message.sent --json" | ||
| ], | ||
@@ -1286,4 +1368,5 @@ "flags": { | ||
| "char": "u", | ||
| "description": "Update webhook URL (must be HTTPS)", | ||
| "description": "Webhook URL (must be HTTPS)", | ||
| "name": "url", | ||
| "required": true, | ||
| "hasDynamicHelp": false, | ||
@@ -1295,4 +1378,5 @@ "multiple": false, | ||
| "char": "e", | ||
| "description": "Update events list (comma-separated)", | ||
| "description": "Comma-separated list of events to listen for", | ||
| "name": "events", | ||
| "required": true, | ||
| "hasDynamicHelp": false, | ||
@@ -1304,3 +1388,3 @@ "multiple": false, | ||
| "char": "d", | ||
| "description": "Update description", | ||
| "description": "Description for the webhook", | ||
| "name": "description", | ||
@@ -1311,13 +1395,7 @@ "hasDynamicHelp": false, | ||
| }, | ||
| "active": { | ||
| "char": "a", | ||
| "description": "Enable or disable the webhook", | ||
| "name": "active", | ||
| "allowNo": true, | ||
| "type": "boolean" | ||
| }, | ||
| "mode": { | ||
| "char": "m", | ||
| "description": "Update event mode filter: all, test (sandbox only), live (production only)", | ||
| "description": "Event mode filter: all (default), test (sandbox only), live (production only)", | ||
| "name": "mode", | ||
| "default": "all", | ||
| "hasDynamicHelp": false, | ||
@@ -1335,3 +1413,3 @@ "multiple": false, | ||
| "hiddenAliases": [], | ||
| "id": "webhooks:update", | ||
| "id": "webhooks:create", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1346,17 +1424,19 @@ "pluginName": "@sendly/cli", | ||
| "webhooks", | ||
| "update.js" | ||
| "create.js" | ||
| ] | ||
| }, | ||
| "sms:batch": { | ||
| "webhooks:delete": { | ||
| "aliases": [], | ||
| "args": {}, | ||
| "description": "Send batch SMS messages (uploads CSV to cloud for audit trail)", | ||
| "args": { | ||
| "id": { | ||
| "description": "Webhook ID to delete", | ||
| "name": "id", | ||
| "required": true | ||
| } | ||
| }, | ||
| "description": "Delete a webhook", | ||
| "examples": [ | ||
| "<%= config.bin %> sms batch --file recipients.csv", | ||
| "<%= config.bin %> sms batch --file phones.csv --text \"Hello everyone!\"", | ||
| "<%= config.bin %> sms batch --to +15551234567,+15559876543 --text \"Hello!\"", | ||
| "<%= config.bin %> sms batch --file recipients.csv --dry-run", | ||
| "<%= config.bin %> sms batch --file phones.csv --text \"Code: 123\" --type transactional", | ||
| "<%= config.bin %> sms batch --reuse abc123-def456", | ||
| "<%= config.bin %> sms batch --history" | ||
| "<%= config.bin %> webhooks delete whk_abc123", | ||
| "<%= config.bin %> webhooks delete whk_abc123 --yes", | ||
| "<%= config.bin %> webhooks delete whk_abc123 --json" | ||
| ], | ||
@@ -1377,85 +1457,8 @@ "flags": { | ||
| }, | ||
| "file": { | ||
| "char": "F", | ||
| "description": "CSV file with phone numbers (and optional message text)", | ||
| "exclusive": [ | ||
| "to", | ||
| "reuse", | ||
| "history" | ||
| ], | ||
| "name": "file", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "to": { | ||
| "char": "t", | ||
| "description": "Comma-separated recipient phone numbers (E.164 format)", | ||
| "exclusive": [ | ||
| "file", | ||
| "reuse", | ||
| "history" | ||
| ], | ||
| "name": "to", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "text": { | ||
| "char": "m", | ||
| "description": "Message text (required with --to, optional with --file if CSV has text column)", | ||
| "name": "text", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "from": { | ||
| "char": "f", | ||
| "description": "Sender ID or phone number for all messages", | ||
| "name": "from", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "type": { | ||
| "description": "Message type: marketing (default) or transactional. Transactional bypasses quiet hours.", | ||
| "name": "type", | ||
| "default": "marketing", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "options": [ | ||
| "marketing", | ||
| "transactional" | ||
| ], | ||
| "type": "option" | ||
| }, | ||
| "dry-run": { | ||
| "char": "d", | ||
| "description": "Preview batch without sending (validates access, shows cost and compliance breakdown)", | ||
| "name": "dry-run", | ||
| "yes": { | ||
| "char": "y", | ||
| "description": "Skip confirmation prompt", | ||
| "name": "yes", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "reuse": { | ||
| "description": "Re-use a previous batch upload by ID (see --history)", | ||
| "exclusive": [ | ||
| "file", | ||
| "to", | ||
| "history" | ||
| ], | ||
| "name": "reuse", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "history": { | ||
| "description": "Show recent batch upload history", | ||
| "exclusive": [ | ||
| "file", | ||
| "to", | ||
| "reuse" | ||
| ], | ||
| "name": "history", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| } | ||
@@ -1465,3 +1468,3 @@ }, | ||
| "hiddenAliases": [], | ||
| "id": "sms:batch", | ||
| "id": "webhooks:delete", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1475,11 +1478,11 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "sms", | ||
| "batch.js" | ||
| "webhooks", | ||
| "delete.js" | ||
| ] | ||
| }, | ||
| "sms:cancel": { | ||
| "webhooks:deliveries": { | ||
| "aliases": [], | ||
| "args": { | ||
| "id": { | ||
| "description": "Scheduled message ID to cancel", | ||
| "description": "Webhook ID", | ||
| "name": "id", | ||
@@ -1489,6 +1492,8 @@ "required": true | ||
| }, | ||
| "description": "Cancel a scheduled message", | ||
| "description": "View webhook delivery history", | ||
| "examples": [ | ||
| "<%= config.bin %> sms cancel sched_abc123", | ||
| "<%= config.bin %> sms cancel sched_abc123 --json" | ||
| "<%= config.bin %> webhooks deliveries whk_abc123", | ||
| "<%= config.bin %> webhooks deliveries whk_abc123 --limit 20", | ||
| "<%= config.bin %> webhooks deliveries whk_abc123 --failed-only", | ||
| "<%= config.bin %> webhooks deliveries whk_abc123 --json" | ||
| ], | ||
@@ -1508,2 +1513,17 @@ "flags": { | ||
| "type": "boolean" | ||
| }, | ||
| "limit": { | ||
| "char": "l", | ||
| "description": "Number of deliveries to show", | ||
| "name": "limit", | ||
| "default": 10, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "failed-only": { | ||
| "description": "Show only failed deliveries", | ||
| "name": "failed-only", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| } | ||
@@ -1513,3 +1533,3 @@ }, | ||
| "hiddenAliases": [], | ||
| "id": "sms:cancel", | ||
| "id": "webhooks:deliveries", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1523,11 +1543,11 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "sms", | ||
| "cancel.js" | ||
| "webhooks", | ||
| "deliveries.js" | ||
| ] | ||
| }, | ||
| "sms:get": { | ||
| "webhooks:get": { | ||
| "aliases": [], | ||
| "args": { | ||
| "id": { | ||
| "description": "Message ID", | ||
| "description": "Webhook ID", | ||
| "name": "id", | ||
@@ -1537,6 +1557,6 @@ "required": true | ||
| }, | ||
| "description": "Get details of a specific message", | ||
| "description": "Get webhook details", | ||
| "examples": [ | ||
| "<%= config.bin %> sms get msg_abc123", | ||
| "<%= config.bin %> sms get msg_abc123 --json" | ||
| "<%= config.bin %> webhooks get whk_abc123", | ||
| "<%= config.bin %> webhooks get whk_abc123 --json" | ||
| ], | ||
@@ -1560,3 +1580,3 @@ "flags": { | ||
| "hiddenAliases": [], | ||
| "id": "sms:get", | ||
| "id": "webhooks:get", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1570,17 +1590,13 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "sms", | ||
| "webhooks", | ||
| "get.js" | ||
| ] | ||
| }, | ||
| "sms:list": { | ||
| "webhooks:list": { | ||
| "aliases": [], | ||
| "args": {}, | ||
| "description": "List sent messages", | ||
| "description": "List configured webhooks", | ||
| "examples": [ | ||
| "<%= config.bin %> sms list", | ||
| "<%= config.bin %> sms list --limit 10", | ||
| "<%= config.bin %> sms list --page 2", | ||
| "<%= config.bin %> sms list --status delivered", | ||
| "<%= config.bin %> sms list --sandbox", | ||
| "<%= config.bin %> sms list --json" | ||
| "<%= config.bin %> webhooks list", | ||
| "<%= config.bin %> webhooks list --json" | ||
| ], | ||
@@ -1600,40 +1616,2 @@ "flags": { | ||
| "type": "boolean" | ||
| }, | ||
| "limit": { | ||
| "char": "l", | ||
| "description": "Number of messages per page", | ||
| "name": "limit", | ||
| "default": 20, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "page": { | ||
| "char": "p", | ||
| "description": "Page number (starts at 1)", | ||
| "name": "page", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "offset": { | ||
| "description": "Offset from start (alternative to --page)", | ||
| "name": "offset", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "status": { | ||
| "char": "s", | ||
| "description": "Filter by status (queued, sent, delivered, failed)", | ||
| "name": "status", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "sandbox": { | ||
| "description": "Show sandbox/test messages (live keys only)", | ||
| "name": "sandbox", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| } | ||
@@ -1643,3 +1621,3 @@ }, | ||
| "hiddenAliases": [], | ||
| "id": "sms:list", | ||
| "id": "webhooks:list", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1653,15 +1631,14 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "sms", | ||
| "webhooks", | ||
| "list.js" | ||
| ] | ||
| }, | ||
| "sms:schedule": { | ||
| "webhooks:listen": { | ||
| "aliases": [], | ||
| "args": {}, | ||
| "description": "Schedule an SMS message for future delivery", | ||
| "description": "Listen for webhooks locally. Receives events in real-time via WebSocket and forwards them to your local server.", | ||
| "examples": [ | ||
| "<%= config.bin %> sms schedule --to +15551234567 --text \"Reminder!\" --at \"2025-01-20T10:00:00Z\"", | ||
| "<%= config.bin %> sms schedule --to +15551234567 --text \"Meeting in 1 hour\" --at \"2025-01-15T14:00:00Z\" --from \"Sendly\"", | ||
| "<%= config.bin %> sms schedule --to +15551234567 --text \"Your code: 123456\" --at \"2025-01-20T10:00:00Z\" --type transactional", | ||
| "<%= config.bin %> sms schedule --to +15551234567 --text \"Hello!\" --at \"2025-01-20T10:00:00Z\" --json" | ||
| "<%= config.bin %> webhooks listen", | ||
| "<%= config.bin %> webhooks listen --forward http://localhost:3000/webhook", | ||
| "<%= config.bin %> webhooks listen --events message.delivered,message.failed" | ||
| ], | ||
@@ -1682,33 +1659,7 @@ "flags": { | ||
| }, | ||
| "to": { | ||
| "char": "t", | ||
| "description": "Recipient phone number (E.164 format)", | ||
| "name": "to", | ||
| "required": true, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "text": { | ||
| "char": "m", | ||
| "description": "Message text", | ||
| "name": "text", | ||
| "required": true, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "at": { | ||
| "char": "a", | ||
| "description": "Scheduled time (ISO 8601 format, e.g., 2025-01-20T10:00:00Z)", | ||
| "name": "at", | ||
| "required": true, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| }, | ||
| "from": { | ||
| "forward": { | ||
| "char": "f", | ||
| "description": "Sender ID or phone number", | ||
| "name": "from", | ||
| "description": "Local URL to forward events to", | ||
| "name": "forward", | ||
| "default": "http://localhost:3000/webhook", | ||
| "hasDynamicHelp": false, | ||
@@ -1718,12 +1669,9 @@ "multiple": false, | ||
| }, | ||
| "type": { | ||
| "description": "Message type: marketing (default) or transactional. Transactional messages bypass quiet hours.", | ||
| "name": "type", | ||
| "default": "marketing", | ||
| "events": { | ||
| "char": "e", | ||
| "description": "Comma-separated list of events to listen for", | ||
| "name": "events", | ||
| "default": "message.sent,message.delivered,message.failed,message.bounced", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "options": [ | ||
| "marketing", | ||
| "transactional" | ||
| ], | ||
| "type": "option" | ||
@@ -1734,3 +1682,3 @@ } | ||
| "hiddenAliases": [], | ||
| "id": "sms:schedule", | ||
| "id": "webhooks:listen", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1744,15 +1692,20 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "sms", | ||
| "schedule.js" | ||
| "webhooks", | ||
| "listen.js" | ||
| ] | ||
| }, | ||
| "sms:scheduled": { | ||
| "webhooks:rotate-secret": { | ||
| "aliases": [], | ||
| "args": {}, | ||
| "description": "List scheduled messages", | ||
| "args": { | ||
| "id": { | ||
| "description": "Webhook ID", | ||
| "name": "id", | ||
| "required": true | ||
| } | ||
| }, | ||
| "description": "Rotate webhook secret", | ||
| "examples": [ | ||
| "<%= config.bin %> sms scheduled", | ||
| "<%= config.bin %> sms scheduled --limit 10", | ||
| "<%= config.bin %> sms scheduled --status scheduled", | ||
| "<%= config.bin %> sms scheduled --json" | ||
| "<%= config.bin %> webhooks rotate-secret whk_abc123", | ||
| "<%= config.bin %> webhooks rotate-secret whk_abc123 --yes", | ||
| "<%= config.bin %> webhooks rotate-secret whk_abc123 --json" | ||
| ], | ||
@@ -1773,18 +1726,52 @@ "flags": { | ||
| }, | ||
| "limit": { | ||
| "char": "l", | ||
| "description": "Number of messages to show", | ||
| "name": "limit", | ||
| "default": 20, | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| "yes": { | ||
| "char": "y", | ||
| "description": "Skip confirmation prompt", | ||
| "name": "yes", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| } | ||
| }, | ||
| "hasDynamicHelp": false, | ||
| "hiddenAliases": [], | ||
| "id": "webhooks:rotate-secret", | ||
| "pluginAlias": "@sendly/cli", | ||
| "pluginName": "@sendly/cli", | ||
| "pluginType": "core", | ||
| "strict": true, | ||
| "isESM": true, | ||
| "relativePath": [ | ||
| "dist", | ||
| "commands", | ||
| "webhooks", | ||
| "rotate-secret.js" | ||
| ] | ||
| }, | ||
| "webhooks:test": { | ||
| "aliases": [], | ||
| "args": { | ||
| "id": { | ||
| "description": "Webhook ID to test", | ||
| "name": "id", | ||
| "required": true | ||
| } | ||
| }, | ||
| "description": "Send a test event to a webhook", | ||
| "examples": [ | ||
| "<%= config.bin %> webhooks test whk_abc123", | ||
| "<%= config.bin %> webhooks test whk_abc123 --json" | ||
| ], | ||
| "flags": { | ||
| "json": { | ||
| "description": "Output in JSON format", | ||
| "name": "json", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| }, | ||
| "status": { | ||
| "char": "s", | ||
| "description": "Filter by status (scheduled, sent, cancelled, failed)", | ||
| "name": "status", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "type": "option" | ||
| "quiet": { | ||
| "char": "q", | ||
| "description": "Minimal output", | ||
| "name": "quiet", | ||
| "allowNo": false, | ||
| "type": "boolean" | ||
| } | ||
@@ -1794,3 +1781,3 @@ }, | ||
| "hiddenAliases": [], | ||
| "id": "sms:scheduled", | ||
| "id": "webhooks:test", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1804,15 +1791,22 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "sms", | ||
| "scheduled.js" | ||
| "webhooks", | ||
| "test.js" | ||
| ] | ||
| }, | ||
| "sms:send": { | ||
| "webhooks:update": { | ||
| "aliases": [], | ||
| "args": {}, | ||
| "description": "Send an SMS message", | ||
| "args": { | ||
| "id": { | ||
| "description": "Webhook ID to update", | ||
| "name": "id", | ||
| "required": true | ||
| } | ||
| }, | ||
| "description": "Update a webhook", | ||
| "examples": [ | ||
| "<%= config.bin %> sms send --to +15551234567 --text \"Hello!\"", | ||
| "<%= config.bin %> sms send --to +15551234567 --text \"Hello!\" --from \"Sendly\"", | ||
| "<%= config.bin %> sms send --to +15551234567 --text \"Hello!\" --type transactional", | ||
| "<%= config.bin %> sms send --to +15551234567 --text \"Hello!\" --json" | ||
| "<%= config.bin %> webhooks update whk_abc123 --url https://newdomain.com/webhook", | ||
| "<%= config.bin %> webhooks update whk_abc123 --events message.delivered,message.failed", | ||
| "<%= config.bin %> webhooks update whk_abc123 --description \"Updated production webhook\"", | ||
| "<%= config.bin %> webhooks update whk_abc123 --active false", | ||
| "<%= config.bin %> webhooks update whk_abc123 --url https://newdomain.com/webhook --events message.sent --json" | ||
| ], | ||
@@ -1833,7 +1827,6 @@ "flags": { | ||
| }, | ||
| "to": { | ||
| "char": "t", | ||
| "description": "Recipient phone number (E.164 format)", | ||
| "name": "to", | ||
| "required": true, | ||
| "url": { | ||
| "char": "u", | ||
| "description": "Update webhook URL (must be HTTPS)", | ||
| "name": "url", | ||
| "hasDynamicHelp": false, | ||
@@ -1843,7 +1836,6 @@ "multiple": false, | ||
| }, | ||
| "text": { | ||
| "char": "m", | ||
| "description": "Message text", | ||
| "name": "text", | ||
| "required": true, | ||
| "events": { | ||
| "char": "e", | ||
| "description": "Update events list (comma-separated)", | ||
| "name": "events", | ||
| "hasDynamicHelp": false, | ||
@@ -1853,6 +1845,6 @@ "multiple": false, | ||
| }, | ||
| "from": { | ||
| "char": "f", | ||
| "description": "Sender ID or phone number", | ||
| "name": "from", | ||
| "description": { | ||
| "char": "d", | ||
| "description": "Update description", | ||
| "name": "description", | ||
| "hasDynamicHelp": false, | ||
@@ -1862,11 +1854,19 @@ "multiple": false, | ||
| }, | ||
| "type": { | ||
| "description": "Message type: marketing (default) or transactional", | ||
| "name": "type", | ||
| "default": "marketing", | ||
| "active": { | ||
| "char": "a", | ||
| "description": "Enable or disable the webhook", | ||
| "name": "active", | ||
| "allowNo": true, | ||
| "type": "boolean" | ||
| }, | ||
| "mode": { | ||
| "char": "m", | ||
| "description": "Update event mode filter: all, test (sandbox only), live (production only)", | ||
| "name": "mode", | ||
| "hasDynamicHelp": false, | ||
| "multiple": false, | ||
| "options": [ | ||
| "marketing", | ||
| "transactional" | ||
| "all", | ||
| "test", | ||
| "live" | ||
| ], | ||
@@ -1878,3 +1878,3 @@ "type": "option" | ||
| "hiddenAliases": [], | ||
| "id": "sms:send", | ||
| "id": "webhooks:update", | ||
| "pluginAlias": "@sendly/cli", | ||
@@ -1888,8 +1888,8 @@ "pluginName": "@sendly/cli", | ||
| "commands", | ||
| "sms", | ||
| "send.js" | ||
| "webhooks", | ||
| "update.js" | ||
| ] | ||
| } | ||
| }, | ||
| "version": "3.8.0" | ||
| "version": "3.8.1" | ||
| } |
+2
-2
| { | ||
| "name": "@sendly/cli", | ||
| "version": "3.8.0", | ||
| "version": "3.8.1", | ||
| "type": "module", | ||
@@ -23,3 +23,3 @@ "description": "Sendly CLI - Send SMS from your terminal", | ||
| "postpack": "shx rm -f oclif.manifest.json", | ||
| "prepack": "npm run build && oclif manifest && oclif readme", | ||
| "prepack": "npm run build && [ -f oclif.manifest.json ] || oclif manifest && oclif readme", | ||
| "test": "vitest run", | ||
@@ -26,0 +26,0 @@ "test:watch": "vitest", |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
711741
0