🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@sendly/cli

Package Overview
Dependencies
Maintainers
1
Versions
63
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sendly/cli - npm Package Compare versions

Comparing version
3.8.0
to
3.8.1
+453
-453
oclif.manifest.json

@@ -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"
}
{
"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",