agora-appbuilder-core 4.0.0-spl.10 → 4.0.0-spl.12

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agora-appbuilder-core",
3
- "version": "4.0.0-spl.10",
3
+ "version": "4.0.0-spl.12",
4
4
  "description": "React Native template for RTE app builder",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -18,12 +18,13 @@
18
18
  "@sentry/tracing": "6.2.1",
19
19
  "@supersami/rn-foreground-service": "^1.1.1",
20
20
  "agora-react-native-rtm": "1.5.1",
21
- "agora-rtc-sdk-ng": "4.14.0",
22
- "agora-rtm-sdk": "1.4.3-203",
21
+ "agora-rtc-sdk-ng": "4.16.1",
22
+ "agora-rtm-sdk": "1.5.1",
23
23
  "electron-log": "4.3.5",
24
24
  "electron-squirrel-startup": "1.0.0",
25
25
  "electron-updater": "4.3.9",
26
26
  "exponential-backoff": "3.1.0",
27
+ "fetch-retry": "^5.0.6",
27
28
  "graphql": "15.5.0",
28
29
  "nanoevents": "7.0.1",
29
30
  "nanoid": "4.0.0",
@@ -6967,11 +6968,11 @@
6967
6968
  }
6968
6969
  },
6969
6970
  "node_modules/agora-rtc-sdk-ng": {
6970
- "version": "4.14.0",
6971
- "resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng/-/agora-rtc-sdk-ng-4.14.0.tgz",
6972
- "integrity": "sha512-87WZEz+Lkhs39/K9iqBeQYUl6HIWoiyicez/DxspQ37N9NRWRRmoLVS1yUfG6FPWWxZiY+VEJbzPLPhuAihrpQ==",
6971
+ "version": "4.16.1",
6972
+ "resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng/-/agora-rtc-sdk-ng-4.16.1.tgz",
6973
+ "integrity": "sha512-9ccs22X/BEAGe5tIGx2OqWkGpdvuGoB7xq72BouuR5HhP0WVBIBimixOvXXftlY9SwDWsBfKhBV23EtA7jtrTA==",
6973
6974
  "dependencies": {
6974
- "agora-rte-extension": "^1.0.22"
6975
+ "agora-rte-extension": "^1.2.3"
6975
6976
  }
6976
6977
  },
6977
6978
  "node_modules/agora-rte-extension": {
@@ -6980,9 +6981,9 @@
6980
6981
  "integrity": "sha512-k3yNrYVyzJRoQJjaJUktKUI1XRtf8J1XsW8OzYKFqGlS8WQRMsES1+Phj2rfuEriiLObfuyuCimG6KHQCt5tiw=="
6981
6982
  },
6982
6983
  "node_modules/agora-rtm-sdk": {
6983
- "version": "1.4.3-203",
6984
- "resolved": "https://registry.npmjs.org/agora-rtm-sdk/-/agora-rtm-sdk-1.4.3-203.tgz",
6985
- "integrity": "sha512-uQh9zqRtELAblxt7nXSv20pH7oQfTDj7gC2NI2cDIe9dcKBlQpEVf2wBM68so6sZ767ZLcW+z/FCd5QVCt9RvA=="
6984
+ "version": "1.5.1",
6985
+ "resolved": "https://registry.npmjs.org/agora-rtm-sdk/-/agora-rtm-sdk-1.5.1.tgz",
6986
+ "integrity": "sha512-4zMZVijEOTimIaY4VUS6kJxg7t+nTV3Frtt01Ffs6dvkOrPmpeuCu/1MX88QgAOE04IBiLo0l89ysc+woVn2FA=="
6986
6987
  },
6987
6988
  "node_modules/ajv": {
6988
6989
  "version": "6.12.6",
@@ -12070,6 +12071,15 @@
12070
12071
  "node": ">=8"
12071
12072
  }
12072
12073
  },
12074
+ "node_modules/eslint/node_modules/type-fest": {
12075
+ "version": "0.8.1",
12076
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
12077
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
12078
+ "dev": true,
12079
+ "engines": {
12080
+ "node": ">=8"
12081
+ }
12082
+ },
12073
12083
  "node_modules/eslint/node_modules/which": {
12074
12084
  "version": "1.3.1",
12075
12085
  "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -12870,6 +12880,11 @@
12870
12880
  "pend": "~1.2.0"
12871
12881
  }
12872
12882
  },
12883
+ "node_modules/fetch-retry": {
12884
+ "version": "5.0.6",
12885
+ "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz",
12886
+ "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ=="
12887
+ },
12873
12888
  "node_modules/figures": {
12874
12889
  "version": "2.0.0",
12875
12890
  "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
@@ -24374,6 +24389,15 @@
24374
24389
  "node": ">=8"
24375
24390
  }
24376
24391
  },
24392
+ "node_modules/read-pkg-up/node_modules/type-fest": {
24393
+ "version": "0.8.1",
24394
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
24395
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
24396
+ "dev": true,
24397
+ "engines": {
24398
+ "node": ">=8"
24399
+ }
24400
+ },
24377
24401
  "node_modules/read-pkg/node_modules/parse-json": {
24378
24402
  "version": "5.2.0",
24379
24403
  "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
@@ -27867,12 +27891,17 @@
27867
27891
  }
27868
27892
  },
27869
27893
  "node_modules/type-fest": {
27870
- "version": "0.8.1",
27871
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
27872
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
27894
+ "version": "2.19.0",
27895
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
27896
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
27873
27897
  "dev": true,
27898
+ "optional": true,
27899
+ "peer": true,
27874
27900
  "engines": {
27875
- "node": ">=8"
27901
+ "node": ">=12.20"
27902
+ },
27903
+ "funding": {
27904
+ "url": "https://github.com/sponsors/sindresorhus"
27876
27905
  }
27877
27906
  },
27878
27907
  "node_modules/type-is": {
@@ -34838,11 +34867,11 @@
34838
34867
  "requires": {}
34839
34868
  },
34840
34869
  "agora-rtc-sdk-ng": {
34841
- "version": "4.14.0",
34842
- "resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng/-/agora-rtc-sdk-ng-4.14.0.tgz",
34843
- "integrity": "sha512-87WZEz+Lkhs39/K9iqBeQYUl6HIWoiyicez/DxspQ37N9NRWRRmoLVS1yUfG6FPWWxZiY+VEJbzPLPhuAihrpQ==",
34870
+ "version": "4.16.1",
34871
+ "resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng/-/agora-rtc-sdk-ng-4.16.1.tgz",
34872
+ "integrity": "sha512-9ccs22X/BEAGe5tIGx2OqWkGpdvuGoB7xq72BouuR5HhP0WVBIBimixOvXXftlY9SwDWsBfKhBV23EtA7jtrTA==",
34844
34873
  "requires": {
34845
- "agora-rte-extension": "^1.0.22"
34874
+ "agora-rte-extension": "^1.2.3"
34846
34875
  }
34847
34876
  },
34848
34877
  "agora-rte-extension": {
@@ -34851,9 +34880,9 @@
34851
34880
  "integrity": "sha512-k3yNrYVyzJRoQJjaJUktKUI1XRtf8J1XsW8OzYKFqGlS8WQRMsES1+Phj2rfuEriiLObfuyuCimG6KHQCt5tiw=="
34852
34881
  },
34853
34882
  "agora-rtm-sdk": {
34854
- "version": "1.4.3-203",
34855
- "resolved": "https://registry.npmjs.org/agora-rtm-sdk/-/agora-rtm-sdk-1.4.3-203.tgz",
34856
- "integrity": "sha512-uQh9zqRtELAblxt7nXSv20pH7oQfTDj7gC2NI2cDIe9dcKBlQpEVf2wBM68so6sZ767ZLcW+z/FCd5QVCt9RvA=="
34883
+ "version": "1.5.1",
34884
+ "resolved": "https://registry.npmjs.org/agora-rtm-sdk/-/agora-rtm-sdk-1.5.1.tgz",
34885
+ "integrity": "sha512-4zMZVijEOTimIaY4VUS6kJxg7t+nTV3Frtt01Ffs6dvkOrPmpeuCu/1MX88QgAOE04IBiLo0l89ysc+woVn2FA=="
34857
34886
  },
34858
34887
  "ajv": {
34859
34888
  "version": "6.12.6",
@@ -38689,6 +38718,12 @@
38689
38718
  "has-flag": "^4.0.0"
38690
38719
  }
38691
38720
  },
38721
+ "type-fest": {
38722
+ "version": "0.8.1",
38723
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
38724
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
38725
+ "dev": true
38726
+ },
38692
38727
  "which": {
38693
38728
  "version": "1.3.1",
38694
38729
  "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -39478,6 +39513,11 @@
39478
39513
  "pend": "~1.2.0"
39479
39514
  }
39480
39515
  },
39516
+ "fetch-retry": {
39517
+ "version": "5.0.6",
39518
+ "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz",
39519
+ "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ=="
39520
+ },
39481
39521
  "figures": {
39482
39522
  "version": "2.0.0",
39483
39523
  "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
@@ -48577,6 +48617,12 @@
48577
48617
  "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
48578
48618
  "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
48579
48619
  "dev": true
48620
+ },
48621
+ "type-fest": {
48622
+ "version": "0.8.1",
48623
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
48624
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
48625
+ "dev": true
48580
48626
  }
48581
48627
  }
48582
48628
  },
@@ -51300,10 +51346,12 @@
51300
51346
  "dev": true
51301
51347
  },
51302
51348
  "type-fest": {
51303
- "version": "0.8.1",
51304
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
51305
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
51306
- "dev": true
51349
+ "version": "2.19.0",
51350
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
51351
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
51352
+ "dev": true,
51353
+ "optional": true,
51354
+ "peer": true
51307
51355
  },
51308
51356
  "type-is": {
51309
51357
  "version": "1.6.18",
@@ -20,8 +20,7 @@ import {RtmClientEvents} from 'agora-react-native-rtm/lib/typescript/src/RtmEngi
20
20
  import AgoraRTM, {VERSION} from 'agora-rtm-sdk';
21
21
  // export {RtmAttribute}
22
22
  //
23
- interface RtmAttributePlaceholder {
24
- };
23
+ interface RtmAttributePlaceholder {}
25
24
  export {RtmAttributePlaceholder as RtmAttribute};
26
25
 
27
26
  type callbackType = (args?: any) => void;
@@ -99,6 +98,8 @@ export default class RtmEngine {
99
98
  this.appId = APP_ID;
100
99
  this.client = AgoraRTM.createInstance(this.appId);
101
100
 
101
+ window.rtmClient = this.client;
102
+
102
103
  this.client.on('ConnectionStateChanged', (state, reason) => {
103
104
  this.clientEventsMap.get('connectionStateChanged')({state, reason});
104
105
  });
@@ -58,12 +58,13 @@
58
58
  "@sentry/tracing": "6.2.1",
59
59
  "@supersami/rn-foreground-service": "^1.1.1",
60
60
  "agora-react-native-rtm": "1.5.1",
61
- "agora-rtc-sdk-ng": "4.14.0",
62
- "agora-rtm-sdk": "1.4.3-203",
61
+ "agora-rtc-sdk-ng": "4.16.1",
62
+ "agora-rtm-sdk": "1.5.1",
63
63
  "electron-log": "4.3.5",
64
64
  "electron-squirrel-startup": "1.0.0",
65
65
  "electron-updater": "4.3.9",
66
66
  "exponential-backoff": "3.1.0",
67
+ "fetch-retry": "^5.0.6",
67
68
  "graphql": "15.5.0",
68
69
  "nanoevents": "7.0.1",
69
70
  "nanoid": "4.0.0",
@@ -34,6 +34,9 @@ import ToastComponent from './components/ToastComponent';
34
34
  import {ToastContext, ToastProvider} from './components/useToast';
35
35
  import {SdkApiContext} from './components/SdkApiContext';
36
36
  import isSDK from './utils/isSDK';
37
+ import {setupLogger} from './utils/axiomLogger';
38
+
39
+ setupLogger();
37
40
 
38
41
  interface AppWrapperProps {
39
42
  children: React.ReactNode;
@@ -136,10 +136,10 @@ const DeviceConfigure: React.FC<Props> = (props: any) => {
136
136
  const {RtcEngine} = rtc as unknown as {RtcEngine: WebRtcEngineInstance};
137
137
  const {localStream} = RtcEngine;
138
138
 
139
- const refreshDeviceList = useCallback(async () => {
139
+ const refreshDeviceList = useCallback(async (noEmitLog?: boolean) => {
140
140
  let updatedDeviceList: MediaDeviceInfo[];
141
141
  await RtcEngine.getDevices(function (devices: deviceInfo[]) {
142
- log('Fetching all devices: ', devices);
142
+ !noEmitLog && log('Fetching all devices: ', devices);
143
143
  /**
144
144
  * Some browsers list the same microphone twice with different Id's,
145
145
  * their group Id's match as they are the same physical device.
@@ -161,7 +161,7 @@ const DeviceConfigure: React.FC<Props> = (props: any) => {
161
161
  device.kind == 'audiooutput'),
162
162
  );
163
163
 
164
- log('Setting unique devices', updatedDeviceList);
164
+ !noEmitLog && log('Setting unique devices', updatedDeviceList);
165
165
  if (updatedDeviceList.length > 0) {
166
166
  setDeviceList(updatedDeviceList);
167
167
  }
@@ -327,8 +327,11 @@ const DeviceConfigure: React.FC<Props> = (props: any) => {
327
327
  };
328
328
 
329
329
  useEffect(() => {
330
+ // Notify updated state every 20s
331
+ let count = 0;
330
332
  const interval = setInterval(() => {
331
- navigator.mediaDevices.enumerateDevices();
333
+ count = count + 1;
334
+ refreshDeviceList(count % 10 !== 0);
332
335
  }, 2000);
333
336
  return () => {
334
337
  clearInterval(interval);
@@ -437,7 +440,15 @@ const DeviceConfigure: React.FC<Props> = (props: any) => {
437
440
  checkDeviceExists(storedDevice, deviceList)
438
441
  ) {
439
442
  log(logTag, deviceLogTag, 'Setting to active id', storedDevice);
440
- setDevice(storedDevice);
443
+ setDevice(storedDevice).catch((e:Error) => {
444
+ log(
445
+ logTag,
446
+ deviceLogTag,
447
+ 'ERROR:Setting to active id',
448
+ storedDevice,
449
+ e.message,
450
+ );
451
+ });
441
452
  } else {
442
453
  eventEmitter(currentDevice);
443
454
  setDeviceUi(currentDevice);
@@ -542,7 +553,6 @@ const DeviceConfigure: React.FC<Props> = (props: any) => {
542
553
  // Port this to useEffectEvent(https://beta.reactjs.org/reference/react/useEffectEvent) when
543
554
  // released
544
555
  useEffect(() => {
545
- log('previous devicelist updated', deviceList);
546
556
  AgoraRTC.onMicrophoneChanged = commonOnChangedEvent;
547
557
  return () => {
548
558
  AgoraRTC.onMicrophoneChanged = null;
@@ -622,7 +632,7 @@ const DeviceConfigure: React.FC<Props> = (props: any) => {
622
632
  return new Promise<void>((res, rej) => {
623
633
  if (mutexRef.current) {
624
634
  const e = new Error(logtag + ' Change already in progress');
625
- log('DeviceConfigure:', logtag, 'Error setting', kind, e);
635
+ log('DeviceConfigure:', logtag, 'Error setting', kind, e.message);
626
636
  rej(e);
627
637
  return;
628
638
  }
@@ -33,6 +33,7 @@ import RTMEngine from '../rtm/RTMEngine';
33
33
  import {filterObject} from '../utils';
34
34
  import SDKEvents from '../utils/SdkEvents';
35
35
  import isSDK from '../utils/isSDK';
36
+ import {useAsyncEffect} from '../utils/useAsyncEffect';
36
37
 
37
38
  export enum UserType {
38
39
  ScreenShare = 'screenshare',
@@ -120,7 +121,7 @@ const RtmConfigure = (props: any) => {
120
121
  });
121
122
  RTMEngine.getInstance().setLocalUID(localUid.toString());
122
123
  timerValueRef.current = 5;
123
- setAttribute();
124
+ await setAttribute();
124
125
  } catch (error) {
125
126
  setTimeout(async () => {
126
127
  timerValueRef.current = timerValueRef.current + timerValueRef.current;
@@ -392,7 +393,7 @@ const RtmConfigure = (props: any) => {
392
393
  }
393
394
  }
394
395
  });
395
- doLoginAndSetupRTM();
396
+ await doLoginAndSetupRTM();
396
397
  };
397
398
 
398
399
  const runQueuedEvents = async () => {
@@ -443,23 +444,24 @@ const RtmConfigure = (props: any) => {
443
444
  };
444
445
 
445
446
  const end = async () => {
446
- callActive
447
- ? (RTMEngine.getInstance().destroy(),
448
- EventUtils.clear(),
449
- setHasUserJoinedRTM(false),
450
- // setLogin(false),
451
- console.log('RTM cleanup done'))
452
- : {};
447
+ if (!callActive) {
448
+ return;
449
+ }
450
+ await RTMEngine.getInstance().destroy();
451
+ setHasUserJoinedRTM(false);
452
+ // setLogin(false),
453
+ console.log('RTM cleanup done');
453
454
  };
454
455
 
455
- useEffect(() => {
456
- if (!mountState.current) {
457
- mountState.current = true;
458
- return () => {};
456
+ useAsyncEffect(async () => {
457
+ if (!callActive) {
458
+ console.log('waiting to init RTM');
459
+ setLogin(true);
460
+ } else {
461
+ await init();
459
462
  }
460
- callActive ? init() : (console.log('waiting to init RTM'), setLogin(true));
461
- return () => {
462
- end();
463
+ return async () => {
464
+ await end();
463
465
  };
464
466
  // eslint-disable-next-line react-hooks/exhaustive-deps
465
467
  }, [rtcProps.channel, rtcProps.appId, callActive]);