@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.
@@ -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.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
  },
@@ -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?: number,
106
- iat?: number,
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({upsertPushProviderRequest: {push_provider: request}});
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(u => this.mapCustomDataAfterReceive(u)!);
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(updateUsersRequest.users[key]);
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(response.users[key])!;
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: {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])!;
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(unmuteUserRequest.user);
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({userId, sendUserCustomEventRequest: {event}});
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 = ['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) => {
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 = (user: UserObject | UserResponse | undefined) => {
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
  }