trtc-cloud-js-sdk 1.0.13 → 2.0.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.
Files changed (143) hide show
  1. package/.eslintrc.js +88 -0
  2. package/.prettierrc +5 -0
  3. package/CHANGELOG.md +58 -0
  4. package/build/jsdoc/clean-doc.js +12 -0
  5. package/build/jsdoc/fix-doc.js +141 -0
  6. package/build/jsdoc/jsdoc.json +42 -0
  7. package/build/package-bundle.js +29 -0
  8. package/build/rollup.config.dev.js +88 -0
  9. package/build/rollup.config.prod.js +93 -0
  10. package/build/rollup.js +359 -0
  11. package/build/template/npm-package/package.json +24 -0
  12. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/base.css +213 -0
  13. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/index.html +80 -0
  14. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/prettify.css +1 -0
  15. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/prettify.js +1 -0
  16. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/sort-arrow-sprite.png +0 -0
  17. package/coverage/Chrome 103.0.5060 (Mac OS X 10.15.7)/sorter.js +158 -0
  18. package/examples/apiExample/.env +2 -0
  19. package/examples/apiExample/README.md +70 -0
  20. package/examples/apiExample/package-lock.json +30915 -0
  21. package/examples/apiExample/package.json +51 -0
  22. package/examples/apiExample/public/audio.js +195 -0
  23. package/examples/apiExample/public/audio.js.map +7 -0
  24. package/examples/apiExample/public/av_processing.js +1 -0
  25. package/examples/apiExample/public/basic/av_processing.wasm +0 -0
  26. package/examples/apiExample/public/basic/worker.js +10434 -0
  27. package/examples/apiExample/public/favicon.ico +0 -0
  28. package/examples/apiExample/public/index.html +47 -0
  29. package/examples/apiExample/public/logo192.png +0 -0
  30. package/examples/apiExample/public/logo512.png +0 -0
  31. package/examples/apiExample/public/manifest.json +25 -0
  32. package/examples/apiExample/public/robots.txt +3 -0
  33. package/examples/apiExample/src/App.css +37 -0
  34. package/examples/apiExample/src/App.js +25 -0
  35. package/examples/apiExample/src/api/http.js +127 -0
  36. package/examples/apiExample/src/api/nav.js +44 -0
  37. package/examples/apiExample/src/components/BasicInfoComponent.css +16 -0
  38. package/examples/apiExample/src/components/BasicInfoComponent.js +27 -0
  39. package/examples/apiExample/src/config/gen-test-user-sig.js +64 -0
  40. package/examples/apiExample/src/config/lib-generate-test-usersig.min.js +7052 -0
  41. package/examples/apiExample/src/config/nav.js +136 -0
  42. package/examples/apiExample/src/home.js +16 -0
  43. package/examples/apiExample/src/index.css +21 -0
  44. package/examples/apiExample/src/index.js +12 -0
  45. package/examples/apiExample/src/logo.svg +1 -0
  46. package/examples/apiExample/src/page/basic/screen-share/index.css +52 -0
  47. package/examples/apiExample/src/page/basic/screen-share/index.js +223 -0
  48. package/examples/apiExample/src/page/basic/setDevice/index.js +262 -0
  49. package/examples/apiExample/src/page/basic/setDevice/index.scss +93 -0
  50. package/examples/apiExample/src/page/basic/video-call/index.js +521 -0
  51. package/examples/apiExample/src/page/basic/video-call/index.scss +93 -0
  52. package/examples/apiExample/src/page/basic/video-call-init/index.js +382 -0
  53. package/examples/apiExample/src/page/basic/video-call-init/index.scss +93 -0
  54. package/examples/apiExample/src/page/basic/video-live/index.css +37 -0
  55. package/examples/apiExample/src/page/basic/video-live/index.js +188 -0
  56. package/examples/apiExample/src/page/layout.js +22 -0
  57. package/examples/apiExample/src/page/layout.scss +76 -0
  58. package/examples/apiExample/src/utils/utils.js +35 -0
  59. package/examples/jsExample/assets/css/bootstrap-material-design.css +12169 -0
  60. package/examples/jsExample/assets/css/bootstrap-material-design.min.css +8 -0
  61. package/examples/jsExample/assets/css/common.css +48 -0
  62. package/examples/jsExample/assets/icon/iconfont.js +1 -0
  63. package/examples/jsExample/assets/js/bootstrap-material-design.js +6939 -0
  64. package/examples/jsExample/assets/js/bootstrap-material-design.js.map +1 -0
  65. package/examples/jsExample/assets/js/bootstrap-material-design.min.js +1 -0
  66. package/examples/jsExample/assets/js/graph.js +695 -0
  67. package/examples/jsExample/assets/js/jquery-3.2.1.min.js +4 -0
  68. package/examples/jsExample/assets/js/jquery-3.2.1.slim.min.js +4 -0
  69. package/examples/jsExample/assets/js/lib-generate-test-usersig.min.js +2 -0
  70. package/examples/jsExample/assets/js/popper.js +2442 -0
  71. package/examples/jsExample/index.html +57 -0
  72. package/examples/jsExample/rtc/css/common.css +82 -0
  73. package/examples/jsExample/rtc/index.html +107 -0
  74. package/examples/jsExample/rtc/js/index.js +142 -0
  75. package/examples/vueDemo/LICENSE +21 -0
  76. package/examples/vueDemo/README.md +144 -0
  77. package/examples/vueDemo/README_EN.md +136 -0
  78. package/examples/vueDemo/av_processing.wasm +0 -0
  79. package/examples/vueDemo/index.html +23 -0
  80. package/examples/vueDemo/package-lock.json +1375 -0
  81. package/examples/vueDemo/package.json +36 -0
  82. package/examples/vueDemo/src/App.vue +12 -0
  83. package/examples/vueDemo/src/api/index.js +59 -0
  84. package/examples/vueDemo/src/assets/css/color-dark.css +28 -0
  85. package/examples/vueDemo/src/assets/css/icon.css +4 -0
  86. package/examples/vueDemo/src/assets/css/main.css +177 -0
  87. package/examples/vueDemo/src/assets/img/img.jpg +0 -0
  88. package/examples/vueDemo/src/assets/img/login-bg.jpg +0 -0
  89. package/examples/vueDemo/src/components/Header.vue +172 -0
  90. package/examples/vueDemo/src/components/Sidebar.vue +117 -0
  91. package/examples/vueDemo/src/components/Tags.vue +174 -0
  92. package/examples/vueDemo/src/components/tendency.vue +206 -0
  93. package/examples/vueDemo/src/components/trtc/main-menu.vue +50 -0
  94. package/examples/vueDemo/src/components/trtc/nav-bar.vue +53 -0
  95. package/examples/vueDemo/src/components/trtc/show-screen-capture.vue +118 -0
  96. package/examples/vueDemo/src/components/trtc/trtc-state-check.vue +117 -0
  97. package/examples/vueDemo/src/config/gen-test-user-sig.js +67 -0
  98. package/examples/vueDemo/src/config/lib-generate-test-usersig.min.js +7052 -0
  99. package/examples/vueDemo/src/main.js +11 -0
  100. package/examples/vueDemo/src/plugins/element.js +17 -0
  101. package/examples/vueDemo/src/router/index.js +73 -0
  102. package/examples/vueDemo/src/store/sidebar.js +17 -0
  103. package/examples/vueDemo/src/store/tags.js +48 -0
  104. package/examples/vueDemo/src/utils/i18n.js +24 -0
  105. package/examples/vueDemo/src/utils/request.js +34 -0
  106. package/examples/vueDemo/src/utils/utils.js +35 -0
  107. package/examples/vueDemo/src/views/Home.vue +46 -0
  108. package/examples/vueDemo/src/views/I18n.vue +40 -0
  109. package/examples/vueDemo/src/views/Icon.vue +229 -0
  110. package/examples/vueDemo/src/views/basic/trtc.vue +194 -0
  111. package/examples/vueDemo/src/views/feature/index.vue +259 -0
  112. package/examples/vueDemo/src/views/github/index.vue +243 -0
  113. package/examples/vueDemo/src/views/improve/live-index.vue +256 -0
  114. package/examples/vueDemo/src/views/improve/live-room-anchor.vue +689 -0
  115. package/examples/vueDemo/src/views/improve/live-room-audience.vue +383 -0
  116. package/examples/vueDemo/src/views/sdkAppId/index.vue +284 -0
  117. package/examples/vueDemo/vite.config.js +18 -0
  118. package/examples/vueDemo/worker.js +22 -0
  119. package/karma.conf.js +99 -0
  120. package/package.json +57 -7
  121. package/scripts/publish.js +86 -0
  122. package/src/Camera.ts +80 -0
  123. package/src/Mic.ts +145 -0
  124. package/src/common/IError.ts +6 -0
  125. package/src/common/ITRTCCloud.ts +68 -0
  126. package/src/common/constants.ts +116 -0
  127. package/src/common/trtc-code.ts +43 -0
  128. package/src/common/trtc-define.ts +1007 -0
  129. package/src/common/trtc-event.ts +29 -0
  130. package/src/index.ts +1672 -0
  131. package/src/utils/environment.js +297 -0
  132. package/src/utils/raf.js +131 -0
  133. package/src/utils/time.js +22 -0
  134. package/src/utils/utils.ts +71 -0
  135. package/src/utils/uuid.js +12 -0
  136. package/test/unit/env.test.js +25 -0
  137. package/test/unit/get-user-media.test.js +40 -0
  138. package/test/unit/ice-parser.test.js +23 -0
  139. package/test/unit/sdp.test.js +45 -0
  140. package/test/unit/signal.test.js +78 -0
  141. package/tsconfig.json +32 -0
  142. package/trtc-cloud-js-sdk.js +0 -1
  143. /package/{README.md → build/template/npm-package/README.md} +0 -0
package/.eslintrc.js ADDED
@@ -0,0 +1,88 @@
1
+ module.exports = {
2
+ parser: '@typescript-eslint/parser',
3
+ extends: ['eslint-config-tencent'],
4
+ rules: {
5
+ indent: ['error', 2, { SwitchCase: 1 }], // 缩进
6
+ semi: ['error', 'always'],
7
+ 'no-unused-vars': [
8
+ // 禁止出现未使用过的变量
9
+ 'error',
10
+ {
11
+ args: 'none', // 不检查参数
12
+ },
13
+ ],
14
+ "@typescript-eslint/no-unused-vars": [
15
+ "error",
16
+ { "argsIgnorePattern": "^_" }
17
+ ],
18
+ // 要求构造函数首字母大写 (要求调用 new 操作符时有首字母大小的函数,允许调用首字母大写的函数时没有 new 操作符。)
19
+ 'new-cap': [
20
+ 2,
21
+ {
22
+ newIsCap: true, // 要求调用 `new` 操作符时有首字母大小的函数
23
+ capIsNew: false, // 允许调用首字母大写的函数时没有 `new` 操作符
24
+ },
25
+ ],
26
+ 'no-console': 'off', // 禁用 console
27
+ 'no-empty': 'warn', // 禁止出现空语句块
28
+ 'linebreak-style': 'off', // 强制使用一致的换行风格
29
+ 'require-jsdoc': 'off',
30
+ 'max-len': [
31
+ 'warn',
32
+ {
33
+ code: 160,
34
+ ignoreComments: true, // 忽略所有拖尾注释和行内注释
35
+ ignoreUrls: true, // 忽略含有链接的行
36
+ },
37
+ ],
38
+ 'valid-jsdoc': [
39
+ 'warn',
40
+ {
41
+ prefer: {
42
+ return: 'returns', // instead of @return use @returns
43
+ },
44
+ requireReturn: false, // if and only if the function or method has a return statement or returns a value e.g.
45
+ requireReturnDescription: false, // allows missing description in return tags
46
+ },
47
+ ],
48
+ 'object-curly-spacing': [
49
+ 'error',
50
+ 'always', // 要求花括号内有空格
51
+ ],
52
+ eqeqeq: [
53
+ 'error',
54
+ 'always', // enforces the use of === and !== in every situation
55
+ ],
56
+ 'no-alert': 'error', // 禁止使用alert confirm prompt
57
+ 'no-nested-ternary': 'error', // 禁止使用嵌套的三目运算
58
+ 'space-unary-ops': [
59
+ 'error',
60
+ {
61
+ words: true, // 一元操作符,例如:new、delete、typeof、void、yield 后需要有空格
62
+ nonwords: false, // 一元操作符: -、+、--、++、!、!! 前不能有空格
63
+ },
64
+ ],
65
+ 'key-spacing': [
66
+ 'error',
67
+ {
68
+ mode: 'strict', // enforces exactly one space before or after colons in object literals. 禁止对齐
69
+ beforeColon: false, // disallows spaces between the key and the colon in object literals
70
+ afterColon: true, // requires at least one space between the colon and the value in object literals
71
+ },
72
+ ],
73
+ 'space-infix-ops': 'error', // 中缀操作符周围有空格
74
+ 'no-else-return': [
75
+ 'error',
76
+ {
77
+ allowElseIf: false, // disallows else if blocks after a return
78
+ },
79
+ ],
80
+ 'prefer-rest-params': 'off', // 用arguments没什么不好的
81
+ 'guard-for-in': 'error', // for in时需检测hasOwnProperty,避免遍历到继承来的属性方法
82
+ 'prefer-spread': 'off', // 用apply也挺好的,es2015的spread syntax不是个必选项
83
+ 'no-underscore-dangle': 'off', // 允许使用悬空下划线, 主要用来表示对象中的 "私有" 成员. ref: https://eslint.bootcss.com/docs/rules/no-underscore-dangle
84
+ 'no-param-reassign': 'off', // 赋值给声明为函数参数的变量可能会引起误解,并导致混淆行为, TODO: 后续删除 ref: https://cloud.tencent.com/developer/section/1135734
85
+ 'no-multi-spaces': 'error',
86
+ 'camelcase': 'off',
87
+ },
88
+ };
package/.prettierrc ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "printWidth": 200,
3
+ "trailingComma": "all",
4
+ "singleQuote": true
5
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,58 @@
1
+ ## [1.0.7] (2023-04-18)
2
+
3
+ #### 修复
4
+ - 修复没有本地流情况下切换设备报错的问题。
5
+ - 修复发布流时没有本地流的时候设置 isPublished 为 true 的问题。
6
+ - 修复本地播放流没有设置 videoProfile 的问题。
7
+ - 修复摄像头拔出时本地播放流没有切换摄像头的问题。
8
+
9
+
10
+ ## [1.0.5] (2023-02-06)
11
+
12
+ #### 修复
13
+ - 修复主播切换至观众时,未设置推流状态问题。
14
+ - http + ip 环境时,navigator.mediaDeices 为 undefined,无法监听设备切换。
15
+
16
+
17
+ ## [1.0.4] (2022-09-22)
18
+
19
+ #### 优化
20
+ - 进房支持额外参数,[WebRTC](https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-01-info-changelog.html) 必须要 ≥ v4.15.2。
21
+
22
+
23
+ ## [1.0.3] (2022-12-08)
24
+
25
+ #### 新增
26
+ - 增加 onFirstVideoFrame, onMicDidReady 事件。
27
+ - 为 onNetworkQuality 事件增加 remoteQuality 参数。
28
+ - mute 操作增加状态变量,用于记录用户的操作记录。
29
+ - 辅流推屏幕分享, 不向下兼容。WebRTC ≥ 4.15.0。
30
+ - 屏幕分享接口增加参数: 本地预览/编码参数设置。
31
+
32
+ #### 修复
33
+ - 停止预览时,将本地预览流设置为 null。
34
+ - 观众切换为主播推流后, 没有设置推流状态问题修复。
35
+ - muteAudio --> enterRoom --> startLocalPreview --> startLocalAudio 后会将 audio 推出去问题修复。
36
+ - muteAudio&muteVideo -> 进房 -> startLocalPreview&startLocalAuido -> unmuteAuido&unmuteVideo -> stopLocalPreview -> muteVideo -> startLocalPreview -> unmuteVideo。此时远端收不到 onUserVideoAvailable hasVideo 为 1 问题修复。
37
+ - muteAudio&muteVideo -> 进房 -> startLocalPreview&startLocalAuido -> unmuteAuido&unmuteVideo 抛出的 onUserAudioAvailable 错误问题修复。
38
+ - setVideoProfile 没有设置本地预览流问题修复。
39
+
40
+ #### 优化
41
+ - muteLocalVideo/muteLocalAudio 方法对其 [Electron SDK API](https://web.sdk.qcloud.com/trtc/electron/doc/zh-cn/trtc_electron_sdk/TRTCCloud.html#muteLocalVideo)。
42
+ - 开发进房不上行时, 将本地预览和推出去的流分成了 2 个,导致 audio-volume 中没有本地音量. 因为推出去的流没有进行播放. 因此需要将本地流播放, 只是不展示。
43
+ - 设置本地预览播放本地流,而不是推出去的视频流。
44
+ - TRTCAudioQuality 对齐 [Electron SDK API](https://web.sdk.qcloud.com/trtc/electron/doc/zh-cn/trtc_electron_sdk/TRTCCloud.html#muteLocalVideo)。
45
+ - 本地预览流中可能会产生不必要的流初始化。
46
+ - 对外暴露 TRTCVideoResolutionMode。
47
+
48
+
49
+ ## [1.0.2] (2022-09-22)
50
+
51
+ #### 新增
52
+ - startScreenShare 屏幕分享增加 screenAudio 参数,用于是否开启系统声音。
53
+
54
+
55
+ ## [1.0.1] (2022-09-13)
56
+
57
+ #### 修复
58
+ - [setLocalRenderParams]() 问题处理。
@@ -0,0 +1,12 @@
1
+ const path = require('path');
2
+ const apiPath = path.join(__dirname, '../../', 'docs', 'api');
3
+ const fs = require('fs');
4
+ var files = fs.readdirSync(apiPath);
5
+
6
+ files.forEach(file => {
7
+ if (path.extname(file) === '.html') {
8
+ var htmlPath = path.join(apiPath, file);
9
+ console.log('delete file', htmlPath);
10
+ fs.unlinkSync(htmlPath);
11
+ }
12
+ });
@@ -0,0 +1,141 @@
1
+ const replace = require('replace');
2
+ const path = require('path');
3
+ const apiPath = path.join(__dirname, '../../', 'docs', 'api');
4
+ const pretty = require('pretty');
5
+ const fs = require('fs');
6
+
7
+ var files = fs.readdirSync(apiPath);
8
+ var replacements = [
9
+ {
10
+ find: '<header>',
11
+ replace: '<header style="display:none">',
12
+ },
13
+ // {
14
+ // find: '<h4 class="name" id="Client">',
15
+ // replace: '<h4 class="name" style="display:none" id="Client">'
16
+ // },
17
+ // {
18
+ // find: '<h4 class="name" id="Stream">',
19
+ // replace: '<h4 class="name" style="display:none" id="Stream">'
20
+ // },
21
+ // {
22
+ // find: '<h4 class="name" id="LocalStream">',
23
+ // replace: '<h4 class="name" style="display:none" id="LocalStream">'
24
+ // },
25
+ // {
26
+ // find: '<h4 class="name" id="RemoteStream">',
27
+ // replace: '<h4 class="name" style="display:none" id="RemoteStream">'
28
+ // },
29
+ {
30
+ find: `<p>!</p>`,
31
+ replace: `<p>注意:</p>`,
32
+ },
33
+ {
34
+ find: '<blockquote',
35
+ replace: '<blockquote style="border-left: 6px solid #00a4ff;margin: 0 0 24px;padding: 12px;background: #dcf4ff;"',
36
+ },
37
+ // {
38
+ // find: '<li><a href="tutorial-00-info-update-guideline.html">SDK 升级指引</a>',
39
+ // replace:
40
+ // '<ul><li style="margin:10px 0 5px 0">相关信息</li><li><a href="tutorial-00-info-update-guideline.html">SDK 升级指引</a>'
41
+ // },
42
+ // {
43
+ // find: '<li><a href="tutorial-10-basic-get-started-with-demo.html">快速跑通 Demo</a>',
44
+ // replace:
45
+ // '</ul><ul><li style="margin:10px 0 5px 0">基础教程</li><li><a href="tutorial-10-basic-get-started-with-demo.html">快速跑通 Demo</a>'
46
+ // },
47
+ // {
48
+ // find: '<a href="tutorial-07-basic-detect-volume.html">音量大小检测</a></li>',
49
+ // replace: '<a href="tutorial-07-basic-detect-volume.html">音量大小检测</a></li><ul/>'
50
+ // },
51
+ // {
52
+ // find:
53
+ // '<li><a href="tutorial-20-advanced-customized-capture-rendering.html">自定义采集与自定义播放渲染</a>',
54
+ // replace:
55
+ // '<ul><li style="margin:10px 0 5px 0">进阶教程</li><li><a href="tutorial-20-advanced-customized-capture-rendering.html">自定义采集与自定义播放渲染</a>'
56
+ // },
57
+ // {
58
+ // find: '<a href="tutorial-25-advanced-device-change.html">检测设备插拔行为</a></li>',
59
+ // replace: '<a href="tutorial-25-advanced-device-change.html">检测设备插拔行为</a></li></ul>'
60
+ // },
61
+ {
62
+ find: '<pre class="prettyprint',
63
+ replace: '<pre class="highlight lang-javascript',
64
+ },
65
+ {
66
+ find: '<html lang="en">',
67
+ replace: '<html lang="zh-cmn-Hans">',
68
+ },
69
+ /* ,
70
+ {
71
+ find: '<pre class="prettyprint source',
72
+ replace: '<pre class="prettyprint source linenums'
73
+ },
74
+ {
75
+ find: 'class="prettyprint"><code>',
76
+ replace: 'class="prettyprint source linenums"><code>'
77
+ } */
78
+ {
79
+ find: '_HACK_JSDOC',
80
+ replace: '',
81
+ },
82
+ ];
83
+
84
+ files.forEach((file) => {
85
+ if (path.extname(file) === '.html') {
86
+ // console.log(__dirname, file, path.join(apiPath, file));
87
+ // console.log(fs.readFileSync(path.join(apiPath, file)).toString());
88
+ var htmlPath = path.join(apiPath, file);
89
+ let htmlContent = fs.readFileSync(htmlPath).toString();
90
+
91
+ if (file === 'index.html' || file === 'TRTCCloud.html') {
92
+ htmlContent = htmlContent.replace(/#.Audio/g, '');
93
+ htmlContent = htmlContent.replace(/Audio#/g, '');
94
+
95
+ htmlContent = htmlContent.replace(/#.Beauty/g, '');
96
+ htmlContent = htmlContent.replace(/Beauty#/g, '');
97
+
98
+ htmlContent = htmlContent.replace(/#.Camera/g, '');
99
+ htmlContent = htmlContent.replace(/Camera#/g, '');
100
+
101
+ htmlContent = htmlContent.replace(/#.Mic/g, '');
102
+ htmlContent = htmlContent.replace(/Mic#/g, '');
103
+
104
+ htmlContent = htmlContent.replace(/#.MixCDN/g, '');
105
+ htmlContent = htmlContent.replace(/MixCDN#/g, '');
106
+
107
+ htmlContent = htmlContent.replace(/#.Video/g, '');
108
+ htmlContent = htmlContent.replace(/Video#/g, '');
109
+
110
+ htmlContent = htmlContent.replace(/#.Share/g, '');
111
+ htmlContent = htmlContent.replace(/Share#/g, '');
112
+ }
113
+ if (file.includes('.html')) {
114
+ htmlContent = htmlContent.replace(/TRTCCallback#/g, '');
115
+ }
116
+ if (file === 'TRTCCloud.html') {
117
+ // Audio、Video、Camera 等模块的方法加上了 static
118
+ htmlContent = htmlContent.replace(/\(static\) /g, '');
119
+ // 针对 getTRTCShareInstance、destroyTRTCShareInstance 需要再加上 static
120
+ htmlContent = htmlContent.replace('</span>getTRTCShareInstance', '(static) </span>getTRTCShareInstance');
121
+ htmlContent = htmlContent.replace('</span>destroyTRTCShareInstance', '(static) </span>destroyTRTCShareInstance');
122
+ }
123
+
124
+ fs.writeFile(htmlPath, pretty(htmlContent, { ocd: true }), function (err) {
125
+ if (err) {
126
+ return console.error(err);
127
+ }
128
+ console.log(htmlPath, '格式化成功!');
129
+
130
+ replacements.forEach(function (obj) {
131
+ replace({
132
+ regex: obj.find,
133
+ replacement: obj.replace,
134
+ paths: [htmlPath],
135
+ recursive: false,
136
+ silent: true,
137
+ });
138
+ });
139
+ });
140
+ }
141
+ });
@@ -0,0 +1,42 @@
1
+ {
2
+ "plugins": ["jsdoc-plugin-typescript", "plugins/markdown"],
3
+ "sourceType": "module",
4
+ "typescript": {
5
+ "moduleRoot": "src"
6
+ },
7
+ "source": {
8
+ "include": [
9
+ "./build/ts2js/src/index.js",
10
+ "./build/ts2js/src/Audio.js",
11
+ "./build/ts2js/src/Video.js",
12
+ "./build/ts2js/src/Camera.js",
13
+ "./build/ts2js/src/Mic.js",
14
+ "./build/ts2js/src/Share.js",
15
+ "./build/ts2js/src/MixCDN.js",
16
+ "./build/ts2js/src/common/trtc_define.js"
17
+ ],
18
+ "includePattern": ".+\\.js(doc)?$"
19
+ },
20
+ "opts": {
21
+ "access": "undefined, public",
22
+ "encoding": "utf8",
23
+ "recurse": true,
24
+ "verbose": true,
25
+ "readme": "./docs/main.md",
26
+ "template": "../../node_modules/docdash-blue",
27
+ "destination": "docs/api"
28
+ },
29
+ "docdash": {
30
+ "sort": false,
31
+ "search": true,
32
+ "collapse": true,
33
+ "static": true,
34
+ "sectionOrder": ["Namespaces", "Classes", "Modules", "Externals", "Events", "Mixins", "Tutorials", "Interfaces"]
35
+ },
36
+ "templates": {
37
+ "default": {
38
+ "outputSourceFiles": false,
39
+ "useLongnameInNav": true
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,29 @@
1
+ const replace = require('replace');
2
+ const fs = require('fs');
3
+ const pkg = require('../package.json');
4
+
5
+ var srcPaths = ['./build/template/npm-package/package.json', './build/template/npm-package/README.md'];
6
+ var distPaths = ['./dist/npm-package/package.json', './dist/npm-package/README.md'];
7
+
8
+ var replacements = [
9
+ {
10
+ find: '<@VERSION@>',
11
+ replace: pkg.version,
12
+ },
13
+ ];
14
+
15
+ srcPaths.forEach((src, index) => {
16
+ console.log(src);
17
+ console.log(distPaths[index]);
18
+ fs.writeFile(distPaths[index], fs.readFileSync(src).toString(), function (err) {
19
+ replacements.forEach(function (obj) {
20
+ replace({
21
+ regex: obj.find,
22
+ replacement: obj.replace,
23
+ paths: [distPaths[index]],
24
+ recursive: true,
25
+ silent: true,
26
+ });
27
+ });
28
+ });
29
+ });
@@ -0,0 +1,88 @@
1
+ import json from 'rollup-plugin-json';
2
+ import progress from 'rollup-plugin-progress';
3
+ import filesize from 'rollup-plugin-filesize';
4
+ import commonjs from 'rollup-plugin-commonjs';
5
+ import globals from 'rollup-plugin-node-globals';
6
+ import resolve from 'rollup-plugin-node-resolve';
7
+ import babel from 'rollup-plugin-babel';
8
+ import replace from 'rollup-plugin-replace';
9
+ import livereload from 'rollup-plugin-livereload';
10
+ import typescript from 'rollup-plugin-typescript';
11
+ import serve from 'rollup-plugin-serve';
12
+
13
+ export default {
14
+ input: './src/index.ts',
15
+ output: [
16
+ // {
17
+ // file: '../TUIRoomEngine/packages/roomEngine/node_modules/trtc-cloud-js-sdk/trtc-cloud-js-sdk.js',
18
+ // format: 'umd',
19
+ // name: 'TRTC',
20
+ // },
21
+ {
22
+ file: './dist/npm-package/trtc-cloud-sdk.js',
23
+ format: 'umd',
24
+ name: 'TRTC',
25
+ },
26
+ {
27
+ file: './examples/apiExample/node_modules/trtc-cloud-js-sdk/trtc-cloud-js-sdk.js',
28
+ format: 'umd',
29
+ name: 'TRTC',
30
+ },
31
+ // {
32
+ // file: './examples/vueDemo/node_modules/trtc-cloud-js-sdk/trtc-cloud-js-sdk.js',
33
+ // format: 'umd',
34
+ // name: 'TRTC',
35
+ // },
36
+ ],
37
+ watch: {
38
+ exclude: /node_modules/,
39
+ },
40
+ plugins: [
41
+ json(),
42
+ progress({
43
+ clearLine: true, // default: true
44
+ }),
45
+ filesize(),
46
+ commonjs({
47
+ sourceMap: false,
48
+ }),
49
+ globals(),
50
+ // builtins(),
51
+ resolve({
52
+ browser: true,
53
+ }),
54
+ typescript(),
55
+ babel({
56
+ exclude: /node_modules/,
57
+ babelrc: false,
58
+ presets: [
59
+ [
60
+ '@babel/preset-env',
61
+ {
62
+ useBuiltIns: 'usage', // 开启后可以不用 plugin-transform-runtime, 按需转换新API
63
+ corejs: 3,
64
+ modules: false, //设置false 否则 Babel 会在 Rollup 做处理之前,将我们的模块转成 CommonJS,导致 Rollup 的一些处理失败
65
+ },
66
+ ],
67
+ ],
68
+ }),
69
+ replace({
70
+ ENV: JSON.stringify(process.env.NODE_ENV || 'development'), // 源码里可以使用 ENV 来做条件判断
71
+ }),
72
+ // serve({
73
+ // open: true, // 是否打开浏览器
74
+ // contentBase: ['../../packages/trtc-cloud/examples/jsExample'], // 入口html的文件位置
75
+ // historyApiFallback: true, // Set to true to return index.html instead of 404
76
+ // host: 'localhost',
77
+ // port: 9900,
78
+ // }),
79
+ livereload({
80
+ watch: ['../../packages/trtc-cloud/examples/jsExample'],
81
+ }),
82
+ ],
83
+ onwarn(warning, rollupWarn) {
84
+ if (warning.code !== 'CIRCULAR_DEPENDENCY') {
85
+ rollupWarn(warning);
86
+ }
87
+ },
88
+ };
@@ -0,0 +1,93 @@
1
+ import json from 'rollup-plugin-json';
2
+ import progress from 'rollup-plugin-progress';
3
+ import filesize from 'rollup-plugin-filesize';
4
+ import commonjs from 'rollup-plugin-commonjs';
5
+ import globals from 'rollup-plugin-node-globals';
6
+ import resolve from 'rollup-plugin-node-resolve';
7
+ import babel from 'rollup-plugin-babel';
8
+ import { terser } from 'rollup-plugin-terser';
9
+ import replace from 'rollup-plugin-replace';
10
+ import typescript from 'rollup-plugin-typescript';
11
+
12
+ export default {
13
+ input: './src/index.ts',
14
+ output: [
15
+ {
16
+ file: './dist/trtc-cloud.js',
17
+ format: 'umd',
18
+ name: 'TRTC',
19
+ },
20
+ {
21
+ file: './dist/npm-package/trtc-cloud-js-sdk.js',
22
+ format: 'umd',
23
+ name: 'TRTC',
24
+ },
25
+ // {
26
+ // file: './examples/vueDemo/node_modules/trtc-cloud-js-sdk/trtc-cloud-js-sdk.js',
27
+ // format: 'umd',
28
+ // name: 'TRTC',
29
+ // },
30
+ {
31
+ file: './examples/apiExample/node_modules/trtc-cloud-js-sdk/trtc-cloud-js-sdk.js',
32
+ format: 'umd',
33
+ name: 'TRTC',
34
+ },
35
+ // {
36
+ // file: '../TUIRoomEngine/packages/roomEngine/node_modules/trtc-cloud-js-sdk/trtc-cloud-js-sdk.js',
37
+ // format: 'umd',
38
+ // name: 'TRTC',
39
+ // },
40
+ // {
41
+ // file: './examples/jsExample/dist/trtc-cloud.js',
42
+ // format: 'umd',
43
+ // name: 'TRTC'
44
+ // },
45
+ ],
46
+ watch: {
47
+ exclude: /node_modules/,
48
+ },
49
+ plugins: [
50
+ json(),
51
+ progress({
52
+ clearLine: true, // default: true
53
+ }),
54
+ filesize(),
55
+ commonjs({
56
+ sourceMap: false,
57
+ }),
58
+ globals(),
59
+ // builtins(),
60
+ resolve({
61
+ browser: true,
62
+ }),
63
+ typescript(),
64
+
65
+ babel({
66
+ exclude: /node_modules/,
67
+ babelrc: false,
68
+ presets: [
69
+ [
70
+ '@babel/preset-env',
71
+ {
72
+ modules: false,
73
+ useBuiltIns: 'usage',
74
+ corejs: 3,
75
+ },
76
+ ],
77
+ ],
78
+ }),
79
+ terser({
80
+ numWorkers: 4,
81
+ safari10: true, // work around Safari 10/11 bugs in loop scoping and await
82
+ compress: {
83
+ booleans_as_integers: false, // Turn booleans into 0 and 1, also makes comparisons with booleans use == and != instead of === and !==
84
+ keep_infinity: true, // prevent Infinity from being compressed into 1/0, which may cause performance issues on Chrome.
85
+ module: true,
86
+ },
87
+ }),
88
+ replace({
89
+ ENV: JSON.stringify(process.env.NODE_ENV || 'production'), // 源码里可以使用 ENV 来做条件判断
90
+ }),
91
+ ],
92
+ external: ['trtc-sdk-v5', 'rtc-beauty-plugin', 'axios'],
93
+ };