@stream-io/node-sdk 0.1.0 → 0.1.2

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.
@@ -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.0",
3
+ "version": "0.1.2",
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
  },
@@ -36,12 +37,12 @@
36
37
  "dotenv": "^16.3.1",
37
38
  "rollup": "^3.29.3",
38
39
  "typescript": "^5.2.2",
39
- "uuid": "^9.0.1",
40
40
  "vite": "^4.4.9",
41
41
  "vitest": "^0.34.5",
42
42
  "vitest-mock-extended": "^1.2.1"
43
43
  },
44
44
  "dependencies": {
45
+ "uuid": "^9.0.1",
45
46
  "jsonwebtoken": "^9.0.2"
46
47
  }
47
48
  }
@@ -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
108
+ * @param call_cids this parameter is deprecated use `createCallToken` for call tokens
109
+ * @returns
110
+ */
103
111
  createToken(
104
112
  userID: string,
105
113
  exp?: number,
106
- iat?: number,
107
- call_cids?: string[],
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
 
@@ -117,12 +125,36 @@ export class StreamClient {
117
125
  }
118
126
 
119
127
  if (call_cids) {
128
+ console.warn(
129
+ `Use createCallToken method for creating call tokens, the "call_cids" param will be removed from the createToken method with version 0.2.0`
130
+ );
120
131
  extra.call_cids = call_cids;
121
132
  }
122
133
 
123
134
  return JWTUserToken(this.secret, userID, extra);
124
135
  }
125
136
 
137
+ createCallToken(
138
+ userID: string,
139
+ call_cids: string[],
140
+ exp?: number,
141
+ iat = Math.round(Date.now() / 1000)
142
+ ) {
143
+ const extra: { exp?: number; iat?: number; call_cids?: string[] } = {};
144
+
145
+ if (exp) {
146
+ extra.exp = exp;
147
+ }
148
+
149
+ if (iat) {
150
+ extra.iat = iat;
151
+ }
152
+
153
+ extra.call_cids = call_cids;
154
+
155
+ return JWTUserToken(this.secret, userID, extra);
156
+ }
157
+
126
158
  createDevice = (createDeviceRequest: CreateDeviceRequest) => {
127
159
  return this.devicesApi.createDevice({ createDeviceRequest });
128
160
  };
@@ -133,21 +165,23 @@ export class StreamClient {
133
165
  return this.devicesApi.listDevices(requestParameters);
134
166
  };
135
167
 
136
- listPushProviders= () => {
168
+ listPushProviders = () => {
137
169
  return this.pushApi.listPushProviders();
138
- }
170
+ };
139
171
 
140
172
  deletePushProvider = (request: DeletePushProviderRequest) => {
141
173
  return this.pushApi.deletePushProvider(request);
142
- }
174
+ };
143
175
 
144
176
  upsertPushProvider = (request: PushProviderRequest) => {
145
- return this.serversideApi.upsertPushProvider({upsertPushProviderRequest: {push_provider: request}});
146
- }
177
+ return this.serversideApi.upsertPushProvider({
178
+ upsertPushProviderRequest: { push_provider: request },
179
+ });
180
+ };
147
181
 
148
182
  checkPush = (checkPushRequest: CheckPushRequest) => {
149
- return this.testingApi.checkPush({checkPushRequest});
150
- }
183
+ return this.testingApi.checkPush({ checkPushRequest });
184
+ };
151
185
 
152
186
  createGuest = async (guestRequest: GuestRequest) => {
153
187
  guestRequest.user = this.mapCustomDataBeforeSend(guestRequest.user);
@@ -209,10 +243,10 @@ export class StreamClient {
209
243
  queryBannedUsers = async (payload: QueryBannedUsersRequest) => {
210
244
  payload.user = this.mapCustomDataBeforeSend(payload.user);
211
245
  const response = await this.usersApi.queryBannedUsers({ payload });
212
- response.bans.forEach(b => {
246
+ response.bans.forEach((b) => {
213
247
  b.banned_by = this.mapCustomDataAfterReceive(b.banned_by);
214
248
  b.user = this.mapCustomDataAfterReceive(b.user);
215
- })
249
+ });
216
250
 
217
251
  return response;
218
252
  };
@@ -221,7 +255,9 @@ export class StreamClient {
221
255
  payload.user = this.mapCustomDataBeforeSend(payload.user);
222
256
  const response = await this.usersApi.queryUsers({ payload });
223
257
  // @ts-expect-error
224
- response.users = response.users.map(u => this.mapCustomDataAfterReceive(u)!);
258
+ response.users = response.users.map(
259
+ (u) => this.mapCustomDataAfterReceive(u)!
260
+ );
225
261
 
226
262
  return response;
227
263
  };
@@ -256,22 +292,32 @@ export class StreamClient {
256
292
  };
257
293
 
258
294
  upsertUsers = async (updateUsersRequest: UpdateUsersRequest) => {
259
- Object.keys(updateUsersRequest.users).forEach(key => {
260
- updateUsersRequest.users[key] = this.mapCustomDataBeforeSend(updateUsersRequest.users[key]);
261
- })
295
+ Object.keys(updateUsersRequest.users).forEach((key) => {
296
+ updateUsersRequest.users[key] = this.mapCustomDataBeforeSend(
297
+ updateUsersRequest.users[key]
298
+ );
299
+ });
262
300
  const response = await this.usersApi.updateUsers({ updateUsersRequest });
263
- Object.keys(response.users).forEach(key => {
264
- response.users[key] = this.mapCustomDataAfterReceive(response.users[key])!;
301
+ Object.keys(response.users).forEach((key) => {
302
+ response.users[key] = this.mapCustomDataAfterReceive(
303
+ response.users[key]
304
+ )!;
265
305
  });
266
306
 
267
307
  return response;
268
308
  };
269
309
 
270
- updateUsersPartial = async (request: {users: UpdateUserPartialRequest[]}) => {
271
- // @ts-expect-error typing error
272
- const response = await this.usersApi.updateUsersPartial({ updateUserPartialRequest: request });
273
- Object.keys(response.users).forEach(key => {
274
- response.users[key] = this.mapCustomDataAfterReceive(response.users[key])!;
310
+ updateUsersPartial = async (request: {
311
+ users: UpdateUserPartialRequest[];
312
+ }) => {
313
+ const response = await this.usersApi.updateUsersPartial({
314
+ // @ts-expect-error typing error
315
+ updateUserPartialRequest: request,
316
+ });
317
+ Object.keys(response.users).forEach((key) => {
318
+ response.users[key] = this.mapCustomDataAfterReceive(
319
+ response.users[key]
320
+ )!;
275
321
  });
276
322
 
277
323
  return response;
@@ -284,11 +330,11 @@ export class StreamClient {
284
330
  response.mute.user = this.mapCustomDataAfterReceive(response.mute?.user);
285
331
  }
286
332
  if (response.mutes) {
287
- response.mutes = response.mutes.map(m => {
333
+ response.mutes = response.mutes.map((m) => {
288
334
  return {
289
335
  ...m,
290
- user: this.mapCustomDataAfterReceive(m.user)
291
- }
336
+ user: this.mapCustomDataAfterReceive(m.user),
337
+ };
292
338
  });
293
339
  }
294
340
 
@@ -296,49 +342,54 @@ export class StreamClient {
296
342
  };
297
343
 
298
344
  unmuteUser = (unmuteUserRequest: UnmuteUserRequest) => {
299
- unmuteUserRequest.user = this.mapCustomDataBeforeSend(unmuteUserRequest.user);
345
+ unmuteUserRequest.user = this.mapCustomDataBeforeSend(
346
+ unmuteUserRequest.user
347
+ );
300
348
  return this.usersApi.unmuteUser({ unmuteUserRequest });
301
349
  };
302
350
 
303
351
  sendCustomEventToUser = (userId: string, event: UserCustomEventRequest) => {
304
- return this.eventsApi.sendUserCustomEvent({userId, sendUserCustomEventRequest: {event}});
305
- }
352
+ return this.eventsApi.sendUserCustomEvent({
353
+ userId,
354
+ sendUserCustomEventRequest: { event },
355
+ });
356
+ };
306
357
 
307
358
  createRole = (createRoleRequest: CreateRoleRequest) => {
308
- return this.permissionsApi.createRole({createRoleRequest});
309
- }
359
+ return this.permissionsApi.createRole({ createRoleRequest });
360
+ };
310
361
 
311
362
  deleteRole = (request: DeleteRoleRequest) => {
312
363
  return this.permissionsApi.deleteRole(request);
313
- }
364
+ };
314
365
 
315
366
  getPermission = (request: GetPermissionRequest) => {
316
367
  return this.permissionsApi.getPermission(request);
317
- }
368
+ };
318
369
 
319
370
  listPermissions = () => {
320
371
  return this.permissionsApi.listPermissions();
321
- }
372
+ };
322
373
 
323
374
  listRoles = () => {
324
375
  return this.permissionsApi.listRoles();
325
- }
376
+ };
326
377
 
327
378
  getAppSettings = () => {
328
379
  return this.settingsApi.getApp();
329
- }
380
+ };
330
381
 
331
382
  updateAppSettings = (updateAppRequest: UpdateAppRequest) => {
332
- return this.settingsApi.updateApp({updateAppRequest});
333
- }
383
+ return this.settingsApi.updateApp({ updateAppRequest });
384
+ };
334
385
 
335
386
  getRateLimits = () => {
336
387
  return this.settingsApi.getRateLimits();
337
- }
388
+ };
338
389
 
339
390
  getTaskStatus = (request: GetTaskRequest) => {
340
391
  return this.tasksApi.getTask(request);
341
- }
392
+ };
342
393
 
343
394
  getConfiguration = (options?: { basePath?: string }) => {
344
395
  return new Configuration({
@@ -408,23 +459,46 @@ export class StreamClient {
408
459
  });
409
460
  };
410
461
 
411
- private reservedKeywords = ['ban_expires', 'banned', 'id', 'invisible', 'language', 'push_notifications', 'revoke_tokens_issued_before', 'role', 'teams', 'created_at', 'deactivated_at', 'deleted_at', 'last_active', 'online', 'updated_at', 'shadow_banned', 'name', 'image'];
412
- private mapCustomDataBeforeSend = (user: UserObject | UserObjectRequest | UserResponse | undefined) => {
462
+ private reservedKeywords = [
463
+ "ban_expires",
464
+ "banned",
465
+ "id",
466
+ "invisible",
467
+ "language",
468
+ "push_notifications",
469
+ "revoke_tokens_issued_before",
470
+ "role",
471
+ "teams",
472
+ "created_at",
473
+ "deactivated_at",
474
+ "deleted_at",
475
+ "last_active",
476
+ "online",
477
+ "updated_at",
478
+ "shadow_banned",
479
+ "name",
480
+ "image",
481
+ ];
482
+ private mapCustomDataBeforeSend = (
483
+ user: UserObject | UserObjectRequest | UserResponse | undefined
484
+ ) => {
413
485
  if (!user) {
414
486
  return undefined;
415
487
  }
416
- const copy = {...user};
488
+ const copy = { ...user };
417
489
  delete copy.custom;
418
- return {...copy, ...user.custom}
419
- }
490
+ return { ...copy, ...user.custom };
491
+ };
420
492
 
421
- private mapCustomDataAfterReceive = (user: UserObject | UserResponse | undefined) => {
493
+ private mapCustomDataAfterReceive = (
494
+ user: UserObject | UserResponse | undefined
495
+ ) => {
422
496
  if (!user) {
423
497
  return undefined;
424
498
  }
425
499
  // @ts-expect-error
426
500
  let result: UserObject | UserResponse = {};
427
- Object.keys(user).forEach(key => {
501
+ Object.keys(user).forEach((key) => {
428
502
  if (!this.reservedKeywords.includes(key)) {
429
503
  if (!result.custom) {
430
504
  result.custom = {};
@@ -436,5 +510,5 @@ export class StreamClient {
436
510
  });
437
511
 
438
512
  return result;
439
- }
513
+ };
440
514
  }