@vybit/api-sdk 1.0.1 → 1.1.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/README.md +298 -38
- package/dist/api-client.d.ts +262 -9
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +421 -13
- package/dist/api-client.js.map +1 -1
- package/dist/index.d.ts +6 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -8
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +368 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +16 -5
package/README.md
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
# @vybit/api-sdk
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
✅ Developer API SDK for programmatic access to the Vybit notification platform.
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The **@vybit/api-sdk** provides a complete TypeScript/JavaScript SDK for the Vybit Developer API, enabling you to build custom integrations, automation workflows, and notification management tools.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
9
|
+
Use this SDK to:
|
|
10
|
+
- Manage vybits (notifications) - create, update, delete
|
|
11
|
+
- Handle vybit subscriptions (follows)
|
|
12
|
+
- Search and manage sounds
|
|
13
|
+
- Retrieve notification logs
|
|
14
|
+
- Manage access permissions (peeps)
|
|
15
|
+
- Monitor API usage and metrics
|
|
13
16
|
|
|
14
17
|
## Installation
|
|
15
18
|
|
|
@@ -17,57 +20,314 @@ This package is currently a placeholder for the Vybit REST API SDK. The full imp
|
|
|
17
20
|
npm install @vybit/api-sdk
|
|
18
21
|
```
|
|
19
22
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## What's Coming
|
|
23
|
+
## Quick Start
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
### 1. Get Your API Key
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
- **Analytics**: Access usage statistics and metrics
|
|
30
|
-
- **Media Management**: Upload and manage audio files
|
|
31
|
-
- **Webhook Management**: Configure webhook endpoints
|
|
27
|
+
1. Create a [Vybit developer account](https://developer.vybit.net)
|
|
28
|
+
2. Generate an API key from your developer dashboard
|
|
29
|
+
3. Store your API key securely (use environment variables)
|
|
32
30
|
|
|
33
|
-
|
|
31
|
+
### 2. Initialize the Client
|
|
34
32
|
|
|
35
33
|
```typescript
|
|
36
34
|
import { VybitAPIClient } from '@vybit/api-sdk';
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
const client = new VybitAPIClient({
|
|
37
|
+
apiKey: process.env.VYBIT_API_KEY
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 3. Make API Calls
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
// Check API status
|
|
45
|
+
const status = await client.getStatus();
|
|
46
|
+
console.log('API Status:', status.status);
|
|
47
|
+
|
|
48
|
+
// Get your profile
|
|
49
|
+
const profile = await client.getProfile();
|
|
50
|
+
console.log('Account:', profile.name, profile.email);
|
|
51
|
+
|
|
52
|
+
// List your vybits
|
|
53
|
+
const vybits = await client.listVybits({ limit: 10 });
|
|
54
|
+
console.log(`You have ${vybits.length} vybits`);
|
|
55
|
+
|
|
56
|
+
// Create a new vybit
|
|
57
|
+
const vybit = await client.createVybit({
|
|
58
|
+
name: 'Server Alert',
|
|
59
|
+
description: 'Notifications for server errors',
|
|
60
|
+
soundKey: 'sound123abc',
|
|
61
|
+
triggerType: 'webhook',
|
|
62
|
+
access: 'private'
|
|
63
|
+
});
|
|
64
|
+
console.log('Created vybit:', vybit.key);
|
|
65
|
+
|
|
66
|
+
// Search for sounds
|
|
67
|
+
const sounds = await client.searchSounds({ search: 'notification', limit: 5 });
|
|
68
|
+
sounds.forEach(sound => {
|
|
69
|
+
console.log(`${sound.name} - ${sound.key}`);
|
|
70
|
+
});
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Core Features
|
|
74
|
+
|
|
75
|
+
### Vybit Management
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
// List vybits with pagination and search
|
|
79
|
+
const vybits = await client.listVybits({
|
|
80
|
+
offset: 0,
|
|
81
|
+
limit: 20,
|
|
82
|
+
search: 'alert'
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
// Get specific vybit
|
|
86
|
+
const vybit = await client.getVybit('vybit123abc');
|
|
87
|
+
|
|
88
|
+
// Update vybit
|
|
89
|
+
await client.updateVybit('vybit123abc', {
|
|
90
|
+
name: 'Updated Alert Name',
|
|
91
|
+
mute: 'off'
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
// Delete vybit
|
|
95
|
+
await client.deleteVybit('vybit123abc');
|
|
42
96
|
```
|
|
43
97
|
|
|
44
|
-
|
|
98
|
+
### Subscription Management
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
// Browse public vybits
|
|
102
|
+
const publicVybits = await client.listPublicVybits({ limit: 10 });
|
|
103
|
+
|
|
104
|
+
// Subscribe to a vybit
|
|
105
|
+
const follow = await client.createVybitFollow({
|
|
106
|
+
subscriptionKey: 'sub123abc456'
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// List your subscriptions
|
|
110
|
+
const follows = await client.listVybitFollows();
|
|
45
111
|
|
|
46
|
-
|
|
112
|
+
// Mute a subscription
|
|
113
|
+
await client.updateVybitFollow(follow.key, { mute: 'on' });
|
|
114
|
+
|
|
115
|
+
// Unsubscribe
|
|
116
|
+
await client.deleteVybitFollow(follow.key);
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Sound Search
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
// Search for sounds
|
|
123
|
+
const sounds = await client.searchSounds({
|
|
124
|
+
search: 'bell',
|
|
125
|
+
limit: 10
|
|
126
|
+
});
|
|
47
127
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
3. No breaking changes to OAuth2 authentication
|
|
128
|
+
// Get sound details
|
|
129
|
+
const sound = await client.getSound('sound123abc');
|
|
51
130
|
|
|
52
|
-
|
|
131
|
+
// Get playback URL (unauthenticated endpoint)
|
|
132
|
+
const playUrl = client.getSoundPlayUrl('sound123abc');
|
|
133
|
+
console.log('Play sound at:', playUrl);
|
|
134
|
+
```
|
|
53
135
|
|
|
54
|
-
|
|
136
|
+
### Notification Logs
|
|
55
137
|
|
|
56
138
|
```typescript
|
|
57
|
-
|
|
139
|
+
// List all logs
|
|
140
|
+
const logs = await client.listLogs({ limit: 50 });
|
|
141
|
+
|
|
142
|
+
// Get specific log
|
|
143
|
+
const log = await client.getLog('log123abc');
|
|
58
144
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
145
|
+
// List logs for a specific vybit
|
|
146
|
+
const vybitLogs = await client.listVybitLogs('vybit123abc', {
|
|
147
|
+
search: 'error',
|
|
148
|
+
limit: 20
|
|
63
149
|
});
|
|
64
150
|
|
|
65
|
-
//
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
151
|
+
// List logs for a subscription
|
|
152
|
+
const followLogs = await client.listVybitFollowLogs('follow123abc');
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Access Control (Peeps)
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
// Invite someone to a private vybit
|
|
159
|
+
const peep = await client.createPeep({
|
|
160
|
+
vybKey: 'vybit123abc',
|
|
161
|
+
email: 'friend@example.com'
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
// List peeps for a vybit
|
|
165
|
+
const peeps = await client.listVybitPeeps('vybit123abc');
|
|
166
|
+
|
|
167
|
+
// Accept a peep invitation
|
|
168
|
+
await client.acceptPeep('peep123abc');
|
|
169
|
+
|
|
170
|
+
// Remove access
|
|
171
|
+
await client.deletePeep('peep123abc');
|
|
69
172
|
```
|
|
70
173
|
|
|
174
|
+
### Monitoring & Metrics
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
// Get usage metrics
|
|
178
|
+
const meter = await client.getMeter();
|
|
179
|
+
console.log(`Daily usage: ${meter.count_daily} / ${meter.cap_daily}`);
|
|
180
|
+
console.log(`Monthly usage: ${meter.count_monthly} / ${meter.cap_monthly}`);
|
|
181
|
+
console.log(`Tier: ${meter.tier_id} (Free=0, Bronze=1, Silver=2, Gold=3)`);
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Rate Limiting
|
|
185
|
+
|
|
186
|
+
The Developer API enforces the following rate limits per API key:
|
|
187
|
+
- **10 requests per second**
|
|
188
|
+
- **300 requests per minute**
|
|
189
|
+
- **5,000 requests per hour**
|
|
190
|
+
|
|
191
|
+
Rate limit errors throw a `VybitAPIError` with status code `429`. The SDK automatically includes rate limit information in error messages.
|
|
192
|
+
|
|
193
|
+
## Error Handling
|
|
194
|
+
|
|
195
|
+
```typescript
|
|
196
|
+
import { VybitAPIError, VybitAuthError, VybitValidationError } from '@vybit/core';
|
|
197
|
+
|
|
198
|
+
try {
|
|
199
|
+
const vybit = await client.createVybit({
|
|
200
|
+
name: 'Test Vybit',
|
|
201
|
+
soundKey: 'sound123',
|
|
202
|
+
triggerType: 'webhook'
|
|
203
|
+
});
|
|
204
|
+
} catch (error) {
|
|
205
|
+
if (error instanceof VybitAuthError) {
|
|
206
|
+
console.error('Authentication failed - check your API key');
|
|
207
|
+
} else if (error instanceof VybitValidationError) {
|
|
208
|
+
console.error('Invalid parameters:', error.message);
|
|
209
|
+
} else if (error instanceof VybitAPIError) {
|
|
210
|
+
console.error(`API error (${error.statusCode}):`, error.message);
|
|
211
|
+
} else {
|
|
212
|
+
console.error('Unexpected error:', error);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## Environment Management
|
|
218
|
+
|
|
219
|
+
The SDK connects to the production Vybit API at `https://api.vybit.net/v1`.
|
|
220
|
+
|
|
221
|
+
For different environments (development, staging, production), create separate Vybit accounts with their own API keys. This provides better isolation and security.
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
// Development
|
|
225
|
+
const devClient = new VybitAPIClient({
|
|
226
|
+
apiKey: process.env.VYBIT_DEV_API_KEY
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
// Production
|
|
230
|
+
const prodClient = new VybitAPIClient({
|
|
231
|
+
apiKey: process.env.VYBIT_PROD_API_KEY
|
|
232
|
+
});
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## TypeScript Support
|
|
236
|
+
|
|
237
|
+
The SDK is written in TypeScript and includes comprehensive type definitions:
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
import {
|
|
241
|
+
VybitAPIClient,
|
|
242
|
+
Vybit,
|
|
243
|
+
VybitCreateParams,
|
|
244
|
+
VybitFollow,
|
|
245
|
+
Sound,
|
|
246
|
+
Log,
|
|
247
|
+
Peep,
|
|
248
|
+
SearchParams
|
|
249
|
+
} from '@vybit/api-sdk';
|
|
250
|
+
|
|
251
|
+
// Full type safety for all API operations
|
|
252
|
+
const params: VybitCreateParams = {
|
|
253
|
+
name: 'My Vybit',
|
|
254
|
+
soundKey: 'sound123',
|
|
255
|
+
triggerType: 'webhook',
|
|
256
|
+
access: 'private'
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
const vybit: Vybit = await client.createVybit(params);
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## API Documentation
|
|
263
|
+
|
|
264
|
+
Complete OpenAPI 3.0 specification available:
|
|
265
|
+
- **📋 Spec**: [docs/openapi/developer-api.yaml](../../docs/openapi/developer-api.yaml)
|
|
266
|
+
- **📖 Interactive Docs**: Open [docs/openapi/index.html](../../docs/openapi/index.html) in browser
|
|
267
|
+
|
|
268
|
+
The OpenAPI spec provides:
|
|
269
|
+
- Complete endpoint documentation with examples
|
|
270
|
+
- Request/response schemas
|
|
271
|
+
- Code generation for multiple languages
|
|
272
|
+
- Postman/Insomnia collection import
|
|
273
|
+
|
|
274
|
+
## Complete API Reference
|
|
275
|
+
|
|
276
|
+
### Status & Utility
|
|
277
|
+
- `getStatus()` - Check API health
|
|
278
|
+
- `getMeter()` - Get usage metrics
|
|
279
|
+
|
|
280
|
+
### Profile
|
|
281
|
+
- `getProfile()` - Get user profile
|
|
282
|
+
|
|
283
|
+
### Vybits
|
|
284
|
+
- `listVybits(params?)` - List vybits
|
|
285
|
+
- `getVybit(key)` - Get vybit
|
|
286
|
+
- `createVybit(params)` - Create vybit
|
|
287
|
+
- `updateVybit(key, params)` - Update vybit (PUT)
|
|
288
|
+
- `patchVybit(key, params)` - Update vybit (PATCH)
|
|
289
|
+
- `deleteVybit(key)` - Delete vybit
|
|
290
|
+
|
|
291
|
+
### Subscriptions
|
|
292
|
+
- `listPublicVybits(params?)` - Browse public vybits
|
|
293
|
+
- `getPublicVybit(key)` - Get public vybit by subscription key
|
|
294
|
+
|
|
295
|
+
### Vybit Follows
|
|
296
|
+
- `listVybitFollows(params?)` - List subscriptions
|
|
297
|
+
- `getVybitFollow(key)` - Get subscription
|
|
298
|
+
- `createVybitFollow(params)` - Subscribe to vybit
|
|
299
|
+
- `updateVybitFollow(key, params)` - Update subscription
|
|
300
|
+
- `deleteVybitFollow(key)` - Unsubscribe
|
|
301
|
+
|
|
302
|
+
### Sounds
|
|
303
|
+
- `searchSounds(params?)` - Search sounds
|
|
304
|
+
- `getSound(key)` - Get sound details
|
|
305
|
+
- `getSoundPlayUrl(key)` - Get sound playback URL
|
|
306
|
+
|
|
307
|
+
### Logs
|
|
308
|
+
- `listLogs(params?)` - List all logs
|
|
309
|
+
- `getLog(logKey)` - Get log entry
|
|
310
|
+
- `listVybitLogs(vybKey, params?)` - List logs for vybit
|
|
311
|
+
- `listVybitFollowLogs(vybFollowKey, params?)` - List logs for subscription
|
|
312
|
+
|
|
313
|
+
### Peeps
|
|
314
|
+
- `listPeeps(params?)` - List peeps
|
|
315
|
+
- `getPeep(key)` - Get peep
|
|
316
|
+
- `createPeep(params)` - Create peep invitation
|
|
317
|
+
- `acceptPeep(key)` - Accept invitation
|
|
318
|
+
- `deletePeep(key)` - Remove peep
|
|
319
|
+
|
|
320
|
+
### Vybit Peeps (Nested)
|
|
321
|
+
- `listVybitPeeps(vybKey)` - List peeps for vybit
|
|
322
|
+
- `createVybitPeep(vybKey, params)` - Add peep to vybit
|
|
323
|
+
- `updateVybitPeep(vybKey, key, params)` - Update vybit peep
|
|
324
|
+
- `deleteVybitPeep(vybKey, key)` - Remove peep from vybit
|
|
325
|
+
|
|
326
|
+
## Related Packages
|
|
327
|
+
|
|
328
|
+
- **[@vybit/oauth2-sdk](../oauth2)** - OAuth 2.0 authentication for user-facing apps
|
|
329
|
+
- **[@vybit/core](../core)** - Shared utilities and types
|
|
330
|
+
|
|
71
331
|
## License
|
|
72
332
|
|
|
73
|
-
MIT
|
|
333
|
+
MIT
|
package/dist/api-client.d.ts
CHANGED
|
@@ -1,18 +1,271 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { VybitAPIConfig, PaginationParams, SearchParams, StatusResponse, Profile, Meter, Vybit, VybitCreateParams, VybitUpdateParams, VybitTriggerParams, VybitTriggerResponse, VybitFollow, VybitFollowUpdateParams, SubscriberSendParams, SubscriberSendResponse, Sound, Log, Peep, DeleteResponse } from './types';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Vybit Developer API client
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* once the main Vybit application API is finalized.
|
|
5
|
+
* Provides programmatic access to manage vybits, subscriptions, sounds,
|
|
6
|
+
* and notification logs using the Vybit Developer API.
|
|
8
7
|
*
|
|
9
|
-
* @
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const client = new VybitAPIClient({
|
|
11
|
+
* apiKey: 'your-api-key-from-developer-portal'
|
|
12
|
+
* });
|
|
13
|
+
*
|
|
14
|
+
* // Get API status
|
|
15
|
+
* const status = await client.getStatus();
|
|
16
|
+
*
|
|
17
|
+
* // Create a vybit
|
|
18
|
+
* const vybit = await client.createVybit({
|
|
19
|
+
* name: 'Server Alert',
|
|
20
|
+
* soundKey: 'sound123abc',
|
|
21
|
+
* triggerType: 'webhook'
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* // List vybits with pagination
|
|
25
|
+
* const vybits = await client.listVybits({ limit: 10, offset: 0 });
|
|
26
|
+
* ```
|
|
10
27
|
*/
|
|
11
28
|
export declare class VybitAPIClient {
|
|
12
|
-
|
|
29
|
+
private config;
|
|
30
|
+
private baseUrl;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a new Vybit Developer API client
|
|
33
|
+
* @param config - API configuration including API key
|
|
34
|
+
* @throws {VybitValidationError} When configuration is invalid
|
|
35
|
+
*/
|
|
36
|
+
constructor(config: VybitAPIConfig);
|
|
37
|
+
private validateConfig;
|
|
38
|
+
private request;
|
|
39
|
+
private buildQueryParams;
|
|
40
|
+
/**
|
|
41
|
+
* Check API health status
|
|
42
|
+
* @returns API status response
|
|
43
|
+
*/
|
|
44
|
+
getStatus(): Promise<StatusResponse>;
|
|
45
|
+
/**
|
|
46
|
+
* Get usage metrics and tier limits
|
|
47
|
+
* @returns Usage statistics and capacity limits
|
|
48
|
+
*/
|
|
49
|
+
getMeter(): Promise<Meter>;
|
|
50
|
+
/**
|
|
51
|
+
* Get user profile information
|
|
52
|
+
* @returns User profile data
|
|
53
|
+
*/
|
|
54
|
+
getProfile(): Promise<Profile>;
|
|
55
|
+
/**
|
|
56
|
+
* List vybits owned by the authenticated user
|
|
57
|
+
* @param params - Pagination and search parameters
|
|
58
|
+
* @returns Array of vybits
|
|
59
|
+
*/
|
|
60
|
+
listVybits(params?: SearchParams): Promise<Vybit[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Get a specific vybit by key
|
|
63
|
+
* @param key - Vybit key
|
|
64
|
+
* @returns Vybit details
|
|
65
|
+
*/
|
|
66
|
+
getVybit(key: string): Promise<Vybit>;
|
|
67
|
+
/**
|
|
68
|
+
* Create a new vybit
|
|
69
|
+
* @param params - Vybit creation parameters
|
|
70
|
+
* @returns Created vybit
|
|
71
|
+
*/
|
|
72
|
+
createVybit(params: VybitCreateParams): Promise<Vybit>;
|
|
73
|
+
/**
|
|
74
|
+
* Update a vybit (full update)
|
|
75
|
+
* @param key - Vybit key
|
|
76
|
+
* @param params - Vybit update parameters
|
|
77
|
+
* @returns Updated vybit
|
|
78
|
+
*/
|
|
79
|
+
updateVybit(key: string, params: VybitUpdateParams): Promise<Vybit>;
|
|
80
|
+
/**
|
|
81
|
+
* Update a vybit (partial update)
|
|
82
|
+
* @param key - Vybit key
|
|
83
|
+
* @param params - Vybit update parameters
|
|
84
|
+
* @returns Updated vybit
|
|
85
|
+
*/
|
|
86
|
+
patchVybit(key: string, params: VybitUpdateParams): Promise<Vybit>;
|
|
87
|
+
/**
|
|
88
|
+
* Delete a vybit
|
|
89
|
+
* @param key - Vybit key
|
|
90
|
+
* @returns Delete confirmation
|
|
91
|
+
*/
|
|
92
|
+
deleteVybit(key: string): Promise<DeleteResponse>;
|
|
93
|
+
/**
|
|
94
|
+
* Trigger a vybit notification as the owner
|
|
95
|
+
* @param key - Vybit key
|
|
96
|
+
* @param params - Optional notification content to override defaults
|
|
97
|
+
* @returns Trigger response with log key
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* const result = await client.triggerVybit('vybit123abc', {
|
|
102
|
+
* message: 'Server maintenance complete',
|
|
103
|
+
* imageUrl: 'https://example.com/status-ok.jpg'
|
|
104
|
+
* });
|
|
105
|
+
* console.log('Notification triggered, log key:', result.plk);
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
triggerVybit(key: string, params?: VybitTriggerParams): Promise<VybitTriggerResponse>;
|
|
109
|
+
/**
|
|
110
|
+
* List public vybits available for subscription
|
|
111
|
+
* @param params - Pagination and search parameters
|
|
112
|
+
* @returns Array of public vybits
|
|
113
|
+
*/
|
|
114
|
+
listPublicVybits(params?: SearchParams): Promise<Vybit[]>;
|
|
115
|
+
/**
|
|
116
|
+
* Get a public vybit by subscription key
|
|
117
|
+
* @param key - Subscription key
|
|
118
|
+
* @returns Public vybit details
|
|
119
|
+
*/
|
|
120
|
+
getPublicVybit(key: string): Promise<Vybit>;
|
|
121
|
+
/**
|
|
122
|
+
* List vybit subscriptions (follows)
|
|
123
|
+
* @param params - Pagination and search parameters
|
|
124
|
+
* @returns Array of vybit follows
|
|
125
|
+
*/
|
|
126
|
+
listVybitFollows(params?: SearchParams): Promise<VybitFollow[]>;
|
|
127
|
+
/**
|
|
128
|
+
* Get a specific vybit follow by key
|
|
129
|
+
* @param key - Vybit follow (following) key
|
|
130
|
+
* @returns Vybit follow details
|
|
131
|
+
*/
|
|
132
|
+
getVybitFollow(key: string): Promise<VybitFollow>;
|
|
133
|
+
/**
|
|
134
|
+
* Subscribe to a vybit using its subscription key
|
|
135
|
+
* @param subscriptionKey - The subscription key of the vybit to subscribe to
|
|
136
|
+
* @returns Created vybit follow
|
|
137
|
+
*/
|
|
138
|
+
createVybitFollow(subscriptionKey: string): Promise<any>;
|
|
139
|
+
/**
|
|
140
|
+
* Update a vybit subscription
|
|
141
|
+
* @param key - Vybit follow (following) key
|
|
142
|
+
* @param params - Update parameters
|
|
143
|
+
* @returns Updated vybit follow
|
|
144
|
+
*/
|
|
145
|
+
updateVybitFollow(key: string, params: VybitFollowUpdateParams): Promise<VybitFollow>;
|
|
146
|
+
/**
|
|
147
|
+
* Unsubscribe from a vybit (delete follow)
|
|
148
|
+
* @param key - Vybit follow (following) key
|
|
149
|
+
* @returns Delete confirmation
|
|
150
|
+
*/
|
|
151
|
+
deleteVybitFollow(key: string): Promise<DeleteResponse>;
|
|
152
|
+
/**
|
|
153
|
+
* Send a notification to the owner of a subscribed vybit
|
|
154
|
+
*
|
|
155
|
+
* Only available when the vybit's sendPermissions is set to 'subs_owner'.
|
|
156
|
+
* The subscription must be active (status='on') and granted access.
|
|
157
|
+
*
|
|
158
|
+
* @param followingKey - Vybit following key
|
|
159
|
+
* @param params - Notification content
|
|
160
|
+
* @returns Send response with log key
|
|
161
|
+
* @throws {VybitAPIError} 403 if vybit doesn't allow subscriber-to-owner sends
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```typescript
|
|
165
|
+
* const result = await client.sendToOwner('following123abc', {
|
|
166
|
+
* message: 'Server is back online',
|
|
167
|
+
* linkUrl: 'https://example.com/dashboard'
|
|
168
|
+
* });
|
|
169
|
+
* console.log('Notification sent, log key:', result.plk);
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
sendToOwner(followingKey: string, params?: SubscriberSendParams): Promise<SubscriberSendResponse>;
|
|
173
|
+
/**
|
|
174
|
+
* Send a notification to all subscribers of a vybit group
|
|
175
|
+
*
|
|
176
|
+
* Only available when the vybit's sendPermissions is set to 'subs_group'.
|
|
177
|
+
* The subscription must be active (status='on') and granted access.
|
|
178
|
+
*
|
|
179
|
+
* @param followingKey - Vybit following key
|
|
180
|
+
* @param params - Notification content
|
|
181
|
+
* @returns Send response with log key
|
|
182
|
+
* @throws {VybitAPIError} 403 if vybit doesn't allow subscriber-to-group sends
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```typescript
|
|
186
|
+
* const result = await client.sendToGroup('following123abc', {
|
|
187
|
+
* message: 'Emergency alert: Check the group chat',
|
|
188
|
+
* linkUrl: 'https://example.com/chat'
|
|
189
|
+
* });
|
|
190
|
+
* console.log('Notification sent to group, log key:', result.plk);
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
sendToGroup(followingKey: string, params?: SubscriberSendParams): Promise<SubscriberSendResponse>;
|
|
194
|
+
/**
|
|
195
|
+
* Search for sounds
|
|
196
|
+
* @param params - Pagination and search parameters
|
|
197
|
+
* @returns Array of sounds
|
|
198
|
+
*/
|
|
199
|
+
searchSounds(params?: SearchParams): Promise<Sound[]>;
|
|
200
|
+
/**
|
|
201
|
+
* Get a specific sound by key
|
|
202
|
+
* @param key - Sound key
|
|
203
|
+
* @returns Sound details
|
|
204
|
+
*/
|
|
205
|
+
getSound(key: string): Promise<Sound>;
|
|
206
|
+
/**
|
|
207
|
+
* Get the playback URL for a sound
|
|
208
|
+
* @param key - Sound key
|
|
209
|
+
* @returns Full URL to play/download the sound
|
|
210
|
+
*/
|
|
211
|
+
getSoundPlayUrl(key: string): string;
|
|
212
|
+
/**
|
|
213
|
+
* List all notification logs for the authenticated user
|
|
214
|
+
* @param params - Pagination and search parameters
|
|
215
|
+
* @returns Array of logs
|
|
216
|
+
*/
|
|
217
|
+
listLogs(params?: SearchParams): Promise<Log[]>;
|
|
218
|
+
/**
|
|
219
|
+
* Get a specific log entry by key
|
|
220
|
+
* @param logKey - Log entry key
|
|
221
|
+
* @returns Log entry details
|
|
222
|
+
*/
|
|
223
|
+
getLog(logKey: string): Promise<Log>;
|
|
224
|
+
/**
|
|
225
|
+
* List logs for a specific owned vybit
|
|
226
|
+
* @param vybKey - Vybit key
|
|
227
|
+
* @param params - Pagination and search parameters
|
|
228
|
+
* @returns Array of logs for the vybit
|
|
229
|
+
*/
|
|
230
|
+
listVybitLogs(vybKey: string, params?: SearchParams): Promise<Log[]>;
|
|
231
|
+
/**
|
|
232
|
+
* List logs for a specific vybit subscription
|
|
233
|
+
* @param followingKey - Vybit following key
|
|
234
|
+
* @param params - Pagination and search parameters
|
|
235
|
+
* @returns Array of logs for the subscription
|
|
236
|
+
*/
|
|
237
|
+
listVybitFollowLogs(followingKey: string, params?: SearchParams): Promise<Log[]>;
|
|
238
|
+
/**
|
|
239
|
+
* List peeps (access invitations)
|
|
240
|
+
* @param params - Pagination parameters
|
|
241
|
+
* @returns Array of peeps
|
|
242
|
+
*/
|
|
243
|
+
listPeeps(params?: PaginationParams): Promise<Peep[]>;
|
|
244
|
+
/**
|
|
245
|
+
* Get a specific peep by key
|
|
246
|
+
* @param key - Peep key
|
|
247
|
+
* @returns Peep details
|
|
248
|
+
*/
|
|
249
|
+
getPeep(key: string): Promise<Peep>;
|
|
250
|
+
/**
|
|
251
|
+
* Create a peep invitation
|
|
252
|
+
* @param vybitKey - The vybit key to invite the user to
|
|
253
|
+
* @param email - Email address of the user to invite
|
|
254
|
+
* @returns Created peep response
|
|
255
|
+
*/
|
|
256
|
+
createPeep(vybitKey: string, email: string): Promise<any>;
|
|
257
|
+
/**
|
|
258
|
+
* Remove a peep invitation
|
|
259
|
+
* @param key - Peep key
|
|
260
|
+
* @returns Delete confirmation
|
|
261
|
+
*/
|
|
262
|
+
deletePeep(key: string): Promise<DeleteResponse>;
|
|
13
263
|
/**
|
|
14
|
-
*
|
|
264
|
+
* List peeps for a specific vybit
|
|
265
|
+
* @param vybitKey - Vybit key
|
|
266
|
+
* @param params - Pagination parameters
|
|
267
|
+
* @returns Array of peeps for the vybit
|
|
15
268
|
*/
|
|
16
|
-
|
|
269
|
+
listVybitPeeps(vybitKey: string, params?: PaginationParams): Promise<Peep[]>;
|
|
17
270
|
}
|
|
18
271
|
//# sourceMappingURL=api-client.d.ts.map
|
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|