@sinch/cli 0.1.27-beta.0 → 0.1.28-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +198 -198
- package/bin/sinch +2 -2
- package/dist/commands/conversations/apps.d.ts +2 -0
- package/dist/commands/conversations/apps.d.ts.map +1 -0
- package/dist/commands/conversations/apps.js +162 -0
- package/dist/commands/conversations/apps.js.map +1 -0
- package/dist/commands/conversations/contacts.d.ts +2 -0
- package/dist/commands/conversations/contacts.d.ts.map +1 -0
- package/dist/commands/conversations/contacts.js +245 -0
- package/dist/commands/conversations/contacts.js.map +1 -0
- package/dist/commands/conversations/conversation.d.ts +2 -0
- package/dist/commands/conversations/conversation.d.ts.map +1 -0
- package/dist/commands/conversations/conversation.js +19 -0
- package/dist/commands/conversations/conversation.js.map +1 -0
- package/dist/commands/conversations/conversations.d.ts +2 -0
- package/dist/commands/conversations/conversations.d.ts.map +1 -0
- package/dist/commands/conversations/conversations.js +104 -0
- package/dist/commands/conversations/conversations.js.map +1 -0
- package/dist/commands/conversations/messages.d.ts +2 -0
- package/dist/commands/conversations/messages.d.ts.map +1 -0
- package/dist/commands/conversations/messages.js +107 -0
- package/dist/commands/conversations/messages.js.map +1 -0
- package/dist/commands/conversations/send.d.ts +2 -0
- package/dist/commands/conversations/send.d.ts.map +1 -0
- package/dist/commands/conversations/send.js +185 -0
- package/dist/commands/conversations/send.js.map +1 -0
- package/dist/commands/conversations/utils.d.ts +4 -0
- package/dist/commands/conversations/utils.d.ts.map +1 -0
- package/dist/commands/conversations/utils.js +30 -0
- package/dist/commands/conversations/utils.js.map +1 -0
- package/dist/commands/conversations/webhooks.d.ts +2 -0
- package/dist/commands/conversations/webhooks.d.ts.map +1 -0
- package/dist/commands/conversations/webhooks.js +238 -0
- package/dist/commands/conversations/webhooks.js.map +1 -0
- package/dist/commands/delete.d.ts +2 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +93 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/deploy.d.ts +2 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +687 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.d.ts +2 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +460 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docs.d.ts +2 -0
- package/dist/commands/docs.d.ts.map +1 -0
- package/dist/commands/docs.js +105 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/commands/download.d.ts +2 -0
- package/dist/commands/download.d.ts.map +1 -0
- package/dist/commands/download.js +207 -0
- package/dist/commands/download.js.map +1 -0
- package/dist/commands/functions.d.ts +2 -0
- package/dist/commands/functions.d.ts.map +1 -0
- package/dist/commands/functions.js +25 -0
- package/dist/commands/functions.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +552 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +2 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +180 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/logs.d.ts +2 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +1001 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/secrets.d.ts +2 -0
- package/dist/commands/secrets.d.ts.map +1 -0
- package/dist/commands/secrets.js +197 -0
- package/dist/commands/secrets.js.map +1 -0
- package/dist/commands/skills.d.ts +4 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +309 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +145 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/templates.d.ts +2 -0
- package/dist/commands/templates.d.ts.map +1 -0
- package/dist/commands/templates.js +168 -0
- package/dist/commands/templates.js.map +1 -0
- package/dist/commands/voice.d.ts +2 -0
- package/dist/commands/voice.d.ts.map +1 -0
- package/dist/commands/voice.js +259 -0
- package/dist/commands/voice.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +780 -325
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +73 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +455 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/config.d.ts +68 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +276 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/conversation.d.ts +8 -0
- package/dist/lib/conversation.d.ts.map +1 -0
- package/dist/lib/conversation.js +179 -0
- package/dist/lib/conversation.js.map +1 -0
- package/dist/lib/credentials.d.ts +43 -0
- package/dist/lib/credentials.d.ts.map +1 -0
- package/dist/lib/credentials.js +365 -0
- package/dist/lib/credentials.js.map +1 -0
- package/dist/lib/docs-utils.d.ts +13 -0
- package/dist/lib/docs-utils.d.ts.map +1 -0
- package/dist/lib/docs-utils.js +115 -0
- package/dist/lib/docs-utils.js.map +1 -0
- package/dist/lib/update-check.d.ts +5 -0
- package/dist/lib/update-check.d.ts.map +1 -0
- package/dist/lib/update-check.js +114 -0
- package/dist/lib/update-check.js.map +1 -0
- package/dist/lib/voice.d.ts +3 -0
- package/dist/lib/voice.d.ts.map +1 -0
- package/dist/lib/voice.js +49 -0
- package/dist/lib/voice.js.map +1 -0
- package/dist/package.json +71 -0
- package/dist/utils/logger.d.ts +28 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +138 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/spinner.d.ts +17 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +75 -0
- package/dist/utils/spinner.js.map +1 -0
- package/package.json +71 -71
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const commander_1 = require("commander");
|
|
7
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
8
|
+
const logger_1 = require("../../utils/logger");
|
|
9
|
+
const spinner_1 = require("../../utils/spinner");
|
|
10
|
+
const utils_1 = require("./utils");
|
|
11
|
+
const send = new commander_1.Command('send');
|
|
12
|
+
send
|
|
13
|
+
.description('Send a message via Conversation API')
|
|
14
|
+
.argument('[recipient]', 'Recipient phone number (e.g., +15551234567)')
|
|
15
|
+
.argument('[message]', 'Message text to send')
|
|
16
|
+
.option('-c, --channel <channel>', 'Channel (SMS, WHATSAPP, MESSENGER, etc.)', 'SMS')
|
|
17
|
+
.option('-a, --app <app-id>', 'Conversation App ID (uses default if configured)')
|
|
18
|
+
.option('-m, --media <url>', 'Media URL for media messages')
|
|
19
|
+
.option('--caption <text>', 'Caption for media messages')
|
|
20
|
+
.option('-t, --template <name>', 'Template name for template messages')
|
|
21
|
+
.option('-p, --params <json>', 'Template parameters as JSON string')
|
|
22
|
+
.option('--location', 'Send location message')
|
|
23
|
+
.option('--lat <latitude>', 'Latitude for location messages', parseFloat)
|
|
24
|
+
.option('--lng <longitude>', 'Longitude for location messages', parseFloat)
|
|
25
|
+
.option('-n, --name <name>', 'Location name')
|
|
26
|
+
.option('--json', 'Output result as JSON')
|
|
27
|
+
.action(async (recipient, message, options) => {
|
|
28
|
+
try {
|
|
29
|
+
const sinchClient = await (0, utils_1.getSinchClient)();
|
|
30
|
+
if (!recipient || (!message && !options?.media && !options?.template && !options?.location)) {
|
|
31
|
+
const answers = await inquirer_1.default.prompt([
|
|
32
|
+
{
|
|
33
|
+
type: 'input',
|
|
34
|
+
name: 'recipient',
|
|
35
|
+
message: 'Enter recipient phone number:',
|
|
36
|
+
when: !recipient,
|
|
37
|
+
validate: (input) => {
|
|
38
|
+
if (!input)
|
|
39
|
+
return 'Recipient is required';
|
|
40
|
+
if (!input.startsWith('+'))
|
|
41
|
+
return 'Phone number must start with +';
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
type: 'input',
|
|
47
|
+
name: 'message',
|
|
48
|
+
message: 'Enter message:',
|
|
49
|
+
when: !message && !options?.media && !options?.template && !options?.location,
|
|
50
|
+
validate: (input) => input ? true : 'Message is required'
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: 'list',
|
|
54
|
+
name: 'channel',
|
|
55
|
+
message: 'Select channel:',
|
|
56
|
+
choices: ['SMS', 'WHATSAPP', 'MESSENGER', 'INSTAGRAM', 'VIBER', 'TELEGRAM', 'RCS', 'LINE'],
|
|
57
|
+
default: options?.channel || 'SMS',
|
|
58
|
+
when: !options?.channel
|
|
59
|
+
}
|
|
60
|
+
]);
|
|
61
|
+
recipient = recipient || answers.recipient;
|
|
62
|
+
message = message || answers.message;
|
|
63
|
+
if (answers.channel)
|
|
64
|
+
options = { ...options, channel: answers.channel };
|
|
65
|
+
}
|
|
66
|
+
const appId = (0, utils_1.getAppId)(options?.app);
|
|
67
|
+
spinner_1.spinner.start('Sending message...');
|
|
68
|
+
try {
|
|
69
|
+
let result;
|
|
70
|
+
if (options?.location) {
|
|
71
|
+
if (!options.lat || !options.lng) {
|
|
72
|
+
spinner_1.spinner.fail('Location messages require --lat and --lng');
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
result = await sinchClient.conversation.messages.send({
|
|
76
|
+
app_id: appId,
|
|
77
|
+
recipient: {
|
|
78
|
+
identified_by: {
|
|
79
|
+
channel_identities: [{
|
|
80
|
+
channel: options.channel || 'SMS',
|
|
81
|
+
identity: recipient
|
|
82
|
+
}]
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
location_message: {
|
|
86
|
+
coordinates: {
|
|
87
|
+
latitude: options.lat,
|
|
88
|
+
longitude: options.lng
|
|
89
|
+
},
|
|
90
|
+
title: options.name
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
else if (options?.template) {
|
|
95
|
+
const params = options.params ? JSON.parse(options.params) : {};
|
|
96
|
+
result = await sinchClient.conversation.messages.send({
|
|
97
|
+
app_id: appId,
|
|
98
|
+
recipient: {
|
|
99
|
+
identified_by: {
|
|
100
|
+
channel_identities: [{
|
|
101
|
+
channel: options.channel || 'WHATSAPP',
|
|
102
|
+
identity: recipient
|
|
103
|
+
}]
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
template_message: {
|
|
107
|
+
template_reference: {
|
|
108
|
+
template_id: options.template,
|
|
109
|
+
version: params.version || '1'
|
|
110
|
+
},
|
|
111
|
+
parameters: params
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
else if (options?.media) {
|
|
116
|
+
result = await sinchClient.conversation.messages.send({
|
|
117
|
+
app_id: appId,
|
|
118
|
+
recipient: {
|
|
119
|
+
identified_by: {
|
|
120
|
+
channel_identities: [{
|
|
121
|
+
channel: options.channel || 'WHATSAPP',
|
|
122
|
+
identity: recipient
|
|
123
|
+
}]
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
media_message: {
|
|
127
|
+
url: options.media,
|
|
128
|
+
caption: options.caption
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
result = await sinchClient.conversation.messages.send({
|
|
134
|
+
app_id: appId,
|
|
135
|
+
recipient: {
|
|
136
|
+
identified_by: {
|
|
137
|
+
channel_identities: [{
|
|
138
|
+
channel: options?.channel || 'SMS',
|
|
139
|
+
identity: recipient
|
|
140
|
+
}]
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
text_message: {
|
|
144
|
+
text: message
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
spinner_1.spinner.succeed('Message sent successfully!');
|
|
149
|
+
if (options?.json) {
|
|
150
|
+
console.log(JSON.stringify(result, null, 2));
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
logger_1.logger.newline();
|
|
154
|
+
logger_1.logger.info(`Message ID: ${result.message_id}`);
|
|
155
|
+
logger_1.logger.info(`Recipient: ${recipient}`);
|
|
156
|
+
logger_1.logger.info(`Channel: ${options?.channel || 'SMS'}`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
spinner_1.spinner.fail('Failed to send message');
|
|
161
|
+
if (error.message?.includes('WHATSAPP') || error.message?.includes('channel not configured')) {
|
|
162
|
+
logger_1.logger.error(`Error: WhatsApp channel not configured for app '${appId}'`);
|
|
163
|
+
logger_1.logger.newline();
|
|
164
|
+
logger_1.logger.info('To use WhatsApp, configure WhatsApp credentials in your Conversation app:');
|
|
165
|
+
logger_1.logger.info(' 1. Visit https://dashboard.sinch.com/convapi/apps');
|
|
166
|
+
logger_1.logger.info(' 2. Add WhatsApp channel credentials');
|
|
167
|
+
logger_1.logger.info(' 3. Verify your WhatsApp Business Account');
|
|
168
|
+
logger_1.logger.newline();
|
|
169
|
+
logger_1.logger.info('Or use SMS (no additional setup required):');
|
|
170
|
+
logger_1.logger.info(` sinch conversation send ${recipient} "${message}"`);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
logger_1.logger.error(`Error: ${error.message}`);
|
|
174
|
+
}
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
spinner_1.spinner.stop();
|
|
180
|
+
logger_1.logger.error(`Failed to send message: ${error.message}`);
|
|
181
|
+
process.exit(1);
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
module.exports = send;
|
|
185
|
+
//# sourceMappingURL=send.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/commands/conversations/send.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/commands/conversations/utils.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAQjD;AAED,wBAAsB,cAAc,iBAGnC;AAED,wBAAgB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAWvD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requireAuth = requireAuth;
|
|
4
|
+
exports.getSinchClient = getSinchClient;
|
|
5
|
+
exports.getAppId = getAppId;
|
|
6
|
+
const config_1 = require("../../lib/config");
|
|
7
|
+
const logger_1 = require("../../utils/logger");
|
|
8
|
+
async function requireAuth() {
|
|
9
|
+
await config_1.config.load();
|
|
10
|
+
const hasCredentials = await config_1.config.hasCredentials();
|
|
11
|
+
if (!hasCredentials) {
|
|
12
|
+
logger_1.logger.error('Not authenticated. Run "sinch auth login" first.');
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
async function getSinchClient() {
|
|
17
|
+
await requireAuth();
|
|
18
|
+
return await config_1.config.createSinchClient();
|
|
19
|
+
}
|
|
20
|
+
function getAppId(providedAppId) {
|
|
21
|
+
const appId = providedAppId || config_1.config.get('conversation-app-id');
|
|
22
|
+
if (!appId) {
|
|
23
|
+
logger_1.logger.error('No Conversation App ID configured.');
|
|
24
|
+
logger_1.logger.info('Set default: sinch config set conversation-app-id <id>');
|
|
25
|
+
logger_1.logger.info('Or specify: --app <app-id>');
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
return appId;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/conversations/utils.ts"],"names":[],"mappings":";;AAGA,kCAQC;AAED,wCAGC;AAED,4BAWC;AA7BD,6CAA0C;AAC1C,+CAA4C;AAErC,KAAK,UAAU,WAAW;IAC/B,MAAM,eAAM,CAAC,IAAI,EAAE,CAAC;IAEpB,MAAM,cAAc,GAAG,MAAM,eAAM,CAAC,cAAc,EAAE,CAAC;IACrD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,eAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,MAAM,WAAW,EAAE,CAAC;IACpB,OAAO,MAAM,eAAM,CAAC,iBAAiB,EAAE,CAAC;AAC1C,CAAC;AAED,SAAgB,QAAQ,CAAC,aAAsB;IAC7C,MAAM,KAAK,GAAG,aAAa,IAAI,eAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEjE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,eAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACnD,eAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACtE,eAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../../src/commands/conversations/webhooks.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const commander_1 = require("commander");
|
|
7
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
8
|
+
const config_1 = require("../../lib/config");
|
|
9
|
+
const logger_1 = require("../../utils/logger");
|
|
10
|
+
const spinner_1 = require("../../utils/spinner");
|
|
11
|
+
const utils_1 = require("./utils");
|
|
12
|
+
const webhooks = new commander_1.Command('webhooks');
|
|
13
|
+
webhooks.description('Manage webhooks for Conversation apps');
|
|
14
|
+
webhooks
|
|
15
|
+
.command('list')
|
|
16
|
+
.description('List webhooks for a Conversation app')
|
|
17
|
+
.option('-a, --app <app-id>', 'Conversation App ID')
|
|
18
|
+
.option('--json', 'Output result as JSON')
|
|
19
|
+
.action(async (options) => {
|
|
20
|
+
try {
|
|
21
|
+
const appId = (0, utils_1.getAppId)(options.app);
|
|
22
|
+
const sinchClient = await (0, utils_1.getSinchClient)();
|
|
23
|
+
spinner_1.spinner.start('Fetching webhooks...');
|
|
24
|
+
const result = await sinchClient.conversation.webhooks.list({
|
|
25
|
+
app_id: appId
|
|
26
|
+
});
|
|
27
|
+
spinner_1.spinner.succeed(`Retrieved ${result.webhooks?.length || 0} webhooks`);
|
|
28
|
+
if (options.json) {
|
|
29
|
+
console.log(JSON.stringify(result, null, 2));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
logger_1.logger.newline();
|
|
33
|
+
if (result.webhooks && result.webhooks.length > 0) {
|
|
34
|
+
result.webhooks.forEach((webhook) => {
|
|
35
|
+
logger_1.logger.info(`[${webhook.id}]`);
|
|
36
|
+
logger_1.logger.info(` URL: ${webhook.target}`);
|
|
37
|
+
logger_1.logger.info(` Triggers: ${webhook.triggers?.join(', ') || 'N/A'}`);
|
|
38
|
+
logger_1.logger.info(` Secret: ${webhook.secret ? '********' : 'Not set'}`);
|
|
39
|
+
logger_1.logger.newline();
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
logger_1.logger.info('No webhooks found for this app');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
spinner_1.spinner.stop();
|
|
49
|
+
logger_1.logger.error(`Failed to list webhooks: ${error.message}`);
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
webhooks
|
|
54
|
+
.command('create')
|
|
55
|
+
.description('Create a new webhook for a Conversation app')
|
|
56
|
+
.option('-a, --app <app-id>', 'Conversation App ID')
|
|
57
|
+
.option('-u, --url <url>', 'Webhook URL')
|
|
58
|
+
.option('-t, --triggers <triggers>', 'Comma-separated list of triggers (e.g., MESSAGE_INBOUND,MESSAGE_DELIVERY)')
|
|
59
|
+
.option('-s, --secret <secret>', 'Webhook secret for signature validation')
|
|
60
|
+
.option('--json', 'Output result as JSON')
|
|
61
|
+
.action(async (options) => {
|
|
62
|
+
try {
|
|
63
|
+
await config_1.config.load();
|
|
64
|
+
const hasCredentials = await config_1.config.hasCredentials();
|
|
65
|
+
if (!hasCredentials) {
|
|
66
|
+
logger_1.logger.error('Not authenticated. Run "sinch auth login" first.');
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
let appId = options.app;
|
|
70
|
+
if (!appId) {
|
|
71
|
+
const defaultAppId = config_1.config.get('conversation-app-id');
|
|
72
|
+
if (defaultAppId) {
|
|
73
|
+
appId = defaultAppId;
|
|
74
|
+
logger_1.logger.info(`Using default app: ${appId}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (!appId || !options.url || !options.triggers) {
|
|
78
|
+
const answers = await inquirer_1.default.prompt([
|
|
79
|
+
{
|
|
80
|
+
type: 'input',
|
|
81
|
+
name: 'appId',
|
|
82
|
+
message: 'Enter Conversation App ID:',
|
|
83
|
+
when: !appId,
|
|
84
|
+
validate: (input) => input ? true : 'App ID is required'
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
type: 'input',
|
|
88
|
+
name: 'url',
|
|
89
|
+
message: 'Enter webhook URL:',
|
|
90
|
+
when: !options.url,
|
|
91
|
+
validate: (input) => {
|
|
92
|
+
if (!input)
|
|
93
|
+
return 'URL is required';
|
|
94
|
+
try {
|
|
95
|
+
new URL(input);
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return 'Please enter a valid URL';
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
type: 'checkbox',
|
|
105
|
+
name: 'triggers',
|
|
106
|
+
message: 'Select webhook triggers:',
|
|
107
|
+
when: !options.triggers,
|
|
108
|
+
choices: [
|
|
109
|
+
'MESSAGE_INBOUND',
|
|
110
|
+
'MESSAGE_DELIVERY',
|
|
111
|
+
'MESSAGE_SUBMIT',
|
|
112
|
+
'EVENT_INBOUND',
|
|
113
|
+
'CONVERSATION_START',
|
|
114
|
+
'CONVERSATION_STOP',
|
|
115
|
+
'CONTACT_CREATE',
|
|
116
|
+
'CONTACT_DELETE',
|
|
117
|
+
'CONTACT_MERGE',
|
|
118
|
+
'CONTACT_UPDATE'
|
|
119
|
+
],
|
|
120
|
+
validate: (input) => input.length > 0 ? true : 'Select at least one trigger'
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'input',
|
|
124
|
+
name: 'secret',
|
|
125
|
+
message: 'Enter webhook secret (optional, press enter to skip):'
|
|
126
|
+
}
|
|
127
|
+
]);
|
|
128
|
+
appId = appId || answers.appId;
|
|
129
|
+
options.url = options.url || answers.url;
|
|
130
|
+
options.triggers = options.triggers || answers.triggers.join(',');
|
|
131
|
+
options.secret = options.secret || answers.secret;
|
|
132
|
+
}
|
|
133
|
+
const sinchClient = await (0, utils_1.getSinchClient)();
|
|
134
|
+
const triggers = options.triggers.split(',').map(t => t.trim());
|
|
135
|
+
spinner_1.spinner.start('Creating webhook...');
|
|
136
|
+
const webhook = await sinchClient.conversation.webhooks.create({
|
|
137
|
+
app_id: appId,
|
|
138
|
+
target: options.url,
|
|
139
|
+
triggers,
|
|
140
|
+
...(options.secret && { secret: options.secret })
|
|
141
|
+
});
|
|
142
|
+
spinner_1.spinner.succeed('Webhook created successfully!');
|
|
143
|
+
if (options.json) {
|
|
144
|
+
console.log(JSON.stringify(webhook, null, 2));
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
logger_1.logger.newline();
|
|
148
|
+
logger_1.logger.info(`Webhook ID: ${webhook.id}`);
|
|
149
|
+
logger_1.logger.info(`URL: ${webhook.target}`);
|
|
150
|
+
logger_1.logger.info(`Triggers: ${webhook.triggers?.join(', ')}`);
|
|
151
|
+
if (options.secret) {
|
|
152
|
+
logger_1.logger.info('Secret: ********');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
spinner_1.spinner.stop();
|
|
158
|
+
logger_1.logger.error(`Failed to create webhook: ${error.message}`);
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
webhooks
|
|
163
|
+
.command('update')
|
|
164
|
+
.description('Update a webhook')
|
|
165
|
+
.argument('<webhook-id>', 'Webhook ID to update')
|
|
166
|
+
.option('-u, --url <url>', 'New webhook URL')
|
|
167
|
+
.option('-t, --triggers <triggers>', 'New comma-separated list of triggers')
|
|
168
|
+
.option('-s, --secret <secret>', 'New webhook secret')
|
|
169
|
+
.option('--json', 'Output result as JSON')
|
|
170
|
+
.action(async (webhookId, options) => {
|
|
171
|
+
try {
|
|
172
|
+
if (!options.url && !options.triggers && !options.secret) {
|
|
173
|
+
logger_1.logger.error('At least one update field is required (--url, --triggers, or --secret)');
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
const sinchClient = await (0, utils_1.getSinchClient)();
|
|
177
|
+
const updateData = {};
|
|
178
|
+
if (options.url)
|
|
179
|
+
updateData.target = options.url;
|
|
180
|
+
if (options.triggers)
|
|
181
|
+
updateData.triggers = options.triggers.split(',').map(t => t.trim());
|
|
182
|
+
if (options.secret)
|
|
183
|
+
updateData.secret = options.secret;
|
|
184
|
+
spinner_1.spinner.start('Updating webhook...');
|
|
185
|
+
const webhook = await sinchClient.conversation.webhooks.update({
|
|
186
|
+
webhook_id: webhookId,
|
|
187
|
+
...updateData
|
|
188
|
+
});
|
|
189
|
+
spinner_1.spinner.succeed('Webhook updated successfully!');
|
|
190
|
+
if (options.json) {
|
|
191
|
+
console.log(JSON.stringify(webhook, null, 2));
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
logger_1.logger.newline();
|
|
195
|
+
logger_1.logger.info(`Webhook ID: ${webhook.id}`);
|
|
196
|
+
logger_1.logger.info(`URL: ${webhook.target}`);
|
|
197
|
+
logger_1.logger.info(`Triggers: ${webhook.triggers?.join(', ')}`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
spinner_1.spinner.stop();
|
|
202
|
+
logger_1.logger.error(`Failed to update webhook: ${error.message}`);
|
|
203
|
+
process.exit(1);
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
webhooks
|
|
207
|
+
.command('delete')
|
|
208
|
+
.description('Delete a webhook')
|
|
209
|
+
.argument('<webhook-id>', 'Webhook ID to delete')
|
|
210
|
+
.action(async (webhookId) => {
|
|
211
|
+
try {
|
|
212
|
+
const { confirm } = await inquirer_1.default.prompt([
|
|
213
|
+
{
|
|
214
|
+
type: 'confirm',
|
|
215
|
+
name: 'confirm',
|
|
216
|
+
message: `Are you sure you want to delete webhook ${webhookId}?`,
|
|
217
|
+
default: false
|
|
218
|
+
}
|
|
219
|
+
]);
|
|
220
|
+
if (!confirm) {
|
|
221
|
+
logger_1.logger.info('Deletion cancelled');
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
const sinchClient = await (0, utils_1.getSinchClient)();
|
|
225
|
+
spinner_1.spinner.start('Deleting webhook...');
|
|
226
|
+
await sinchClient.conversation.webhooks.delete({
|
|
227
|
+
webhook_id: webhookId
|
|
228
|
+
});
|
|
229
|
+
spinner_1.spinner.succeed('Webhook deleted successfully');
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
spinner_1.spinner.stop();
|
|
233
|
+
logger_1.logger.error(`Failed to delete webhook: ${error.message}`);
|
|
234
|
+
process.exit(1);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
module.exports = webhooks;
|
|
238
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../src/commands/conversations/webhooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
7
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const api_1 = require("../lib/api");
|
|
10
|
+
const config_1 = require("../lib/config");
|
|
11
|
+
const logger_1 = require("../utils/logger");
|
|
12
|
+
const spinner_1 = require("../utils/spinner");
|
|
13
|
+
const deleteCommand = new commander_1.Command('delete');
|
|
14
|
+
deleteCommand
|
|
15
|
+
.alias('del')
|
|
16
|
+
.description('Delete a function')
|
|
17
|
+
.argument('<function-id>', 'Function ID to delete')
|
|
18
|
+
.option('-f, --force', 'Skip confirmation')
|
|
19
|
+
.action(async (functionId, options) => {
|
|
20
|
+
try {
|
|
21
|
+
await config_1.config.load();
|
|
22
|
+
const api = new api_1.SinchAPI(config_1.config.getApiConfig());
|
|
23
|
+
spinner_1.spinner.start('Loading function details...');
|
|
24
|
+
const fn = await api.getFunction(functionId);
|
|
25
|
+
spinner_1.spinner.stop();
|
|
26
|
+
logger_1.logger.newline();
|
|
27
|
+
logger_1.logger.info('🗑️ Function to delete:');
|
|
28
|
+
logger_1.logger.info(` Name: ${chalk_1.default.cyan(fn.name)}`);
|
|
29
|
+
logger_1.logger.info(` ID: ${chalk_1.default.gray(fn.id)}`);
|
|
30
|
+
logger_1.logger.info(` Runtime: ${chalk_1.default.yellow(fn.runtime)}`);
|
|
31
|
+
logger_1.logger.info(` Status: ${getStatusDisplay(fn.status)}`);
|
|
32
|
+
logger_1.logger.info(` Created: ${new Date(fn.createdAt).toLocaleString()}`);
|
|
33
|
+
if (fn.containerAppUrl) {
|
|
34
|
+
logger_1.logger.info(` URL: ${chalk_1.default.blue(fn.containerAppUrl)}`);
|
|
35
|
+
}
|
|
36
|
+
if (!options.force) {
|
|
37
|
+
logger_1.logger.newline();
|
|
38
|
+
logger_1.logger.warn('⚠️ This action cannot be undone!');
|
|
39
|
+
const { confirm } = await inquirer_1.default.prompt([
|
|
40
|
+
{
|
|
41
|
+
type: 'confirm',
|
|
42
|
+
name: 'confirm',
|
|
43
|
+
message: `Are you sure you want to delete function '${fn.name}'?`,
|
|
44
|
+
default: false
|
|
45
|
+
}
|
|
46
|
+
]);
|
|
47
|
+
if (!confirm) {
|
|
48
|
+
logger_1.logger.info('Deletion cancelled');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
spinner_1.spinner.start('Deleting function...');
|
|
53
|
+
await api.deleteFunction(functionId);
|
|
54
|
+
spinner_1.spinner.succeed(`Function '${fn.name}' deleted successfully`);
|
|
55
|
+
if (config_1.config.isInProject()) {
|
|
56
|
+
const projectConfig = config_1.config.getProjectConfig();
|
|
57
|
+
if (projectConfig?.functionId === functionId) {
|
|
58
|
+
config_1.config.set('functionId', undefined, true);
|
|
59
|
+
await config_1.config.saveProjectConfig();
|
|
60
|
+
logger_1.logger.newline();
|
|
61
|
+
logger_1.logger.info('💡 Removed function ID from sinch.json');
|
|
62
|
+
logger_1.logger.info(' Deploy again with: sinch functions deploy');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
logger_1.logger.newline();
|
|
66
|
+
logger_1.logger.info('💡 Next steps:');
|
|
67
|
+
logger_1.logger.info(` • List remaining functions: ${chalk_1.default.cyan('sinch functions list')}`);
|
|
68
|
+
logger_1.logger.info(` • Deploy new function: ${chalk_1.default.cyan('sinch functions deploy')}`);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
spinner_1.spinner.stop();
|
|
72
|
+
if (error.message.includes('404') || error.message.includes('not found')) {
|
|
73
|
+
logger_1.logger.error(`Function '${functionId}' not found`);
|
|
74
|
+
logger_1.logger.info('💡 List available functions with:');
|
|
75
|
+
logger_1.logger.info(` ${chalk_1.default.cyan('sinch functions list')}`);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
logger_1.logger.error(`Failed to delete function: ${error.message}`);
|
|
79
|
+
}
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
function getStatusDisplay(status) {
|
|
84
|
+
const statusColors = {
|
|
85
|
+
'Running': chalk_1.default.green('✅ Running'),
|
|
86
|
+
'Failed': chalk_1.default.red('❌ Failed'),
|
|
87
|
+
'Pending': chalk_1.default.yellow('⏳ Pending'),
|
|
88
|
+
'Building': chalk_1.default.blue('🔨 Building')
|
|
89
|
+
};
|
|
90
|
+
return statusColors[status] || chalk_1.default.gray(status);
|
|
91
|
+
}
|
|
92
|
+
module.exports = deleteCommand;
|
|
93
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":""}
|