agora-electron-sdk 0.0.0-dev.1

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.
Files changed (369) hide show
  1. package/CHANGELOG.md +315 -0
  2. package/LICENSE +21 -0
  3. package/README.md +143 -0
  4. package/gulpfile.js +52 -0
  5. package/js/AgoraSdk.js +64 -0
  6. package/js/Decoder/gpu-utils.js +74 -0
  7. package/js/Decoder/index.js +172 -0
  8. package/js/Private/AgoraBase.js +3985 -0
  9. package/js/Private/AgoraMediaBase.js +1014 -0
  10. package/js/Private/AgoraMediaPlayerTypes.js +316 -0
  11. package/js/Private/IAgoraH265Transcoder.js +36 -0
  12. package/js/Private/IAgoraLog.js +78 -0
  13. package/js/Private/IAgoraMediaEngine.js +32 -0
  14. package/js/Private/IAgoraMediaPlayer.js +16 -0
  15. package/js/Private/IAgoraMediaPlayerSource.js +3 -0
  16. package/js/Private/IAgoraMediaRecorder.js +10 -0
  17. package/js/Private/IAgoraMediaStreamingSource.js +74 -0
  18. package/js/Private/IAgoraMusicContentCenter.js +157 -0
  19. package/js/Private/IAgoraRhythmPlayer.js +62 -0
  20. package/js/Private/IAgoraRtcEngine.js +982 -0
  21. package/js/Private/IAgoraRtcEngineEx.js +19 -0
  22. package/js/Private/IAgoraSpatialAudio.js +24 -0
  23. package/js/Private/IAudioDeviceManager.js +20 -0
  24. package/js/Private/extension/AgoraBaseExtension.js +3 -0
  25. package/js/Private/extension/AgoraMediaBaseExtension.js +2 -0
  26. package/js/Private/extension/AgoraMediaPlayerTypesExtension.js +2 -0
  27. package/js/Private/extension/IAgoraH265TranscoderExtension.js +2 -0
  28. package/js/Private/extension/IAgoraLogExtension.js +2 -0
  29. package/js/Private/extension/IAgoraMediaEngineExtension.js +2 -0
  30. package/js/Private/extension/IAgoraMediaPlayerExtension.js +2 -0
  31. package/js/Private/extension/IAgoraMediaPlayerSourceExtension.js +2 -0
  32. package/js/Private/extension/IAgoraMediaRecorderExtension.js +2 -0
  33. package/js/Private/extension/IAgoraMusicContentCenterExtension.js +2 -0
  34. package/js/Private/extension/IAgoraRhythmPlayerExtension.js +2 -0
  35. package/js/Private/extension/IAgoraRtcEngineExExtension.js +2 -0
  36. package/js/Private/extension/IAgoraRtcEngineExtension.js +2 -0
  37. package/js/Private/extension/IAgoraSpatialAudioExtension.js +2 -0
  38. package/js/Private/extension/IAudioDeviceManagerExtension.js +2 -0
  39. package/js/Private/impl/AgoraBaseImpl.js +23 -0
  40. package/js/Private/impl/AgoraMediaBaseImpl.js +149 -0
  41. package/js/Private/impl/IAgoraH265TranscoderImpl.js +116 -0
  42. package/js/Private/impl/IAgoraMediaEngineImpl.js +337 -0
  43. package/js/Private/impl/IAgoraMediaPlayerImpl.js +950 -0
  44. package/js/Private/impl/IAgoraMediaPlayerSourceImpl.js +73 -0
  45. package/js/Private/impl/IAgoraMediaRecorderImpl.js +47 -0
  46. package/js/Private/impl/IAgoraMusicContentCenterImpl.js +422 -0
  47. package/js/Private/impl/IAgoraRtcEngineExImpl.js +1042 -0
  48. package/js/Private/impl/IAgoraRtcEngineImpl.js +5167 -0
  49. package/js/Private/impl/IAgoraSpatialAudioImpl.js +358 -0
  50. package/js/Private/impl/IAudioDeviceManagerImpl.js +375 -0
  51. package/js/Private/internal/AgoraH265TranscoderInternal.js +62 -0
  52. package/js/Private/internal/AgoraMediaBaseInternal.js +15 -0
  53. package/js/Private/internal/AudioDeviceManagerInternal.js +44 -0
  54. package/js/Private/internal/IrisApiEngine.js +424 -0
  55. package/js/Private/internal/LocalSpatialAudioEngineInternal.js +7 -0
  56. package/js/Private/internal/MediaEngineInternal.js +122 -0
  57. package/js/Private/internal/MediaPlayerInternal.js +194 -0
  58. package/js/Private/internal/MediaRecorderInternal.js +70 -0
  59. package/js/Private/internal/MusicContentCenterInternal.js +139 -0
  60. package/js/Private/internal/RtcEngineExInternal.js +430 -0
  61. package/js/Private/ipc/main.js +21 -0
  62. package/js/Private/ipc/renderer.js +21 -0
  63. package/js/Private/ti/AgoraBase-ti.js +40 -0
  64. package/js/Private/ti/AgoraMediaBase-ti.js +75 -0
  65. package/js/Private/ti/AgoraMediaPlayerTypes-ti.js +5 -0
  66. package/js/Private/ti/IAgoraH265Transcoder-ti.js +40 -0
  67. package/js/Private/ti/IAgoraLog-ti.js +5 -0
  68. package/js/Private/ti/IAgoraMediaEngine-ti.js +5 -0
  69. package/js/Private/ti/IAgoraMediaPlayer-ti.js +38 -0
  70. package/js/Private/ti/IAgoraMediaPlayerSource-ti.js +50 -0
  71. package/js/Private/ti/IAgoraMediaRecorder-ti.js +5 -0
  72. package/js/Private/ti/IAgoraMediaStreamingSource-ti.js +5 -0
  73. package/js/Private/ti/IAgoraMusicContentCenter-ti.js +42 -0
  74. package/js/Private/ti/IAgoraRhythmPlayer-ti.js +5 -0
  75. package/js/Private/ti/IAgoraRtcEngine-ti.js +141 -0
  76. package/js/Private/ti/IAgoraRtcEngineEx-ti.js +5 -0
  77. package/js/Private/ti/IAgoraSpatialAudio-ti.js +5 -0
  78. package/js/Private/ti/IAudioDeviceManager-ti.js +5 -0
  79. package/js/Renderer/AgoraView.js +161 -0
  80. package/js/Renderer/CapabilityManager.js +99 -0
  81. package/js/Renderer/IRenderer.js +136 -0
  82. package/js/Renderer/IRendererCache.js +75 -0
  83. package/js/Renderer/RendererCache.js +100 -0
  84. package/js/Renderer/RendererManager.js +301 -0
  85. package/js/Renderer/WebCodecsRenderer/index.js +109 -0
  86. package/js/Renderer/WebCodecsRendererCache.js +115 -0
  87. package/js/Renderer/WebGLRenderer/index.js +314 -0
  88. package/js/Renderer/WebGLRenderer/webgl-utils.js +1337 -0
  89. package/js/Renderer/YUVCanvasRenderer/index.js +46 -0
  90. package/js/Renderer/index.js +17 -0
  91. package/js/Types.js +67 -0
  92. package/js/Utils.js +187 -0
  93. package/package.json +167 -0
  94. package/scripts/bootstrap.js +29 -0
  95. package/scripts/build.js +37 -0
  96. package/scripts/buildJS.js +14 -0
  97. package/scripts/checkElectron.js +43 -0
  98. package/scripts/clean.js +16 -0
  99. package/scripts/download.js +105 -0
  100. package/scripts/downloadPrebuild.js +199 -0
  101. package/scripts/getConfig.js +73 -0
  102. package/scripts/logger.js +32 -0
  103. package/scripts/synclib.js +69 -0
  104. package/scripts/util.js +47 -0
  105. package/scripts/zipBuild.js +40 -0
  106. package/ts/AgoraSdk.ts +54 -0
  107. package/ts/Decoder/gpu-utils.ts +92 -0
  108. package/ts/Decoder/index.ts +206 -0
  109. package/ts/Private/AgoraBase.ts +5511 -0
  110. package/ts/Private/AgoraMediaBase.ts +1764 -0
  111. package/ts/Private/AgoraMediaPlayerTypes.ts +464 -0
  112. package/ts/Private/IAgoraH265Transcoder.ts +73 -0
  113. package/ts/Private/IAgoraLog.ts +91 -0
  114. package/ts/Private/IAgoraMediaEngine.ts +316 -0
  115. package/ts/Private/IAgoraMediaPlayer.ts +744 -0
  116. package/ts/Private/IAgoraMediaPlayerSource.ts +137 -0
  117. package/ts/Private/IAgoraMediaRecorder.ts +25 -0
  118. package/ts/Private/IAgoraMediaStreamingSource.ts +81 -0
  119. package/ts/Private/IAgoraMusicContentCenter.ts +455 -0
  120. package/ts/Private/IAgoraRhythmPlayer.ts +67 -0
  121. package/ts/Private/IAgoraRtcEngine.ts +7306 -0
  122. package/ts/Private/IAgoraRtcEngineEx.ts +992 -0
  123. package/ts/Private/IAgoraSpatialAudio.ts +250 -0
  124. package/ts/Private/IAudioDeviceManager.ts +342 -0
  125. package/ts/Private/extension/AgoraBaseExtension.ts +14 -0
  126. package/ts/Private/extension/AgoraMediaBaseExtension.ts +1 -0
  127. package/ts/Private/extension/AgoraMediaPlayerTypesExtension.ts +1 -0
  128. package/ts/Private/extension/IAgoraH265TranscoderExtension.ts +39 -0
  129. package/ts/Private/extension/IAgoraLogExtension.ts +1 -0
  130. package/ts/Private/extension/IAgoraMediaEngineExtension.ts +62 -0
  131. package/ts/Private/extension/IAgoraMediaPlayerExtension.ts +64 -0
  132. package/ts/Private/extension/IAgoraMediaPlayerSourceExtension.ts +1 -0
  133. package/ts/Private/extension/IAgoraMediaRecorderExtension.ts +59 -0
  134. package/ts/Private/extension/IAgoraMusicContentCenterExtension.ts +34 -0
  135. package/ts/Private/extension/IAgoraRhythmPlayerExtension.ts +1 -0
  136. package/ts/Private/extension/IAgoraRtcEngineExExtension.ts +1 -0
  137. package/ts/Private/extension/IAgoraRtcEngineExtension.ts +64 -0
  138. package/ts/Private/extension/IAgoraSpatialAudioExtension.ts +1 -0
  139. package/ts/Private/extension/IAudioDeviceManagerExtension.ts +1 -0
  140. package/ts/Private/impl/AgoraBaseImpl.ts +39 -0
  141. package/ts/Private/impl/AgoraMediaBaseImpl.ts +237 -0
  142. package/ts/Private/impl/IAgoraH265TranscoderImpl.ts +152 -0
  143. package/ts/Private/impl/IAgoraMediaEngineImpl.ts +491 -0
  144. package/ts/Private/impl/IAgoraMediaPlayerImpl.ts +1169 -0
  145. package/ts/Private/impl/IAgoraMediaPlayerSourceImpl.ts +94 -0
  146. package/ts/Private/impl/IAgoraMediaRecorderImpl.ts +59 -0
  147. package/ts/Private/impl/IAgoraMusicContentCenterImpl.ts +562 -0
  148. package/ts/Private/impl/IAgoraRtcEngineExImpl.ts +1672 -0
  149. package/ts/Private/impl/IAgoraRtcEngineImpl.ts +7352 -0
  150. package/ts/Private/impl/IAgoraSpatialAudioImpl.ts +495 -0
  151. package/ts/Private/impl/IAudioDeviceManagerImpl.ts +443 -0
  152. package/ts/Private/internal/AgoraH265TranscoderInternal.ts +97 -0
  153. package/ts/Private/internal/AgoraMediaBaseInternal.ts +15 -0
  154. package/ts/Private/internal/AudioDeviceManagerInternal.ts +46 -0
  155. package/ts/Private/internal/IrisApiEngine.ts +598 -0
  156. package/ts/Private/internal/LocalSpatialAudioEngineInternal.ts +3 -0
  157. package/ts/Private/internal/MediaEngineInternal.ts +190 -0
  158. package/ts/Private/internal/MediaPlayerInternal.ts +311 -0
  159. package/ts/Private/internal/MediaRecorderInternal.ts +100 -0
  160. package/ts/Private/internal/MusicContentCenterInternal.ts +208 -0
  161. package/ts/Private/internal/RtcEngineExInternal.ts +647 -0
  162. package/ts/Private/ipc/main.ts +22 -0
  163. package/ts/Private/ipc/renderer.ts +21 -0
  164. package/ts/Private/ti/AgoraBase-ti.ts +16 -0
  165. package/ts/Private/ti/AgoraMediaBase-ti.ts +58 -0
  166. package/ts/Private/ti/AgoraMediaPlayerTypes-ti.ts +11 -0
  167. package/ts/Private/ti/IAgoraH265Transcoder-ti.ts +16 -0
  168. package/ts/Private/ti/IAgoraLog-ti.ts +11 -0
  169. package/ts/Private/ti/IAgoraMediaEngine-ti.ts +11 -0
  170. package/ts/Private/ti/IAgoraMediaPlayer-ti.ts +14 -0
  171. package/ts/Private/ti/IAgoraMediaPlayerSource-ti.ts +26 -0
  172. package/ts/Private/ti/IAgoraMediaRecorder-ti.ts +11 -0
  173. package/ts/Private/ti/IAgoraMediaStreamingSource-ti.ts +11 -0
  174. package/ts/Private/ti/IAgoraMusicContentCenter-ti.ts +18 -0
  175. package/ts/Private/ti/IAgoraRhythmPlayer-ti.ts +11 -0
  176. package/ts/Private/ti/IAgoraRtcEngine-ti.ts +119 -0
  177. package/ts/Private/ti/IAgoraRtcEngineEx-ti.ts +11 -0
  178. package/ts/Private/ti/IAgoraSpatialAudio-ti.ts +11 -0
  179. package/ts/Private/ti/IAudioDeviceManager-ti.ts +11 -0
  180. package/ts/Renderer/AgoraView.ts +235 -0
  181. package/ts/Renderer/CapabilityManager.ts +126 -0
  182. package/ts/Renderer/IRenderer.ts +158 -0
  183. package/ts/Renderer/IRendererCache.ts +96 -0
  184. package/ts/Renderer/RendererCache.ts +124 -0
  185. package/ts/Renderer/RendererManager.ts +400 -0
  186. package/ts/Renderer/WebCodecsRenderer/index.ts +145 -0
  187. package/ts/Renderer/WebCodecsRendererCache.ts +137 -0
  188. package/ts/Renderer/WebGLRenderer/index.ts +489 -0
  189. package/ts/Renderer/WebGLRenderer/webgl-utils.js +1510 -0
  190. package/ts/Renderer/YUVCanvasRenderer/index.ts +67 -0
  191. package/ts/Renderer/index.ts +1 -0
  192. package/ts/Types.ts +249 -0
  193. package/ts/Utils.ts +197 -0
  194. package/types/AgoraSdk.d.ts +40 -0
  195. package/types/AgoraSdk.d.ts.map +1 -0
  196. package/types/Decoder/gpu-utils.d.ts +21 -0
  197. package/types/Decoder/gpu-utils.d.ts.map +1 -0
  198. package/types/Decoder/index.d.ts +26 -0
  199. package/types/Decoder/index.d.ts.map +1 -0
  200. package/types/Private/AgoraBase.d.ts +5310 -0
  201. package/types/Private/AgoraBase.d.ts.map +1 -0
  202. package/types/Private/AgoraMediaBase.d.ts +1668 -0
  203. package/types/Private/AgoraMediaBase.d.ts.map +1 -0
  204. package/types/Private/AgoraMediaPlayerTypes.d.ts +453 -0
  205. package/types/Private/AgoraMediaPlayerTypes.d.ts.map +1 -0
  206. package/types/Private/IAgoraH265Transcoder.d.ts +28 -0
  207. package/types/Private/IAgoraH265Transcoder.d.ts.map +1 -0
  208. package/types/Private/IAgoraLog.d.ts +89 -0
  209. package/types/Private/IAgoraLog.d.ts.map +1 -0
  210. package/types/Private/IAgoraMediaEngine.d.ts +250 -0
  211. package/types/Private/IAgoraMediaEngine.d.ts.map +1 -0
  212. package/types/Private/IAgoraMediaPlayer.d.ts +648 -0
  213. package/types/Private/IAgoraMediaPlayer.d.ts.map +1 -0
  214. package/types/Private/IAgoraMediaPlayerSource.d.ts +109 -0
  215. package/types/Private/IAgoraMediaPlayerSource.d.ts.map +1 -0
  216. package/types/Private/IAgoraMediaRecorder.d.ts +20 -0
  217. package/types/Private/IAgoraMediaRecorder.d.ts.map +1 -0
  218. package/types/Private/IAgoraMediaStreamingSource.d.ts +42 -0
  219. package/types/Private/IAgoraMediaStreamingSource.d.ts.map +1 -0
  220. package/types/Private/IAgoraMusicContentCenter.d.ts +381 -0
  221. package/types/Private/IAgoraMusicContentCenter.d.ts.map +1 -0
  222. package/types/Private/IAgoraRhythmPlayer.d.ts +65 -0
  223. package/types/Private/IAgoraRhythmPlayer.d.ts.map +1 -0
  224. package/types/Private/IAgoraRtcEngine.d.ts +6103 -0
  225. package/types/Private/IAgoraRtcEngine.d.ts.map +1 -0
  226. package/types/Private/IAgoraRtcEngineEx.d.ts +741 -0
  227. package/types/Private/IAgoraRtcEngineEx.d.ts.map +1 -0
  228. package/types/Private/IAgoraSpatialAudio.d.ts +196 -0
  229. package/types/Private/IAgoraSpatialAudio.d.ts.map +1 -0
  230. package/types/Private/IAudioDeviceManager.d.ts +312 -0
  231. package/types/Private/IAudioDeviceManager.d.ts.map +1 -0
  232. package/types/Private/extension/AgoraBaseExtension.d.ts +14 -0
  233. package/types/Private/extension/AgoraBaseExtension.d.ts.map +1 -0
  234. package/types/Private/extension/AgoraMediaBaseExtension.d.ts +2 -0
  235. package/types/Private/extension/AgoraMediaBaseExtension.d.ts.map +1 -0
  236. package/types/Private/extension/AgoraMediaPlayerTypesExtension.d.ts +2 -0
  237. package/types/Private/extension/AgoraMediaPlayerTypesExtension.d.ts.map +1 -0
  238. package/types/Private/extension/IAgoraH265TranscoderExtension.d.ts +24 -0
  239. package/types/Private/extension/IAgoraH265TranscoderExtension.d.ts.map +1 -0
  240. package/types/Private/extension/IAgoraLogExtension.d.ts +2 -0
  241. package/types/Private/extension/IAgoraLogExtension.d.ts.map +1 -0
  242. package/types/Private/extension/IAgoraMediaEngineExtension.d.ts +40 -0
  243. package/types/Private/extension/IAgoraMediaEngineExtension.d.ts.map +1 -0
  244. package/types/Private/extension/IAgoraMediaPlayerExtension.d.ts +46 -0
  245. package/types/Private/extension/IAgoraMediaPlayerExtension.d.ts.map +1 -0
  246. package/types/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts +2 -0
  247. package/types/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts.map +1 -0
  248. package/types/Private/extension/IAgoraMediaRecorderExtension.d.ts +44 -0
  249. package/types/Private/extension/IAgoraMediaRecorderExtension.d.ts.map +1 -0
  250. package/types/Private/extension/IAgoraMusicContentCenterExtension.d.ts +20 -0
  251. package/types/Private/extension/IAgoraMusicContentCenterExtension.d.ts.map +1 -0
  252. package/types/Private/extension/IAgoraRhythmPlayerExtension.d.ts +2 -0
  253. package/types/Private/extension/IAgoraRhythmPlayerExtension.d.ts.map +1 -0
  254. package/types/Private/extension/IAgoraRtcEngineExExtension.d.ts +2 -0
  255. package/types/Private/extension/IAgoraRtcEngineExExtension.d.ts.map +1 -0
  256. package/types/Private/extension/IAgoraRtcEngineExtension.d.ts +42 -0
  257. package/types/Private/extension/IAgoraRtcEngineExtension.d.ts.map +1 -0
  258. package/types/Private/extension/IAgoraSpatialAudioExtension.d.ts +2 -0
  259. package/types/Private/extension/IAgoraSpatialAudioExtension.d.ts.map +1 -0
  260. package/types/Private/extension/IAudioDeviceManagerExtension.d.ts +2 -0
  261. package/types/Private/extension/IAudioDeviceManagerExtension.d.ts.map +1 -0
  262. package/types/Private/impl/AgoraBaseImpl.d.ts +3 -0
  263. package/types/Private/impl/AgoraBaseImpl.d.ts.map +1 -0
  264. package/types/Private/impl/AgoraMediaBaseImpl.d.ts +14 -0
  265. package/types/Private/impl/AgoraMediaBaseImpl.d.ts.map +1 -0
  266. package/types/Private/impl/IAgoraH265TranscoderImpl.d.ts +15 -0
  267. package/types/Private/impl/IAgoraH265TranscoderImpl.d.ts.map +1 -0
  268. package/types/Private/impl/IAgoraMediaEngineImpl.d.ts +46 -0
  269. package/types/Private/impl/IAgoraMediaEngineImpl.d.ts.map +1 -0
  270. package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts +143 -0
  271. package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts.map +1 -0
  272. package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts +3 -0
  273. package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts.map +1 -0
  274. package/types/Private/impl/IAgoraMediaRecorderImpl.d.ts +11 -0
  275. package/types/Private/impl/IAgoraMediaRecorderImpl.d.ts.map +1 -0
  276. package/types/Private/impl/IAgoraMusicContentCenterImpl.d.ts +67 -0
  277. package/types/Private/impl/IAgoraMusicContentCenterImpl.d.ts.map +1 -0
  278. package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts +116 -0
  279. package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +1 -0
  280. package/types/Private/impl/IAgoraRtcEngineImpl.d.ts +628 -0
  281. package/types/Private/impl/IAgoraRtcEngineImpl.d.ts.map +1 -0
  282. package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts +47 -0
  283. package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts.map +1 -0
  284. package/types/Private/impl/IAudioDeviceManagerImpl.d.ts +65 -0
  285. package/types/Private/impl/IAudioDeviceManagerImpl.d.ts.map +1 -0
  286. package/types/Private/internal/AgoraH265TranscoderInternal.d.ts +14 -0
  287. package/types/Private/internal/AgoraH265TranscoderInternal.d.ts.map +1 -0
  288. package/types/Private/internal/AgoraMediaBaseInternal.d.ts +8 -0
  289. package/types/Private/internal/AgoraMediaBaseInternal.d.ts.map +1 -0
  290. package/types/Private/internal/AudioDeviceManagerInternal.d.ts +9 -0
  291. package/types/Private/internal/AudioDeviceManagerInternal.d.ts.map +1 -0
  292. package/types/Private/internal/IrisApiEngine.d.ts +69 -0
  293. package/types/Private/internal/IrisApiEngine.d.ts.map +1 -0
  294. package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts +4 -0
  295. package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts.map +1 -0
  296. package/types/Private/internal/MediaEngineInternal.d.ts +23 -0
  297. package/types/Private/internal/MediaEngineInternal.d.ts.map +1 -0
  298. package/types/Private/internal/MediaPlayerInternal.d.ts +30 -0
  299. package/types/Private/internal/MediaPlayerInternal.d.ts.map +1 -0
  300. package/types/Private/internal/MediaRecorderInternal.d.ts +16 -0
  301. package/types/Private/internal/MediaRecorderInternal.d.ts.map +1 -0
  302. package/types/Private/internal/MusicContentCenterInternal.d.ts +31 -0
  303. package/types/Private/internal/MusicContentCenterInternal.d.ts.map +1 -0
  304. package/types/Private/internal/RtcEngineExInternal.d.ts +73 -0
  305. package/types/Private/internal/RtcEngineExInternal.d.ts.map +1 -0
  306. package/types/Private/ipc/main.d.ts +2 -0
  307. package/types/Private/ipc/main.d.ts.map +1 -0
  308. package/types/Private/ipc/renderer.d.ts +3 -0
  309. package/types/Private/ipc/renderer.d.ts.map +1 -0
  310. package/types/Private/ti/AgoraBase-ti.d.ts +8 -0
  311. package/types/Private/ti/AgoraBase-ti.d.ts.map +1 -0
  312. package/types/Private/ti/AgoraMediaBase-ti.d.ts +15 -0
  313. package/types/Private/ti/AgoraMediaBase-ti.d.ts.map +1 -0
  314. package/types/Private/ti/AgoraMediaPlayerTypes-ti.d.ts +7 -0
  315. package/types/Private/ti/AgoraMediaPlayerTypes-ti.d.ts.map +1 -0
  316. package/types/Private/ti/IAgoraH265Transcoder-ti.d.ts +8 -0
  317. package/types/Private/ti/IAgoraH265Transcoder-ti.d.ts.map +1 -0
  318. package/types/Private/ti/IAgoraLog-ti.d.ts +7 -0
  319. package/types/Private/ti/IAgoraLog-ti.d.ts.map +1 -0
  320. package/types/Private/ti/IAgoraMediaEngine-ti.d.ts +7 -0
  321. package/types/Private/ti/IAgoraMediaEngine-ti.d.ts.map +1 -0
  322. package/types/Private/ti/IAgoraMediaPlayer-ti.d.ts +8 -0
  323. package/types/Private/ti/IAgoraMediaPlayer-ti.d.ts.map +1 -0
  324. package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts +8 -0
  325. package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts.map +1 -0
  326. package/types/Private/ti/IAgoraMediaRecorder-ti.d.ts +7 -0
  327. package/types/Private/ti/IAgoraMediaRecorder-ti.d.ts.map +1 -0
  328. package/types/Private/ti/IAgoraMediaStreamingSource-ti.d.ts +7 -0
  329. package/types/Private/ti/IAgoraMediaStreamingSource-ti.d.ts.map +1 -0
  330. package/types/Private/ti/IAgoraMusicContentCenter-ti.d.ts +8 -0
  331. package/types/Private/ti/IAgoraMusicContentCenter-ti.d.ts.map +1 -0
  332. package/types/Private/ti/IAgoraRhythmPlayer-ti.d.ts +7 -0
  333. package/types/Private/ti/IAgoraRhythmPlayer-ti.d.ts.map +1 -0
  334. package/types/Private/ti/IAgoraRtcEngine-ti.d.ts +10 -0
  335. package/types/Private/ti/IAgoraRtcEngine-ti.d.ts.map +1 -0
  336. package/types/Private/ti/IAgoraRtcEngineEx-ti.d.ts +7 -0
  337. package/types/Private/ti/IAgoraRtcEngineEx-ti.d.ts.map +1 -0
  338. package/types/Private/ti/IAgoraSpatialAudio-ti.d.ts +7 -0
  339. package/types/Private/ti/IAgoraSpatialAudio-ti.d.ts.map +1 -0
  340. package/types/Private/ti/IAudioDeviceManager-ti.d.ts +7 -0
  341. package/types/Private/ti/IAudioDeviceManager-ti.d.ts.map +1 -0
  342. package/types/Renderer/AgoraView.d.ts +76 -0
  343. package/types/Renderer/AgoraView.d.ts.map +1 -0
  344. package/types/Renderer/CapabilityManager.d.ts +20 -0
  345. package/types/Renderer/CapabilityManager.d.ts.map +1 -0
  346. package/types/Renderer/IRenderer.d.ts +20 -0
  347. package/types/Renderer/IRenderer.d.ts.map +1 -0
  348. package/types/Renderer/IRendererCache.d.ts +26 -0
  349. package/types/Renderer/IRendererCache.d.ts.map +1 -0
  350. package/types/Renderer/RendererCache.d.ts +24 -0
  351. package/types/Renderer/RendererCache.d.ts.map +1 -0
  352. package/types/Renderer/RendererManager.d.ts +66 -0
  353. package/types/Renderer/RendererManager.d.ts.map +1 -0
  354. package/types/Renderer/WebCodecsRenderer/index.d.ts +14 -0
  355. package/types/Renderer/WebCodecsRenderer/index.d.ts.map +1 -0
  356. package/types/Renderer/WebCodecsRendererCache.d.ts +15 -0
  357. package/types/Renderer/WebCodecsRendererCache.d.ts.map +1 -0
  358. package/types/Renderer/WebGLRenderer/index.d.ts +27 -0
  359. package/types/Renderer/WebGLRenderer/index.d.ts.map +1 -0
  360. package/types/Renderer/WebGLRenderer/webgl-utils.d.ts +1 -0
  361. package/types/Renderer/WebGLRenderer/webgl-utils.d.ts.map +1 -0
  362. package/types/Renderer/YUVCanvasRenderer/index.d.ts +9 -0
  363. package/types/Renderer/YUVCanvasRenderer/index.d.ts.map +1 -0
  364. package/types/Renderer/index.d.ts +2 -0
  365. package/types/Renderer/index.d.ts.map +1 -0
  366. package/types/Types.d.ts +177 -0
  367. package/types/Types.d.ts.map +1 -0
  368. package/types/Utils.d.ts +50 -0
  369. package/types/Utils.d.ts.map +1 -0
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.YUVCanvasRenderer = void 0;
4
+ const IRenderer_1 = require("../IRenderer");
5
+ const YUVBuffer = require('yuv-buffer');
6
+ const YUVCanvas = require('yuv-canvas');
7
+ class YUVCanvasRenderer extends IRenderer_1.IRenderer {
8
+ bind(element) {
9
+ super.bind(element);
10
+ this.frameSink = YUVCanvas.attach(this.canvas, {
11
+ webGL: false,
12
+ });
13
+ }
14
+ drawFrame({ width, height, yStride, uStride, vStride, yBuffer, uBuffer, vBuffer, rotation, alphaBuffer, }) {
15
+ this.rotateCanvas({ width, height, rotation });
16
+ this.updateRenderMode();
17
+ if (!this.frameSink)
18
+ return;
19
+ const frame = YUVBuffer.frame(YUVBuffer.format({
20
+ width,
21
+ height,
22
+ chromaWidth: width / 2,
23
+ chromaHeight: height / 2,
24
+ cropLeft: yStride - width,
25
+ }), {
26
+ bytes: yBuffer,
27
+ stride: yStride,
28
+ }, {
29
+ bytes: uBuffer,
30
+ stride: uStride,
31
+ }, {
32
+ bytes: vBuffer,
33
+ stride: vStride,
34
+ });
35
+ frame.a = alphaBuffer;
36
+ this.frameSink.drawFrame(frame);
37
+ super.drawFrame();
38
+ }
39
+ rotateCanvas({ width, height, rotation }) {
40
+ super.rotateCanvas({ width, height, rotation });
41
+ if (!this.canvas)
42
+ return;
43
+ this.canvas.style.transform += ` rotateZ(${rotation}deg)`;
44
+ }
45
+ }
46
+ exports.YUVCanvasRenderer = YUVCanvasRenderer;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./IRenderer"), exports);
package/js/Types.js ADDED
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.codecMapping = exports.IPCMessageType = exports.RendererType = exports.VideoFallbackStrategy = void 0;
4
+ const AgoraBase_1 = require("./Private/AgoraBase");
5
+ /**
6
+ * @ignore
7
+ */
8
+ var VideoFallbackStrategy;
9
+ (function (VideoFallbackStrategy) {
10
+ /**
11
+ * @ignore
12
+ */
13
+ VideoFallbackStrategy[VideoFallbackStrategy["PerformancePriority"] = 0] = "PerformancePriority";
14
+ /**
15
+ * @ignore
16
+ */
17
+ VideoFallbackStrategy[VideoFallbackStrategy["BandwidthPriority"] = 1] = "BandwidthPriority";
18
+ })(VideoFallbackStrategy = exports.VideoFallbackStrategy || (exports.VideoFallbackStrategy = {}));
19
+ /**
20
+ * @ignore
21
+ */
22
+ var RendererType;
23
+ (function (RendererType) {
24
+ /**
25
+ * @ignore
26
+ */
27
+ RendererType[RendererType["WEBGL"] = 1] = "WEBGL";
28
+ /**
29
+ * @ignore
30
+ */
31
+ RendererType[RendererType["SOFTWARE"] = 2] = "SOFTWARE";
32
+ /**
33
+ * @ignore
34
+ */
35
+ RendererType[RendererType["WEBCODECSRENDERER"] = 3] = "WEBCODECSRENDERER";
36
+ })(RendererType = exports.RendererType || (exports.RendererType = {}));
37
+ /**
38
+ * @ignore
39
+ */
40
+ var IPCMessageType;
41
+ (function (IPCMessageType) {
42
+ /**
43
+ * @ignore
44
+ */
45
+ IPCMessageType["AGORA_IPC_GET_GPU_INFO"] = "AGORA_IPC_GET_GPU_INFO";
46
+ })(IPCMessageType = exports.IPCMessageType || (exports.IPCMessageType = {}));
47
+ /**
48
+ * @ignore
49
+ */
50
+ exports.codecMapping = [
51
+ {
52
+ codec: 'avc1.64e01f',
53
+ type: AgoraBase_1.VideoCodecType.VideoCodecH264,
54
+ profile: 'h264',
55
+ },
56
+ {
57
+ codec: 'hvc1.1.6.L5.90',
58
+ type: AgoraBase_1.VideoCodecType.VideoCodecH265,
59
+ profile: 'hevc',
60
+ },
61
+ { codec: 'vp8', type: AgoraBase_1.VideoCodecType.VideoCodecVp8, profile: 'vp8' },
62
+ {
63
+ codec: 'vp09.00.50.08',
64
+ type: AgoraBase_1.VideoCodecType.VideoCodecVp9,
65
+ profile: 'vp9',
66
+ },
67
+ ];
package/js/Utils.js ADDED
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AgoraEnv = exports.getContextByCanvas = exports.isSupportWebGL = exports.classMix = exports.objsKeysToLowerCase = exports.logDebug = exports.logInfo = exports.logError = exports.logWarn = exports.parseIntPtr2Number = exports.DEBUG_TAG = exports.TAG = void 0;
4
+ const Types_1 = require("./Types");
5
+ /**
6
+ * @ignore
7
+ */
8
+ exports.TAG = '[Agora]: ';
9
+ /**
10
+ * @ignore
11
+ */
12
+ exports.DEBUG_TAG = '[Agora Debug]: ';
13
+ /**
14
+ * @ignore
15
+ */
16
+ function parseIntPtr2Number(value) {
17
+ try {
18
+ let bigIntVal = BigInt(value);
19
+ if (bigIntVal > 2n ** 63n - 1n) {
20
+ bigIntVal -= 2n ** 64n;
21
+ }
22
+ return Number(bigIntVal);
23
+ }
24
+ catch (e) {
25
+ return value;
26
+ }
27
+ }
28
+ exports.parseIntPtr2Number = parseIntPtr2Number;
29
+ /**
30
+ * @ignore
31
+ */
32
+ const logWarn = (msg, ...optParams) => {
33
+ if (!exports.AgoraEnv.enableLogging) {
34
+ return;
35
+ }
36
+ console.warn(`${exports.TAG} ${msg}`, ...optParams);
37
+ };
38
+ exports.logWarn = logWarn;
39
+ /**
40
+ * @ignore
41
+ */
42
+ const logError = (msg, ...optParams) => {
43
+ if (!exports.AgoraEnv.enableLogging) {
44
+ return;
45
+ }
46
+ console.error(`${exports.TAG} ${msg}`, ...optParams);
47
+ };
48
+ exports.logError = logError;
49
+ const getCurrentTime = () => {
50
+ const date = new Date();
51
+ const year = date.getFullYear().toString().slice(-2);
52
+ const month = (date.getMonth() + 1).toString().padStart(2, '0');
53
+ const day = date.getDate().toString().padStart(2, '0');
54
+ const hours = date.getHours().toString().padStart(2, '0');
55
+ const minutes = date.getMinutes().toString().padStart(2, '0');
56
+ const seconds = date.getSeconds().toString().padStart(2, '0');
57
+ const milliseconds = date.getMilliseconds().toString().padStart(3, '0');
58
+ return `${month}/${day}/${year} ${hours}:${minutes}:${seconds}:${milliseconds}`;
59
+ };
60
+ /**
61
+ * @ignore
62
+ */
63
+ const logInfo = (msg, ...optParams) => {
64
+ if (!exports.AgoraEnv.enableLogging) {
65
+ return;
66
+ }
67
+ console.info(`[${getCurrentTime()}]${exports.TAG} ${msg}`, ...optParams);
68
+ };
69
+ exports.logInfo = logInfo;
70
+ /**
71
+ * @ignore
72
+ */
73
+ const logDebug = (msg, ...optParams) => {
74
+ if (!exports.AgoraEnv.enableLogging || !exports.AgoraEnv.enableDebugLogging) {
75
+ return;
76
+ }
77
+ console.debug(`${exports.DEBUG_TAG} ${msg}`, ...optParams);
78
+ };
79
+ exports.logDebug = logDebug;
80
+ /**
81
+ * @ignore
82
+ */
83
+ const objsKeysToLowerCase = (array) => {
84
+ array.forEach((obj) => {
85
+ for (const key in obj) {
86
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
87
+ const element = obj[key];
88
+ obj[key.toLocaleLowerCase()] = element;
89
+ }
90
+ }
91
+ });
92
+ };
93
+ exports.objsKeysToLowerCase = objsKeysToLowerCase;
94
+ /**
95
+ * @ignore
96
+ */
97
+ function classMix(...mixins) {
98
+ class MixClass {
99
+ constructor() {
100
+ for (let mixin of mixins) {
101
+ copyProperties(this, new mixin()); // Copy instance properties
102
+ }
103
+ }
104
+ }
105
+ for (let mixin of mixins) {
106
+ copyProperties(MixClass, mixin); // Copy static properties
107
+ copyProperties(MixClass.prototype, mixin.prototype); // Copy prototype properties
108
+ }
109
+ return MixClass;
110
+ }
111
+ exports.classMix = classMix;
112
+ function copyProperties(target, source) {
113
+ for (let key of Reflect.ownKeys(source)) {
114
+ if (key !== 'constructor' && key !== 'prototype' && key !== 'name') {
115
+ let desc = Object.getOwnPropertyDescriptor(source, key);
116
+ Object.defineProperty(target, key, desc);
117
+ }
118
+ }
119
+ }
120
+ /**
121
+ * @ignore
122
+ */
123
+ function isSupportWebGL() {
124
+ let flag = false;
125
+ const canvas = document.createElement('canvas');
126
+ try {
127
+ const getContext = (contextNames = ['webgl2', 'webgl', 'experimental-webgl']) => {
128
+ for (let i = 0; i < contextNames.length; i++) {
129
+ const contextName = contextNames[i];
130
+ const context = canvas?.getContext(contextName);
131
+ if (context) {
132
+ return context;
133
+ }
134
+ }
135
+ return null;
136
+ };
137
+ let gl = getContext();
138
+ flag = !!gl;
139
+ gl?.getExtension('WEBGL_lose_context')?.loseContext();
140
+ gl = null;
141
+ (0, exports.logInfo)('Your browser support webGL');
142
+ }
143
+ catch (e) {
144
+ (0, exports.logWarn)('Your browser may not support webGL');
145
+ flag = false;
146
+ }
147
+ return flag;
148
+ }
149
+ exports.isSupportWebGL = isSupportWebGL;
150
+ /**
151
+ * @ignore
152
+ */
153
+ function getContextByCanvas(
154
+ // eslint-disable-next-line auto-import/auto-import
155
+ canvas) {
156
+ const contextNames = ['webgl2', 'webgl', 'experimental-webgl'];
157
+ for (const contextName of contextNames) {
158
+ //@ts-ignore
159
+ const context = canvas.getContext(contextName, {
160
+ depth: true,
161
+ stencil: true,
162
+ alpha: false,
163
+ antialias: false,
164
+ premultipliedAlpha: true,
165
+ preserveDrawingBuffer: true,
166
+ powerPreference: 'default',
167
+ failIfMajorPerformanceCaveat: false,
168
+ });
169
+ if (context) {
170
+ return context;
171
+ }
172
+ }
173
+ return null;
174
+ }
175
+ exports.getContextByCanvas = getContextByCanvas;
176
+ /**
177
+ * @ignore
178
+ */
179
+ exports.AgoraEnv = {
180
+ enableLogging: true,
181
+ enableDebugLogging: false,
182
+ webEnvReady: true,
183
+ enableWebCodecsDecoder: false,
184
+ encodeAlpha: false,
185
+ videoFallbackStrategy: Types_1.VideoFallbackStrategy.PerformancePriority,
186
+ maxDecodeRetryCount: 50,
187
+ };
package/package.json ADDED
@@ -0,0 +1,167 @@
1
+ {
2
+ "name": "agora-electron-sdk",
3
+ "version": "0.0.0-dev.1",
4
+ "description": "agora-electron-sdk",
5
+ "main": "js/AgoraSdk",
6
+ "types": "types/AgoraSdk.d.ts",
7
+ "source": "ts/AgoraSdk",
8
+ "files": [
9
+ "js",
10
+ "ts",
11
+ "types",
12
+ "scripts",
13
+ "!scripts/terra",
14
+ "!scripts/publishCN",
15
+ "!scripts/internal",
16
+ "gulpfile.js",
17
+ "CHANGELOG.md",
18
+ "!**/__tests__"
19
+ ],
20
+ "scripts": {
21
+ "postinstall": "npm run checkElectron",
22
+ "totalBuild": "cross-env-shell gulp totalBuild \\\"--INIT_CWD=$INIT_CWD\\\"",
23
+ "build": "cross-env-shell gulp build \\\"--INIT_CWD=$INIT_CWD\\\"",
24
+ "clean": "cross-env-shell gulp clean \\\"--INIT_CWD=$INIT_CWD\\\"",
25
+ "checkElectron": "cross-env-shell gulp checkElectron \\\"--INIT_CWD=$INIT_CWD\\\"",
26
+ "syncLib": "cross-env-shell gulp syncLib \\\"--INIT_CWD=$INIT_CWD\\\"",
27
+ "buildJS": "cross-env-shell gulp buildJS \\\"--INIT_CWD=$INIT_CWD\\\"",
28
+ "zipBuild": "cross-env-shell gulp zipBuild \\\"--INIT_CWD=$INIT_CWD\\\"",
29
+ "prepack": "cross-env-shell npm run buildJS \\\"--INIT_CWD=$INIT_CWD\\\"",
30
+ "build_mac_debug": "cmake-js rebuild --CDCMAKE_BUILD_TYPE=Debug --CDCMAKE_OSX_ARCHITECTURES=\"arm64;x86_64\" -G Xcode",
31
+ "build_mac_release": "cmake-js rebuild --CDCMAKE_BUILD_TYPE=Release --CDCMAKE_OSX_ARCHITECTURES=\"arm64;x86_64\" -G Xcode",
32
+ "build_windows_win32_debug": "cmake-js rebuild --arch=ia32 --CDCMAKE_OSX_ARCHITECTURES=\"i386\" --CDCMAKE_BUILD_TYPE=Debug -G \"Visual Studio 16 2019\" ",
33
+ "build_windows_win32_release": "cmake-js rebuild --arch=ia32 --CDCMAKE_OSX_ARCHITECTURES=\"i386\" --CDCMAKE_BUILD_TYPE=Release",
34
+ "build_windows_x64_debug": "cmake-js rebuild --arch=x64 --CDCMAKE_OSX_ARCHITECTURES=\"x86_64\" --CDCMAKE_BUILD_TYPE=Debug -G \"Visual Studio 16 2019\"",
35
+ "build_windows_x64_release": "cmake-js rebuild --arch=x64 --CDCMAKE_OSX_ARCHITECTURES=\"x86_64\" --CDCMAKE_BUILD_TYPE=Release",
36
+ "build_linux_debug": "cmake-js rebuild --arch=x64 --CDCMAKE_BUILD_TYPE=Debug -G \"Unix Makefiles\"",
37
+ "build_linux_release": "cmake-js rebuild --arch=x64 --CDCMAKE_BUILD_TYPE=Release -G \"Unix Makefiles\"",
38
+ "test": "jest",
39
+ "typecheck": "tsc --noEmit",
40
+ "lint": "eslint \"**/*.{js,ts,tsx}\"",
41
+ "install": "cross-env-shell gulp NPM_Install \\\"--INIT_CWD=$INIT_CWD\\\"",
42
+ "release": "release-it",
43
+ "example": "yarn --cwd example",
44
+ "example:prepare": "yarn example && cross-env-shell gulp checkElectron \\\"--INIT_CWD=$INIT_CWD/example\\\" \"--electron_path=$INIT_CWD/example/node_modules/electron/dist\"",
45
+ "bootstrap": "yarn config set agora-electron-sdk-pre-built 0 && yarn example && yarn install && yarn patch-package && yarn build:ts-interface && yarn totalBuild && yarn link && yarn example link agora-electron-sdk && yarn config delete agora-electron-sdk-pre-built && yarn example:prepare",
46
+ "build:ts-interface": "ts-interface-builder ts/Private/*.ts -o ts/Private/ti/"
47
+ },
48
+ "keywords": [
49
+ "electron",
50
+ "windows",
51
+ "mac"
52
+ ],
53
+ "repository": "https://github.com/AgoraIO-Extensions/Electron-SDK",
54
+ "author": "Agora.io",
55
+ "license": "MIT",
56
+ "bugs": {
57
+ "url": "https://github.com/AgoraIO-Extensions/Electron-SDK/issues"
58
+ },
59
+ "homepage": "https://github.com/AgoraIO-Extensions/Electron-SDK#readme",
60
+ "publishConfig": {
61
+ "registry": "https://registry.npmjs.org/"
62
+ },
63
+ "devDependencies": {
64
+ "@babel/preset-env": "^7.21.5",
65
+ "@babel/preset-typescript": "^7.21.5",
66
+ "@commitlint/config-conventional": "^17.0.2",
67
+ "@evilmartians/lefthook": "^1.2.2",
68
+ "@release-it/conventional-changelog": "^5.0.0",
69
+ "@types/dom-webcodecs": "^0.1.11",
70
+ "@types/node": "^22.8.2",
71
+ "@types/jest": "^28.1.2",
72
+ "@types/json-bigint": "^1.0.1",
73
+ "@types/lodash.isequal": "^4.5.6",
74
+ "@typescript-eslint/eslint-plugin": "^5.30.5",
75
+ "@typescript-eslint/parser": "^5.30.5",
76
+ "cmake-js": "6.3.2",
77
+ "commitlint": "^17.0.2",
78
+ "eslint": "^8.4.1",
79
+ "eslint-config-prettier": "^8.5.0",
80
+ "eslint-plugin-auto-import": "^0.1.1",
81
+ "eslint-plugin-import": "^2.27.5",
82
+ "eslint-plugin-jest": "^26.9.0",
83
+ "eslint-plugin-prettier": "^4.0.0",
84
+ "eslint-plugin-react": "^7.30.1",
85
+ "eslint-plugin-react-hooks": "^4.6.0",
86
+ "gulp-zip": "^5.1.0",
87
+ "jest": "^28.1.1",
88
+ "patch-package": "^6.5.0",
89
+ "prettier": "^2.0.5",
90
+ "release-it": "^15.0.0",
91
+ "ts-interface-builder": "^0.3.3",
92
+ "typescript": "^4.5.2"
93
+ },
94
+ "engines": {
95
+ "node": ">= 14.0.0"
96
+ },
97
+ "jest": {
98
+ "setupFilesAfterEnv": [
99
+ "<rootDir>/ts/__tests__/setup.ts"
100
+ ],
101
+ "modulePathIgnorePatterns": [
102
+ "<rootDir>/ts/__tests__/setup.ts",
103
+ "<rootDir>/example/node_modules",
104
+ "<rootDir>/js/",
105
+ "<rootDir>/types/"
106
+ ]
107
+ },
108
+ "commitlint": {
109
+ "extends": [
110
+ "@commitlint/config-conventional"
111
+ ]
112
+ },
113
+ "release-it": {
114
+ "git": {
115
+ "commitMessage": "chore: release ${version}",
116
+ "tagName": "v${version}"
117
+ },
118
+ "npm": {
119
+ "publish": true
120
+ },
121
+ "github": {
122
+ "release": true
123
+ },
124
+ "plugins": {
125
+ "@release-it/conventional-changelog": {
126
+ "preset": "angular",
127
+ "infile": "CHANGELOG.md"
128
+ }
129
+ }
130
+ },
131
+ "dependencies": {
132
+ "buffer": "^6.0.3",
133
+ "cross-env": "^7.0.3",
134
+ "node-fetch": "^2.7.0",
135
+ "extract-zip": "^2.0.1",
136
+ "eventemitter3": "^5.0.1",
137
+ "fs-extra": "^11.1.1",
138
+ "gulp": "^5.0.0",
139
+ "json-bigint": "^1.0.0",
140
+ "jsonfile": "^6.1.0",
141
+ "lodash.isequal": "^4.5.0",
142
+ "minimist": "^1.2.8",
143
+ "shelljs": "^0.8.5",
144
+ "semver": "^7.6.0",
145
+ "ts-interface-checker": "^1.0.2",
146
+ "winston": "^3.11.0",
147
+ "yuv-buffer": "1.0.0",
148
+ "yuv-canvas": "1.2.6",
149
+ "archive-type": "^4.0.0",
150
+ "content-disposition": "^0.5.2",
151
+ "decompress": "^4.2.1",
152
+ "ext-name": "^5.0.0",
153
+ "file-type": "^11.1.0",
154
+ "filenamify": "^3.0.0",
155
+ "get-stream": "^4.1.0",
156
+ "got": "^11.8.5",
157
+ "make-dir": "^5.0.0",
158
+ "p-event": "^2.1.0",
159
+ "pify": "^4.0.1"
160
+ },
161
+ "agora_electron": {
162
+ "iris_sdk_win": "https://download.agora.io/sdk/release/iris_4.5.1-build.1_DCG_Windows_Video_Standalone_20250305_1103_622.zip",
163
+ "iris_sdk_mac": "https://download.agora.io/sdk/release/iris_4.5.1-build.1_DCG_Mac_Video_Standalone_20250305_1105_590.zip",
164
+ "native_sdk_win": "https://download.agora.io/sdk/release/Agora_Native_SDK_for_Windows_v4.5.1_FULL.zip",
165
+ "native_sdk_mac": "https://download.agora.io/sdk/release/Agora_Native_SDK_for_Mac_v4.5.1_FULL.zip"
166
+ }
167
+ }
@@ -0,0 +1,29 @@
1
+ const child_process = require('child_process');
2
+ const os = require('os');
3
+ const path = require('path');
4
+
5
+ const root = path.resolve(__dirname, '..');
6
+ const args = process.argv.slice(2);
7
+ const options = {
8
+ cwd: process.cwd(),
9
+ env: process.env,
10
+ stdio: 'inherit',
11
+ encoding: 'utf-8',
12
+ };
13
+
14
+ if (os.type() === 'Windows_NT') {
15
+ options.shell = true;
16
+ }
17
+
18
+ let result;
19
+
20
+ if (process.cwd() !== root || args.length) {
21
+ // We're not in the root of the project, or additional arguments were passed
22
+ // In this case, forward the command to `yarn`
23
+ result = child_process.spawnSync('yarn', args, options);
24
+ } else {
25
+ // If `yarn` is run without arguments, perform bootstrap
26
+ result = child_process.spawnSync('yarn', ['bootstrap'], options);
27
+ }
28
+
29
+ process.exitCode = result.status;
@@ -0,0 +1,37 @@
1
+ const { exec, error } = require('shelljs');
2
+
3
+ const getConfig = require('./getConfig');
4
+ const logger = require('./logger');
5
+ const { getOS } = require('./util');
6
+
7
+ const { debug, arch } = getConfig();
8
+
9
+ const build = async (cb) => {
10
+ let scriptStr;
11
+ switch (getOS()) {
12
+ case 'mac':
13
+ scriptStr = debug ? 'build_mac_debug' : 'build_mac_release';
14
+ break;
15
+ case 'win32':
16
+ if (arch === 'x64') {
17
+ scriptStr = debug
18
+ ? 'build_windows_x64_debug'
19
+ : 'build_windows_x64_release';
20
+ } else {
21
+ scriptStr = debug
22
+ ? 'build_windows_win32_debug'
23
+ : 'build_windows_win32_release';
24
+ }
25
+ break;
26
+ default:
27
+ break;
28
+ }
29
+ scriptStr = `npm run ${scriptStr}`;
30
+ logger.info(`Will to run: ${scriptStr}`);
31
+ await exec(scriptStr, { silent: false });
32
+ const err = error();
33
+ if (err) throw err;
34
+ cb();
35
+ };
36
+
37
+ module.exports = build;
@@ -0,0 +1,14 @@
1
+ const { exec } = require('shelljs');
2
+
3
+ const { cleanDir, typesDir, jsDir } = require('./clean');
4
+ const logger = require('./logger');
5
+
6
+ const buildJS = async (cb) => {
7
+ logger.info('Build js from typescript');
8
+ await cleanDir(jsDir);
9
+ await cleanDir(typesDir);
10
+ await exec('tsc -p tsconfig.build.json', { silent: false });
11
+ cb();
12
+ };
13
+
14
+ module.exports = buildJS;
@@ -0,0 +1,43 @@
1
+ const path = require('path');
2
+
3
+ const { cleanDir } = require('./clean');
4
+ const download = require('./download');
5
+
6
+ const getConfig = require('./getConfig');
7
+ const logger = require('./logger');
8
+
9
+ const config = getConfig();
10
+ const { electron_version, arch, platform } = config;
11
+ let { electron_path } = config;
12
+ const checkElectron = async (cb) => {
13
+ logger.info(`start sync electron`);
14
+ if (!electron_version || platform !== 'darwin') {
15
+ cb();
16
+ logger.info('electron_version is not set or os is not mac, skip sync');
17
+ return;
18
+ }
19
+
20
+ if (!electron_path) {
21
+ try {
22
+ electron_path = require.resolve('electron');
23
+ } catch (error) {
24
+ logger.info('Electron is not installed, skip sync');
25
+ cb();
26
+ return;
27
+ }
28
+ }
29
+ let tp = path.join(electron_path, `../dist`);
30
+ let downloadUrl = `https://download.agora.io/sdk/release/electron-v${electron_version}-${platform}-${arch}.zip`;
31
+ logger.info(`Downloading:${downloadUrl}`);
32
+ await cleanDir(tp);
33
+
34
+ await download(downloadUrl, tp, {
35
+ extract: true,
36
+ });
37
+
38
+ logger.info(`Finish download:${downloadUrl}`);
39
+ logger.info(`sync electron success`);
40
+ cb();
41
+ };
42
+
43
+ module.exports = checkElectron;
@@ -0,0 +1,16 @@
1
+ const path = require('path');
2
+
3
+ const fs = require('fs-extra');
4
+
5
+ const logger = require('./logger');
6
+
7
+ exports.destIrisSDKDir = path.join(__dirname, `../iris`);
8
+ exports.destNativeSDKDir = path.join(__dirname, `../native`);
9
+ exports.buildDir = path.resolve(__dirname, '../build');
10
+ exports.jsDir = path.resolve(__dirname, '../js');
11
+ exports.typesDir = path.resolve(__dirname, '../types');
12
+
13
+ exports.cleanDir = async (dir) => {
14
+ await fs.remove(dir);
15
+ logger.info(`clean:${dir}`);
16
+ };