@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.
Files changed (133) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +198 -198
  3. package/bin/sinch +2 -2
  4. package/dist/commands/conversations/apps.d.ts +2 -0
  5. package/dist/commands/conversations/apps.d.ts.map +1 -0
  6. package/dist/commands/conversations/apps.js +162 -0
  7. package/dist/commands/conversations/apps.js.map +1 -0
  8. package/dist/commands/conversations/contacts.d.ts +2 -0
  9. package/dist/commands/conversations/contacts.d.ts.map +1 -0
  10. package/dist/commands/conversations/contacts.js +245 -0
  11. package/dist/commands/conversations/contacts.js.map +1 -0
  12. package/dist/commands/conversations/conversation.d.ts +2 -0
  13. package/dist/commands/conversations/conversation.d.ts.map +1 -0
  14. package/dist/commands/conversations/conversation.js +19 -0
  15. package/dist/commands/conversations/conversation.js.map +1 -0
  16. package/dist/commands/conversations/conversations.d.ts +2 -0
  17. package/dist/commands/conversations/conversations.d.ts.map +1 -0
  18. package/dist/commands/conversations/conversations.js +104 -0
  19. package/dist/commands/conversations/conversations.js.map +1 -0
  20. package/dist/commands/conversations/messages.d.ts +2 -0
  21. package/dist/commands/conversations/messages.d.ts.map +1 -0
  22. package/dist/commands/conversations/messages.js +107 -0
  23. package/dist/commands/conversations/messages.js.map +1 -0
  24. package/dist/commands/conversations/send.d.ts +2 -0
  25. package/dist/commands/conversations/send.d.ts.map +1 -0
  26. package/dist/commands/conversations/send.js +185 -0
  27. package/dist/commands/conversations/send.js.map +1 -0
  28. package/dist/commands/conversations/utils.d.ts +4 -0
  29. package/dist/commands/conversations/utils.d.ts.map +1 -0
  30. package/dist/commands/conversations/utils.js +30 -0
  31. package/dist/commands/conversations/utils.js.map +1 -0
  32. package/dist/commands/conversations/webhooks.d.ts +2 -0
  33. package/dist/commands/conversations/webhooks.d.ts.map +1 -0
  34. package/dist/commands/conversations/webhooks.js +238 -0
  35. package/dist/commands/conversations/webhooks.js.map +1 -0
  36. package/dist/commands/delete.d.ts +2 -0
  37. package/dist/commands/delete.d.ts.map +1 -0
  38. package/dist/commands/delete.js +93 -0
  39. package/dist/commands/delete.js.map +1 -0
  40. package/dist/commands/deploy.d.ts +2 -0
  41. package/dist/commands/deploy.d.ts.map +1 -0
  42. package/dist/commands/deploy.js +687 -0
  43. package/dist/commands/deploy.js.map +1 -0
  44. package/dist/commands/dev.d.ts +2 -0
  45. package/dist/commands/dev.d.ts.map +1 -0
  46. package/dist/commands/dev.js +460 -0
  47. package/dist/commands/dev.js.map +1 -0
  48. package/dist/commands/docs.d.ts +2 -0
  49. package/dist/commands/docs.d.ts.map +1 -0
  50. package/dist/commands/docs.js +105 -0
  51. package/dist/commands/docs.js.map +1 -0
  52. package/dist/commands/download.d.ts +2 -0
  53. package/dist/commands/download.d.ts.map +1 -0
  54. package/dist/commands/download.js +207 -0
  55. package/dist/commands/download.js.map +1 -0
  56. package/dist/commands/functions.d.ts +2 -0
  57. package/dist/commands/functions.d.ts.map +1 -0
  58. package/dist/commands/functions.js +25 -0
  59. package/dist/commands/functions.js.map +1 -0
  60. package/dist/commands/init.d.ts +2 -0
  61. package/dist/commands/init.d.ts.map +1 -0
  62. package/dist/commands/init.js +552 -0
  63. package/dist/commands/init.js.map +1 -0
  64. package/dist/commands/list.d.ts +2 -0
  65. package/dist/commands/list.d.ts.map +1 -0
  66. package/dist/commands/list.js +180 -0
  67. package/dist/commands/list.js.map +1 -0
  68. package/dist/commands/logs.d.ts +2 -0
  69. package/dist/commands/logs.d.ts.map +1 -0
  70. package/dist/commands/logs.js +1001 -0
  71. package/dist/commands/logs.js.map +1 -0
  72. package/dist/commands/secrets.d.ts +2 -0
  73. package/dist/commands/secrets.d.ts.map +1 -0
  74. package/dist/commands/secrets.js +197 -0
  75. package/dist/commands/secrets.js.map +1 -0
  76. package/dist/commands/skills.d.ts +4 -0
  77. package/dist/commands/skills.d.ts.map +1 -0
  78. package/dist/commands/skills.js +309 -0
  79. package/dist/commands/skills.js.map +1 -0
  80. package/dist/commands/status.d.ts +2 -0
  81. package/dist/commands/status.d.ts.map +1 -0
  82. package/dist/commands/status.js +145 -0
  83. package/dist/commands/status.js.map +1 -0
  84. package/dist/commands/templates.d.ts +2 -0
  85. package/dist/commands/templates.d.ts.map +1 -0
  86. package/dist/commands/templates.js +168 -0
  87. package/dist/commands/templates.js.map +1 -0
  88. package/dist/commands/voice.d.ts +2 -0
  89. package/dist/commands/voice.d.ts.map +1 -0
  90. package/dist/commands/voice.js +259 -0
  91. package/dist/commands/voice.js.map +1 -0
  92. package/dist/index.d.ts +2 -0
  93. package/dist/index.d.ts.map +1 -0
  94. package/dist/index.js +780 -325
  95. package/dist/index.js.map +1 -0
  96. package/dist/lib/api.d.ts +73 -0
  97. package/dist/lib/api.d.ts.map +1 -0
  98. package/dist/lib/api.js +455 -0
  99. package/dist/lib/api.js.map +1 -0
  100. package/dist/lib/config.d.ts +68 -0
  101. package/dist/lib/config.d.ts.map +1 -0
  102. package/dist/lib/config.js +276 -0
  103. package/dist/lib/config.js.map +1 -0
  104. package/dist/lib/conversation.d.ts +8 -0
  105. package/dist/lib/conversation.d.ts.map +1 -0
  106. package/dist/lib/conversation.js +179 -0
  107. package/dist/lib/conversation.js.map +1 -0
  108. package/dist/lib/credentials.d.ts +43 -0
  109. package/dist/lib/credentials.d.ts.map +1 -0
  110. package/dist/lib/credentials.js +365 -0
  111. package/dist/lib/credentials.js.map +1 -0
  112. package/dist/lib/docs-utils.d.ts +13 -0
  113. package/dist/lib/docs-utils.d.ts.map +1 -0
  114. package/dist/lib/docs-utils.js +115 -0
  115. package/dist/lib/docs-utils.js.map +1 -0
  116. package/dist/lib/update-check.d.ts +5 -0
  117. package/dist/lib/update-check.d.ts.map +1 -0
  118. package/dist/lib/update-check.js +114 -0
  119. package/dist/lib/update-check.js.map +1 -0
  120. package/dist/lib/voice.d.ts +3 -0
  121. package/dist/lib/voice.d.ts.map +1 -0
  122. package/dist/lib/voice.js +49 -0
  123. package/dist/lib/voice.js.map +1 -0
  124. package/dist/package.json +71 -0
  125. package/dist/utils/logger.d.ts +28 -0
  126. package/dist/utils/logger.d.ts.map +1 -0
  127. package/dist/utils/logger.js +138 -0
  128. package/dist/utils/logger.js.map +1 -0
  129. package/dist/utils/spinner.d.ts +17 -0
  130. package/dist/utils/spinner.d.ts.map +1 -0
  131. package/dist/utils/spinner.js +75 -0
  132. package/dist/utils/spinner.js.map +1 -0
  133. package/package.json +71 -71
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Sinch
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Sinch
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,199 +1,199 @@
1
- # Sinch CLI
2
-
3
- > **Official command-line interface for Sinch - Manage Functions, Voice, SMS, and more from your terminal**
4
-
5
- [![npm version](https://img.shields.io/npm/v/@sinch/sinch-cli.svg)](https://www.npmjs.com/package/@sinch/sinch-cli)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
-
8
- ## Overview
9
-
10
- The Sinch CLI is your unified developer tool for managing all Sinch products. Currently featuring full support for **Sinch Functions** - create, test, and deploy serverless voice applications. More Sinch products coming soon!
11
-
12
- ## Installation
13
-
14
- ```bash
15
- # Latest stable release (production)
16
- npm install -g @sinch/cli
17
-
18
- # Beta releases (pre-release testing)
19
- npm install -g @sinch/cli@beta
20
-
21
- # Dev channel (bleeding edge - latest from main branch)
22
- npm install -g @sinch/cli@dev
23
- ```
24
-
25
- **Installation Channels:**
26
- - **`@latest`** (default) - Production-ready stable releases
27
- - **`@beta`** - Pre-release versions for testing new features
28
- - **`@dev`** - Cutting-edge builds from main branch (auto-published on every commit)
29
-
30
- ## Prerequisites
31
-
32
- - **Node.js**: 20.0.0 or higher (Node 20 LTS or Node 22 LTS recommended)
33
- - **npm**: 9.0.0 or higher
34
- - **OS**: Windows 10+, macOS 10.15+, or Ubuntu 20.04+
35
-
36
- ## Quick Start
37
-
38
- ### 1. Authenticate with Sinch
39
-
40
- ```bash
41
- sinch auth login
42
- ```
43
-
44
- ### 2. Create a new function
45
-
46
- ```bash
47
- # Interactive mode - choose from templates
48
- sinch functions init
49
-
50
- # Or specify a template directly
51
- # package | function | command | template
52
- sinch functions init simple-voice-ivr
53
- ```
54
-
55
- ### 3. Test locally
56
-
57
- ```bash
58
- cd my-voice-app
59
- sinch functions dev
60
-
61
- # With runtime tunnel for webhooks
62
- sinch functions dev
63
- ```
64
-
65
- ### 4. Deploy to production
66
-
67
- ```bash
68
- sinch functions deploy
69
- ```
70
-
71
- ### 5. Monitor your function
72
-
73
- ```bash
74
- # List all functions
75
- sinch functions list
76
-
77
- # Stream logs
78
- sinch functions logs <function-id> --follow
79
-
80
- # Check status
81
- sinch functions status <function-id>
82
- ```
83
-
84
- ## Available Commands
85
-
86
- | Command | Description |
87
- |---------|-------------|
88
- | `sinch auth login` | Authenticate with Sinch platform |
89
- | `sinch functions init` | Create new function from template |
90
- | `sinch functions dev` | Start local development server |
91
- | `sinch functions deploy` | Deploy function to production |
92
- | `sinch functions list` | List all deployed functions |
93
- | `sinch functions logs` | Stream function logs |
94
- | `sinch functions delete` | Delete a deployed function |
95
- | `sinch secrets add` | Store secrets securely |
96
- | `sinch templates list` | Browse available templates |
97
- | `sinch help` | Show help for any command |
98
-
99
- ## Templates
100
-
101
- Create functions from pre-built templates:
102
-
103
- ### Voice Templates
104
- - `node/simple-voice-ivr` - Interactive voice menu system
105
- - `node/call-forwarding` - Intelligent call routing
106
- - `node/number-masking` - Privacy-preserving calls
107
- - `node/conference-call` - Multi-party conferences
108
- - `node/voicemail` - Complete voicemail system
109
-
110
- ### More Languages
111
- - `csharp/simple-voice-ivr` - IVR in C#/.NET
112
- - `java/simple-voice-ivr` - Q4 2025
113
-
114
- ## Features
115
-
116
- ### 🔐 Secure Secrets Management
117
- Secrets are stored in your OS keychain (Windows Credential Manager, macOS Keychain, Linux Secret Service):
118
-
119
- ```bash
120
- # Add a secret
121
- sinch secrets add STRIPE_KEY sk_test_123456
122
-
123
- # List secrets
124
- sinch secrets list
125
-
126
- # Use in your function
127
- const stripeKey = process.env.STRIPE_KEY;
128
- ```
129
-
130
- ### 🔄 Hot Reload Development
131
- Changes to your function are automatically reloaded:
132
-
133
- ```bash
134
- sinch functions dev --watch
135
- ```
136
-
137
- ### 🐛 VS Code Debugging
138
- All templates include VS Code launch configs. Just press F5 to debug!
139
-
140
- ### 🌐 Tunnel Support
141
- Test webhooks locally with runtime-integrated tunneling:
142
-
143
- ```bash
144
- sinch functions dev
145
- # Choose tunnel preference when prompted
146
- # Tunnel runs inside your function runtime
147
- ```
148
-
149
- ## Documentation
150
-
151
- - **Full Documentation**: [/docs/README.md](./docs/README.md)
152
- - **Command Reference**: [/docs/COMMANDS.md](./docs/COMMANDS.md)
153
- - **Development Guide**: [/docs/DEVELOPMENT.md](./docs/DEVELOPMENT.md)
154
- - **Examples**: [/docs/examples/](./docs/examples/)
155
-
156
- ## Resources
157
-
158
- - **Sinch Voice API**: https://www.sinch.com/products/apis/voice/
159
- - **Documentation**: Full CLI reference in [/docs](./docs/README.md)
160
- - **Templates Gallery**: Browse available templates with `sinch templates list`
161
-
162
- ## Troubleshooting
163
-
164
- ### Authentication Issues
165
-
166
- ```bash
167
- # Check authentication status
168
- sinch auth status
169
-
170
- # Re-authenticate if needed
171
- sinch auth logout
172
- sinch auth login
173
- ```
174
-
175
- ### Debug Mode
176
-
177
- ```bash
178
- # Enable debug output
179
- DEBUG=1 sinch functions dev
180
-
181
- # HTTP request debugging
182
- DEBUG_HTTP=1 sinch functions deploy
183
- ```
184
-
185
- ### Common Issues
186
-
187
- - **Command not found**: Reinstall globally with `npm install -g @sinch/sinch-cli@beta`
188
- - **Authentication failed**: Check your Sinch API credentials with `sinch auth status`
189
- - **Deployment failed**: Verify your function configuration and project access
190
-
191
- ## Support
192
-
193
- - **Documentation**: [Full CLI Documentation](./docs/README.md)
194
- - **Issues**: [Report a Bug](https://gitlab.com/sinch/sinch-projects/voice/functions/sinch-cli/-/issues)
195
- - **Email**: support@sinch.com
196
-
197
- ## License
198
-
1
+ # Sinch CLI
2
+
3
+ > **Official command-line interface for Sinch - Manage Functions, Voice, SMS, and more from your terminal**
4
+
5
+ [![npm version](https://img.shields.io/npm/v/@sinch/sinch-cli.svg)](https://www.npmjs.com/package/@sinch/sinch-cli)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
8
+ ## Overview
9
+
10
+ The Sinch CLI is your unified developer tool for managing all Sinch products. Currently featuring full support for **Sinch Functions** - create, test, and deploy serverless voice applications. More Sinch products coming soon!
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ # Latest stable release (production)
16
+ npm install -g @sinch/cli
17
+
18
+ # Beta releases (pre-release testing)
19
+ npm install -g @sinch/cli@beta
20
+
21
+ # Dev channel (bleeding edge - latest from main branch)
22
+ npm install -g @sinch/cli@dev
23
+ ```
24
+
25
+ **Installation Channels:**
26
+ - **`@latest`** (default) - Production-ready stable releases
27
+ - **`@beta`** - Pre-release versions for testing new features
28
+ - **`@dev`** - Cutting-edge builds from main branch (auto-published on every commit)
29
+
30
+ ## Prerequisites
31
+
32
+ - **Node.js**: 20.0.0 or higher (Node 20 LTS or Node 22 LTS recommended)
33
+ - **npm**: 9.0.0 or higher
34
+ - **OS**: Windows 10+, macOS 10.15+, or Ubuntu 20.04+
35
+
36
+ ## Quick Start
37
+
38
+ ### 1. Authenticate with Sinch
39
+
40
+ ```bash
41
+ sinch auth login
42
+ ```
43
+
44
+ ### 2. Create a new function
45
+
46
+ ```bash
47
+ # Interactive mode - choose from templates
48
+ sinch functions init
49
+
50
+ # Or specify a template directly
51
+ # package | function | command | template
52
+ sinch functions init simple-voice-ivr
53
+ ```
54
+
55
+ ### 3. Test locally
56
+
57
+ ```bash
58
+ cd my-voice-app
59
+ sinch functions dev
60
+
61
+ # With runtime tunnel for webhooks
62
+ sinch functions dev
63
+ ```
64
+
65
+ ### 4. Deploy to production
66
+
67
+ ```bash
68
+ sinch functions deploy
69
+ ```
70
+
71
+ ### 5. Monitor your function
72
+
73
+ ```bash
74
+ # List all functions
75
+ sinch functions list
76
+
77
+ # Stream logs
78
+ sinch functions logs <function-id> --follow
79
+
80
+ # Check status
81
+ sinch functions status <function-id>
82
+ ```
83
+
84
+ ## Available Commands
85
+
86
+ | Command | Description |
87
+ |---------|-------------|
88
+ | `sinch auth login` | Authenticate with Sinch platform |
89
+ | `sinch functions init` | Create new function from template |
90
+ | `sinch functions dev` | Start local development server |
91
+ | `sinch functions deploy` | Deploy function to production |
92
+ | `sinch functions list` | List all deployed functions |
93
+ | `sinch functions logs` | Stream function logs |
94
+ | `sinch functions delete` | Delete a deployed function |
95
+ | `sinch secrets add` | Store secrets securely |
96
+ | `sinch templates list` | Browse available templates |
97
+ | `sinch help` | Show help for any command |
98
+
99
+ ## Templates
100
+
101
+ Create functions from pre-built templates:
102
+
103
+ ### Voice Templates
104
+ - `node/simple-voice-ivr` - Interactive voice menu system
105
+ - `node/call-forwarding` - Intelligent call routing
106
+ - `node/number-masking` - Privacy-preserving calls
107
+ - `node/conference-call` - Multi-party conferences
108
+ - `node/voicemail` - Complete voicemail system
109
+
110
+ ### More Languages
111
+ - `csharp/simple-voice-ivr` - IVR in C#/.NET
112
+ - `java/simple-voice-ivr` - Q4 2025
113
+
114
+ ## Features
115
+
116
+ ### 🔐 Secure Secrets Management
117
+ Secrets are stored in your OS keychain (Windows Credential Manager, macOS Keychain, Linux Secret Service):
118
+
119
+ ```bash
120
+ # Add a secret
121
+ sinch secrets add STRIPE_KEY sk_test_123456
122
+
123
+ # List secrets
124
+ sinch secrets list
125
+
126
+ # Use in your function
127
+ const stripeKey = process.env.STRIPE_KEY;
128
+ ```
129
+
130
+ ### 🔄 Hot Reload Development
131
+ Changes to your function are automatically reloaded:
132
+
133
+ ```bash
134
+ sinch functions dev --watch
135
+ ```
136
+
137
+ ### 🐛 VS Code Debugging
138
+ All templates include VS Code launch configs. Just press F5 to debug!
139
+
140
+ ### 🌐 Tunnel Support
141
+ Test webhooks locally with runtime-integrated tunneling:
142
+
143
+ ```bash
144
+ sinch functions dev
145
+ # Choose tunnel preference when prompted
146
+ # Tunnel runs inside your function runtime
147
+ ```
148
+
149
+ ## Documentation
150
+
151
+ - **Full Documentation**: [/docs/README.md](./docs/README.md)
152
+ - **Command Reference**: [/docs/COMMANDS.md](./docs/COMMANDS.md)
153
+ - **Development Guide**: [/docs/DEVELOPMENT.md](./docs/DEVELOPMENT.md)
154
+ - **Examples**: [/docs/examples/](./docs/examples/)
155
+
156
+ ## Resources
157
+
158
+ - **Sinch Voice API**: https://www.sinch.com/products/apis/voice/
159
+ - **Documentation**: Full CLI reference in [/docs](./docs/README.md)
160
+ - **Templates Gallery**: Browse available templates with `sinch templates list`
161
+
162
+ ## Troubleshooting
163
+
164
+ ### Authentication Issues
165
+
166
+ ```bash
167
+ # Check authentication status
168
+ sinch auth status
169
+
170
+ # Re-authenticate if needed
171
+ sinch auth logout
172
+ sinch auth login
173
+ ```
174
+
175
+ ### Debug Mode
176
+
177
+ ```bash
178
+ # Enable debug output
179
+ DEBUG=1 sinch functions dev
180
+
181
+ # HTTP request debugging
182
+ DEBUG_HTTP=1 sinch functions deploy
183
+ ```
184
+
185
+ ### Common Issues
186
+
187
+ - **Command not found**: Reinstall globally with `npm install -g @sinch/sinch-cli@beta`
188
+ - **Authentication failed**: Check your Sinch API credentials with `sinch auth status`
189
+ - **Deployment failed**: Verify your function configuration and project access
190
+
191
+ ## Support
192
+
193
+ - **Documentation**: [Full CLI Documentation](./docs/README.md)
194
+ - **Issues**: [Report a Bug](https://gitlab.com/sinch/sinch-projects/voice/functions/sinch-cli/-/issues)
195
+ - **Email**: support@sinch.com
196
+
197
+ ## License
198
+
199
199
  MIT License - Copyright © 2025 Sinch
package/bin/sinch CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
-
3
- // Use compiled TypeScript output
2
+
3
+ // Use compiled TypeScript output
4
4
  require('../dist/index.js');
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=apps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../../src/commands/conversations/apps.ts"],"names":[],"mappings":""}
@@ -0,0 +1,162 @@
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 apps = new commander_1.Command('apps');
12
+ apps.description('Manage Conversation apps');
13
+ apps
14
+ .command('list')
15
+ .description('List Conversation apps')
16
+ .option('-l, --limit <number>', 'Limit number of results', parseInt, 50)
17
+ .option('--json', 'Output result as JSON')
18
+ .action(async (options) => {
19
+ try {
20
+ const sinchClient = await (0, utils_1.getSinchClient)();
21
+ spinner_1.spinner.start('Fetching apps...');
22
+ const result = await sinchClient.conversation.app.list({
23
+ page_size: options.limit || 50
24
+ });
25
+ spinner_1.spinner.succeed(`Retrieved ${result.apps?.length || 0} apps`);
26
+ if (options.json) {
27
+ console.log(JSON.stringify(result, null, 2));
28
+ }
29
+ else {
30
+ logger_1.logger.newline();
31
+ if (result.apps && result.apps.length > 0) {
32
+ result.apps.forEach((app) => {
33
+ logger_1.logger.info(`[${app.id}] ${app.display_name || 'No name'}`);
34
+ logger_1.logger.info(` Channels: ${app.channel_credentials?.length || 0} configured`);
35
+ logger_1.logger.newline();
36
+ });
37
+ }
38
+ else {
39
+ logger_1.logger.info('No apps found');
40
+ }
41
+ }
42
+ }
43
+ catch (error) {
44
+ spinner_1.spinner.stop();
45
+ logger_1.logger.error(`Failed to list apps: ${error.message}`);
46
+ process.exit(1);
47
+ }
48
+ });
49
+ apps
50
+ .command('get')
51
+ .description('Get a specific Conversation app by ID')
52
+ .argument('<app-id>', 'App ID to retrieve')
53
+ .option('--json', 'Output result as JSON')
54
+ .action(async (appId, options) => {
55
+ try {
56
+ const sinchClient = await (0, utils_1.getSinchClient)();
57
+ spinner_1.spinner.start('Fetching app...');
58
+ const app = await sinchClient.conversation.app.get({
59
+ app_id: appId
60
+ });
61
+ spinner_1.spinner.succeed('App retrieved');
62
+ if (options.json) {
63
+ console.log(JSON.stringify(app, null, 2));
64
+ }
65
+ else {
66
+ logger_1.logger.newline();
67
+ logger_1.logger.info(`App ID: ${app.id}`);
68
+ logger_1.logger.info(`Display Name: ${app.display_name || 'N/A'}`);
69
+ logger_1.logger.info(`Rate Limits:`, app.rate_limits || 'N/A');
70
+ if (app.channel_credentials && app.channel_credentials.length > 0) {
71
+ logger_1.logger.newline();
72
+ logger_1.logger.info('Configured Channels:');
73
+ app.channel_credentials.forEach((cred) => {
74
+ logger_1.logger.info(` - ${cred.channel}`);
75
+ });
76
+ }
77
+ if (app.conversation_metadata_report_view) {
78
+ logger_1.logger.newline();
79
+ logger_1.logger.info(`Metadata Report: ${app.conversation_metadata_report_view}`);
80
+ }
81
+ }
82
+ }
83
+ catch (error) {
84
+ spinner_1.spinner.stop();
85
+ logger_1.logger.error(`Failed to get app: ${error.message}`);
86
+ process.exit(1);
87
+ }
88
+ });
89
+ apps
90
+ .command('create')
91
+ .description('Create a new Conversation app')
92
+ .argument('[name]', 'App display name')
93
+ .option('--json', 'Output result as JSON')
94
+ .action(async (name, options) => {
95
+ try {
96
+ if (!name) {
97
+ const answers = await inquirer_1.default.prompt([
98
+ {
99
+ type: 'input',
100
+ name: 'name',
101
+ message: 'Enter app display name:',
102
+ validate: (input) => input ? true : 'App name is required'
103
+ }
104
+ ]);
105
+ name = answers.name;
106
+ }
107
+ const sinchClient = await (0, utils_1.getSinchClient)();
108
+ spinner_1.spinner.start('Creating app...');
109
+ const app = await sinchClient.conversation.app.create({
110
+ display_name: name
111
+ });
112
+ spinner_1.spinner.succeed('App created successfully!');
113
+ if (options?.json) {
114
+ console.log(JSON.stringify(app, null, 2));
115
+ }
116
+ else {
117
+ logger_1.logger.newline();
118
+ logger_1.logger.info(`App ID: ${app.id}`);
119
+ logger_1.logger.info(`Display Name: ${app.display_name}`);
120
+ logger_1.logger.newline();
121
+ logger_1.logger.info('💡 Set as default: sinch config set conversation-app-id ' + app.id);
122
+ }
123
+ }
124
+ catch (error) {
125
+ spinner_1.spinner.stop();
126
+ logger_1.logger.error(`Failed to create app: ${error.message}`);
127
+ process.exit(1);
128
+ }
129
+ });
130
+ apps
131
+ .command('delete')
132
+ .description('Delete a Conversation app')
133
+ .argument('<app-id>', 'App ID to delete')
134
+ .action(async (appId) => {
135
+ try {
136
+ const { confirm } = await inquirer_1.default.prompt([
137
+ {
138
+ type: 'confirm',
139
+ name: 'confirm',
140
+ message: `Are you sure you want to delete app ${appId}?`,
141
+ default: false
142
+ }
143
+ ]);
144
+ if (!confirm) {
145
+ logger_1.logger.info('Deletion cancelled');
146
+ return;
147
+ }
148
+ const sinchClient = await (0, utils_1.getSinchClient)();
149
+ spinner_1.spinner.start('Deleting app...');
150
+ await sinchClient.conversation.app.delete({
151
+ app_id: appId
152
+ });
153
+ spinner_1.spinner.succeed('App deleted successfully');
154
+ }
155
+ catch (error) {
156
+ spinner_1.spinner.stop();
157
+ logger_1.logger.error(`Failed to delete app: ${error.message}`);
158
+ process.exit(1);
159
+ }
160
+ });
161
+ module.exports = apps;
162
+ //# sourceMappingURL=apps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps.js","sourceRoot":"","sources":["../../../src/commands/conversations/apps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../../src/commands/conversations/contacts.ts"],"names":[],"mappings":""}