livekit-client 0.14.1 → 0.15.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 (104) hide show
  1. package/.github/workflows/{lint.yaml → test.yaml} +7 -4
  2. package/.gitmodules +3 -0
  3. package/README.md +46 -14
  4. package/dist/api/SignalClient.d.ts +7 -32
  5. package/dist/api/SignalClient.js +37 -8
  6. package/dist/api/SignalClient.js.map +1 -1
  7. package/dist/connect.d.ts +1 -1
  8. package/dist/connect.js +73 -59
  9. package/dist/connect.js.map +1 -1
  10. package/dist/index.d.ts +3 -3
  11. package/dist/index.js +4 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/logger.d.ts +10 -0
  14. package/dist/logger.js +15 -0
  15. package/dist/logger.js.map +1 -1
  16. package/dist/options.d.ts +83 -19
  17. package/dist/options.js +0 -10
  18. package/dist/options.js.map +1 -1
  19. package/dist/proto/livekit_models.d.ts +27 -1
  20. package/dist/proto/livekit_models.js +188 -3
  21. package/dist/proto/livekit_models.js.map +1 -1
  22. package/dist/proto/livekit_rtc.d.ts +114 -7
  23. package/dist/proto/livekit_rtc.js +783 -30
  24. package/dist/proto/livekit_rtc.js.map +1 -1
  25. package/dist/room/RTCEngine.d.ts +4 -2
  26. package/dist/room/RTCEngine.js +31 -35
  27. package/dist/room/RTCEngine.js.map +1 -1
  28. package/dist/room/Room.d.ts +16 -17
  29. package/dist/room/Room.js +125 -77
  30. package/dist/room/Room.js.map +1 -1
  31. package/dist/room/events.d.ts +115 -6
  32. package/dist/room/events.js +114 -5
  33. package/dist/room/events.js.map +1 -1
  34. package/dist/room/participant/LocalParticipant.d.ts +29 -9
  35. package/dist/room/participant/LocalParticipant.js +220 -160
  36. package/dist/room/participant/LocalParticipant.js.map +1 -1
  37. package/dist/room/participant/Participant.js +2 -1
  38. package/dist/room/participant/Participant.js.map +1 -1
  39. package/dist/room/participant/RemoteParticipant.d.ts +1 -1
  40. package/dist/room/participant/RemoteParticipant.js +8 -5
  41. package/dist/room/participant/RemoteParticipant.js.map +1 -1
  42. package/dist/room/participant/publishUtils.d.ts +11 -0
  43. package/dist/room/participant/publishUtils.js +148 -0
  44. package/dist/room/participant/publishUtils.js.map +1 -0
  45. package/dist/room/participant/publishUtils.test.d.ts +1 -0
  46. package/dist/room/participant/publishUtils.test.js +79 -0
  47. package/dist/room/participant/publishUtils.test.js.map +1 -0
  48. package/dist/room/stats.d.ts +21 -6
  49. package/dist/room/stats.js +22 -1
  50. package/dist/room/stats.js.map +1 -1
  51. package/dist/room/track/LocalAudioTrack.d.ts +8 -3
  52. package/dist/room/track/LocalAudioTrack.js +49 -3
  53. package/dist/room/track/LocalAudioTrack.js.map +1 -1
  54. package/dist/room/track/LocalTrack.d.ts +4 -3
  55. package/dist/room/track/LocalTrack.js +6 -48
  56. package/dist/room/track/LocalTrack.js.map +1 -1
  57. package/dist/room/track/LocalVideoTrack.d.ts +13 -4
  58. package/dist/room/track/LocalVideoTrack.js +150 -57
  59. package/dist/room/track/LocalVideoTrack.js.map +1 -1
  60. package/dist/room/track/LocalVideoTrack.test.d.ts +1 -0
  61. package/dist/room/track/LocalVideoTrack.test.js +68 -0
  62. package/dist/room/track/LocalVideoTrack.test.js.map +1 -0
  63. package/dist/room/track/RemoteAudioTrack.d.ts +7 -0
  64. package/dist/room/track/RemoteAudioTrack.js +61 -0
  65. package/dist/room/track/RemoteAudioTrack.js.map +1 -1
  66. package/dist/room/track/RemoteTrackPublication.d.ts +2 -3
  67. package/dist/room/track/RemoteTrackPublication.js +11 -10
  68. package/dist/room/track/RemoteTrackPublication.js.map +1 -1
  69. package/dist/room/track/RemoteVideoTrack.d.ts +10 -6
  70. package/dist/room/track/RemoteVideoTrack.js +97 -44
  71. package/dist/room/track/RemoteVideoTrack.js.map +1 -1
  72. package/dist/room/track/Track.d.ts +10 -2
  73. package/dist/room/track/Track.js +29 -2
  74. package/dist/room/track/Track.js.map +1 -1
  75. package/dist/room/track/create.d.ts +4 -6
  76. package/dist/room/track/create.js +10 -57
  77. package/dist/room/track/create.js.map +1 -1
  78. package/dist/room/track/defaults.d.ts +4 -0
  79. package/dist/room/track/defaults.js +21 -0
  80. package/dist/room/track/defaults.js.map +1 -0
  81. package/dist/room/track/options.d.ts +15 -65
  82. package/dist/room/track/options.js +14 -13
  83. package/dist/room/track/options.js.map +1 -1
  84. package/dist/room/track/utils.d.ts +3 -0
  85. package/dist/room/track/utils.js +68 -0
  86. package/dist/room/track/utils.js.map +1 -0
  87. package/dist/room/track/utils.test.d.ts +1 -0
  88. package/dist/room/track/utils.test.js +85 -0
  89. package/dist/room/track/utils.test.js.map +1 -0
  90. package/dist/room/utils.d.ts +7 -1
  91. package/dist/room/utils.js +29 -6
  92. package/dist/room/utils.js.map +1 -1
  93. package/dist/version.d.ts +1 -1
  94. package/dist/version.js +1 -1
  95. package/example/index.html +194 -178
  96. package/example/sample.ts +454 -325
  97. package/example/styles.css +144 -0
  98. package/example/webpack.config.js +1 -1
  99. package/jest.config.js +6 -0
  100. package/package.json +10 -7
  101. package/tsconfig.eslint.json +8 -1
  102. package/dist/room/defaults.d.ts +0 -5
  103. package/dist/room/defaults.js +0 -32
  104. package/dist/room/defaults.js.map +0 -1
@@ -0,0 +1,144 @@
1
+ #connect-area {
2
+ display: grid;
3
+ grid-template-columns: 1fr 1fr;
4
+ grid-template-rows: min-content min-content;
5
+ grid-auto-flow: column;
6
+ grid-gap: 10px;
7
+ margin-bottom: 15px;
8
+ }
9
+
10
+ #options-area {
11
+ display: grid;
12
+ grid-template-columns: repeat(4, fit-content(120px)) auto;
13
+ margin-left: 1.25rem;
14
+ margin-right: 1.25rem;
15
+ grid-gap: 3rem;
16
+ margin-bottom: 10px;
17
+ }
18
+
19
+ #actions-area {
20
+ display: grid;
21
+ grid-template-columns: fit-content(100px) auto;
22
+ grid-gap: 1.25rem;
23
+ margin-bottom: 15px;
24
+ }
25
+
26
+ #inputs-area {
27
+ display: grid;
28
+ grid-template-columns: repeat(3, 1fr);
29
+ grid-gap: 1.25rem;
30
+ margin-bottom: 10px;
31
+ }
32
+
33
+ #chat-input-area {
34
+ margin-top: 1.2rem;
35
+ display: grid;
36
+ grid-template-columns: auto min-content;
37
+ gap: 1.25rem;
38
+ }
39
+
40
+ #screenshare-area {
41
+ position: relative;
42
+ margin-top: 1.25rem;
43
+ margin-bottom: 1.25rem;
44
+ display: none;
45
+ }
46
+
47
+ #screenshare-area video {
48
+ max-width: 900px;
49
+ max-height: 900px;
50
+ border: 3px solid rgba(0, 0, 0, 0.5);
51
+ }
52
+
53
+ #participants-area {
54
+ display: grid;
55
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
56
+ gap: 20px;
57
+ }
58
+
59
+ #participants-area > .participant {
60
+ width: 100%;
61
+ }
62
+
63
+ #participants-area > .participant::before {
64
+ content: "";
65
+ display: inline-block;
66
+ width: 1px;
67
+ height: 0;
68
+ padding-bottom: calc(100% / (16/9));
69
+ }
70
+
71
+ #log-area {
72
+ margin-top: 1.25rem;
73
+ margin-bottom: 1rem;
74
+ }
75
+
76
+ #log {
77
+ width: 66.6%;
78
+ height: 100px;
79
+ }
80
+
81
+ .participant {
82
+ position: relative;
83
+ padding: 0;
84
+ margin: 0;
85
+ border-radius: 5px;
86
+ border: 3px solid rgba(0, 0, 0, 0);
87
+ overflow: hidden;
88
+ }
89
+
90
+ .participant video {
91
+ position: absolute;
92
+ left: 0;
93
+ top: 0;
94
+ width: 100%;
95
+ height: 100%;
96
+ background-color: #aaa;
97
+ object-fit: cover;
98
+ border-radius: 5px;
99
+ }
100
+
101
+ .participant .info-bar {
102
+ position: absolute;
103
+ width: 100%;
104
+ bottom: 0;
105
+ display: grid;
106
+ color: #eee;
107
+ padding: 2px 8px 2px 8px;
108
+ background-color: rgba(0, 0, 0, 0.35);
109
+ grid-template-columns: minmax(50px, auto) 1fr minmax(50px, auto);
110
+ z-index: 5;
111
+ }
112
+
113
+ .participant .size {
114
+ text-align: center;
115
+ }
116
+
117
+ .participant .right {
118
+ text-align: right;
119
+ }
120
+
121
+ .participant.speaking {
122
+ border: 3px solid rgba(94, 166, 190, 0.7);
123
+ }
124
+
125
+ .participant .mic-off {
126
+ color: #d33;
127
+ text-align: right;
128
+ }
129
+
130
+ .participant .mic-on {
131
+ text-align: right;
132
+ }
133
+
134
+ .participant .connection-excellent {
135
+ color: green;
136
+ }
137
+
138
+ .participant .connection-good {
139
+ color: orange;
140
+ }
141
+
142
+ .participant .connection-poor {
143
+ color: red;
144
+ }
@@ -24,7 +24,7 @@ module.exports = {
24
24
  ],
25
25
  },
26
26
  resolve: {
27
- extensions: ['.tsx', '.ts', '.js'],
27
+ extensions: ['.tsx', '.ts', '.js', '.css'],
28
28
  },
29
29
  output: {
30
30
  filename: 'bundle.js',
package/jest.config.js ADDED
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ clearMocks: true,
3
+ modulePathIgnorePatterns: ['<rootDir>/dist/'],
4
+ preset: 'ts-jest',
5
+ testEnvironment: 'node',
6
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "livekit-client",
3
- "version": "0.14.1",
3
+ "version": "0.15.1",
4
4
  "description": "JavaScript/TypeScript client SDK for LiveKit",
5
5
  "main": "dist/index.js",
6
6
  "source": "src/index.ts",
@@ -11,28 +11,31 @@
11
11
  "scripts": {
12
12
  "build": "yarn exec tsc",
13
13
  "build-docs": "yarn exec typedoc",
14
- "proto": "protoc --plugin=node_modules/ts-proto/protoc-gen-ts_proto --ts_proto_opt=esModuleInterop=true --ts_proto_out=./src/proto --ts_proto_opt=outputClientImpl=false,useOptionals=true -I../protocol ../protocol/livekit_rtc.proto ../protocol/livekit_models.proto",
14
+ "proto": "protoc --plugin=node_modules/ts-proto/protoc-gen-ts_proto --ts_proto_opt=esModuleInterop=true --ts_proto_out=./src/proto --ts_proto_opt=outputClientImpl=false,useOptionals=true -I./protocol ./protocol/livekit_rtc.proto ./protocol/livekit_models.proto",
15
15
  "sample": "cd example && webpack serve",
16
- "build-sample": "cd example && webpack && cp index.html dist/",
16
+ "build-sample": "cd example && webpack && cp styles.css index.html dist/",
17
17
  "lint": "yarn exec eslint src",
18
18
  "test": "jest",
19
19
  "deploy": "gh-pages -d example/dist"
20
20
  },
21
21
  "dependencies": {
22
- "@types/ws": "^7.4.0",
23
22
  "events": "^3.3.0",
24
- "loglevel": "^1.7.1",
25
- "protobufjs": "^6.10.2",
23
+ "loglevel": "^1.8.0",
24
+ "protobufjs": "^6.11.2",
26
25
  "ts-debounce": "^3.0.0",
27
- "webrtc-adapter": "^7.7.1"
26
+ "webrtc-adapter": "^8.1.0"
28
27
  },
29
28
  "devDependencies": {
29
+ "@types/jest": "^27.0.3",
30
+ "@types/ws": "^7.4.0",
30
31
  "@typescript-eslint/eslint-plugin": "^4.31.2",
31
32
  "@webpack-cli/serve": "^1.5.2",
32
33
  "eslint": "^7.32.0",
33
34
  "eslint-config-airbnb-typescript": "^12.3.1",
34
35
  "eslint-plugin-import": "^2.24.2",
35
36
  "gh-pages": "^3.2.3",
37
+ "jest": "^27.4.3",
38
+ "ts-jest": "^27.0.7",
36
39
  "ts-loader": "^8.1.0",
37
40
  "ts-proto": "^1.85.0",
38
41
  "typedoc": "^0.20.35",
@@ -1,4 +1,11 @@
1
1
  {
2
2
  "extends": "./tsconfig.json",
3
- "include": ["src/**/*.ts", "src/**/*.js", "example/**/*.ts", "example/**/*.js", ".eslintrc.js"]
3
+ "include": [
4
+ "src/**/*.ts",
5
+ "src/**/*.js",
6
+ "example/**/*.ts",
7
+ "example/**/*.js",
8
+ ".eslintrc.js",
9
+ "jest.config.js",
10
+ ]
4
11
  }
@@ -1,5 +0,0 @@
1
- import { TrackCaptureDefaults, TrackPublishDefaults } from './track/options';
2
- export declare function getTrackPublishDefaults(): TrackPublishDefaults;
3
- export declare function setTrackPublishDefaults(defaults: TrackPublishDefaults): void;
4
- export declare function getTrackCaptureDefaults(): TrackCaptureDefaults;
5
- export declare function setTrackCaptureDefaults(defaults: TrackCaptureDefaults): void;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setTrackCaptureDefaults = exports.getTrackCaptureDefaults = exports.setTrackPublishDefaults = exports.getTrackPublishDefaults = void 0;
4
- const options_1 = require("./track/options");
5
- let publishDefaults = {
6
- audioBitrate: options_1.AudioPresets.speech.maxBitrate,
7
- stopMicTrackOnMute: false,
8
- };
9
- let captureDefaults = {
10
- autoGainControl: true,
11
- channelCount: 1,
12
- echoCancellation: true,
13
- noiseSuppression: true,
14
- videoResolution: options_1.VideoPresets.qhd.resolution,
15
- };
16
- function getTrackPublishDefaults() {
17
- return publishDefaults;
18
- }
19
- exports.getTrackPublishDefaults = getTrackPublishDefaults;
20
- function setTrackPublishDefaults(defaults) {
21
- publishDefaults = defaults;
22
- }
23
- exports.setTrackPublishDefaults = setTrackPublishDefaults;
24
- function getTrackCaptureDefaults() {
25
- return captureDefaults;
26
- }
27
- exports.getTrackCaptureDefaults = getTrackCaptureDefaults;
28
- function setTrackCaptureDefaults(defaults) {
29
- captureDefaults = defaults;
30
- }
31
- exports.setTrackCaptureDefaults = setTrackCaptureDefaults;
32
- //# sourceMappingURL=defaults.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/room/defaults.ts"],"names":[],"mappings":";;;AAAA,6CAEyB;AAEzB,IAAI,eAAe,GAAyB;IAC1C,YAAY,EAAE,sBAAY,CAAC,MAAM,CAAC,UAAU;IAC5C,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AAEF,IAAI,eAAe,GAAyB;IAC1C,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,sBAAY,CAAC,GAAG,CAAC,UAAU;CAC7C,CAAC;AAEF,SAAgB,uBAAuB;IACrC,OAAO,eAAe,CAAC;AACzB,CAAC;AAFD,0DAEC;AAED,SAAgB,uBAAuB,CAAC,QAA8B;IACpE,eAAe,GAAG,QAAQ,CAAC;AAC7B,CAAC;AAFD,0DAEC;AAED,SAAgB,uBAAuB;IACrC,OAAO,eAAe,CAAC;AACzB,CAAC;AAFD,0DAEC;AAED,SAAgB,uBAAuB,CAAC,QAA8B;IACpE,eAAe,GAAG,QAAQ,CAAC;AAC7B,CAAC;AAFD,0DAEC"}