agora-appbuilder-core 4.0.0-beta.71 → 4.0.0-beta.73
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 +1 -1
- package/template/_package-lock.json +119 -98
- package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +2 -4
- package/template/agora-rn-uikit/src/Rtc/Join.tsx +13 -7
- package/template/bridge/rtc/webNg/RtcEngine.ts +13 -3
- package/template/package.json +2 -2
- package/template/src/components/room-info/useRoomInfo.tsx +1 -0
- package/template/src/pages/VideoCall.tsx +3 -2
- package/template/src/subComponents/caption/useSTTAPI.tsx +15 -26
- package/template/src/utils/index.tsx +14 -0
- package/template/src/utils/useJoinRoom.ts +10 -0
package/package.json
CHANGED
|
@@ -20,8 +20,9 @@
|
|
|
20
20
|
"agora-extension-ai-denoiser": "1.1.0",
|
|
21
21
|
"agora-extension-virtual-background": "^1.1.3",
|
|
22
22
|
"agora-react-native-rtm": "1.5.1",
|
|
23
|
-
"agora-rtc-sdk-ng": "4.20.
|
|
23
|
+
"agora-rtc-sdk-ng": "4.20.1",
|
|
24
24
|
"agora-rtm-sdk": "1.5.1",
|
|
25
|
+
"buffer": "^6.0.3",
|
|
25
26
|
"electron-log": "4.3.5",
|
|
26
27
|
"electron-squirrel-startup": "1.0.0",
|
|
27
28
|
"electron-updater": "4.3.9",
|
|
@@ -91,7 +92,6 @@
|
|
|
91
92
|
"@types/webpack-env": "^1.16.4",
|
|
92
93
|
"@typescript-eslint/eslint-plugin": "6.4.0",
|
|
93
94
|
"@typescript-eslint/parser": "6.4.0",
|
|
94
|
-
"agora-rtc-sdk-ng-special": "4.18.3-special.2",
|
|
95
95
|
"babel-jest": "^29.2.1",
|
|
96
96
|
"babel-loader": "8.2.4",
|
|
97
97
|
"babel-plugin-module-resolver": "4.1.0",
|
|
@@ -130,6 +130,9 @@
|
|
|
130
130
|
"node": ">=16"
|
|
131
131
|
}
|
|
132
132
|
},
|
|
133
|
+
"AgoraRTC_N-production.js": {
|
|
134
|
+
"extraneous": true
|
|
135
|
+
},
|
|
133
136
|
"node_modules/@aashutoshrathi/word-wrap": {
|
|
134
137
|
"version": "1.2.6",
|
|
135
138
|
"resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
|
|
@@ -140,12 +143,12 @@
|
|
|
140
143
|
}
|
|
141
144
|
},
|
|
142
145
|
"node_modules/@agora-js/media": {
|
|
143
|
-
"version": "4.20.
|
|
144
|
-
"resolved": "https://registry.npmjs.org/@agora-js/media/-/media-4.20.
|
|
145
|
-
"integrity": "sha512-
|
|
146
|
+
"version": "4.20.1",
|
|
147
|
+
"resolved": "https://registry.npmjs.org/@agora-js/media/-/media-4.20.1.tgz",
|
|
148
|
+
"integrity": "sha512-BPuSfg5Wa7FKpbqwGLKvDBk8cXd2tpB8M6Cp1Vx7DY1wLRk2oD1XO9PRIM0QZVFJxo16+D9g+lkIQ+zOvygVyw==",
|
|
146
149
|
"dependencies": {
|
|
147
|
-
"@agora-js/report": "
|
|
148
|
-
"@agora-js/shared": "
|
|
150
|
+
"@agora-js/report": "4.20.1",
|
|
151
|
+
"@agora-js/shared": "4.20.1",
|
|
149
152
|
"agora-rte-extension": "^1.2.4",
|
|
150
153
|
"axios": "^0.27.2",
|
|
151
154
|
"pako": "^2.1.0",
|
|
@@ -153,18 +156,18 @@
|
|
|
153
156
|
}
|
|
154
157
|
},
|
|
155
158
|
"node_modules/@agora-js/report": {
|
|
156
|
-
"version": "4.20.
|
|
157
|
-
"resolved": "https://registry.npmjs.org/@agora-js/report/-/report-4.20.
|
|
158
|
-
"integrity": "sha512-
|
|
159
|
+
"version": "4.20.1",
|
|
160
|
+
"resolved": "https://registry.npmjs.org/@agora-js/report/-/report-4.20.1.tgz",
|
|
161
|
+
"integrity": "sha512-dNcAKlsoMAdCkS3nhQhM5EGRABsph4klF4DbAXsfWVL4yVdWBEo/9bHtlHKqX594XDVSYLR3PQDYwwdqL33YRw==",
|
|
159
162
|
"dependencies": {
|
|
160
|
-
"@agora-js/shared": "
|
|
163
|
+
"@agora-js/shared": "4.20.1",
|
|
161
164
|
"axios": "^0.27.2"
|
|
162
165
|
}
|
|
163
166
|
},
|
|
164
167
|
"node_modules/@agora-js/shared": {
|
|
165
|
-
"version": "4.20.
|
|
166
|
-
"resolved": "https://registry.npmjs.org/@agora-js/shared/-/shared-4.20.
|
|
167
|
-
"integrity": "sha512
|
|
168
|
+
"version": "4.20.1",
|
|
169
|
+
"resolved": "https://registry.npmjs.org/@agora-js/shared/-/shared-4.20.1.tgz",
|
|
170
|
+
"integrity": "sha512-MOZnIi9w6m2m5MIx9J2fzA8+RPLOGMpU+1j7c6UtF1g//9yJa3a3lDlX9aRddRHvh1J30dwL/VUnbVviCT/x5w==",
|
|
168
171
|
"dependencies": {
|
|
169
172
|
"axios": "^0.27.2",
|
|
170
173
|
"ua-parser-js": "^0.7.34"
|
|
@@ -7665,13 +7668,13 @@
|
|
|
7665
7668
|
}
|
|
7666
7669
|
},
|
|
7667
7670
|
"node_modules/agora-rtc-sdk-ng": {
|
|
7668
|
-
"version": "4.20.
|
|
7669
|
-
"resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng/-/agora-rtc-sdk-ng-4.20.
|
|
7670
|
-
"integrity": "sha512-
|
|
7671
|
+
"version": "4.20.1",
|
|
7672
|
+
"resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng/-/agora-rtc-sdk-ng-4.20.1.tgz",
|
|
7673
|
+
"integrity": "sha512-k/heeT3DE72K6D1sZCN1k5K2wIBzSwW4q1hsxk9AOQLdrdPY5GFWQVn66k/WGyP67lEPFe0ZTKFh9+8Gc284FA==",
|
|
7671
7674
|
"dependencies": {
|
|
7672
|
-
"@agora-js/media": "
|
|
7673
|
-
"@agora-js/report": "
|
|
7674
|
-
"@agora-js/shared": "
|
|
7675
|
+
"@agora-js/media": "4.20.1",
|
|
7676
|
+
"@agora-js/report": "4.20.1",
|
|
7677
|
+
"@agora-js/shared": "4.20.1",
|
|
7675
7678
|
"agora-rte-extension": "^1.2.4",
|
|
7676
7679
|
"axios": "^0.27.2",
|
|
7677
7680
|
"formdata-polyfill": "^4.0.7",
|
|
@@ -7679,15 +7682,6 @@
|
|
|
7679
7682
|
"webrtc-adapter": "8.2.0"
|
|
7680
7683
|
}
|
|
7681
7684
|
},
|
|
7682
|
-
"node_modules/agora-rtc-sdk-ng-special": {
|
|
7683
|
-
"version": "4.18.3-special.2",
|
|
7684
|
-
"resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng-special/-/agora-rtc-sdk-ng-special-4.18.3-special.2.tgz",
|
|
7685
|
-
"integrity": "sha512-++G/Ulb5B+bi54et47OEJVS6NKVVW1mBeu5x/03A9aAZdIac+IYv8RsgMC0dnW+n7sWIgaevWbIopxxclZgC0g==",
|
|
7686
|
-
"dev": true,
|
|
7687
|
-
"dependencies": {
|
|
7688
|
-
"agora-rte-extension": "^1.2.3"
|
|
7689
|
-
}
|
|
7690
|
-
},
|
|
7691
7685
|
"node_modules/agora-rtc-sdk-ng/node_modules/ua-parser-js": {
|
|
7692
7686
|
"version": "0.7.37",
|
|
7693
7687
|
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz",
|
|
@@ -9134,6 +9128,29 @@
|
|
|
9134
9128
|
"readable-stream": "^3.4.0"
|
|
9135
9129
|
}
|
|
9136
9130
|
},
|
|
9131
|
+
"node_modules/bl/node_modules/buffer": {
|
|
9132
|
+
"version": "5.7.1",
|
|
9133
|
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
|
9134
|
+
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
|
9135
|
+
"funding": [
|
|
9136
|
+
{
|
|
9137
|
+
"type": "github",
|
|
9138
|
+
"url": "https://github.com/sponsors/feross"
|
|
9139
|
+
},
|
|
9140
|
+
{
|
|
9141
|
+
"type": "patreon",
|
|
9142
|
+
"url": "https://www.patreon.com/feross"
|
|
9143
|
+
},
|
|
9144
|
+
{
|
|
9145
|
+
"type": "consulting",
|
|
9146
|
+
"url": "https://feross.org/support"
|
|
9147
|
+
}
|
|
9148
|
+
],
|
|
9149
|
+
"dependencies": {
|
|
9150
|
+
"base64-js": "^1.3.1",
|
|
9151
|
+
"ieee754": "^1.1.13"
|
|
9152
|
+
}
|
|
9153
|
+
},
|
|
9137
9154
|
"node_modules/bl/node_modules/readable-stream": {
|
|
9138
9155
|
"version": "3.6.2",
|
|
9139
9156
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
|
@@ -9353,9 +9370,9 @@
|
|
|
9353
9370
|
}
|
|
9354
9371
|
},
|
|
9355
9372
|
"node_modules/buffer": {
|
|
9356
|
-
"version": "
|
|
9357
|
-
"resolved": "https://registry.npmjs.org/buffer/-/buffer-
|
|
9358
|
-
"integrity": "sha512-
|
|
9373
|
+
"version": "6.0.3",
|
|
9374
|
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
|
|
9375
|
+
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
|
|
9359
9376
|
"funding": [
|
|
9360
9377
|
{
|
|
9361
9378
|
"type": "github",
|
|
@@ -9372,7 +9389,7 @@
|
|
|
9372
9389
|
],
|
|
9373
9390
|
"dependencies": {
|
|
9374
9391
|
"base64-js": "^1.3.1",
|
|
9375
|
-
"ieee754": "^1.1
|
|
9392
|
+
"ieee754": "^1.2.1"
|
|
9376
9393
|
}
|
|
9377
9394
|
},
|
|
9378
9395
|
"node_modules/buffer-alloc": {
|
|
@@ -10658,6 +10675,31 @@
|
|
|
10658
10675
|
"buffer": "^5.1.0"
|
|
10659
10676
|
}
|
|
10660
10677
|
},
|
|
10678
|
+
"node_modules/crc/node_modules/buffer": {
|
|
10679
|
+
"version": "5.7.1",
|
|
10680
|
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
|
10681
|
+
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
|
10682
|
+
"dev": true,
|
|
10683
|
+
"funding": [
|
|
10684
|
+
{
|
|
10685
|
+
"type": "github",
|
|
10686
|
+
"url": "https://github.com/sponsors/feross"
|
|
10687
|
+
},
|
|
10688
|
+
{
|
|
10689
|
+
"type": "patreon",
|
|
10690
|
+
"url": "https://www.patreon.com/feross"
|
|
10691
|
+
},
|
|
10692
|
+
{
|
|
10693
|
+
"type": "consulting",
|
|
10694
|
+
"url": "https://feross.org/support"
|
|
10695
|
+
}
|
|
10696
|
+
],
|
|
10697
|
+
"optional": true,
|
|
10698
|
+
"dependencies": {
|
|
10699
|
+
"base64-js": "^1.3.1",
|
|
10700
|
+
"ieee754": "^1.1.13"
|
|
10701
|
+
}
|
|
10702
|
+
},
|
|
10661
10703
|
"node_modules/cross-env": {
|
|
10662
10704
|
"version": "7.0.3",
|
|
10663
10705
|
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
|
|
@@ -26178,29 +26220,6 @@
|
|
|
26178
26220
|
"react-native": "*"
|
|
26179
26221
|
}
|
|
26180
26222
|
},
|
|
26181
|
-
"node_modules/react-native-agora/node_modules/buffer": {
|
|
26182
|
-
"version": "6.0.3",
|
|
26183
|
-
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
|
|
26184
|
-
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
|
|
26185
|
-
"funding": [
|
|
26186
|
-
{
|
|
26187
|
-
"type": "github",
|
|
26188
|
-
"url": "https://github.com/sponsors/feross"
|
|
26189
|
-
},
|
|
26190
|
-
{
|
|
26191
|
-
"type": "patreon",
|
|
26192
|
-
"url": "https://www.patreon.com/feross"
|
|
26193
|
-
},
|
|
26194
|
-
{
|
|
26195
|
-
"type": "consulting",
|
|
26196
|
-
"url": "https://feross.org/support"
|
|
26197
|
-
}
|
|
26198
|
-
],
|
|
26199
|
-
"dependencies": {
|
|
26200
|
-
"base64-js": "^1.3.1",
|
|
26201
|
-
"ieee754": "^1.2.1"
|
|
26202
|
-
}
|
|
26203
|
-
},
|
|
26204
26223
|
"node_modules/react-native-document-picker": {
|
|
26205
26224
|
"version": "9.1.0",
|
|
26206
26225
|
"resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-9.1.0.tgz",
|
|
@@ -32241,12 +32260,12 @@
|
|
|
32241
32260
|
"dev": true
|
|
32242
32261
|
},
|
|
32243
32262
|
"@agora-js/media": {
|
|
32244
|
-
"version": "4.20.
|
|
32245
|
-
"resolved": "https://registry.npmjs.org/@agora-js/media/-/media-4.20.
|
|
32246
|
-
"integrity": "sha512-
|
|
32263
|
+
"version": "4.20.1",
|
|
32264
|
+
"resolved": "https://registry.npmjs.org/@agora-js/media/-/media-4.20.1.tgz",
|
|
32265
|
+
"integrity": "sha512-BPuSfg5Wa7FKpbqwGLKvDBk8cXd2tpB8M6Cp1Vx7DY1wLRk2oD1XO9PRIM0QZVFJxo16+D9g+lkIQ+zOvygVyw==",
|
|
32247
32266
|
"requires": {
|
|
32248
|
-
"@agora-js/report": "
|
|
32249
|
-
"@agora-js/shared": "
|
|
32267
|
+
"@agora-js/report": "4.20.1",
|
|
32268
|
+
"@agora-js/shared": "4.20.1",
|
|
32250
32269
|
"agora-rte-extension": "^1.2.4",
|
|
32251
32270
|
"axios": "^0.27.2",
|
|
32252
32271
|
"pako": "^2.1.0",
|
|
@@ -32254,18 +32273,18 @@
|
|
|
32254
32273
|
}
|
|
32255
32274
|
},
|
|
32256
32275
|
"@agora-js/report": {
|
|
32257
|
-
"version": "4.20.
|
|
32258
|
-
"resolved": "https://registry.npmjs.org/@agora-js/report/-/report-4.20.
|
|
32259
|
-
"integrity": "sha512-
|
|
32276
|
+
"version": "4.20.1",
|
|
32277
|
+
"resolved": "https://registry.npmjs.org/@agora-js/report/-/report-4.20.1.tgz",
|
|
32278
|
+
"integrity": "sha512-dNcAKlsoMAdCkS3nhQhM5EGRABsph4klF4DbAXsfWVL4yVdWBEo/9bHtlHKqX594XDVSYLR3PQDYwwdqL33YRw==",
|
|
32260
32279
|
"requires": {
|
|
32261
|
-
"@agora-js/shared": "
|
|
32280
|
+
"@agora-js/shared": "4.20.1",
|
|
32262
32281
|
"axios": "^0.27.2"
|
|
32263
32282
|
}
|
|
32264
32283
|
},
|
|
32265
32284
|
"@agora-js/shared": {
|
|
32266
|
-
"version": "4.20.
|
|
32267
|
-
"resolved": "https://registry.npmjs.org/@agora-js/shared/-/shared-4.20.
|
|
32268
|
-
"integrity": "sha512
|
|
32285
|
+
"version": "4.20.1",
|
|
32286
|
+
"resolved": "https://registry.npmjs.org/@agora-js/shared/-/shared-4.20.1.tgz",
|
|
32287
|
+
"integrity": "sha512-MOZnIi9w6m2m5MIx9J2fzA8+RPLOGMpU+1j7c6UtF1g//9yJa3a3lDlX9aRddRHvh1J30dwL/VUnbVviCT/x5w==",
|
|
32269
32288
|
"requires": {
|
|
32270
32289
|
"axios": "^0.27.2",
|
|
32271
32290
|
"ua-parser-js": "^0.7.34"
|
|
@@ -37763,13 +37782,13 @@
|
|
|
37763
37782
|
"requires": {}
|
|
37764
37783
|
},
|
|
37765
37784
|
"agora-rtc-sdk-ng": {
|
|
37766
|
-
"version": "4.20.
|
|
37767
|
-
"resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng/-/agora-rtc-sdk-ng-4.20.
|
|
37768
|
-
"integrity": "sha512-
|
|
37785
|
+
"version": "4.20.1",
|
|
37786
|
+
"resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng/-/agora-rtc-sdk-ng-4.20.1.tgz",
|
|
37787
|
+
"integrity": "sha512-k/heeT3DE72K6D1sZCN1k5K2wIBzSwW4q1hsxk9AOQLdrdPY5GFWQVn66k/WGyP67lEPFe0ZTKFh9+8Gc284FA==",
|
|
37769
37788
|
"requires": {
|
|
37770
|
-
"@agora-js/media": "
|
|
37771
|
-
"@agora-js/report": "
|
|
37772
|
-
"@agora-js/shared": "
|
|
37789
|
+
"@agora-js/media": "4.20.1",
|
|
37790
|
+
"@agora-js/report": "4.20.1",
|
|
37791
|
+
"@agora-js/shared": "4.20.1",
|
|
37773
37792
|
"agora-rte-extension": "^1.2.4",
|
|
37774
37793
|
"axios": "^0.27.2",
|
|
37775
37794
|
"formdata-polyfill": "^4.0.7",
|
|
@@ -37784,15 +37803,6 @@
|
|
|
37784
37803
|
}
|
|
37785
37804
|
}
|
|
37786
37805
|
},
|
|
37787
|
-
"agora-rtc-sdk-ng-special": {
|
|
37788
|
-
"version": "4.18.3-special.2",
|
|
37789
|
-
"resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng-special/-/agora-rtc-sdk-ng-special-4.18.3-special.2.tgz",
|
|
37790
|
-
"integrity": "sha512-++G/Ulb5B+bi54et47OEJVS6NKVVW1mBeu5x/03A9aAZdIac+IYv8RsgMC0dnW+n7sWIgaevWbIopxxclZgC0g==",
|
|
37791
|
-
"dev": true,
|
|
37792
|
-
"requires": {
|
|
37793
|
-
"agora-rte-extension": "^1.2.3"
|
|
37794
|
-
}
|
|
37795
|
-
},
|
|
37796
37806
|
"agora-rte-extension": {
|
|
37797
37807
|
"version": "1.2.4",
|
|
37798
37808
|
"resolved": "https://registry.npmjs.org/agora-rte-extension/-/agora-rte-extension-1.2.4.tgz",
|
|
@@ -38884,6 +38894,15 @@
|
|
|
38884
38894
|
"readable-stream": "^3.4.0"
|
|
38885
38895
|
},
|
|
38886
38896
|
"dependencies": {
|
|
38897
|
+
"buffer": {
|
|
38898
|
+
"version": "5.7.1",
|
|
38899
|
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
|
38900
|
+
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
|
38901
|
+
"requires": {
|
|
38902
|
+
"base64-js": "^1.3.1",
|
|
38903
|
+
"ieee754": "^1.1.13"
|
|
38904
|
+
}
|
|
38905
|
+
},
|
|
38887
38906
|
"readable-stream": {
|
|
38888
38907
|
"version": "3.6.2",
|
|
38889
38908
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
|
@@ -39062,12 +39081,12 @@
|
|
|
39062
39081
|
}
|
|
39063
39082
|
},
|
|
39064
39083
|
"buffer": {
|
|
39065
|
-
"version": "
|
|
39066
|
-
"resolved": "https://registry.npmjs.org/buffer/-/buffer-
|
|
39067
|
-
"integrity": "sha512-
|
|
39084
|
+
"version": "6.0.3",
|
|
39085
|
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
|
|
39086
|
+
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
|
|
39068
39087
|
"requires": {
|
|
39069
39088
|
"base64-js": "^1.3.1",
|
|
39070
|
-
"ieee754": "^1.1
|
|
39089
|
+
"ieee754": "^1.2.1"
|
|
39071
39090
|
}
|
|
39072
39091
|
},
|
|
39073
39092
|
"buffer-alloc": {
|
|
@@ -40081,6 +40100,19 @@
|
|
|
40081
40100
|
"optional": true,
|
|
40082
40101
|
"requires": {
|
|
40083
40102
|
"buffer": "^5.1.0"
|
|
40103
|
+
},
|
|
40104
|
+
"dependencies": {
|
|
40105
|
+
"buffer": {
|
|
40106
|
+
"version": "5.7.1",
|
|
40107
|
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
|
40108
|
+
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
|
40109
|
+
"dev": true,
|
|
40110
|
+
"optional": true,
|
|
40111
|
+
"requires": {
|
|
40112
|
+
"base64-js": "^1.3.1",
|
|
40113
|
+
"ieee754": "^1.1.13"
|
|
40114
|
+
}
|
|
40115
|
+
}
|
|
40084
40116
|
}
|
|
40085
40117
|
},
|
|
40086
40118
|
"cross-env": {
|
|
@@ -51729,17 +51761,6 @@
|
|
|
51729
51761
|
"integrity": "sha512-R+Sb2HKNXUvklCYtDzLuaA1/HbmnFKM5Elc87Q03qM7Wp9M3L7F6PkY72GXexj4wssPlMHTfsA4YAJDsdfkwMg==",
|
|
51730
51762
|
"requires": {
|
|
51731
51763
|
"buffer": "^6.0.3"
|
|
51732
|
-
},
|
|
51733
|
-
"dependencies": {
|
|
51734
|
-
"buffer": {
|
|
51735
|
-
"version": "6.0.3",
|
|
51736
|
-
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
|
|
51737
|
-
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
|
|
51738
|
-
"requires": {
|
|
51739
|
-
"base64-js": "^1.3.1",
|
|
51740
|
-
"ieee754": "^1.2.1"
|
|
51741
|
-
}
|
|
51742
|
-
}
|
|
51743
51764
|
}
|
|
51744
51765
|
},
|
|
51745
51766
|
"react-native-document-picker": {
|
|
@@ -120,10 +120,8 @@ export interface RtcPropsInterface {
|
|
|
120
120
|
callActive?: boolean;
|
|
121
121
|
encryption?: {
|
|
122
122
|
key: string;
|
|
123
|
-
mode:
|
|
124
|
-
|
|
125
|
-
| EncryptionMode.AES256XTS
|
|
126
|
-
| EncryptionMode.AES128ECB;
|
|
123
|
+
mode: EncryptionMode.AES128GCM2 | EncryptionMode.AES128GCM2;
|
|
124
|
+
salt: number[];
|
|
127
125
|
};
|
|
128
126
|
// commented for v1 release
|
|
129
127
|
// lifecycle?: {
|
|
@@ -48,15 +48,21 @@ const Join: React.FC<{
|
|
|
48
48
|
const videoState = defaultContent[maxUid].video;
|
|
49
49
|
async function join() {
|
|
50
50
|
if (
|
|
51
|
-
rtcProps
|
|
51
|
+
rtcProps?.encryption &&
|
|
52
52
|
rtcProps.encryption.key &&
|
|
53
|
-
rtcProps.encryption.mode
|
|
53
|
+
rtcProps.encryption.mode &&
|
|
54
|
+
rtcProps.encryption.salt
|
|
54
55
|
) {
|
|
55
|
-
console.log('using channel encryption', rtcProps
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
console.log('using channel encryption', rtcProps?.encryption);
|
|
57
|
+
try {
|
|
58
|
+
await engine.enableEncryption(true, {
|
|
59
|
+
encryptionKey: rtcProps?.encryption.key,
|
|
60
|
+
encryptionMode: rtcProps?.encryption.mode,
|
|
61
|
+
encryptionKdfSalt: rtcProps?.encryption.salt,
|
|
62
|
+
});
|
|
63
|
+
} catch (error) {
|
|
64
|
+
console.warn('encryption error', error);
|
|
65
|
+
}
|
|
60
66
|
}
|
|
61
67
|
if (
|
|
62
68
|
!audioRoom &&
|
|
@@ -902,15 +902,25 @@ export default class RtcEngine {
|
|
|
902
902
|
config: {
|
|
903
903
|
encryptionMode: RnEncryptionEnum;
|
|
904
904
|
encryptionKey: string;
|
|
905
|
+
encryptionKdfSalt: string;
|
|
905
906
|
},
|
|
906
907
|
): Promise<void> {
|
|
907
908
|
let mode: EncryptionMode;
|
|
908
909
|
mode = this.getEncryptionMode(enabled, config?.encryptionMode);
|
|
909
|
-
console.log('setting encryption ===>', mode);
|
|
910
910
|
try {
|
|
911
911
|
await Promise.all([
|
|
912
|
-
this.client.setEncryptionConfig(
|
|
913
|
-
|
|
912
|
+
this.client.setEncryptionConfig(
|
|
913
|
+
mode,
|
|
914
|
+
config.encryptionKey,
|
|
915
|
+
config.encryptionKdfSalt,
|
|
916
|
+
true, // encryptDataStream
|
|
917
|
+
),
|
|
918
|
+
this.screenClient.setEncryptionConfig(
|
|
919
|
+
mode,
|
|
920
|
+
config.encryptionKey,
|
|
921
|
+
config.encryptionKdfSalt,
|
|
922
|
+
true, // encryptDataStream
|
|
923
|
+
),
|
|
914
924
|
]);
|
|
915
925
|
} catch (e) {
|
|
916
926
|
throw e;
|
package/template/package.json
CHANGED
|
@@ -60,8 +60,9 @@
|
|
|
60
60
|
"agora-extension-ai-denoiser": "1.1.0",
|
|
61
61
|
"agora-extension-virtual-background": "^1.1.3",
|
|
62
62
|
"agora-react-native-rtm": "1.5.1",
|
|
63
|
-
"agora-rtc-sdk-ng": "4.20.
|
|
63
|
+
"agora-rtc-sdk-ng": "4.20.1",
|
|
64
64
|
"agora-rtm-sdk": "1.5.1",
|
|
65
|
+
"buffer": "^6.0.3",
|
|
65
66
|
"electron-log": "4.3.5",
|
|
66
67
|
"electron-squirrel-startup": "1.0.0",
|
|
67
68
|
"electron-updater": "4.3.9",
|
|
@@ -131,7 +132,6 @@
|
|
|
131
132
|
"@types/webpack-env": "^1.16.4",
|
|
132
133
|
"@typescript-eslint/eslint-plugin": "6.4.0",
|
|
133
134
|
"@typescript-eslint/parser": "6.4.0",
|
|
134
|
-
"agora-rtc-sdk-ng-special": "4.18.3-special.2",
|
|
135
135
|
"babel-jest": "^29.2.1",
|
|
136
136
|
"babel-loader": "8.2.4",
|
|
137
137
|
"babel-plugin-module-resolver": "4.1.0",
|
|
@@ -170,7 +170,7 @@ const VideoCall: React.FC = () => {
|
|
|
170
170
|
profile: $config.PROFILE,
|
|
171
171
|
dual: true,
|
|
172
172
|
encryption: $config.ENCRYPTION_ENABLED
|
|
173
|
-
? {key: null, mode: RnEncryptionEnum.
|
|
173
|
+
? {key: null, mode: RnEncryptionEnum.AES128GCM2, screenKey: null}
|
|
174
174
|
: false,
|
|
175
175
|
role: ClientRole.Broadcaster,
|
|
176
176
|
geoFencing: $config.GEO_FENCING,
|
|
@@ -278,8 +278,9 @@ const VideoCall: React.FC = () => {
|
|
|
278
278
|
encryption: $config.ENCRYPTION_ENABLED
|
|
279
279
|
? {
|
|
280
280
|
key: data.encryptionSecret,
|
|
281
|
-
mode: RnEncryptionEnum.
|
|
281
|
+
mode: RnEncryptionEnum.AES256GCM2,
|
|
282
282
|
screenKey: data.encryptionSecret,
|
|
283
|
+
salt: data.encryptionSecretSalt,
|
|
283
284
|
}
|
|
284
285
|
: false,
|
|
285
286
|
screenShareUid: data.screenShareUid,
|
|
@@ -32,8 +32,7 @@ const useSTTAPI = (): IuseSTTAPI => {
|
|
|
32
32
|
} = useCaption();
|
|
33
33
|
|
|
34
34
|
const currentLangRef = React.useRef<LanguageType[]>([]);
|
|
35
|
-
const STT_API_URL = `${$config.BACKEND_ENDPOINT}/v1/
|
|
36
|
-
const OLD_STT_API_URL = `${$config.BACKEND_ENDPOINT}/v1/stt`;
|
|
35
|
+
const STT_API_URL = `${$config.BACKEND_ENDPOINT}/v1/stt`;
|
|
37
36
|
const username = useGetName();
|
|
38
37
|
const localUid = useLocalUid();
|
|
39
38
|
const {rtcProps} = useContext(PropsContext);
|
|
@@ -43,31 +42,21 @@ const useSTTAPI = (): IuseSTTAPI => {
|
|
|
43
42
|
}, [language]);
|
|
44
43
|
|
|
45
44
|
const apiCall = async (method: string, lang: LanguageType[] = []) => {
|
|
46
|
-
const response = await fetch(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}/${method}`,
|
|
52
|
-
{
|
|
53
|
-
method: 'POST',
|
|
54
|
-
headers: {
|
|
55
|
-
'Content-Type': 'application/json',
|
|
56
|
-
authorization: store.token ? `Bearer ${store.token}` : '',
|
|
57
|
-
},
|
|
58
|
-
body: JSON.stringify({
|
|
59
|
-
passphrase: roomId?.host || '',
|
|
60
|
-
lang:
|
|
61
|
-
method === 'stop' || !$config.ENCRYPTION_ENABLED
|
|
62
|
-
? lang.join(',')
|
|
63
|
-
: lang,
|
|
64
|
-
dataStream_uid: 111111, // bot ID
|
|
65
|
-
encryption_mode: $config.ENCRYPTION_ENABLED
|
|
66
|
-
? rtcProps.encryption.mode
|
|
67
|
-
: null,
|
|
68
|
-
}),
|
|
45
|
+
const response = await fetch(`${STT_API_URL}/${method}`, {
|
|
46
|
+
method: 'POST',
|
|
47
|
+
headers: {
|
|
48
|
+
'Content-Type': 'application/json',
|
|
49
|
+
authorization: store.token ? `Bearer ${store.token}` : '',
|
|
69
50
|
},
|
|
70
|
-
|
|
51
|
+
body: JSON.stringify({
|
|
52
|
+
passphrase: roomId?.host || '',
|
|
53
|
+
lang: lang,
|
|
54
|
+
dataStream_uid: 111111, // bot ID
|
|
55
|
+
encryption_mode: $config.ENCRYPTION_ENABLED
|
|
56
|
+
? rtcProps.encryption.mode
|
|
57
|
+
: null,
|
|
58
|
+
}),
|
|
59
|
+
});
|
|
71
60
|
const res = await response.json();
|
|
72
61
|
return res;
|
|
73
62
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const Buffer = require('buffer/').Buffer;
|
|
1
2
|
type Entry<T> = {
|
|
2
3
|
[K in keyof T]: [K, T[K]];
|
|
3
4
|
}[keyof T];
|
|
@@ -83,3 +84,16 @@ export function isURL(str) {
|
|
|
83
84
|
var url = new RegExp(urlRegex, 'i');
|
|
84
85
|
return str.length < 2083 && url.test(str);
|
|
85
86
|
}
|
|
87
|
+
|
|
88
|
+
export const base64ToUint8Array = (base64Str: string) => {
|
|
89
|
+
let decodedData;
|
|
90
|
+
|
|
91
|
+
decodedData = Buffer.from(base64Str, 'base64').toString('binary');
|
|
92
|
+
|
|
93
|
+
const result = new Uint8Array(new ArrayBuffer(decodedData.length));
|
|
94
|
+
for (let i = 0; i < decodedData.length; i += 1) {
|
|
95
|
+
result[i] = decodedData.charCodeAt(i);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return result;
|
|
99
|
+
};
|
|
@@ -6,6 +6,7 @@ import {useSetRoomInfo} from '../components/room-info/useSetRoomInfo';
|
|
|
6
6
|
import {GraphQLContext} from '../components/GraphQLProvider';
|
|
7
7
|
import useGetName from './useGetName';
|
|
8
8
|
import useWaitingRoomAPI from '../subComponents/waiting-rooms/useWaitingRoomAPI';
|
|
9
|
+
import {base64ToUint8Array} from '../utils';
|
|
9
10
|
|
|
10
11
|
const JOIN_CHANNEL_PHRASE_AND_GET_USER = gql`
|
|
11
12
|
query JoinChannel($passphrase: String!) {
|
|
@@ -14,6 +15,7 @@ const JOIN_CHANNEL_PHRASE_AND_GET_USER = gql`
|
|
|
14
15
|
title
|
|
15
16
|
isHost
|
|
16
17
|
secret
|
|
18
|
+
secretSalt
|
|
17
19
|
mainUser {
|
|
18
20
|
rtc
|
|
19
21
|
rtm
|
|
@@ -43,6 +45,7 @@ const JOIN_CHANNEL_PHRASE = gql`
|
|
|
43
45
|
title
|
|
44
46
|
isHost
|
|
45
47
|
secret
|
|
48
|
+
secretSalt
|
|
46
49
|
mainUser {
|
|
47
50
|
rtc
|
|
48
51
|
rtm
|
|
@@ -130,6 +133,13 @@ export default function useJoinRoom() {
|
|
|
130
133
|
? data.secret
|
|
131
134
|
: data.joinChannel.secret;
|
|
132
135
|
}
|
|
136
|
+
if (data?.joinChannel?.secretSalt || data?.secretSalt) {
|
|
137
|
+
roomInfo.encryptionSecretSalt = base64ToUint8Array(
|
|
138
|
+
isWaitingRoomEnabled
|
|
139
|
+
? data.secretSalt
|
|
140
|
+
: data.joinChannel.secretSalt,
|
|
141
|
+
);
|
|
142
|
+
}
|
|
133
143
|
if (data?.joinChannel?.screenShare?.uid || data?.screenShare?.uid) {
|
|
134
144
|
roomInfo.screenShareUid = isWaitingRoomEnabled
|
|
135
145
|
? data.screenShare.uid
|