mediasoup-client 3.6.45 → 3.6.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vimrc +21 -0
- package/NO_GIT/Notes.txt +18 -0
- package/lib/DataConsumer.d.ts +2 -2
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +7 -3
- package/lib/Logger.js +6 -6
- package/lib/Transport.d.ts +3 -0
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +111 -40
- package/lib/handlers/Chrome55.d.ts +1 -1
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +51 -30
- package/lib/handlers/Chrome67.d.ts +1 -1
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +55 -33
- package/lib/handlers/Chrome70.d.ts +1 -1
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +53 -33
- package/lib/handlers/Chrome74.d.ts +1 -1
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +56 -33
- package/lib/handlers/Edge11.d.ts +1 -1
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +31 -22
- package/lib/handlers/FakeHandler.d.ts +1 -1
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +14 -11
- package/lib/handlers/Firefox60.d.ts +1 -1
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +54 -33
- package/lib/handlers/HandlerInterface.d.ts +1 -1
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative.d.ts +1 -1
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +59 -36
- package/lib/handlers/Safari11.d.ts +1 -1
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +52 -33
- package/lib/handlers/Safari12.d.ts +1 -1
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +51 -32
- package/lib/handlers/ortc/edgeUtils.js +1 -1
- package/lib/handlers/sdp/MediaSection.js +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +1 -1
- package/lib/handlers/sdp/commonUtils.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +3 -3
- package/lib/ortc.js +5 -7
- package/lib/types.js +1 -1
- package/package.json +11 -11
- package/src/DataConsumer.ts +2 -2
- package/src/Device.ts +7 -2
- package/src/Transport.ts +162 -58
- package/src/handlers/Chrome55.ts +53 -32
- package/src/handlers/Chrome67.ts +55 -34
- package/src/handlers/Chrome70.ts +52 -32
- package/src/handlers/Chrome74.ts +56 -32
- package/src/handlers/Edge11.ts +42 -26
- package/src/handlers/FakeHandler.ts +18 -10
- package/src/handlers/Firefox60.ts +54 -33
- package/src/handlers/HandlerInterface.ts +2 -2
- package/src/handlers/ReactNative.ts +63 -39
- package/src/handlers/Safari11.ts +55 -34
- package/src/handlers/Safari12.ts +52 -32
- package/src/ortc.ts +6 -8
- package/tsconfig.json +1 -1
package/.vimrc
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
" session title
|
|
2
|
+
set title titlestring=mediasoup-client
|
|
3
|
+
|
|
4
|
+
" formatting
|
|
5
|
+
set shiftwidth=2 " use indents of 2 spaces
|
|
6
|
+
" tabs are tabs
|
|
7
|
+
set noexpandtab " tabs are spaces, not tabs
|
|
8
|
+
set tabstop=2 " an indentation every 2 columns
|
|
9
|
+
set softtabstop=2 " backspace delete indent
|
|
10
|
+
set backspace=2 " make backspace work
|
|
11
|
+
|
|
12
|
+
let g:ale_linters = {
|
|
13
|
+
\ 'javascript': ['eslint'],
|
|
14
|
+
\ 'typescript': ['eslint'],
|
|
15
|
+
\}
|
|
16
|
+
|
|
17
|
+
let g:ale_fixers = {
|
|
18
|
+
\ 'typescript': ['prettier'],
|
|
19
|
+
\ 'javascript': ['prettier'],
|
|
20
|
+
\ 'markdown': [],
|
|
21
|
+
\}
|
package/NO_GIT/Notes.txt
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
## New release
|
|
2
|
+
|
|
3
|
+
- Update version in package.json
|
|
4
|
+
|
|
5
|
+
- Generate transpiled lib/ files:
|
|
6
|
+
`npm run typescript:build`
|
|
7
|
+
|
|
8
|
+
- Commit new version:
|
|
9
|
+
`git commit -am"3.6.6"`
|
|
10
|
+
|
|
11
|
+
- Create tag:
|
|
12
|
+
`git tag -a 3.6.6 -m "3.6.6"`
|
|
13
|
+
|
|
14
|
+
- Push:
|
|
15
|
+
`git push origin v3 && git push origin --tags`
|
|
16
|
+
|
|
17
|
+
- Publish npm:
|
|
18
|
+
`npm publish`
|
package/lib/DataConsumer.d.ts
CHANGED
|
@@ -62,11 +62,11 @@ export declare class DataConsumer extends EnhancedEventEmitter {
|
|
|
62
62
|
/**
|
|
63
63
|
* DataChannel binaryType.
|
|
64
64
|
*/
|
|
65
|
-
get binaryType():
|
|
65
|
+
get binaryType(): BinaryType;
|
|
66
66
|
/**
|
|
67
67
|
* Set DataChannel binaryType.
|
|
68
68
|
*/
|
|
69
|
-
set binaryType(binaryType:
|
|
69
|
+
set binaryType(binaryType: BinaryType);
|
|
70
70
|
/**
|
|
71
71
|
* App custom data.
|
|
72
72
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataConsumer.d.ts","sourceRoot":"","sources":["../src/DataConsumer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,oBAAY,mBAAmB,GAC/B;IACC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,CAAC;CACd,CAAA;AAID,qBAAa,YAAa,SAAQ,oBAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAE9C,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuB;IAE7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAM;IAE/B,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAE1D;;;;;;;OAOG;gBAEF,EACC,EAAE,EACF,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,OAAO,EACP,EACD;QACC,EAAE,EAAE,MAAM,CAAC;QACX,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,cAAc,CAAC;QAC5B,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,OAAO,EAAE,GAAG,CAAC;KACb;IAgBF;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAGf;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAG3B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED;;OAEG;IACH,IAAI,oBAAoB,IAAI,oBAAoB,CAG/C;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,mBAAmB,CAGpC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAGlB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAGrB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,
|
|
1
|
+
{"version":3,"file":"DataConsumer.d.ts","sourceRoot":"","sources":["../src/DataConsumer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,oBAAY,mBAAmB,GAC/B;IACC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,CAAC;CACd,CAAA;AAID,qBAAa,YAAa,SAAQ,oBAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAE9C,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuB;IAE7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAM;IAE/B,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAE1D;;;;;;;OAOG;gBAEF,EACC,EAAE,EACF,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,OAAO,EACP,EACD;QACC,EAAE,EAAE,MAAM,CAAC;QACX,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,cAAc,CAAC;QAC5B,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,OAAO,EAAE,GAAG,CAAC;KACb;IAgBF;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAGf;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAG3B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED;;OAEG;IACH,IAAI,oBAAoB,IAAI,oBAAoB,CAG/C;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,mBAAmB,CAGpC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAGlB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAGrB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,UAAU,CAG3B;IAED;;OAEG;IACH,IAAI,UAAU,CAAC,UAAU,EAAE,UAAU,EAGpC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,GAAG,CAGjB;IAED;;OAEG;IACH,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,EAGvB;IAED;;;;OAIG;IACH,IAAI,QAAQ,IAAI,oBAAoB,CAGnC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;IAiBb;;OAEG;IACH,eAAe,IAAI,IAAI;IAiBvB,OAAO,CAAC,kBAAkB;CAyD1B"}
|
package/lib/Device.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAoB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAoB,MAAM,6BAA6B,CAAC;AAU/E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIpD,oBAAY,kBAAkB,GAC3B,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,GACR,aAAa,CAAC;AAEjB,oBAAY,aAAa,GACzB;IACC;;OAEG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAOF,wBAAgB,YAAY,IAAI,kBAAkB,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAoB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAoB,MAAM,6BAA6B,CAAC;AAU/E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIpD,oBAAY,kBAAkB,GAC3B,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,GACR,aAAa,CAAC;AAEjB,oBAAY,aAAa,GACzB;IACC;;OAEG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAOF,wBAAgB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CA0H7D;AAED,qBAAa,MAAM;IAGlB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,wBAAwB,CAAC,CAAM;IAEvC,OAAO,CAAC,oBAAoB,CAAC,CAAkB;IAG/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAErD,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAE7C,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAE1D;;;;OAIG;gBACS,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,GAAE,aAAkB;IA8FxE;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,eAAe,CAMrC;IAED;;;;OAIG;IACH,IAAI,gBAAgB,IAAI,gBAAgB,CAMvC;IAED;;;;OAIG;IACH,IAAI,QAAQ,IAAI,oBAAoB,CAGnC;IAED;;OAEG;IACG,IAAI,CACT,EAAE,qBAAqB,EAAE,EACzB;QAAE,qBAAqB,EAAE,eAAe,CAAA;KAAE,GACxC,OAAO,CAAC,IAAI,CAAC;IA4EhB;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAUpC;;;;;OAKG;IACH,mBAAmB,CAClB,EACC,EAAE,EACF,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,OAAY,EACZ,EAAE,gBAAgB,GACjB,SAAS;IAoBZ;;;;;OAKG;IACH,mBAAmB,CAClB,EACC,EAAE,EACF,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,OAAY,EACZ,EAAE,gBAAgB,GACjB,SAAS;IAoBZ,OAAO,CAAC,gBAAgB;CAuDxB"}
|
package/lib/Device.js
CHANGED
|
@@ -15,7 +15,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
16
16
|
if (mod && mod.__esModule) return mod;
|
|
17
17
|
var result = {};
|
|
18
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
19
19
|
__setModuleDefault(result, mod);
|
|
20
20
|
return result;
|
|
21
21
|
};
|
|
@@ -57,8 +57,8 @@ function detectDevice() {
|
|
|
57
57
|
const ua = navigator.userAgent;
|
|
58
58
|
const browser = bowser_1.default.getParser(ua);
|
|
59
59
|
const engine = browser.getEngine();
|
|
60
|
-
// Chrome and
|
|
61
|
-
if (browser.satisfies({ chrome: '>=74', chromium: '>=74' })) {
|
|
60
|
+
// Chrome, Chromium, and Edge.
|
|
61
|
+
if (browser.satisfies({ chrome: '>=74', chromium: '>=74', 'microsoft edge': '>=88' })) {
|
|
62
62
|
return 'Chrome74';
|
|
63
63
|
}
|
|
64
64
|
else if (browser.satisfies({ chrome: '>=70', chromium: '>=70' })) {
|
|
@@ -74,6 +74,10 @@ function detectDevice() {
|
|
|
74
74
|
else if (browser.satisfies({ firefox: '>=60' })) {
|
|
75
75
|
return 'Firefox60';
|
|
76
76
|
}
|
|
77
|
+
// Firefox on iOS.
|
|
78
|
+
else if (browser.satisfies({ ios: { OS: '>=14.3', firefox: '>=30.0' } })) {
|
|
79
|
+
return 'Safari12';
|
|
80
|
+
}
|
|
77
81
|
// Safari with Unified-Plan support enabled.
|
|
78
82
|
else if (browser.satisfies({ safari: '>=12.0' }) &&
|
|
79
83
|
typeof RTCRtpTransceiver !== 'undefined' &&
|
package/lib/Logger.js
CHANGED
|
@@ -9,14 +9,14 @@ const APP_NAME = 'mediasoup-client';
|
|
|
9
9
|
class Logger {
|
|
10
10
|
constructor(prefix) {
|
|
11
11
|
if (prefix) {
|
|
12
|
-
this._debug = debug_1.default(`${APP_NAME}:${prefix}`);
|
|
13
|
-
this._warn = debug_1.default(`${APP_NAME}:WARN:${prefix}`);
|
|
14
|
-
this._error = debug_1.default(`${APP_NAME}:ERROR:${prefix}`);
|
|
12
|
+
this._debug = (0, debug_1.default)(`${APP_NAME}:${prefix}`);
|
|
13
|
+
this._warn = (0, debug_1.default)(`${APP_NAME}:WARN:${prefix}`);
|
|
14
|
+
this._error = (0, debug_1.default)(`${APP_NAME}:ERROR:${prefix}`);
|
|
15
15
|
}
|
|
16
16
|
else {
|
|
17
|
-
this._debug = debug_1.default(APP_NAME);
|
|
18
|
-
this._warn = debug_1.default(`${APP_NAME}:WARN`);
|
|
19
|
-
this._error = debug_1.default(`${APP_NAME}:ERROR`);
|
|
17
|
+
this._debug = (0, debug_1.default)(APP_NAME);
|
|
18
|
+
this._warn = (0, debug_1.default)(`${APP_NAME}:WARN`);
|
|
19
|
+
this._error = (0, debug_1.default)(`${APP_NAME}:ERROR`);
|
|
20
20
|
}
|
|
21
21
|
/* eslint-disable no-console */
|
|
22
22
|
this._debug.log = console.info.bind(console);
|
package/lib/Transport.d.ts
CHANGED
|
@@ -116,6 +116,8 @@ export declare class Transport extends EnhancedEventEmitter {
|
|
|
116
116
|
private readonly _dataConsumers;
|
|
117
117
|
private _probatorConsumerCreated;
|
|
118
118
|
private readonly _awaitQueue;
|
|
119
|
+
private _pendingConsumerTasks;
|
|
120
|
+
private _consumerCreationInProgress;
|
|
119
121
|
protected readonly _observer: EnhancedEventEmitter;
|
|
120
122
|
/**
|
|
121
123
|
* @emits connect - (transportLocalParameters: any, callback: Function, errback: Function)
|
|
@@ -200,6 +202,7 @@ export declare class Transport extends EnhancedEventEmitter {
|
|
|
200
202
|
* Create a DataConsumer
|
|
201
203
|
*/
|
|
202
204
|
consumeData({ id, dataProducerId, sctpStreamParameters, label, protocol, appData }: DataConsumerOptions): Promise<DataConsumer>;
|
|
205
|
+
_createPendingConsumers(): Promise<void>;
|
|
203
206
|
_handleHandler(): void;
|
|
204
207
|
_handleProducer(producer: Producer): void;
|
|
205
208
|
_handleConsumer(consumer: Consumer): void;
|
package/lib/Transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,cAAc,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"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"}
|
package/lib/Transport.js
CHANGED
|
@@ -14,7 +14,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
14
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
15
|
if (mod && mod.__esModule) return mod;
|
|
16
16
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
@@ -30,6 +30,15 @@ const Producer_1 = require("./Producer");
|
|
|
30
30
|
const Consumer_1 = require("./Consumer");
|
|
31
31
|
const DataProducer_1 = require("./DataProducer");
|
|
32
32
|
const DataConsumer_1 = require("./DataConsumer");
|
|
33
|
+
class ConsumerCreationTask {
|
|
34
|
+
constructor(consumerOptions) {
|
|
35
|
+
this.consumerOptions = consumerOptions;
|
|
36
|
+
this.promise = new Promise((resolve, reject) => {
|
|
37
|
+
this.resolve = resolve;
|
|
38
|
+
this.reject = reject;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
33
42
|
const logger = new Logger_1.Logger('Transport');
|
|
34
43
|
class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
35
44
|
/**
|
|
@@ -56,6 +65,10 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
56
65
|
this._probatorConsumerCreated = false;
|
|
57
66
|
// AwaitQueue instance to make async tasks happen sequentially.
|
|
58
67
|
this._awaitQueue = new awaitqueue_1.AwaitQueue({ ClosedErrorClass: errors_1.InvalidStateError });
|
|
68
|
+
// Consumer creation tasks awaiting to be processed.
|
|
69
|
+
this._pendingConsumerTasks = [];
|
|
70
|
+
// Consumer creation in progress flag.
|
|
71
|
+
this._consumerCreationInProgress = false;
|
|
59
72
|
// Observer instance.
|
|
60
73
|
this._observer = new EnhancedEventEmitter_1.EnhancedEventEmitter();
|
|
61
74
|
logger.debug('constructor() [id:%s, direction:%s]', id, direction);
|
|
@@ -333,45 +346,24 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
333
346
|
throw new TypeError('no "connect" listener set into this transport');
|
|
334
347
|
else if (appData && typeof appData !== 'object')
|
|
335
348
|
throw new TypeError('if given, appData must be an object');
|
|
336
|
-
//
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
// If this is the first video Consumer and the Consumer for RTP probation
|
|
355
|
-
// has not yet been created, create it now.
|
|
356
|
-
if (!this._probatorConsumerCreated && kind === 'video') {
|
|
357
|
-
try {
|
|
358
|
-
const probatorRtpParameters = ortc.generateProbatorRtpParameters(consumer.rtpParameters);
|
|
359
|
-
await this._handler.receive({
|
|
360
|
-
trackId: 'probator',
|
|
361
|
-
kind: 'video',
|
|
362
|
-
rtpParameters: probatorRtpParameters
|
|
363
|
-
});
|
|
364
|
-
logger.debug('consume() | Consumer for RTP probation created');
|
|
365
|
-
this._probatorConsumerCreated = true;
|
|
366
|
-
}
|
|
367
|
-
catch (error) {
|
|
368
|
-
logger.error('consume() | failed to create Consumer for RTP probation:%o', error);
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
// Emit observer event.
|
|
372
|
-
this._observer.safeEmit('newconsumer', consumer);
|
|
373
|
-
return consumer;
|
|
374
|
-
}, 'transport.consume()');
|
|
349
|
+
// Ensure the device can consume it.
|
|
350
|
+
const canConsume = ortc.canReceive(rtpParameters, this._extendedRtpCapabilities);
|
|
351
|
+
if (!canConsume)
|
|
352
|
+
throw new errors_1.UnsupportedError('cannot consume this Producer');
|
|
353
|
+
const consumerCreationTask = new ConsumerCreationTask({
|
|
354
|
+
id,
|
|
355
|
+
producerId,
|
|
356
|
+
kind,
|
|
357
|
+
rtpParameters,
|
|
358
|
+
appData
|
|
359
|
+
});
|
|
360
|
+
// Store the Consumer creation task.
|
|
361
|
+
this._pendingConsumerTasks.push(consumerCreationTask);
|
|
362
|
+
// There is no Consumer creation in progress, create it now.
|
|
363
|
+
if (this._consumerCreationInProgress === false) {
|
|
364
|
+
this._createPendingConsumers();
|
|
365
|
+
}
|
|
366
|
+
return consumerCreationTask.promise;
|
|
375
367
|
}
|
|
376
368
|
/**
|
|
377
369
|
* Create a DataProducer
|
|
@@ -458,6 +450,85 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
458
450
|
return dataConsumer;
|
|
459
451
|
}, 'transport.consumeData()');
|
|
460
452
|
}
|
|
453
|
+
// This method is guaranteed to never throw.
|
|
454
|
+
async _createPendingConsumers() {
|
|
455
|
+
this._awaitQueue.push(async () => {
|
|
456
|
+
this._consumerCreationInProgress = true;
|
|
457
|
+
const pendingConsumerTasks = [...this._pendingConsumerTasks];
|
|
458
|
+
// Clear pending Consumer tasks.
|
|
459
|
+
this._pendingConsumerTasks = [];
|
|
460
|
+
// Video Consumer in order to create the probator.
|
|
461
|
+
let videoConsumerForProbator = undefined;
|
|
462
|
+
// Fill options list.
|
|
463
|
+
const optionsList = [];
|
|
464
|
+
for (const task of pendingConsumerTasks) {
|
|
465
|
+
const { id, kind, rtpParameters } = task.consumerOptions;
|
|
466
|
+
optionsList.push({
|
|
467
|
+
trackId: id,
|
|
468
|
+
kind: kind,
|
|
469
|
+
rtpParameters
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
try {
|
|
473
|
+
const results = await this._handler.receive(optionsList);
|
|
474
|
+
for (let idx = 0; idx < results.length; idx++) {
|
|
475
|
+
const task = pendingConsumerTasks[idx];
|
|
476
|
+
const result = results[idx];
|
|
477
|
+
const { id, producerId, kind, rtpParameters, appData } = task.consumerOptions;
|
|
478
|
+
const { localId, rtpReceiver, track } = result;
|
|
479
|
+
const consumer = new Consumer_1.Consumer({
|
|
480
|
+
id: id,
|
|
481
|
+
localId,
|
|
482
|
+
producerId: producerId,
|
|
483
|
+
rtpReceiver,
|
|
484
|
+
track,
|
|
485
|
+
rtpParameters,
|
|
486
|
+
appData
|
|
487
|
+
});
|
|
488
|
+
this._consumers.set(consumer.id, consumer);
|
|
489
|
+
this._handleConsumer(consumer);
|
|
490
|
+
// If this is the first video Consumer and the Consumer for RTP probation
|
|
491
|
+
// has not yet been created, it's time to create it.
|
|
492
|
+
if (!this._probatorConsumerCreated && !videoConsumerForProbator && kind === 'video') {
|
|
493
|
+
videoConsumerForProbator = consumer;
|
|
494
|
+
}
|
|
495
|
+
// Emit observer event.
|
|
496
|
+
this._observer.safeEmit('newconsumer', consumer);
|
|
497
|
+
task.resolve(consumer);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
catch (error) {
|
|
501
|
+
for (const task of pendingConsumerTasks) {
|
|
502
|
+
task.reject(error);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
// If RTP probation must be handled, do it now.
|
|
506
|
+
if (videoConsumerForProbator) {
|
|
507
|
+
try {
|
|
508
|
+
const probatorRtpParameters = ortc.generateProbatorRtpParameters(videoConsumerForProbator.rtpParameters);
|
|
509
|
+
await this._handler.receive([{
|
|
510
|
+
trackId: 'probator',
|
|
511
|
+
kind: 'video',
|
|
512
|
+
rtpParameters: probatorRtpParameters
|
|
513
|
+
}]);
|
|
514
|
+
logger.debug('_createPendingConsumers() | Consumer for RTP probation created');
|
|
515
|
+
this._probatorConsumerCreated = true;
|
|
516
|
+
}
|
|
517
|
+
catch (error) {
|
|
518
|
+
logger.error('_createPendingConsumers() | failed to create Consumer for RTP probation:%o', error);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
this._consumerCreationInProgress = false;
|
|
522
|
+
}, 'transport._createPendingConsumers()')
|
|
523
|
+
.then(() => {
|
|
524
|
+
// There are pending Consumer tasks, enqueue their creation.
|
|
525
|
+
if (this._pendingConsumerTasks.length > 0) {
|
|
526
|
+
this._createPendingConsumers();
|
|
527
|
+
}
|
|
528
|
+
})
|
|
529
|
+
// NOTE: We only get here when the await queue is closed.
|
|
530
|
+
.catch(() => { });
|
|
531
|
+
}
|
|
461
532
|
_handleHandler() {
|
|
462
533
|
const handler = this._handler;
|
|
463
534
|
handler.on('@connect', ({ dtlsParameters }, callback, errback) => {
|
|
@@ -36,7 +36,7 @@ export declare class Chrome55 extends HandlerInterface {
|
|
|
36
36
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
37
37
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
38
38
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
39
|
-
receive(
|
|
39
|
+
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
40
40
|
stopReceiving(localId: string): Promise<void>;
|
|
41
41
|
pauseReceiving(localId: string): Promise<void>;
|
|
42
42
|
resumeReceiving(localId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome55.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome55.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;IAG7E,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA4C;IAEjF,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAOrB;IAEf,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;;IAUtC,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAYP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAuCpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS5D,GAAG,CACF,EACC,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,EAAE,iBAAiB,GAClB,IAAI;IAsED,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAK5C,IAAI,CACT,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAC3D,OAAO,CAAC,iBAAiB,CAAC;IAgIvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD3C,YAAY,CAEjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAMV,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKxD,eAAe,CACpB,EACC,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,EACR,EAAE,6BAA6B,GAC9B,OAAO,CAAC,4BAA4B,CAAC;IAuElC,OAAO,CACZ,
|
|
1
|
+
{"version":3,"file":"Chrome55.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome55.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome55.js
CHANGED
|
@@ -14,7 +14,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
14
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
15
|
if (mod && mod.__esModule) return mod;
|
|
16
16
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
@@ -130,7 +130,14 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
130
130
|
? 'client'
|
|
131
131
|
: 'server';
|
|
132
132
|
}
|
|
133
|
-
this._pc = new RTCPeerConnection(
|
|
133
|
+
this._pc = new RTCPeerConnection({
|
|
134
|
+
iceServers: iceServers || [],
|
|
135
|
+
iceTransportPolicy: iceTransportPolicy || 'all',
|
|
136
|
+
bundlePolicy: 'max-bundle',
|
|
137
|
+
rtcpMuxPolicy: 'require',
|
|
138
|
+
sdpSemantics: 'plan-b',
|
|
139
|
+
...additionalSettings
|
|
140
|
+
}, proprietaryConstraints);
|
|
134
141
|
// Handle RTCPeerConnection connection status.
|
|
135
142
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
136
143
|
switch (this._pc.iceConnectionState) {
|
|
@@ -356,33 +363,40 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
356
363
|
};
|
|
357
364
|
return { dataChannel, sctpStreamParameters };
|
|
358
365
|
}
|
|
359
|
-
async receive(
|
|
366
|
+
async receive(optionsList) {
|
|
360
367
|
var _a;
|
|
361
368
|
this._assertRecvDirection();
|
|
362
|
-
|
|
363
|
-
const
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
369
|
+
const results = [];
|
|
370
|
+
for (const options of optionsList) {
|
|
371
|
+
const { trackId, kind, rtpParameters } = options;
|
|
372
|
+
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
373
|
+
const mid = kind;
|
|
374
|
+
const streamId = rtpParameters.rtcp.cname;
|
|
375
|
+
this._remoteSdp.receive({
|
|
376
|
+
mid,
|
|
377
|
+
kind,
|
|
378
|
+
offerRtpParameters: rtpParameters,
|
|
379
|
+
streamId,
|
|
380
|
+
trackId
|
|
381
|
+
});
|
|
382
|
+
}
|
|
373
383
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
374
384
|
logger.debug('receive() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
375
385
|
await this._pc.setRemoteDescription(offer);
|
|
376
386
|
let answer = await this._pc.createAnswer();
|
|
377
387
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
378
|
-
const
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
388
|
+
for (const options of optionsList) {
|
|
389
|
+
const { kind, rtpParameters } = options;
|
|
390
|
+
const mid = kind;
|
|
391
|
+
const answerMediaObject = localSdpObject.media
|
|
392
|
+
.find((m) => String(m.mid) === mid);
|
|
393
|
+
// May need to modify codec parameters in the answer based on codec
|
|
394
|
+
// parameters in the offer.
|
|
395
|
+
sdpCommonUtils.applyCodecParameters({
|
|
396
|
+
offerRtpParameters: rtpParameters,
|
|
397
|
+
answerMediaObject
|
|
398
|
+
});
|
|
399
|
+
}
|
|
386
400
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
387
401
|
if (!this._transportReady) {
|
|
388
402
|
await this._setupTransport({
|
|
@@ -392,14 +406,21 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
392
406
|
}
|
|
393
407
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
394
408
|
await this._pc.setLocalDescription(answer);
|
|
395
|
-
const
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
409
|
+
for (const options of optionsList) {
|
|
410
|
+
const { kind, trackId, rtpParameters } = options;
|
|
411
|
+
const mid = kind;
|
|
412
|
+
const localId = trackId;
|
|
413
|
+
const streamId = rtpParameters.rtcp.cname;
|
|
414
|
+
const stream = this._pc.getRemoteStreams()
|
|
415
|
+
.find((s) => s.id === streamId);
|
|
416
|
+
const track = stream.getTrackById(localId);
|
|
417
|
+
if (!track)
|
|
418
|
+
throw new Error('remote track not found');
|
|
419
|
+
// Insert into the map.
|
|
420
|
+
this._mapRecvLocalIdInfo.set(localId, { mid, rtpParameters });
|
|
421
|
+
results.push({ localId, track });
|
|
422
|
+
}
|
|
423
|
+
return results;
|
|
403
424
|
}
|
|
404
425
|
async stopReceiving(localId) {
|
|
405
426
|
this._assertRecvDirection();
|
|
@@ -36,7 +36,7 @@ export declare class Chrome67 extends HandlerInterface {
|
|
|
36
36
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
37
37
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
38
38
|
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
39
|
-
receive(
|
|
39
|
+
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
40
40
|
stopReceiving(localId: string): Promise<void>;
|
|
41
41
|
pauseReceiving(localId: string): Promise<void>;
|
|
42
42
|
resumeReceiving(localId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;IAG7E,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAC9B;IAEX,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAQrB;IAEf,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;;IAUtC,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAYP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAuCpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS5D,GAAG,CACF,EACC,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,EAAE,iBAAiB,GAClB,IAAI;IAsED,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAK5C,IAAI,CACT,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAC3D,OAAO,CAAC,iBAAiB,CAAC;IAoIvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwD3C,YAAY,CACjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAgCV,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BxE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAYxD,eAAe,CACpB,EACC,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,EACR,EAAE,6BAA6B,GAC9B,OAAO,CAAC,4BAA4B,CAAC;IAuElC,OAAO,
|
|
1
|
+
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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"}
|