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
@@ -0,0 +1,359 @@
1
+ import { rollup, watch } from 'rollup';
2
+ import babel from 'rollup-plugin-babel';
3
+ import resolve from 'rollup-plugin-node-resolve';
4
+ import commonjs from 'rollup-plugin-commonjs';
5
+ import builtins from 'rollup-plugin-node-builtins';
6
+ import globals from 'rollup-plugin-node-globals';
7
+ import filesize from 'rollup-plugin-filesize';
8
+ import sizes from 'rollup-plugin-sizes';
9
+ import progress from 'rollup-plugin-progress';
10
+
11
+ import json from 'rollup-plugin-json';
12
+ import serve from 'rollup-plugin-serve';
13
+ import livereload from 'rollup-plugin-livereload';
14
+ import minimist from 'minimist';
15
+ import { terser } from 'rollup-plugin-terser';
16
+
17
+ const args = minimist(process.argv.slice(2), {
18
+ boolean: ['watch', 'watchAll', 'minify', 'progress', 'size', 'server'],
19
+ default: {
20
+ progress: true
21
+ },
22
+ alias: {
23
+ w: 'watch',
24
+ wa: 'watchAll',
25
+ m: 'minify',
26
+ p: 'progress',
27
+ s: 'size'
28
+ }
29
+ });
30
+
31
+ if (args.watch) {
32
+ // args.progress = false;
33
+ }
34
+
35
+ const primedProgress = args.progress
36
+ ? progress({
37
+ clearLine: true // default: true
38
+ })
39
+ : {};
40
+
41
+ const primedSizes = args.size ? sizes() : {};
42
+
43
+ const primedResolve = resolve({
44
+ browser: true
45
+ // preferBuiltins:true without this it fails
46
+ });
47
+
48
+ const primedCjs = commonjs({
49
+ sourceMap: false
50
+ });
51
+
52
+ // 只做语法转换
53
+ const primedBabelES = babel({
54
+ exclude: /node_modules/,
55
+ babelrc: false,
56
+ presets: [
57
+ [
58
+ '@babel/preset-env',
59
+ {
60
+ modules: 'false' //设置false 否则 Babel 会在 Rollup 做处理之前,将我们的模块转成 CommonJS,导致 Rollup 的一些处理失败
61
+ }
62
+ ]
63
+ ]
64
+ });
65
+
66
+ // 加上polyfill API转换
67
+ const primedBabelBrowser = babel({
68
+ exclude: /node_modules/,
69
+ babelrc: false,
70
+ presets: [
71
+ [
72
+ '@babel/preset-env',
73
+ {
74
+ useBuiltIns: 'usage', // 开启后可以不用 plugin-transform-runtime, 按需转换新API
75
+ corejs: 3,
76
+ modules: false //设置false 否则 Babel 会在 Rollup 做处理之前,将我们的模块转成 CommonJS,导致 Rollup 的一些处理失败
77
+ }
78
+ ]
79
+ ]
80
+ });
81
+
82
+ // uglify-js is able to transpile only es5 syntax. If you want to transpile es6+ syntax use terser instead
83
+ const primedTerser = terser({
84
+ numWorkers: 4, // 用处不大
85
+ safari10: true, // work around Safari 10/11 bugs in loop scoping and await
86
+ compress: {
87
+ booleans_as_integers: false, // Turn booleans into 0 and 1, also makes comparisons with booleans use == and != instead of === and !==
88
+ keep_infinity: true, // prevent Infinity from being compressed into 1/0, which may cause performance issues on Chrome.
89
+ module: true
90
+ }
91
+ });
92
+
93
+ const primedServe = args.server
94
+ ? serve({
95
+ open: true, // 是否打开浏览器
96
+ contentBase: ['../../examples/samples'], // 入口html的文件位置
97
+ historyApiFallback: true, // Set to true to return index.html instead of 404
98
+ host: 'localhost',
99
+ port: 9988
100
+ })
101
+ : {};
102
+
103
+ const primedlivereload = args.server
104
+ ? livereload({
105
+ watch: ['../../examples/samples']
106
+ })
107
+ : {};
108
+
109
+ // 输入配置
110
+ const inputBase = {
111
+ input: './src/main.js',
112
+ onwarn(warning, rollupWarn) {
113
+ if (warning.code !== 'CIRCULAR_DEPENDENCY') {
114
+ rollupWarn(warning);
115
+ }
116
+ }
117
+ };
118
+
119
+ let inputES6 = Object.assign({}, inputBase, {
120
+ plugins: [
121
+ json(),
122
+ primedProgress,
123
+ primedSizes,
124
+ filesize(),
125
+ primedCjs,
126
+ globals(),
127
+ builtins(),
128
+ primedResolve,
129
+ primedBabelES,
130
+ primedServe,
131
+ primedlivereload
132
+ ]
133
+ });
134
+
135
+ let inputMinifiedES6 = Object.assign({}, inputBase, {
136
+ plugins: [
137
+ json(),
138
+ primedProgress,
139
+ primedSizes,
140
+ filesize(),
141
+ primedCjs,
142
+ globals(),
143
+ builtins(),
144
+ primedResolve,
145
+ primedBabelES,
146
+ primedTerser,
147
+ primedServe,
148
+ primedlivereload
149
+ ]
150
+ });
151
+
152
+ let inputES5 = Object.assign({}, inputBase, {
153
+ plugins: [
154
+ json(),
155
+ primedProgress,
156
+ primedSizes,
157
+ filesize(),
158
+ primedCjs,
159
+ globals(),
160
+ builtins(),
161
+ primedResolve,
162
+ primedBabelBrowser,
163
+ primedServe,
164
+ primedlivereload
165
+ ]
166
+ });
167
+
168
+ let inputMinifiedES5 = Object.assign({}, inputBase, {
169
+ plugins: [
170
+ json(),
171
+ primedProgress,
172
+ primedSizes,
173
+ filesize(),
174
+ primedCjs,
175
+ globals(),
176
+ builtins(),
177
+ primedResolve,
178
+ primedBabelBrowser,
179
+ primedTerser,
180
+ primedServe
181
+ ]
182
+ });
183
+
184
+ // 输出最新版本通用模块,用于debug 和本地验证
185
+ let outputES6UMD = [
186
+ {
187
+ file: './dist/trtc.source.js',
188
+ format: 'umd',
189
+ name: 'TRTC'
190
+ },
191
+ {
192
+ file: './dist/trtc.js',
193
+ format: 'umd',
194
+ name: 'TRTC'
195
+ },
196
+ // demo
197
+ {
198
+ file: '../../examples/samples/dist/trtc.js',
199
+ format: 'umd',
200
+ sourcemap: true,
201
+ name: 'TRTC'
202
+ }
203
+ ];
204
+ let outputES5UMD = [
205
+ {
206
+ file: './dist/trtc.source.js',
207
+ format: 'umd',
208
+ name: 'TRTC'
209
+ },
210
+ {
211
+ file: './dist/trtc.js',
212
+ format: 'umd',
213
+ name: 'TRTC'
214
+ },
215
+ // demo
216
+ {
217
+ file: '../../examples/samples/dist/trtc.js',
218
+ format: 'umd',
219
+ sourcemap: true,
220
+ name: 'TRTC'
221
+ }
222
+ ];
223
+ // 输出ES6版本
224
+ let outputMinifiedES6UMD = [
225
+ {
226
+ file: './dist/trtc.js',
227
+ format: 'umd',
228
+ name: 'TRTC'
229
+ },
230
+ // npm包
231
+ {
232
+ file: './dist/npm-package/trtc.js',
233
+ format: 'umd',
234
+ name: 'TRTC'
235
+ },
236
+ // demo
237
+ {
238
+ file: '../../examples/samples/dist/trtc.js',
239
+ format: 'umd',
240
+ name: 'TRTC'
241
+ }
242
+ ];
243
+ // 输出ES5版本
244
+ let outputMinifiedES5UMD = [
245
+ {
246
+ file: './dist/trtc.js',
247
+ format: 'umd',
248
+ name: 'TRTC'
249
+ },
250
+ // npm包
251
+ {
252
+ file: './dist/npm-package/trtc.js',
253
+ format: 'umd',
254
+ name: 'TRTC'
255
+ },
256
+ // demo
257
+ {
258
+ file: '../../examples/samples/dist/trtc.js',
259
+ format: 'umd',
260
+ name: 'TRTC'
261
+ }
262
+ ];
263
+
264
+ // 构建脚本配置
265
+ let bundleOptions = [
266
+ // [inputES6, outputES6UMD],
267
+ // [inputMinifiedES6, outputMinifiedES6UMD]
268
+ [inputES5, outputES5UMD],
269
+ [inputMinifiedES5, outputMinifiedES5UMD]
270
+ ];
271
+ // 输出es umd , npm 发布 es 版本
272
+ let watchSourceOptions = [[inputES5, outputES5UMD]];
273
+ let watchMinifiedOptions = [[inputMinifiedES5, outputMinifiedES5UMD]];
274
+
275
+ let watchAllOptions = [
276
+ [inputES5, outputES5UMD],
277
+ [inputES6, outputES6UMD]
278
+ ];
279
+ // 监控变更构建脚本
280
+ let watchOptions = watchSourceOptions;
281
+ if (args.watch && args.minify) {
282
+ watchOptions = watchMinifiedOptions;
283
+ }
284
+ if (args.watchAll) {
285
+ watchOptions = watchAllOptions;
286
+ }
287
+
288
+ /**
289
+ *
290
+ * @param {*} input
291
+ * @param {*} output
292
+ */
293
+ async function rollupBuild(input, output) {
294
+ const bundle = await rollup(input); // 根据input配置进行打包
295
+ console.log(''); // 换行
296
+ if (Array.isArray(output)) {
297
+ (async function() {
298
+ for (let i = 0; i < output.length; i++) {
299
+ console.log(`Bundling:${output[i].file}...`);
300
+ await bundle.write(output[i]);
301
+ console.log(''); // 换行
302
+ console.log(`${output[i].file} created.`);
303
+ }
304
+ })();
305
+ } else {
306
+ console.log(`Bundling:${output.file}...`);
307
+ await bundle.write(output); // 根据output配置输出文件
308
+ console.log(''); // 换行
309
+ console.log(`${output.file} created.`);
310
+ }
311
+ }
312
+
313
+ /**
314
+ *
315
+ * @param {*} input
316
+ * @param {*} output
317
+ */
318
+ function rollupWatch(input, output) {
319
+ let watchOption = {
320
+ ...input,
321
+ output: Array.isArray(output) ? output : [output],
322
+ watch: { exclude: /node_modules/ }
323
+ };
324
+ // console.log(`watchOption: `, watchOption);
325
+ const watcher = watch(watchOption); // 根据input配置进行打包
326
+ // console.log('');
327
+ console.log(`Watching:${output.file}...`);
328
+ watcher.on('event', event => {
329
+ if (event.code === 'BUNDLE_START') {
330
+ // eslint-disable-next-line no-console
331
+ console.log(`Bundling ${output.file}...`);
332
+ return;
333
+ }
334
+
335
+ if (event.code === 'BUNDLE_END') {
336
+ // eslint-disable-next-line no-console
337
+ console.log(`Bundled ${output.file} in %s`, event.duration);
338
+ return;
339
+ }
340
+
341
+ if (event.code === 'ERROR') {
342
+ // eslint-disable-next-line no-console
343
+ console.error(event.error.toString());
344
+ return;
345
+ }
346
+ });
347
+ }
348
+
349
+ if (args.watch || args.watchAll) {
350
+ watchOptions.forEach(options => {
351
+ rollupWatch(options[0], options[1]);
352
+ });
353
+ } else {
354
+ (async function() {
355
+ for (let i = 0; i < bundleOptions.length; i++) {
356
+ await rollupBuild(bundleOptions[i][0], bundleOptions[i][1]);
357
+ }
358
+ })();
359
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "trtc-cloud-js-sdk",
3
+ "version": "<@VERSION@>",
4
+ "description": "Tencent Cloud RTC SDK for Web And Electron",
5
+ "main": "trtc-cloud-js-sdk.js",
6
+ "keywords": [
7
+ "实时音视频",
8
+ "视频通话",
9
+ "音频通话",
10
+ "WEBRTC",
11
+ "直播"
12
+ ],
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git@github.com:tencentyun/TRTCSDK.git"
16
+ },
17
+ "author": "Tencent Cloud Client R&D Center",
18
+ "license": "ISC",
19
+ "dependencies": {
20
+ "axios": "^0.21.1",
21
+ "rtc-beauty-plugin": "^0.0.5",
22
+ "trtc-sdk-v5": "^5.0.0"
23
+ }
24
+ }
@@ -0,0 +1,213 @@
1
+ body, html {
2
+ margin:0; padding: 0;
3
+ height: 100%;
4
+ }
5
+ body {
6
+ font-family: Helvetica Neue, Helvetica, Arial;
7
+ font-size: 14px;
8
+ color:#333;
9
+ }
10
+ .small { font-size: 12px; }
11
+ *, *:after, *:before {
12
+ -webkit-box-sizing:border-box;
13
+ -moz-box-sizing:border-box;
14
+ box-sizing:border-box;
15
+ }
16
+ h1 { font-size: 20px; margin: 0;}
17
+ h2 { font-size: 14px; }
18
+ pre {
19
+ font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
20
+ margin: 0;
21
+ padding: 0;
22
+ -moz-tab-size: 2;
23
+ -o-tab-size: 2;
24
+ tab-size: 2;
25
+ }
26
+ a { color:#0074D9; text-decoration:none; }
27
+ a:hover { text-decoration:underline; }
28
+ .strong { font-weight: bold; }
29
+ .space-top1 { padding: 10px 0 0 0; }
30
+ .pad2y { padding: 20px 0; }
31
+ .pad1y { padding: 10px 0; }
32
+ .pad2x { padding: 0 20px; }
33
+ .pad2 { padding: 20px; }
34
+ .pad1 { padding: 10px; }
35
+ .space-left2 { padding-left:55px; }
36
+ .space-right2 { padding-right:20px; }
37
+ .center { text-align:center; }
38
+ .clearfix { display:block; }
39
+ .clearfix:after {
40
+ content:'';
41
+ display:block;
42
+ height:0;
43
+ clear:both;
44
+ visibility:hidden;
45
+ }
46
+ .fl { float: left; }
47
+ @media only screen and (max-width:640px) {
48
+ .col3 { width:100%; max-width:100%; }
49
+ .hide-mobile { display:none!important; }
50
+ }
51
+
52
+ .quiet {
53
+ color: #7f7f7f;
54
+ color: rgba(0,0,0,0.5);
55
+ }
56
+ .quiet a { opacity: 0.7; }
57
+
58
+ .fraction {
59
+ font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
60
+ font-size: 10px;
61
+ color: #555;
62
+ background: #E8E8E8;
63
+ padding: 4px 5px;
64
+ border-radius: 3px;
65
+ vertical-align: middle;
66
+ }
67
+
68
+ div.path a:link, div.path a:visited { color: #333; }
69
+ table.coverage {
70
+ border-collapse: collapse;
71
+ margin: 10px 0 0 0;
72
+ padding: 0;
73
+ }
74
+
75
+ table.coverage td {
76
+ margin: 0;
77
+ padding: 0;
78
+ vertical-align: top;
79
+ }
80
+ table.coverage td.line-count {
81
+ text-align: right;
82
+ padding: 0 5px 0 20px;
83
+ }
84
+ table.coverage td.line-coverage {
85
+ text-align: right;
86
+ padding-right: 10px;
87
+ min-width:20px;
88
+ }
89
+
90
+ table.coverage td span.cline-any {
91
+ display: inline-block;
92
+ padding: 0 5px;
93
+ width: 100%;
94
+ }
95
+ .missing-if-branch {
96
+ display: inline-block;
97
+ margin-right: 5px;
98
+ border-radius: 3px;
99
+ position: relative;
100
+ padding: 0 4px;
101
+ background: #333;
102
+ color: yellow;
103
+ }
104
+
105
+ .skip-if-branch {
106
+ display: none;
107
+ margin-right: 10px;
108
+ position: relative;
109
+ padding: 0 4px;
110
+ background: #ccc;
111
+ color: white;
112
+ }
113
+ .missing-if-branch .typ, .skip-if-branch .typ {
114
+ color: inherit !important;
115
+ }
116
+ .coverage-summary {
117
+ border-collapse: collapse;
118
+ width: 100%;
119
+ }
120
+ .coverage-summary tr { border-bottom: 1px solid #bbb; }
121
+ .keyline-all { border: 1px solid #ddd; }
122
+ .coverage-summary td, .coverage-summary th { padding: 10px; }
123
+ .coverage-summary tbody { border: 1px solid #bbb; }
124
+ .coverage-summary td { border-right: 1px solid #bbb; }
125
+ .coverage-summary td:last-child { border-right: none; }
126
+ .coverage-summary th {
127
+ text-align: left;
128
+ font-weight: normal;
129
+ white-space: nowrap;
130
+ }
131
+ .coverage-summary th.file { border-right: none !important; }
132
+ .coverage-summary th.pct { }
133
+ .coverage-summary th.pic,
134
+ .coverage-summary th.abs,
135
+ .coverage-summary td.pct,
136
+ .coverage-summary td.abs { text-align: right; }
137
+ .coverage-summary td.file { white-space: nowrap; }
138
+ .coverage-summary td.pic { min-width: 120px !important; }
139
+ .coverage-summary tfoot td { }
140
+
141
+ .coverage-summary .sorter {
142
+ height: 10px;
143
+ width: 7px;
144
+ display: inline-block;
145
+ margin-left: 0.5em;
146
+ background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
147
+ }
148
+ .coverage-summary .sorted .sorter {
149
+ background-position: 0 -20px;
150
+ }
151
+ .coverage-summary .sorted-desc .sorter {
152
+ background-position: 0 -10px;
153
+ }
154
+ .status-line { height: 10px; }
155
+ /* dark red */
156
+ .red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
157
+ .low .chart { border:1px solid #C21F39 }
158
+ /* medium red */
159
+ .cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
160
+ /* light red */
161
+ .low, .cline-no { background:#FCE1E5 }
162
+ /* light green */
163
+ .high, .cline-yes { background:rgb(230,245,208) }
164
+ /* medium green */
165
+ .cstat-yes { background:rgb(161,215,106) }
166
+ /* dark green */
167
+ .status-line.high, .high .cover-fill { background:rgb(77,146,33) }
168
+ .high .chart { border:1px solid rgb(77,146,33) }
169
+ /* dark yellow (gold) */
170
+ .medium .chart { border:1px solid #f9cd0b; }
171
+ .status-line.medium, .medium .cover-fill { background: #f9cd0b; }
172
+ /* light yellow */
173
+ .medium { background: #fff4c2; }
174
+ /* light gray */
175
+ span.cline-neutral { background: #eaeaea; }
176
+
177
+ .cbranch-no { background: yellow !important; color: #111; }
178
+
179
+ .cstat-skip { background: #ddd; color: #111; }
180
+ .fstat-skip { background: #ddd; color: #111 !important; }
181
+ .cbranch-skip { background: #ddd !important; color: #111; }
182
+
183
+
184
+ .cover-fill, .cover-empty {
185
+ display:inline-block;
186
+ height: 12px;
187
+ }
188
+ .chart {
189
+ line-height: 0;
190
+ }
191
+ .cover-empty {
192
+ background: white;
193
+ }
194
+ .cover-full {
195
+ border-right: none !important;
196
+ }
197
+ pre.prettyprint {
198
+ border: none !important;
199
+ padding: 0 !important;
200
+ margin: 0 !important;
201
+ }
202
+ .com { color: #999 !important; }
203
+ .ignore-none { color: #999; font-weight: normal; }
204
+
205
+ .wrapper {
206
+ min-height: 100%;
207
+ height: auto !important;
208
+ height: 100%;
209
+ margin: 0 auto -48px;
210
+ }
211
+ .footer, .push {
212
+ height: 48px;
213
+ }
@@ -0,0 +1,80 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Code coverage report for All files</title>
5
+ <meta charset="utf-8" />
6
+ <link rel="stylesheet" href="prettify.css" />
7
+ <link rel="stylesheet" href="base.css" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <style type='text/css'>
10
+ .coverage-summary .sorter {
11
+ background-image: url(sort-arrow-sprite.png);
12
+ }
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <div class='wrapper'>
17
+ <div class='pad1'>
18
+ <h1>
19
+ /
20
+ </h1>
21
+ <div class='clearfix'>
22
+ <div class='fl pad1y space-right2'>
23
+ <span class="strong">100% </span>
24
+ <span class="quiet">Statements</span>
25
+ <span class='fraction'>0/0</span>
26
+ </div>
27
+ <div class='fl pad1y space-right2'>
28
+ <span class="strong">100% </span>
29
+ <span class="quiet">Branches</span>
30
+ <span class='fraction'>0/0</span>
31
+ </div>
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Functions</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+ <div class='fl pad1y space-right2'>
38
+ <span class="strong">100% </span>
39
+ <span class="quiet">Lines</span>
40
+ <span class='fraction'>0/0</span>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <div class='status-line high'></div>
45
+ <div class="pad1">
46
+ <table class="coverage-summary">
47
+ <thead>
48
+ <tr>
49
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
50
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
51
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
52
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
53
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
54
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
55
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
56
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
57
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
58
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
59
+ </tr>
60
+ </thead>
61
+ <tbody></tbody>
62
+ </table>
63
+ </div><div class='push'></div><!-- for sticky footer -->
64
+ </div><!-- /wrapper -->
65
+ <div class='footer quiet pad2 space-top1 center small'>
66
+ Code coverage
67
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Jul 27 2022 17:30:41 GMT+0800 (China Standard Time)
68
+ </div>
69
+ </div>
70
+ <script src="prettify.js"></script>
71
+ <script>
72
+ window.onload = function () {
73
+ if (typeof prettyPrint === 'function') {
74
+ prettyPrint();
75
+ }
76
+ };
77
+ </script>
78
+ <script src="sorter.js"></script>
79
+ </body>
80
+ </html>
@@ -0,0 +1 @@
1
+ .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}