@stream-io/video-client 1.30.1 → 1.31.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/dist/index.cjs.js CHANGED
@@ -8,6 +8,7 @@ var twirpTransport = require('@protobuf-ts/twirp-transport');
8
8
  var rxjs = require('rxjs');
9
9
  var uaParserJs = require('ua-parser-js');
10
10
  var sdpTransform = require('sdp-transform');
11
+ var workerTimer = require('@stream-io/worker-timer');
11
12
  var https = require('https');
12
13
 
13
14
  /* tslint:disable */
@@ -5759,7 +5760,7 @@ const getSdkVersion = (sdk) => {
5759
5760
  return sdk ? `${sdk.major}.${sdk.minor}.${sdk.patch}` : '0.0.0-development';
5760
5761
  };
5761
5762
 
5762
- const version = "1.30.1";
5763
+ const version = "1.31.0";
5763
5764
  const [major, minor, patch] = version.split('.');
5764
5765
  let sdkInfo = {
5765
5766
  type: SdkType.PLAIN_JAVASCRIPT,
@@ -7896,137 +7897,12 @@ function lazy(factory) {
7896
7897
  };
7897
7898
  }
7898
7899
 
7899
- // Do not modify this file manually. Instead, edit worker.ts
7900
- // and the run ./generate-timer-worker.sh
7901
- const timerWorker = {
7902
- src: `const timerIdMapping = new Map();
7903
- self.addEventListener('message', (event) => {
7904
- const request = event.data;
7905
- switch (request.type) {
7906
- case 'setTimeout':
7907
- case 'setInterval':
7908
- timerIdMapping.set(request.id, (request.type === 'setTimeout' ? setTimeout : setInterval)(() => {
7909
- tick(request.id);
7910
- if (request.type === 'setTimeout') {
7911
- timerIdMapping.delete(request.id);
7912
- }
7913
- }, request.timeout));
7914
- break;
7915
- case 'clearTimeout':
7916
- case 'clearInterval':
7917
- (request.type === 'clearTimeout' ? clearTimeout : clearInterval)(timerIdMapping.get(request.id));
7918
- timerIdMapping.delete(request.id);
7919
- break;
7920
- }
7921
- });
7922
- function tick(id) {
7923
- const message = { type: 'tick', id };
7924
- self.postMessage(message);
7925
- }`,
7926
- };
7927
-
7928
- class TimerWorker {
7929
- constructor() {
7930
- this.currentTimerId = 1;
7931
- this.callbacks = new Map();
7932
- this.fallback = false;
7933
- }
7934
- setup({ useTimerWorker = true } = {}) {
7935
- if (!useTimerWorker) {
7936
- this.fallback = true;
7937
- return;
7938
- }
7939
- try {
7940
- const source = timerWorker.src;
7941
- const blob = new Blob([source], {
7942
- type: 'application/javascript; charset=utf-8',
7943
- });
7944
- const script = URL.createObjectURL(blob);
7945
- this.worker = new Worker(script, { name: 'str-timer-worker' });
7946
- this.worker.addEventListener('message', (event) => {
7947
- const { type, id } = event.data;
7948
- if (type === 'tick') {
7949
- this.callbacks.get(id)?.();
7950
- }
7951
- });
7952
- }
7953
- catch (err) {
7954
- getLogger(['timer-worker'])('error', err);
7955
- this.fallback = true;
7956
- }
7957
- }
7958
- destroy() {
7959
- this.callbacks.clear();
7960
- this.worker?.terminate();
7961
- this.worker = undefined;
7962
- this.fallback = false;
7963
- }
7964
- get ready() {
7965
- return this.fallback || Boolean(this.worker);
7966
- }
7967
- setInterval(callback, timeout) {
7968
- return this.setTimer('setInterval', callback, timeout);
7969
- }
7970
- clearInterval(id) {
7971
- this.clearTimer('clearInterval', id);
7972
- }
7973
- setTimeout(callback, timeout) {
7974
- return this.setTimer('setTimeout', callback, timeout);
7975
- }
7976
- clearTimeout(id) {
7977
- this.clearTimer('clearTimeout', id);
7978
- }
7979
- setTimer(type, callback, timeout) {
7980
- if (!this.ready) {
7981
- this.setup();
7982
- }
7983
- if (this.fallback) {
7984
- return (type === 'setTimeout' ? setTimeout : setInterval)(callback, timeout);
7985
- }
7986
- const id = this.getTimerId();
7987
- this.callbacks.set(id, () => {
7988
- callback();
7989
- // Timeouts are one-off operations, so no need to keep callback reference
7990
- // after timer has fired
7991
- if (type === 'setTimeout') {
7992
- this.callbacks.delete(id);
7993
- }
7994
- });
7995
- this.sendMessage({ type, id, timeout });
7996
- return id;
7997
- }
7998
- clearTimer(type, id) {
7999
- if (!id) {
8000
- return;
8001
- }
8002
- if (!this.ready) {
8003
- this.setup();
8004
- }
8005
- if (this.fallback) {
8006
- (type === 'clearTimeout' ? clearTimeout : clearInterval)(id);
8007
- return;
8008
- }
8009
- this.callbacks.delete(id);
8010
- this.sendMessage({ type, id });
8011
- }
8012
- getTimerId() {
8013
- return this.currentTimerId++;
8014
- }
8015
- sendMessage(message) {
8016
- if (!this.worker) {
8017
- throw new Error("Cannot use timer worker before it's set up");
8018
- }
8019
- this.worker.postMessage(message);
8020
- }
8021
- }
8022
7900
  let timerWorkerEnabled = false;
8023
7901
  const enableTimerWorker = () => {
8024
7902
  timerWorkerEnabled = true;
8025
7903
  };
8026
7904
  const getTimers = lazy(() => {
8027
- const instance = new TimerWorker();
8028
- instance.setup({ useTimerWorker: timerWorkerEnabled });
8029
- return instance;
7905
+ return new workerTimer.WorkerTimer({ useWorker: timerWorkerEnabled });
8030
7906
  });
8031
7907
 
8032
7908
  /**
@@ -14664,7 +14540,7 @@ class StreamClient {
14664
14540
  this.getUserAgent = () => {
14665
14541
  if (!this.cachedUserAgent) {
14666
14542
  const { clientAppIdentifier = {} } = this.options;
14667
- const { sdkName = 'js', sdkVersion = "1.30.1", ...extras } = clientAppIdentifier;
14543
+ const { sdkName = 'js', sdkVersion = "1.31.0", ...extras } = clientAppIdentifier;
14668
14544
  this.cachedUserAgent = [
14669
14545
  `stream-video-${sdkName}-v${sdkVersion}`,
14670
14546
  ...Object.entries(extras).map(([key, value]) => `${key}=${value}`),