@stream-io/node-sdk 0.1.1 → 0.1.3
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 +3 -1
- package/dist/__tests__/create-token.test.d.ts +1 -1
- package/dist/index.cjs.js +60 -14
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +60 -14
- package/dist/index.es.js.map +1 -1
- package/dist/src/StreamClient.d.ts +9 -0
- package/package.json +3 -2
- package/src/StreamClient.ts +136 -48
|
@@ -19,7 +19,16 @@ export declare class StreamClient {
|
|
|
19
19
|
private readonly tasksApi;
|
|
20
20
|
private token;
|
|
21
21
|
constructor(apiKey: string, secret: string, basePath?: string | undefined);
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @param userID
|
|
25
|
+
* @param exp
|
|
26
|
+
* @param iat
|
|
27
|
+
* @param call_cids this parameter is deprecated use `createCallToken` for call tokens
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
22
30
|
createToken(userID: string, exp?: number, iat?: number, call_cids?: string[]): string;
|
|
31
|
+
createCallToken(userID: string, call_cids: string[], exp?: number, iat?: number): string;
|
|
23
32
|
createDevice: (createDeviceRequest: CreateDeviceRequest) => Promise<void>;
|
|
24
33
|
deleteDevice: (requestParameters: DeleteDeviceRequest) => Promise<import("./gen/chat").Response>;
|
|
25
34
|
listDevices: (requestParameters: ListDevicesRequest) => Promise<import("./gen/chat").ListDevicesResponse>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stream-io/node-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.es.js",
|
|
@@ -12,9 +12,10 @@
|
|
|
12
12
|
"url": "https://github.com/GetStream/stream-node.git"
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
|
+
"prepublish": "yarn build",
|
|
15
16
|
"test": "vitest",
|
|
16
17
|
"start": "rollup -w -c",
|
|
17
|
-
"build": "rollup -c",
|
|
18
|
+
"build": "rm -rf dist && rollup -c",
|
|
18
19
|
"generate:open-api": "./generate-openapi.sh protocol",
|
|
19
20
|
"generate:open-api:dev": "./generate-openapi.sh chat"
|
|
20
21
|
},
|
package/src/StreamClient.ts
CHANGED
|
@@ -100,11 +100,19 @@ export class StreamClient {
|
|
|
100
100
|
this.tasksApi = new TasksApi(chatConfiguration);
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
+
/**
|
|
104
|
+
*
|
|
105
|
+
* @param userID
|
|
106
|
+
* @param exp
|
|
107
|
+
* @param iat deprecated, the default date will be set internally
|
|
108
|
+
* @param call_cids this parameter is deprecated use `createCallToken` for call tokens
|
|
109
|
+
* @returns
|
|
110
|
+
*/
|
|
103
111
|
createToken(
|
|
104
112
|
userID: string,
|
|
105
|
-
exp
|
|
106
|
-
iat
|
|
107
|
-
call_cids?: string[]
|
|
113
|
+
exp = Math.round(new Date().getTime() / 1000) + 60 * 60,
|
|
114
|
+
iat = Math.round(Date.now() / 1000),
|
|
115
|
+
call_cids?: string[]
|
|
108
116
|
) {
|
|
109
117
|
const extra: { exp?: number; iat?: number; call_cids?: string[] } = {};
|
|
110
118
|
|
|
@@ -113,16 +121,54 @@ export class StreamClient {
|
|
|
113
121
|
}
|
|
114
122
|
|
|
115
123
|
if (iat) {
|
|
124
|
+
console.warn(
|
|
125
|
+
`This parameter is deprecated, and will be removed method with version 0.2.0, the client will set this to the current date by deault`
|
|
126
|
+
);
|
|
116
127
|
extra.iat = iat;
|
|
117
128
|
}
|
|
118
129
|
|
|
119
130
|
if (call_cids) {
|
|
131
|
+
console.warn(
|
|
132
|
+
`Use createCallToken method for creating call tokens, the "call_cids" param will be removed from the createToken method with version 0.2.0`
|
|
133
|
+
);
|
|
120
134
|
extra.call_cids = call_cids;
|
|
121
135
|
}
|
|
122
136
|
|
|
123
137
|
return JWTUserToken(this.secret, userID, extra);
|
|
124
138
|
}
|
|
125
139
|
|
|
140
|
+
/**
|
|
141
|
+
*
|
|
142
|
+
* @param userID
|
|
143
|
+
* @param call_cids
|
|
144
|
+
* @param exp
|
|
145
|
+
* @param iat this is deprecated, the current date will be set internally
|
|
146
|
+
* @returns
|
|
147
|
+
*/
|
|
148
|
+
createCallToken(
|
|
149
|
+
userID: string,
|
|
150
|
+
call_cids: string[],
|
|
151
|
+
exp = Math.round(new Date().getTime() / 1000) + 60 * 60,
|
|
152
|
+
iat = Math.round(Date.now() / 1000)
|
|
153
|
+
) {
|
|
154
|
+
const extra: { exp?: number; iat?: number; call_cids?: string[] } = {};
|
|
155
|
+
|
|
156
|
+
if (exp) {
|
|
157
|
+
extra.exp = exp;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
if (iat) {
|
|
161
|
+
console.warn(
|
|
162
|
+
`This parameter is deprecated, and will be removed method with version 0.2.0, the client will set this to the current date by deault`
|
|
163
|
+
);
|
|
164
|
+
extra.iat = iat;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
extra.call_cids = call_cids;
|
|
168
|
+
|
|
169
|
+
return JWTUserToken(this.secret, userID, extra);
|
|
170
|
+
}
|
|
171
|
+
|
|
126
172
|
createDevice = (createDeviceRequest: CreateDeviceRequest) => {
|
|
127
173
|
return this.devicesApi.createDevice({ createDeviceRequest });
|
|
128
174
|
};
|
|
@@ -133,21 +179,23 @@ export class StreamClient {
|
|
|
133
179
|
return this.devicesApi.listDevices(requestParameters);
|
|
134
180
|
};
|
|
135
181
|
|
|
136
|
-
listPushProviders= () => {
|
|
182
|
+
listPushProviders = () => {
|
|
137
183
|
return this.pushApi.listPushProviders();
|
|
138
|
-
}
|
|
184
|
+
};
|
|
139
185
|
|
|
140
186
|
deletePushProvider = (request: DeletePushProviderRequest) => {
|
|
141
187
|
return this.pushApi.deletePushProvider(request);
|
|
142
|
-
}
|
|
188
|
+
};
|
|
143
189
|
|
|
144
190
|
upsertPushProvider = (request: PushProviderRequest) => {
|
|
145
|
-
return this.serversideApi.upsertPushProvider({
|
|
146
|
-
|
|
191
|
+
return this.serversideApi.upsertPushProvider({
|
|
192
|
+
upsertPushProviderRequest: { push_provider: request },
|
|
193
|
+
});
|
|
194
|
+
};
|
|
147
195
|
|
|
148
196
|
checkPush = (checkPushRequest: CheckPushRequest) => {
|
|
149
|
-
return this.testingApi.checkPush({checkPushRequest});
|
|
150
|
-
}
|
|
197
|
+
return this.testingApi.checkPush({ checkPushRequest });
|
|
198
|
+
};
|
|
151
199
|
|
|
152
200
|
createGuest = async (guestRequest: GuestRequest) => {
|
|
153
201
|
guestRequest.user = this.mapCustomDataBeforeSend(guestRequest.user);
|
|
@@ -209,10 +257,10 @@ export class StreamClient {
|
|
|
209
257
|
queryBannedUsers = async (payload: QueryBannedUsersRequest) => {
|
|
210
258
|
payload.user = this.mapCustomDataBeforeSend(payload.user);
|
|
211
259
|
const response = await this.usersApi.queryBannedUsers({ payload });
|
|
212
|
-
response.bans.forEach(b => {
|
|
260
|
+
response.bans.forEach((b) => {
|
|
213
261
|
b.banned_by = this.mapCustomDataAfterReceive(b.banned_by);
|
|
214
262
|
b.user = this.mapCustomDataAfterReceive(b.user);
|
|
215
|
-
})
|
|
263
|
+
});
|
|
216
264
|
|
|
217
265
|
return response;
|
|
218
266
|
};
|
|
@@ -221,7 +269,9 @@ export class StreamClient {
|
|
|
221
269
|
payload.user = this.mapCustomDataBeforeSend(payload.user);
|
|
222
270
|
const response = await this.usersApi.queryUsers({ payload });
|
|
223
271
|
// @ts-expect-error
|
|
224
|
-
response.users = response.users.map(
|
|
272
|
+
response.users = response.users.map(
|
|
273
|
+
(u) => this.mapCustomDataAfterReceive(u)!
|
|
274
|
+
);
|
|
225
275
|
|
|
226
276
|
return response;
|
|
227
277
|
};
|
|
@@ -256,22 +306,32 @@ export class StreamClient {
|
|
|
256
306
|
};
|
|
257
307
|
|
|
258
308
|
upsertUsers = async (updateUsersRequest: UpdateUsersRequest) => {
|
|
259
|
-
Object.keys(updateUsersRequest.users).forEach(key => {
|
|
260
|
-
updateUsersRequest.users[key] = this.mapCustomDataBeforeSend(
|
|
261
|
-
|
|
309
|
+
Object.keys(updateUsersRequest.users).forEach((key) => {
|
|
310
|
+
updateUsersRequest.users[key] = this.mapCustomDataBeforeSend(
|
|
311
|
+
updateUsersRequest.users[key]
|
|
312
|
+
);
|
|
313
|
+
});
|
|
262
314
|
const response = await this.usersApi.updateUsers({ updateUsersRequest });
|
|
263
|
-
Object.keys(response.users).forEach(key => {
|
|
264
|
-
response.users[key] = this.mapCustomDataAfterReceive(
|
|
315
|
+
Object.keys(response.users).forEach((key) => {
|
|
316
|
+
response.users[key] = this.mapCustomDataAfterReceive(
|
|
317
|
+
response.users[key]
|
|
318
|
+
)!;
|
|
265
319
|
});
|
|
266
320
|
|
|
267
321
|
return response;
|
|
268
322
|
};
|
|
269
323
|
|
|
270
|
-
updateUsersPartial = async (request: {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
324
|
+
updateUsersPartial = async (request: {
|
|
325
|
+
users: UpdateUserPartialRequest[];
|
|
326
|
+
}) => {
|
|
327
|
+
const response = await this.usersApi.updateUsersPartial({
|
|
328
|
+
// @ts-expect-error typing error
|
|
329
|
+
updateUserPartialRequest: request,
|
|
330
|
+
});
|
|
331
|
+
Object.keys(response.users).forEach((key) => {
|
|
332
|
+
response.users[key] = this.mapCustomDataAfterReceive(
|
|
333
|
+
response.users[key]
|
|
334
|
+
)!;
|
|
275
335
|
});
|
|
276
336
|
|
|
277
337
|
return response;
|
|
@@ -284,11 +344,11 @@ export class StreamClient {
|
|
|
284
344
|
response.mute.user = this.mapCustomDataAfterReceive(response.mute?.user);
|
|
285
345
|
}
|
|
286
346
|
if (response.mutes) {
|
|
287
|
-
response.mutes = response.mutes.map(m => {
|
|
347
|
+
response.mutes = response.mutes.map((m) => {
|
|
288
348
|
return {
|
|
289
349
|
...m,
|
|
290
|
-
user: this.mapCustomDataAfterReceive(m.user)
|
|
291
|
-
}
|
|
350
|
+
user: this.mapCustomDataAfterReceive(m.user),
|
|
351
|
+
};
|
|
292
352
|
});
|
|
293
353
|
}
|
|
294
354
|
|
|
@@ -296,49 +356,54 @@ export class StreamClient {
|
|
|
296
356
|
};
|
|
297
357
|
|
|
298
358
|
unmuteUser = (unmuteUserRequest: UnmuteUserRequest) => {
|
|
299
|
-
unmuteUserRequest.user = this.mapCustomDataBeforeSend(
|
|
359
|
+
unmuteUserRequest.user = this.mapCustomDataBeforeSend(
|
|
360
|
+
unmuteUserRequest.user
|
|
361
|
+
);
|
|
300
362
|
return this.usersApi.unmuteUser({ unmuteUserRequest });
|
|
301
363
|
};
|
|
302
364
|
|
|
303
365
|
sendCustomEventToUser = (userId: string, event: UserCustomEventRequest) => {
|
|
304
|
-
return this.eventsApi.sendUserCustomEvent({
|
|
305
|
-
|
|
366
|
+
return this.eventsApi.sendUserCustomEvent({
|
|
367
|
+
userId,
|
|
368
|
+
sendUserCustomEventRequest: { event },
|
|
369
|
+
});
|
|
370
|
+
};
|
|
306
371
|
|
|
307
372
|
createRole = (createRoleRequest: CreateRoleRequest) => {
|
|
308
|
-
return this.permissionsApi.createRole({createRoleRequest});
|
|
309
|
-
}
|
|
373
|
+
return this.permissionsApi.createRole({ createRoleRequest });
|
|
374
|
+
};
|
|
310
375
|
|
|
311
376
|
deleteRole = (request: DeleteRoleRequest) => {
|
|
312
377
|
return this.permissionsApi.deleteRole(request);
|
|
313
|
-
}
|
|
378
|
+
};
|
|
314
379
|
|
|
315
380
|
getPermission = (request: GetPermissionRequest) => {
|
|
316
381
|
return this.permissionsApi.getPermission(request);
|
|
317
|
-
}
|
|
382
|
+
};
|
|
318
383
|
|
|
319
384
|
listPermissions = () => {
|
|
320
385
|
return this.permissionsApi.listPermissions();
|
|
321
|
-
}
|
|
386
|
+
};
|
|
322
387
|
|
|
323
388
|
listRoles = () => {
|
|
324
389
|
return this.permissionsApi.listRoles();
|
|
325
|
-
}
|
|
390
|
+
};
|
|
326
391
|
|
|
327
392
|
getAppSettings = () => {
|
|
328
393
|
return this.settingsApi.getApp();
|
|
329
|
-
}
|
|
394
|
+
};
|
|
330
395
|
|
|
331
396
|
updateAppSettings = (updateAppRequest: UpdateAppRequest) => {
|
|
332
|
-
return this.settingsApi.updateApp({updateAppRequest});
|
|
333
|
-
}
|
|
397
|
+
return this.settingsApi.updateApp({ updateAppRequest });
|
|
398
|
+
};
|
|
334
399
|
|
|
335
400
|
getRateLimits = () => {
|
|
336
401
|
return this.settingsApi.getRateLimits();
|
|
337
|
-
}
|
|
402
|
+
};
|
|
338
403
|
|
|
339
404
|
getTaskStatus = (request: GetTaskRequest) => {
|
|
340
405
|
return this.tasksApi.getTask(request);
|
|
341
|
-
}
|
|
406
|
+
};
|
|
342
407
|
|
|
343
408
|
getConfiguration = (options?: { basePath?: string }) => {
|
|
344
409
|
return new Configuration({
|
|
@@ -408,23 +473,46 @@ export class StreamClient {
|
|
|
408
473
|
});
|
|
409
474
|
};
|
|
410
475
|
|
|
411
|
-
private reservedKeywords = [
|
|
412
|
-
|
|
476
|
+
private reservedKeywords = [
|
|
477
|
+
"ban_expires",
|
|
478
|
+
"banned",
|
|
479
|
+
"id",
|
|
480
|
+
"invisible",
|
|
481
|
+
"language",
|
|
482
|
+
"push_notifications",
|
|
483
|
+
"revoke_tokens_issued_before",
|
|
484
|
+
"role",
|
|
485
|
+
"teams",
|
|
486
|
+
"created_at",
|
|
487
|
+
"deactivated_at",
|
|
488
|
+
"deleted_at",
|
|
489
|
+
"last_active",
|
|
490
|
+
"online",
|
|
491
|
+
"updated_at",
|
|
492
|
+
"shadow_banned",
|
|
493
|
+
"name",
|
|
494
|
+
"image",
|
|
495
|
+
];
|
|
496
|
+
private mapCustomDataBeforeSend = (
|
|
497
|
+
user: UserObject | UserObjectRequest | UserResponse | undefined
|
|
498
|
+
) => {
|
|
413
499
|
if (!user) {
|
|
414
500
|
return undefined;
|
|
415
501
|
}
|
|
416
|
-
const copy = {...user};
|
|
502
|
+
const copy = { ...user };
|
|
417
503
|
delete copy.custom;
|
|
418
|
-
return {...copy, ...user.custom}
|
|
419
|
-
}
|
|
504
|
+
return { ...copy, ...user.custom };
|
|
505
|
+
};
|
|
420
506
|
|
|
421
|
-
private mapCustomDataAfterReceive = (
|
|
507
|
+
private mapCustomDataAfterReceive = (
|
|
508
|
+
user: UserObject | UserResponse | undefined
|
|
509
|
+
) => {
|
|
422
510
|
if (!user) {
|
|
423
511
|
return undefined;
|
|
424
512
|
}
|
|
425
513
|
// @ts-expect-error
|
|
426
514
|
let result: UserObject | UserResponse = {};
|
|
427
|
-
Object.keys(user).forEach(key => {
|
|
515
|
+
Object.keys(user).forEach((key) => {
|
|
428
516
|
if (!this.reservedKeywords.includes(key)) {
|
|
429
517
|
if (!result.custom) {
|
|
430
518
|
result.custom = {};
|
|
@@ -436,5 +524,5 @@ export class StreamClient {
|
|
|
436
524
|
});
|
|
437
525
|
|
|
438
526
|
return result;
|
|
439
|
-
}
|
|
527
|
+
};
|
|
440
528
|
}
|