livekit-client 2.5.6 → 2.5.8
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +2 -2
- package/dist/livekit-client.e2ee.worker.js +1 -1
- package/dist/livekit-client.e2ee.worker.js.map +1 -1
- package/dist/livekit-client.e2ee.worker.mjs +628 -603
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +2160 -1949
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/e2ee/worker/FrameCryptor.d.ts +2 -2
- package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts +4 -1
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/events.d.ts +7 -3
- package/dist/src/room/events.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts +7 -0
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/Participant.d.ts +1 -1
- package/dist/src/room/participant/Participant.d.ts.map +1 -1
- package/dist/src/room/track/Track.d.ts +1 -1
- package/dist/src/room/track/Track.d.ts.map +1 -1
- package/dist/src/room/utils.d.ts +1 -1
- package/dist/src/room/utils.d.ts.map +1 -1
- package/dist/src/test/mocks.d.ts +1 -1
- package/dist/src/test/mocks.d.ts.map +1 -1
- package/dist/ts4.2/src/e2ee/worker/FrameCryptor.d.ts +2 -2
- package/dist/ts4.2/src/index.d.ts +2 -2
- package/dist/ts4.2/src/room/Room.d.ts +4 -1
- package/dist/ts4.2/src/room/events.d.ts +7 -3
- package/dist/ts4.2/src/room/participant/LocalParticipant.d.ts +7 -0
- package/dist/ts4.2/src/room/participant/Participant.d.ts +1 -1
- package/dist/ts4.2/src/room/track/Track.d.ts +1 -1
- package/dist/ts4.2/src/room/utils.d.ts +1 -1
- package/dist/ts4.2/src/test/mocks.d.ts +1 -1
- package/package.json +14 -15
- package/src/e2ee/worker/FrameCryptor.test.ts +249 -2
- package/src/e2ee/worker/FrameCryptor.ts +3 -3
- package/src/e2ee/worker/ParticipantKeyHandler.test.ts +122 -0
- package/src/e2ee/worker/ParticipantKeyHandler.ts +1 -1
- package/src/e2ee/worker/e2ee.worker.ts +1 -1
- package/src/index.ts +2 -0
- package/src/room/Room.ts +24 -10
- package/src/room/events.ts +7 -2
- package/src/room/participant/LocalParticipant.ts +22 -0
- package/src/room/participant/Participant.ts +3 -2
- package/src/room/track/LocalTrackPublication.ts +1 -1
- package/src/room/track/Track.ts +1 -1
- package/src/room/track/utils.ts +1 -1
- package/src/room/utils.ts +1 -1
- package/src/test/mocks.ts +1 -1
@@ -30,9 +30,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
30
30
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
31
31
|
};
|
32
32
|
|
33
|
-
var
|
34
|
-
|
35
|
-
var loglevel = {exports: {}};
|
33
|
+
var loglevel$1 = {exports: {}};
|
36
34
|
|
37
35
|
/*
|
38
36
|
* loglevel - https://github.com/pimterry/loglevel
|
@@ -40,315 +38,323 @@ var loglevel = {exports: {}};
|
|
40
38
|
* Copyright (c) 2013 Tim Perry
|
41
39
|
* Licensed under the MIT license.
|
42
40
|
*/
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
}
|
51
|
-
})(commonjsGlobal, function () {
|
41
|
+
var loglevel = loglevel$1.exports;
|
42
|
+
var hasRequiredLoglevel;
|
43
|
+
function requireLoglevel() {
|
44
|
+
if (hasRequiredLoglevel) return loglevel$1.exports;
|
45
|
+
hasRequiredLoglevel = 1;
|
46
|
+
(function (module) {
|
47
|
+
(function (root, definition) {
|
52
48
|
|
53
|
-
|
54
|
-
|
55
|
-
var undefinedType = "undefined";
|
56
|
-
var isIE = typeof window !== undefinedType && typeof window.navigator !== undefinedType && /Trident\/|MSIE /.test(window.navigator.userAgent);
|
57
|
-
var logMethods = ["trace", "debug", "info", "warn", "error"];
|
58
|
-
var _loggersByName = {};
|
59
|
-
var defaultLogger = null;
|
60
|
-
|
61
|
-
// Cross-browser bind equivalent that works at least back to IE6
|
62
|
-
function bindMethod(obj, methodName) {
|
63
|
-
var method = obj[methodName];
|
64
|
-
if (typeof method.bind === 'function') {
|
65
|
-
return method.bind(obj);
|
49
|
+
if (module.exports) {
|
50
|
+
module.exports = definition();
|
66
51
|
} else {
|
67
|
-
|
68
|
-
return Function.prototype.bind.call(method, obj);
|
69
|
-
} catch (e) {
|
70
|
-
// Missing bind shim or IE8 + Modernizr, fallback to wrapping
|
71
|
-
return function () {
|
72
|
-
return Function.prototype.apply.apply(method, [obj, arguments]);
|
73
|
-
};
|
74
|
-
}
|
52
|
+
root.log = definition();
|
75
53
|
}
|
76
|
-
}
|
54
|
+
})(loglevel, function () {
|
77
55
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
56
|
+
// Slightly dubious tricks to cut down minimized file size
|
57
|
+
var noop = function () {};
|
58
|
+
var undefinedType = "undefined";
|
59
|
+
var isIE = typeof window !== undefinedType && typeof window.navigator !== undefinedType && /Trident\/|MSIE /.test(window.navigator.userAgent);
|
60
|
+
var logMethods = ["trace", "debug", "info", "warn", "error"];
|
61
|
+
var _loggersByName = {};
|
62
|
+
var defaultLogger = null;
|
63
|
+
|
64
|
+
// Cross-browser bind equivalent that works at least back to IE6
|
65
|
+
function bindMethod(obj, methodName) {
|
66
|
+
var method = obj[methodName];
|
67
|
+
if (typeof method.bind === 'function') {
|
68
|
+
return method.bind(obj);
|
83
69
|
} else {
|
84
|
-
|
85
|
-
|
70
|
+
try {
|
71
|
+
return Function.prototype.bind.call(method, obj);
|
72
|
+
} catch (e) {
|
73
|
+
// Missing bind shim or IE8 + Modernizr, fallback to wrapping
|
74
|
+
return function () {
|
75
|
+
return Function.prototype.apply.apply(method, [obj, arguments]);
|
76
|
+
};
|
77
|
+
}
|
86
78
|
}
|
87
79
|
}
|
88
|
-
if (console.trace) console.trace();
|
89
|
-
}
|
90
80
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
return bindMethod(console, methodName);
|
103
|
-
} else if (console.log !== undefined) {
|
104
|
-
return bindMethod(console, 'log');
|
105
|
-
} else {
|
106
|
-
return noop;
|
81
|
+
// Trace() doesn't print the message in IE, so for that case we need to wrap it
|
82
|
+
function traceForIE() {
|
83
|
+
if (console.log) {
|
84
|
+
if (console.log.apply) {
|
85
|
+
console.log.apply(console, arguments);
|
86
|
+
} else {
|
87
|
+
// In old IE, native console methods themselves don't have apply().
|
88
|
+
Function.prototype.apply.apply(console.log, [console, arguments]);
|
89
|
+
}
|
90
|
+
}
|
91
|
+
if (console.trace) console.trace();
|
107
92
|
}
|
108
|
-
}
|
109
|
-
|
110
|
-
// These private functions always need `this` to be set properly
|
111
|
-
|
112
|
-
function replaceLoggingMethods() {
|
113
|
-
/*jshint validthis:true */
|
114
|
-
var level = this.getLevel();
|
115
93
|
|
116
|
-
//
|
117
|
-
|
118
|
-
|
119
|
-
|
94
|
+
// Build the best logging method possible for this env
|
95
|
+
// Wherever possible we want to bind, not wrap, to preserve stack traces
|
96
|
+
function realMethod(methodName) {
|
97
|
+
if (methodName === 'debug') {
|
98
|
+
methodName = 'log';
|
99
|
+
}
|
100
|
+
if (typeof console === undefinedType) {
|
101
|
+
return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives
|
102
|
+
} else if (methodName === 'trace' && isIE) {
|
103
|
+
return traceForIE;
|
104
|
+
} else if (console[methodName] !== undefined) {
|
105
|
+
return bindMethod(console, methodName);
|
106
|
+
} else if (console.log !== undefined) {
|
107
|
+
return bindMethod(console, 'log');
|
108
|
+
} else {
|
109
|
+
return noop;
|
110
|
+
}
|
120
111
|
}
|
121
112
|
|
122
|
-
//
|
123
|
-
this.log = this.debug;
|
113
|
+
// These private functions always need `this` to be set properly
|
124
114
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
}
|
129
|
-
}
|
115
|
+
function replaceLoggingMethods() {
|
116
|
+
/*jshint validthis:true */
|
117
|
+
var level = this.getLevel();
|
130
118
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
if (typeof console !== undefinedType) {
|
136
|
-
replaceLoggingMethods.call(this);
|
137
|
-
this[methodName].apply(this, arguments);
|
119
|
+
// Replace the actual methods.
|
120
|
+
for (var i = 0; i < logMethods.length; i++) {
|
121
|
+
var methodName = logMethods[i];
|
122
|
+
this[methodName] = i < level ? noop : this.methodFactory(methodName, level, this.name);
|
138
123
|
}
|
139
|
-
};
|
140
|
-
}
|
141
124
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
// Private instance variables.
|
150
|
-
var self = this;
|
151
|
-
/**
|
152
|
-
* The level inherited from a parent logger (or a global default). We
|
153
|
-
* cache this here rather than delegating to the parent so that it stays
|
154
|
-
* in sync with the actual logging methods that we have installed (the
|
155
|
-
* parent could change levels but we might not have rebuilt the loggers
|
156
|
-
* in this child yet).
|
157
|
-
* @type {number}
|
158
|
-
*/
|
159
|
-
var inheritedLevel;
|
160
|
-
/**
|
161
|
-
* The default level for this logger, if any. If set, this overrides
|
162
|
-
* `inheritedLevel`.
|
163
|
-
* @type {number|null}
|
164
|
-
*/
|
165
|
-
var defaultLevel;
|
166
|
-
/**
|
167
|
-
* A user-specific level for this logger. If set, this overrides
|
168
|
-
* `defaultLevel`.
|
169
|
-
* @type {number|null}
|
170
|
-
*/
|
171
|
-
var userLevel;
|
172
|
-
var storageKey = "loglevel";
|
173
|
-
if (typeof name === "string") {
|
174
|
-
storageKey += ":" + name;
|
175
|
-
} else if (typeof name === "symbol") {
|
176
|
-
storageKey = undefined;
|
125
|
+
// Define log.log as an alias for log.debug
|
126
|
+
this.log = this.debug;
|
127
|
+
|
128
|
+
// Return any important warnings.
|
129
|
+
if (typeof console === undefinedType && level < this.levels.SILENT) {
|
130
|
+
return "No console available for logging";
|
131
|
+
}
|
177
132
|
}
|
178
|
-
function persistLevelIfPossible(levelNum) {
|
179
|
-
var levelName = (logMethods[levelNum] || 'silent').toUpperCase();
|
180
|
-
if (typeof window === undefinedType || !storageKey) return;
|
181
133
|
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
134
|
+
// In old IE versions, the console isn't present until you first open it.
|
135
|
+
// We build realMethod() replacements here that regenerate logging methods
|
136
|
+
function enableLoggingWhenConsoleArrives(methodName) {
|
137
|
+
return function () {
|
138
|
+
if (typeof console !== undefinedType) {
|
139
|
+
replaceLoggingMethods.call(this);
|
140
|
+
this[methodName].apply(this, arguments);
|
141
|
+
}
|
142
|
+
};
|
143
|
+
}
|
187
144
|
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
145
|
+
// By default, we use closely bound real methods wherever possible, and
|
146
|
+
// otherwise we wait for a console to appear, and then try again.
|
147
|
+
function defaultMethodFactory(methodName, _level, _loggerName) {
|
148
|
+
/*jshint validthis:true */
|
149
|
+
return realMethod(methodName) || enableLoggingWhenConsoleArrives.apply(this, arguments);
|
192
150
|
}
|
193
|
-
function
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
151
|
+
function Logger(name, factory) {
|
152
|
+
// Private instance variables.
|
153
|
+
var self = this;
|
154
|
+
/**
|
155
|
+
* The level inherited from a parent logger (or a global default). We
|
156
|
+
* cache this here rather than delegating to the parent so that it stays
|
157
|
+
* in sync with the actual logging methods that we have installed (the
|
158
|
+
* parent could change levels but we might not have rebuilt the loggers
|
159
|
+
* in this child yet).
|
160
|
+
* @type {number}
|
161
|
+
*/
|
162
|
+
var inheritedLevel;
|
163
|
+
/**
|
164
|
+
* The default level for this logger, if any. If set, this overrides
|
165
|
+
* `inheritedLevel`.
|
166
|
+
* @type {number|null}
|
167
|
+
*/
|
168
|
+
var defaultLevel;
|
169
|
+
/**
|
170
|
+
* A user-specific level for this logger. If set, this overrides
|
171
|
+
* `defaultLevel`.
|
172
|
+
* @type {number|null}
|
173
|
+
*/
|
174
|
+
var userLevel;
|
175
|
+
var storageKey = "loglevel";
|
176
|
+
if (typeof name === "string") {
|
177
|
+
storageKey += ":" + name;
|
178
|
+
} else if (typeof name === "symbol") {
|
179
|
+
storageKey = undefined;
|
180
|
+
}
|
181
|
+
function persistLevelIfPossible(levelNum) {
|
182
|
+
var levelName = (logMethods[levelNum] || 'silent').toUpperCase();
|
183
|
+
if (typeof window === undefinedType || !storageKey) return;
|
199
184
|
|
200
|
-
|
201
|
-
if (typeof storedLevel === undefinedType) {
|
185
|
+
// Use localStorage if available
|
202
186
|
try {
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
187
|
+
window.localStorage[storageKey] = levelName;
|
188
|
+
return;
|
189
|
+
} catch (ignore) {}
|
190
|
+
|
191
|
+
// Use session cookie as fallback
|
192
|
+
try {
|
193
|
+
window.document.cookie = encodeURIComponent(storageKey) + "=" + levelName + ";";
|
209
194
|
} catch (ignore) {}
|
210
195
|
}
|
196
|
+
function getPersistedLevel() {
|
197
|
+
var storedLevel;
|
198
|
+
if (typeof window === undefinedType || !storageKey) return;
|
199
|
+
try {
|
200
|
+
storedLevel = window.localStorage[storageKey];
|
201
|
+
} catch (ignore) {}
|
202
|
+
|
203
|
+
// Fallback to cookies if local storage gives us nothing
|
204
|
+
if (typeof storedLevel === undefinedType) {
|
205
|
+
try {
|
206
|
+
var cookie = window.document.cookie;
|
207
|
+
var cookieName = encodeURIComponent(storageKey);
|
208
|
+
var location = cookie.indexOf(cookieName + "=");
|
209
|
+
if (location !== -1) {
|
210
|
+
storedLevel = /^([^;]+)/.exec(cookie.slice(location + cookieName.length + 1))[1];
|
211
|
+
}
|
212
|
+
} catch (ignore) {}
|
213
|
+
}
|
211
214
|
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
+
// If the stored level is not valid, treat it as if nothing was stored.
|
216
|
+
if (self.levels[storedLevel] === undefined) {
|
217
|
+
storedLevel = undefined;
|
218
|
+
}
|
219
|
+
return storedLevel;
|
215
220
|
}
|
216
|
-
|
217
|
-
|
218
|
-
function clearPersistedLevel() {
|
219
|
-
if (typeof window === undefinedType || !storageKey) return;
|
221
|
+
function clearPersistedLevel() {
|
222
|
+
if (typeof window === undefinedType || !storageKey) return;
|
220
223
|
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
224
|
+
// Use localStorage if available
|
225
|
+
try {
|
226
|
+
window.localStorage.removeItem(storageKey);
|
227
|
+
} catch (ignore) {}
|
225
228
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
}
|
231
|
-
function normalizeLevel(input) {
|
232
|
-
var level = input;
|
233
|
-
if (typeof level === "string" && self.levels[level.toUpperCase()] !== undefined) {
|
234
|
-
level = self.levels[level.toUpperCase()];
|
229
|
+
// Use session cookie as fallback
|
230
|
+
try {
|
231
|
+
window.document.cookie = encodeURIComponent(storageKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
|
232
|
+
} catch (ignore) {}
|
235
233
|
}
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
234
|
+
function normalizeLevel(input) {
|
235
|
+
var level = input;
|
236
|
+
if (typeof level === "string" && self.levels[level.toUpperCase()] !== undefined) {
|
237
|
+
level = self.levels[level.toUpperCase()];
|
238
|
+
}
|
239
|
+
if (typeof level === "number" && level >= 0 && level <= self.levels.SILENT) {
|
240
|
+
return level;
|
241
|
+
} else {
|
242
|
+
throw new TypeError("log.setLevel() called with invalid level: " + input);
|
243
|
+
}
|
240
244
|
}
|
245
|
+
|
246
|
+
/*
|
247
|
+
*
|
248
|
+
* Public logger API - see https://github.com/pimterry/loglevel for details
|
249
|
+
*
|
250
|
+
*/
|
251
|
+
|
252
|
+
self.name = name;
|
253
|
+
self.levels = {
|
254
|
+
"TRACE": 0,
|
255
|
+
"DEBUG": 1,
|
256
|
+
"INFO": 2,
|
257
|
+
"WARN": 3,
|
258
|
+
"ERROR": 4,
|
259
|
+
"SILENT": 5
|
260
|
+
};
|
261
|
+
self.methodFactory = factory || defaultMethodFactory;
|
262
|
+
self.getLevel = function () {
|
263
|
+
if (userLevel != null) {
|
264
|
+
return userLevel;
|
265
|
+
} else if (defaultLevel != null) {
|
266
|
+
return defaultLevel;
|
267
|
+
} else {
|
268
|
+
return inheritedLevel;
|
269
|
+
}
|
270
|
+
};
|
271
|
+
self.setLevel = function (level, persist) {
|
272
|
+
userLevel = normalizeLevel(level);
|
273
|
+
if (persist !== false) {
|
274
|
+
// defaults to true
|
275
|
+
persistLevelIfPossible(userLevel);
|
276
|
+
}
|
277
|
+
|
278
|
+
// NOTE: in v2, this should call rebuild(), which updates children.
|
279
|
+
return replaceLoggingMethods.call(self);
|
280
|
+
};
|
281
|
+
self.setDefaultLevel = function (level) {
|
282
|
+
defaultLevel = normalizeLevel(level);
|
283
|
+
if (!getPersistedLevel()) {
|
284
|
+
self.setLevel(level, false);
|
285
|
+
}
|
286
|
+
};
|
287
|
+
self.resetLevel = function () {
|
288
|
+
userLevel = null;
|
289
|
+
clearPersistedLevel();
|
290
|
+
replaceLoggingMethods.call(self);
|
291
|
+
};
|
292
|
+
self.enableAll = function (persist) {
|
293
|
+
self.setLevel(self.levels.TRACE, persist);
|
294
|
+
};
|
295
|
+
self.disableAll = function (persist) {
|
296
|
+
self.setLevel(self.levels.SILENT, persist);
|
297
|
+
};
|
298
|
+
self.rebuild = function () {
|
299
|
+
if (defaultLogger !== self) {
|
300
|
+
inheritedLevel = normalizeLevel(defaultLogger.getLevel());
|
301
|
+
}
|
302
|
+
replaceLoggingMethods.call(self);
|
303
|
+
if (defaultLogger === self) {
|
304
|
+
for (var childName in _loggersByName) {
|
305
|
+
_loggersByName[childName].rebuild();
|
306
|
+
}
|
307
|
+
}
|
308
|
+
};
|
309
|
+
|
310
|
+
// Initialize all the internal levels.
|
311
|
+
inheritedLevel = normalizeLevel(defaultLogger ? defaultLogger.getLevel() : "WARN");
|
312
|
+
var initialLevel = getPersistedLevel();
|
313
|
+
if (initialLevel != null) {
|
314
|
+
userLevel = normalizeLevel(initialLevel);
|
315
|
+
}
|
316
|
+
replaceLoggingMethods.call(self);
|
241
317
|
}
|
242
318
|
|
243
319
|
/*
|
244
320
|
*
|
245
|
-
*
|
321
|
+
* Top-level API
|
246
322
|
*
|
247
323
|
*/
|
248
324
|
|
249
|
-
|
250
|
-
|
251
|
-
"
|
252
|
-
|
253
|
-
"INFO": 2,
|
254
|
-
"WARN": 3,
|
255
|
-
"ERROR": 4,
|
256
|
-
"SILENT": 5
|
257
|
-
};
|
258
|
-
self.methodFactory = factory || defaultMethodFactory;
|
259
|
-
self.getLevel = function () {
|
260
|
-
if (userLevel != null) {
|
261
|
-
return userLevel;
|
262
|
-
} else if (defaultLevel != null) {
|
263
|
-
return defaultLevel;
|
264
|
-
} else {
|
265
|
-
return inheritedLevel;
|
325
|
+
defaultLogger = new Logger();
|
326
|
+
defaultLogger.getLogger = function getLogger(name) {
|
327
|
+
if (typeof name !== "symbol" && typeof name !== "string" || name === "") {
|
328
|
+
throw new TypeError("You must supply a name when creating a logger.");
|
266
329
|
}
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
if (persist !== false) {
|
271
|
-
// defaults to true
|
272
|
-
persistLevelIfPossible(userLevel);
|
330
|
+
var logger = _loggersByName[name];
|
331
|
+
if (!logger) {
|
332
|
+
logger = _loggersByName[name] = new Logger(name, defaultLogger.methodFactory);
|
273
333
|
}
|
274
|
-
|
275
|
-
// NOTE: in v2, this should call rebuild(), which updates children.
|
276
|
-
return replaceLoggingMethods.call(self);
|
334
|
+
return logger;
|
277
335
|
};
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
336
|
+
|
337
|
+
// Grab the current global log variable in case of overwrite
|
338
|
+
var _log = typeof window !== undefinedType ? window.log : undefined;
|
339
|
+
defaultLogger.noConflict = function () {
|
340
|
+
if (typeof window !== undefinedType && window.log === defaultLogger) {
|
341
|
+
window.log = _log;
|
282
342
|
}
|
343
|
+
return defaultLogger;
|
283
344
|
};
|
284
|
-
|
285
|
-
|
286
|
-
clearPersistedLevel();
|
287
|
-
replaceLoggingMethods.call(self);
|
288
|
-
};
|
289
|
-
self.enableAll = function (persist) {
|
290
|
-
self.setLevel(self.levels.TRACE, persist);
|
291
|
-
};
|
292
|
-
self.disableAll = function (persist) {
|
293
|
-
self.setLevel(self.levels.SILENT, persist);
|
345
|
+
defaultLogger.getLoggers = function getLoggers() {
|
346
|
+
return _loggersByName;
|
294
347
|
};
|
295
|
-
self.rebuild = function () {
|
296
|
-
if (defaultLogger !== self) {
|
297
|
-
inheritedLevel = normalizeLevel(defaultLogger.getLevel());
|
298
|
-
}
|
299
|
-
replaceLoggingMethods.call(self);
|
300
|
-
if (defaultLogger === self) {
|
301
|
-
for (var childName in _loggersByName) {
|
302
|
-
_loggersByName[childName].rebuild();
|
303
|
-
}
|
304
|
-
}
|
305
|
-
};
|
306
|
-
|
307
|
-
// Initialize all the internal levels.
|
308
|
-
inheritedLevel = normalizeLevel(defaultLogger ? defaultLogger.getLevel() : "WARN");
|
309
|
-
var initialLevel = getPersistedLevel();
|
310
|
-
if (initialLevel != null) {
|
311
|
-
userLevel = normalizeLevel(initialLevel);
|
312
|
-
}
|
313
|
-
replaceLoggingMethods.call(self);
|
314
|
-
}
|
315
|
-
|
316
|
-
/*
|
317
|
-
*
|
318
|
-
* Top-level API
|
319
|
-
*
|
320
|
-
*/
|
321
|
-
|
322
|
-
defaultLogger = new Logger();
|
323
|
-
defaultLogger.getLogger = function getLogger(name) {
|
324
|
-
if (typeof name !== "symbol" && typeof name !== "string" || name === "") {
|
325
|
-
throw new TypeError("You must supply a name when creating a logger.");
|
326
|
-
}
|
327
|
-
var logger = _loggersByName[name];
|
328
|
-
if (!logger) {
|
329
|
-
logger = _loggersByName[name] = new Logger(name, defaultLogger.methodFactory);
|
330
|
-
}
|
331
|
-
return logger;
|
332
|
-
};
|
333
348
|
|
334
|
-
|
335
|
-
|
336
|
-
defaultLogger.noConflict = function () {
|
337
|
-
if (typeof window !== undefinedType && window.log === defaultLogger) {
|
338
|
-
window.log = _log;
|
339
|
-
}
|
349
|
+
// ES6 default export, for compatibility
|
350
|
+
defaultLogger['default'] = defaultLogger;
|
340
351
|
return defaultLogger;
|
341
|
-
};
|
342
|
-
|
343
|
-
|
344
|
-
|
352
|
+
});
|
353
|
+
})(loglevel$1);
|
354
|
+
return loglevel$1.exports;
|
355
|
+
}
|
345
356
|
|
346
|
-
|
347
|
-
defaultLogger['default'] = defaultLogger;
|
348
|
-
return defaultLogger;
|
349
|
-
});
|
350
|
-
})(loglevel);
|
351
|
-
var loglevelExports = loglevel.exports;
|
357
|
+
var loglevelExports = requireLoglevel();
|
352
358
|
|
353
359
|
var LogLevel;
|
354
360
|
(function (LogLevel) {
|
@@ -4008,383 +4014,390 @@ var AudioPresets;
|
|
4008
4014
|
|
4009
4015
|
var events = {exports: {}};
|
4010
4016
|
|
4011
|
-
var
|
4012
|
-
|
4013
|
-
|
4014
|
-
|
4015
|
-
var
|
4016
|
-
|
4017
|
-
|
4018
|
-
} else if (Object.getOwnPropertySymbols) {
|
4019
|
-
ReflectOwnKeys = function ReflectOwnKeys(target) {
|
4020
|
-
return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));
|
4017
|
+
var hasRequiredEvents;
|
4018
|
+
function requireEvents() {
|
4019
|
+
if (hasRequiredEvents) return events.exports;
|
4020
|
+
hasRequiredEvents = 1;
|
4021
|
+
var R = typeof Reflect === 'object' ? Reflect : null;
|
4022
|
+
var ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {
|
4023
|
+
return Function.prototype.apply.call(target, receiver, args);
|
4021
4024
|
};
|
4022
|
-
|
4023
|
-
|
4024
|
-
|
4025
|
-
}
|
4026
|
-
|
4027
|
-
|
4028
|
-
|
4029
|
-
}
|
4030
|
-
|
4031
|
-
|
4032
|
-
};
|
4033
|
-
function EventEmitter() {
|
4034
|
-
EventEmitter.init.call(this);
|
4035
|
-
}
|
4036
|
-
events.exports = EventEmitter;
|
4037
|
-
events.exports.once = once;
|
4038
|
-
|
4039
|
-
// Backwards-compat with node 0.10.x
|
4040
|
-
EventEmitter.EventEmitter = EventEmitter;
|
4041
|
-
EventEmitter.prototype._events = undefined;
|
4042
|
-
EventEmitter.prototype._eventsCount = 0;
|
4043
|
-
EventEmitter.prototype._maxListeners = undefined;
|
4044
|
-
|
4045
|
-
// By default EventEmitters will print a warning if more than 10 listeners are
|
4046
|
-
// added to it. This is a useful default which helps finding memory leaks.
|
4047
|
-
var defaultMaxListeners = 10;
|
4048
|
-
function checkListener(listener) {
|
4049
|
-
if (typeof listener !== 'function') {
|
4050
|
-
throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
|
4025
|
+
var ReflectOwnKeys;
|
4026
|
+
if (R && typeof R.ownKeys === 'function') {
|
4027
|
+
ReflectOwnKeys = R.ownKeys;
|
4028
|
+
} else if (Object.getOwnPropertySymbols) {
|
4029
|
+
ReflectOwnKeys = function ReflectOwnKeys(target) {
|
4030
|
+
return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));
|
4031
|
+
};
|
4032
|
+
} else {
|
4033
|
+
ReflectOwnKeys = function ReflectOwnKeys(target) {
|
4034
|
+
return Object.getOwnPropertyNames(target);
|
4035
|
+
};
|
4051
4036
|
}
|
4052
|
-
|
4053
|
-
|
4054
|
-
enumerable: true,
|
4055
|
-
get: function () {
|
4056
|
-
return defaultMaxListeners;
|
4057
|
-
},
|
4058
|
-
set: function (arg) {
|
4059
|
-
if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
|
4060
|
-
throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
|
4061
|
-
}
|
4062
|
-
defaultMaxListeners = arg;
|
4037
|
+
function ProcessEmitWarning(warning) {
|
4038
|
+
if (console && console.warn) console.warn(warning);
|
4063
4039
|
}
|
4064
|
-
|
4065
|
-
|
4066
|
-
|
4067
|
-
|
4068
|
-
this
|
4040
|
+
var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {
|
4041
|
+
return value !== value;
|
4042
|
+
};
|
4043
|
+
function EventEmitter() {
|
4044
|
+
EventEmitter.init.call(this);
|
4069
4045
|
}
|
4070
|
-
|
4071
|
-
|
4046
|
+
events.exports = EventEmitter;
|
4047
|
+
events.exports.once = once;
|
4072
4048
|
|
4073
|
-
//
|
4074
|
-
|
4075
|
-
EventEmitter.prototype.
|
4076
|
-
|
4077
|
-
|
4078
|
-
}
|
4079
|
-
this._maxListeners = n;
|
4080
|
-
return this;
|
4081
|
-
};
|
4082
|
-
function _getMaxListeners(that) {
|
4083
|
-
if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;
|
4084
|
-
return that._maxListeners;
|
4085
|
-
}
|
4086
|
-
EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
|
4087
|
-
return _getMaxListeners(this);
|
4088
|
-
};
|
4089
|
-
EventEmitter.prototype.emit = function emit(type) {
|
4090
|
-
var args = [];
|
4091
|
-
for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);
|
4092
|
-
var doError = type === 'error';
|
4093
|
-
var events = this._events;
|
4094
|
-
if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false;
|
4049
|
+
// Backwards-compat with node 0.10.x
|
4050
|
+
EventEmitter.EventEmitter = EventEmitter;
|
4051
|
+
EventEmitter.prototype._events = undefined;
|
4052
|
+
EventEmitter.prototype._eventsCount = 0;
|
4053
|
+
EventEmitter.prototype._maxListeners = undefined;
|
4095
4054
|
|
4096
|
-
//
|
4097
|
-
|
4098
|
-
|
4099
|
-
|
4100
|
-
if (
|
4101
|
-
|
4102
|
-
// up in Node's output if this results in an unhandled exception.
|
4103
|
-
throw er; // Unhandled 'error' event
|
4055
|
+
// By default EventEmitters will print a warning if more than 10 listeners are
|
4056
|
+
// added to it. This is a useful default which helps finding memory leaks.
|
4057
|
+
var defaultMaxListeners = 10;
|
4058
|
+
function checkListener(listener) {
|
4059
|
+
if (typeof listener !== 'function') {
|
4060
|
+
throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
|
4104
4061
|
}
|
4105
|
-
// At least give some kind of context to the user
|
4106
|
-
var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
|
4107
|
-
err.context = er;
|
4108
|
-
throw err; // Unhandled 'error' event
|
4109
|
-
}
|
4110
|
-
var handler = events[type];
|
4111
|
-
if (handler === undefined) return false;
|
4112
|
-
if (typeof handler === 'function') {
|
4113
|
-
ReflectApply(handler, this, args);
|
4114
|
-
} else {
|
4115
|
-
var len = handler.length;
|
4116
|
-
var listeners = arrayClone(handler, len);
|
4117
|
-
for (var i = 0; i < len; ++i) ReflectApply(listeners[i], this, args);
|
4118
4062
|
}
|
4119
|
-
|
4120
|
-
|
4121
|
-
function
|
4122
|
-
|
4123
|
-
|
4124
|
-
|
4125
|
-
|
4126
|
-
|
4127
|
-
|
4128
|
-
|
4129
|
-
|
4130
|
-
}
|
4131
|
-
|
4132
|
-
|
4133
|
-
|
4134
|
-
|
4063
|
+
Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
|
4064
|
+
enumerable: true,
|
4065
|
+
get: function () {
|
4066
|
+
return defaultMaxListeners;
|
4067
|
+
},
|
4068
|
+
set: function (arg) {
|
4069
|
+
if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
|
4070
|
+
throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
|
4071
|
+
}
|
4072
|
+
defaultMaxListeners = arg;
|
4073
|
+
}
|
4074
|
+
});
|
4075
|
+
EventEmitter.init = function () {
|
4076
|
+
if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {
|
4077
|
+
this._events = Object.create(null);
|
4078
|
+
this._eventsCount = 0;
|
4079
|
+
}
|
4080
|
+
this._maxListeners = this._maxListeners || undefined;
|
4081
|
+
};
|
4135
4082
|
|
4136
|
-
|
4137
|
-
|
4138
|
-
|
4083
|
+
// Obviously not all Emitters should be limited to 10. This function allows
|
4084
|
+
// that to be increased. Set to zero for unlimited.
|
4085
|
+
EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
|
4086
|
+
if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
|
4087
|
+
throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
|
4139
4088
|
}
|
4140
|
-
|
4089
|
+
this._maxListeners = n;
|
4090
|
+
return this;
|
4091
|
+
};
|
4092
|
+
function _getMaxListeners(that) {
|
4093
|
+
if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;
|
4094
|
+
return that._maxListeners;
|
4141
4095
|
}
|
4142
|
-
|
4143
|
-
|
4144
|
-
|
4145
|
-
|
4146
|
-
|
4147
|
-
|
4148
|
-
|
4149
|
-
|
4150
|
-
|
4151
|
-
|
4152
|
-
|
4096
|
+
EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
|
4097
|
+
return _getMaxListeners(this);
|
4098
|
+
};
|
4099
|
+
EventEmitter.prototype.emit = function emit(type) {
|
4100
|
+
var args = [];
|
4101
|
+
for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);
|
4102
|
+
var doError = type === 'error';
|
4103
|
+
var events = this._events;
|
4104
|
+
if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false;
|
4105
|
+
|
4106
|
+
// If there is no 'error' event listener then throw.
|
4107
|
+
if (doError) {
|
4108
|
+
var er;
|
4109
|
+
if (args.length > 0) er = args[0];
|
4110
|
+
if (er instanceof Error) {
|
4111
|
+
// Note: The comments on the `throw` lines are intentional, they show
|
4112
|
+
// up in Node's output if this results in an unhandled exception.
|
4113
|
+
throw er; // Unhandled 'error' event
|
4114
|
+
}
|
4115
|
+
// At least give some kind of context to the user
|
4116
|
+
var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
|
4117
|
+
err.context = er;
|
4118
|
+
throw err; // Unhandled 'error' event
|
4119
|
+
}
|
4120
|
+
var handler = events[type];
|
4121
|
+
if (handler === undefined) return false;
|
4122
|
+
if (typeof handler === 'function') {
|
4123
|
+
ReflectApply(handler, this, args);
|
4153
4124
|
} else {
|
4154
|
-
|
4125
|
+
var len = handler.length;
|
4126
|
+
var listeners = arrayClone(handler, len);
|
4127
|
+
for (var i = 0; i < len; ++i) ReflectApply(listeners[i], this, args);
|
4155
4128
|
}
|
4129
|
+
return true;
|
4130
|
+
};
|
4131
|
+
function _addListener(target, type, listener, prepend) {
|
4132
|
+
var m;
|
4133
|
+
var events;
|
4134
|
+
var existing;
|
4135
|
+
checkListener(listener);
|
4136
|
+
events = target._events;
|
4137
|
+
if (events === undefined) {
|
4138
|
+
events = target._events = Object.create(null);
|
4139
|
+
target._eventsCount = 0;
|
4140
|
+
} else {
|
4141
|
+
// To avoid recursion in the case that type === "newListener"! Before
|
4142
|
+
// adding it to the listeners, first emit "newListener".
|
4143
|
+
if (events.newListener !== undefined) {
|
4144
|
+
target.emit('newListener', type, listener.listener ? listener.listener : listener);
|
4156
4145
|
|
4157
|
-
|
4158
|
-
|
4159
|
-
|
4160
|
-
|
4161
|
-
|
4162
|
-
// eslint-disable-next-line no-restricted-syntax
|
4163
|
-
var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');
|
4164
|
-
w.name = 'MaxListenersExceededWarning';
|
4165
|
-
w.emitter = target;
|
4166
|
-
w.type = type;
|
4167
|
-
w.count = existing.length;
|
4168
|
-
ProcessEmitWarning(w);
|
4146
|
+
// Re-assign `events` because a newListener handler could have caused the
|
4147
|
+
// this._events to be assigned to a new object
|
4148
|
+
events = target._events;
|
4149
|
+
}
|
4150
|
+
existing = events[type];
|
4169
4151
|
}
|
4152
|
+
if (existing === undefined) {
|
4153
|
+
// Optimize the case of one listener. Don't need the extra array object.
|
4154
|
+
existing = events[type] = listener;
|
4155
|
+
++target._eventsCount;
|
4156
|
+
} else {
|
4157
|
+
if (typeof existing === 'function') {
|
4158
|
+
// Adding the second element, need to change to array.
|
4159
|
+
existing = events[type] = prepend ? [listener, existing] : [existing, listener];
|
4160
|
+
// If we've already got an array, just append.
|
4161
|
+
} else if (prepend) {
|
4162
|
+
existing.unshift(listener);
|
4163
|
+
} else {
|
4164
|
+
existing.push(listener);
|
4165
|
+
}
|
4166
|
+
|
4167
|
+
// Check for listener leak
|
4168
|
+
m = _getMaxListeners(target);
|
4169
|
+
if (m > 0 && existing.length > m && !existing.warned) {
|
4170
|
+
existing.warned = true;
|
4171
|
+
// No error code for this since it is a Warning
|
4172
|
+
// eslint-disable-next-line no-restricted-syntax
|
4173
|
+
var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');
|
4174
|
+
w.name = 'MaxListenersExceededWarning';
|
4175
|
+
w.emitter = target;
|
4176
|
+
w.type = type;
|
4177
|
+
w.count = existing.length;
|
4178
|
+
ProcessEmitWarning(w);
|
4179
|
+
}
|
4180
|
+
}
|
4181
|
+
return target;
|
4170
4182
|
}
|
4171
|
-
|
4172
|
-
|
4173
|
-
|
4174
|
-
|
4175
|
-
|
4176
|
-
|
4177
|
-
|
4178
|
-
|
4179
|
-
|
4180
|
-
|
4181
|
-
|
4182
|
-
|
4183
|
-
|
4184
|
-
|
4185
|
-
return this.listener.apply(this.target, arguments);
|
4183
|
+
EventEmitter.prototype.addListener = function addListener(type, listener) {
|
4184
|
+
return _addListener(this, type, listener, false);
|
4185
|
+
};
|
4186
|
+
EventEmitter.prototype.on = EventEmitter.prototype.addListener;
|
4187
|
+
EventEmitter.prototype.prependListener = function prependListener(type, listener) {
|
4188
|
+
return _addListener(this, type, listener, true);
|
4189
|
+
};
|
4190
|
+
function onceWrapper() {
|
4191
|
+
if (!this.fired) {
|
4192
|
+
this.target.removeListener(this.type, this.wrapFn);
|
4193
|
+
this.fired = true;
|
4194
|
+
if (arguments.length === 0) return this.listener.call(this.target);
|
4195
|
+
return this.listener.apply(this.target, arguments);
|
4196
|
+
}
|
4186
4197
|
}
|
4187
|
-
|
4188
|
-
|
4189
|
-
|
4190
|
-
|
4191
|
-
|
4192
|
-
|
4193
|
-
|
4194
|
-
|
4198
|
+
function _onceWrap(target, type, listener) {
|
4199
|
+
var state = {
|
4200
|
+
fired: false,
|
4201
|
+
wrapFn: undefined,
|
4202
|
+
target: target,
|
4203
|
+
type: type,
|
4204
|
+
listener: listener
|
4205
|
+
};
|
4206
|
+
var wrapped = onceWrapper.bind(state);
|
4207
|
+
wrapped.listener = listener;
|
4208
|
+
state.wrapFn = wrapped;
|
4209
|
+
return wrapped;
|
4210
|
+
}
|
4211
|
+
EventEmitter.prototype.once = function once(type, listener) {
|
4212
|
+
checkListener(listener);
|
4213
|
+
this.on(type, _onceWrap(this, type, listener));
|
4214
|
+
return this;
|
4215
|
+
};
|
4216
|
+
EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {
|
4217
|
+
checkListener(listener);
|
4218
|
+
this.prependListener(type, _onceWrap(this, type, listener));
|
4219
|
+
return this;
|
4195
4220
|
};
|
4196
|
-
var wrapped = onceWrapper.bind(state);
|
4197
|
-
wrapped.listener = listener;
|
4198
|
-
state.wrapFn = wrapped;
|
4199
|
-
return wrapped;
|
4200
|
-
}
|
4201
|
-
EventEmitter.prototype.once = function once(type, listener) {
|
4202
|
-
checkListener(listener);
|
4203
|
-
this.on(type, _onceWrap(this, type, listener));
|
4204
|
-
return this;
|
4205
|
-
};
|
4206
|
-
EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {
|
4207
|
-
checkListener(listener);
|
4208
|
-
this.prependListener(type, _onceWrap(this, type, listener));
|
4209
|
-
return this;
|
4210
|
-
};
|
4211
4221
|
|
4212
|
-
// Emits a 'removeListener' event if and only if the listener was removed.
|
4213
|
-
EventEmitter.prototype.removeListener = function removeListener(type, listener) {
|
4214
|
-
|
4215
|
-
|
4216
|
-
|
4217
|
-
|
4218
|
-
|
4219
|
-
|
4220
|
-
|
4221
|
-
|
4222
|
-
|
4223
|
-
|
4224
|
-
}
|
4225
|
-
} else if (typeof list !== 'function') {
|
4226
|
-
position = -1;
|
4227
|
-
for (i = list.length - 1; i >= 0; i--) {
|
4228
|
-
if (list[i] === listener || list[i].listener === listener) {
|
4229
|
-
originalListener = list[i].listener;
|
4230
|
-
position = i;
|
4231
|
-
break;
|
4222
|
+
// Emits a 'removeListener' event if and only if the listener was removed.
|
4223
|
+
EventEmitter.prototype.removeListener = function removeListener(type, listener) {
|
4224
|
+
var list, events, position, i, originalListener;
|
4225
|
+
checkListener(listener);
|
4226
|
+
events = this._events;
|
4227
|
+
if (events === undefined) return this;
|
4228
|
+
list = events[type];
|
4229
|
+
if (list === undefined) return this;
|
4230
|
+
if (list === listener || list.listener === listener) {
|
4231
|
+
if (--this._eventsCount === 0) this._events = Object.create(null);else {
|
4232
|
+
delete events[type];
|
4233
|
+
if (events.removeListener) this.emit('removeListener', type, list.listener || listener);
|
4232
4234
|
}
|
4235
|
+
} else if (typeof list !== 'function') {
|
4236
|
+
position = -1;
|
4237
|
+
for (i = list.length - 1; i >= 0; i--) {
|
4238
|
+
if (list[i] === listener || list[i].listener === listener) {
|
4239
|
+
originalListener = list[i].listener;
|
4240
|
+
position = i;
|
4241
|
+
break;
|
4242
|
+
}
|
4243
|
+
}
|
4244
|
+
if (position < 0) return this;
|
4245
|
+
if (position === 0) list.shift();else {
|
4246
|
+
spliceOne(list, position);
|
4247
|
+
}
|
4248
|
+
if (list.length === 1) events[type] = list[0];
|
4249
|
+
if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);
|
4233
4250
|
}
|
4234
|
-
|
4235
|
-
|
4236
|
-
|
4251
|
+
return this;
|
4252
|
+
};
|
4253
|
+
EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
|
4254
|
+
EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {
|
4255
|
+
var listeners, events, i;
|
4256
|
+
events = this._events;
|
4257
|
+
if (events === undefined) return this;
|
4258
|
+
|
4259
|
+
// not listening for removeListener, no need to emit
|
4260
|
+
if (events.removeListener === undefined) {
|
4261
|
+
if (arguments.length === 0) {
|
4262
|
+
this._events = Object.create(null);
|
4263
|
+
this._eventsCount = 0;
|
4264
|
+
} else if (events[type] !== undefined) {
|
4265
|
+
if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];
|
4266
|
+
}
|
4267
|
+
return this;
|
4237
4268
|
}
|
4238
|
-
if (list.length === 1) events[type] = list[0];
|
4239
|
-
if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);
|
4240
|
-
}
|
4241
|
-
return this;
|
4242
|
-
};
|
4243
|
-
EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
|
4244
|
-
EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {
|
4245
|
-
var listeners, events, i;
|
4246
|
-
events = this._events;
|
4247
|
-
if (events === undefined) return this;
|
4248
4269
|
|
4249
|
-
|
4250
|
-
if (events.removeListener === undefined) {
|
4270
|
+
// emit removeListener for all listeners on all events
|
4251
4271
|
if (arguments.length === 0) {
|
4272
|
+
var keys = Object.keys(events);
|
4273
|
+
var key;
|
4274
|
+
for (i = 0; i < keys.length; ++i) {
|
4275
|
+
key = keys[i];
|
4276
|
+
if (key === 'removeListener') continue;
|
4277
|
+
this.removeAllListeners(key);
|
4278
|
+
}
|
4279
|
+
this.removeAllListeners('removeListener');
|
4252
4280
|
this._events = Object.create(null);
|
4253
4281
|
this._eventsCount = 0;
|
4254
|
-
|
4255
|
-
if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];
|
4282
|
+
return this;
|
4256
4283
|
}
|
4257
|
-
|
4258
|
-
|
4259
|
-
|
4260
|
-
|
4261
|
-
|
4262
|
-
|
4263
|
-
|
4264
|
-
|
4265
|
-
key = keys[i];
|
4266
|
-
if (key === 'removeListener') continue;
|
4267
|
-
this.removeAllListeners(key);
|
4284
|
+
listeners = events[type];
|
4285
|
+
if (typeof listeners === 'function') {
|
4286
|
+
this.removeListener(type, listeners);
|
4287
|
+
} else if (listeners !== undefined) {
|
4288
|
+
// LIFO order
|
4289
|
+
for (i = listeners.length - 1; i >= 0; i--) {
|
4290
|
+
this.removeListener(type, listeners[i]);
|
4291
|
+
}
|
4268
4292
|
}
|
4269
|
-
this.removeAllListeners('removeListener');
|
4270
|
-
this._events = Object.create(null);
|
4271
|
-
this._eventsCount = 0;
|
4272
4293
|
return this;
|
4294
|
+
};
|
4295
|
+
function _listeners(target, type, unwrap) {
|
4296
|
+
var events = target._events;
|
4297
|
+
if (events === undefined) return [];
|
4298
|
+
var evlistener = events[type];
|
4299
|
+
if (evlistener === undefined) return [];
|
4300
|
+
if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];
|
4301
|
+
return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
|
4273
4302
|
}
|
4274
|
-
listeners =
|
4275
|
-
|
4276
|
-
|
4277
|
-
|
4278
|
-
|
4279
|
-
|
4280
|
-
|
4303
|
+
EventEmitter.prototype.listeners = function listeners(type) {
|
4304
|
+
return _listeners(this, type, true);
|
4305
|
+
};
|
4306
|
+
EventEmitter.prototype.rawListeners = function rawListeners(type) {
|
4307
|
+
return _listeners(this, type, false);
|
4308
|
+
};
|
4309
|
+
EventEmitter.listenerCount = function (emitter, type) {
|
4310
|
+
if (typeof emitter.listenerCount === 'function') {
|
4311
|
+
return emitter.listenerCount(type);
|
4312
|
+
} else {
|
4313
|
+
return listenerCount.call(emitter, type);
|
4281
4314
|
}
|
4282
|
-
}
|
4283
|
-
|
4284
|
-
|
4285
|
-
|
4286
|
-
|
4287
|
-
|
4288
|
-
|
4289
|
-
|
4290
|
-
|
4291
|
-
|
4292
|
-
}
|
4293
|
-
EventEmitter.prototype.listeners = function listeners(type) {
|
4294
|
-
return _listeners(this, type, true);
|
4295
|
-
};
|
4296
|
-
EventEmitter.prototype.rawListeners = function rawListeners(type) {
|
4297
|
-
return _listeners(this, type, false);
|
4298
|
-
};
|
4299
|
-
EventEmitter.listenerCount = function (emitter, type) {
|
4300
|
-
if (typeof emitter.listenerCount === 'function') {
|
4301
|
-
return emitter.listenerCount(type);
|
4302
|
-
} else {
|
4303
|
-
return listenerCount.call(emitter, type);
|
4304
|
-
}
|
4305
|
-
};
|
4306
|
-
EventEmitter.prototype.listenerCount = listenerCount;
|
4307
|
-
function listenerCount(type) {
|
4308
|
-
var events = this._events;
|
4309
|
-
if (events !== undefined) {
|
4310
|
-
var evlistener = events[type];
|
4311
|
-
if (typeof evlistener === 'function') {
|
4312
|
-
return 1;
|
4313
|
-
} else if (evlistener !== undefined) {
|
4314
|
-
return evlistener.length;
|
4315
|
+
};
|
4316
|
+
EventEmitter.prototype.listenerCount = listenerCount;
|
4317
|
+
function listenerCount(type) {
|
4318
|
+
var events = this._events;
|
4319
|
+
if (events !== undefined) {
|
4320
|
+
var evlistener = events[type];
|
4321
|
+
if (typeof evlistener === 'function') {
|
4322
|
+
return 1;
|
4323
|
+
} else if (evlistener !== undefined) {
|
4324
|
+
return evlistener.length;
|
4325
|
+
}
|
4315
4326
|
}
|
4327
|
+
return 0;
|
4316
4328
|
}
|
4317
|
-
|
4318
|
-
|
4319
|
-
|
4320
|
-
|
4321
|
-
|
4322
|
-
|
4323
|
-
|
4324
|
-
|
4325
|
-
|
4326
|
-
|
4327
|
-
|
4328
|
-
|
4329
|
-
|
4330
|
-
|
4331
|
-
|
4332
|
-
|
4333
|
-
for (var i = 0; i < ret.length; ++i) {
|
4334
|
-
ret[i] = arr[i].listener || arr[i];
|
4335
|
-
}
|
4336
|
-
return ret;
|
4337
|
-
}
|
4338
|
-
function once(emitter, name) {
|
4339
|
-
return new Promise(function (resolve, reject) {
|
4340
|
-
function errorListener(err) {
|
4341
|
-
emitter.removeListener(name, resolver);
|
4342
|
-
reject(err);
|
4329
|
+
EventEmitter.prototype.eventNames = function eventNames() {
|
4330
|
+
return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
|
4331
|
+
};
|
4332
|
+
function arrayClone(arr, n) {
|
4333
|
+
var copy = new Array(n);
|
4334
|
+
for (var i = 0; i < n; ++i) copy[i] = arr[i];
|
4335
|
+
return copy;
|
4336
|
+
}
|
4337
|
+
function spliceOne(list, index) {
|
4338
|
+
for (; index + 1 < list.length; index++) list[index] = list[index + 1];
|
4339
|
+
list.pop();
|
4340
|
+
}
|
4341
|
+
function unwrapListeners(arr) {
|
4342
|
+
var ret = new Array(arr.length);
|
4343
|
+
for (var i = 0; i < ret.length; ++i) {
|
4344
|
+
ret[i] = arr[i].listener || arr[i];
|
4343
4345
|
}
|
4344
|
-
|
4345
|
-
|
4346
|
-
|
4346
|
+
return ret;
|
4347
|
+
}
|
4348
|
+
function once(emitter, name) {
|
4349
|
+
return new Promise(function (resolve, reject) {
|
4350
|
+
function errorListener(err) {
|
4351
|
+
emitter.removeListener(name, resolver);
|
4352
|
+
reject(err);
|
4347
4353
|
}
|
4348
|
-
|
4349
|
-
|
4350
|
-
|
4351
|
-
|
4352
|
-
|
4353
|
-
|
4354
|
-
|
4354
|
+
function resolver() {
|
4355
|
+
if (typeof emitter.removeListener === 'function') {
|
4356
|
+
emitter.removeListener('error', errorListener);
|
4357
|
+
}
|
4358
|
+
resolve([].slice.call(arguments));
|
4359
|
+
}
|
4360
|
+
eventTargetAgnosticAddListener(emitter, name, resolver, {
|
4355
4361
|
once: true
|
4356
4362
|
});
|
4357
|
-
|
4358
|
-
|
4359
|
-
|
4360
|
-
|
4361
|
-
|
4362
|
-
|
4363
|
+
if (name !== 'error') {
|
4364
|
+
addErrorHandlerIfEventEmitter(emitter, errorListener, {
|
4365
|
+
once: true
|
4366
|
+
});
|
4367
|
+
}
|
4368
|
+
});
|
4363
4369
|
}
|
4364
|
-
|
4365
|
-
|
4366
|
-
|
4367
|
-
if (flags.once) {
|
4368
|
-
emitter.once(name, listener);
|
4369
|
-
} else {
|
4370
|
-
emitter.on(name, listener);
|
4370
|
+
function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
|
4371
|
+
if (typeof emitter.on === 'function') {
|
4372
|
+
eventTargetAgnosticAddListener(emitter, 'error', handler, flags);
|
4371
4373
|
}
|
4372
|
-
}
|
4373
|
-
|
4374
|
-
|
4375
|
-
emitter.addEventListener(name, function wrapListener(arg) {
|
4376
|
-
// IE does not have builtin `{ once: true }` support so we
|
4377
|
-
// have to do it manually.
|
4374
|
+
}
|
4375
|
+
function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
|
4376
|
+
if (typeof emitter.on === 'function') {
|
4378
4377
|
if (flags.once) {
|
4379
|
-
emitter.
|
4378
|
+
emitter.once(name, listener);
|
4379
|
+
} else {
|
4380
|
+
emitter.on(name, listener);
|
4380
4381
|
}
|
4381
|
-
|
4382
|
-
|
4383
|
-
|
4384
|
-
|
4382
|
+
} else if (typeof emitter.addEventListener === 'function') {
|
4383
|
+
// EventTarget does not have `error` event semantics like Node
|
4384
|
+
// EventEmitters, we do not listen for `error` events here.
|
4385
|
+
emitter.addEventListener(name, function wrapListener(arg) {
|
4386
|
+
// IE does not have builtin `{ once: true }` support so we
|
4387
|
+
// have to do it manually.
|
4388
|
+
if (flags.once) {
|
4389
|
+
emitter.removeEventListener(name, wrapListener);
|
4390
|
+
}
|
4391
|
+
listener(arg);
|
4392
|
+
});
|
4393
|
+
} else {
|
4394
|
+
throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter);
|
4395
|
+
}
|
4385
4396
|
}
|
4397
|
+
return events.exports;
|
4386
4398
|
}
|
4387
|
-
|
4399
|
+
|
4400
|
+
var eventsExports = requireEvents();
|
4388
4401
|
|
4389
4402
|
/**
|
4390
4403
|
* Events are the primary way LiveKit notifies your application of changes.
|
@@ -4648,7 +4661,7 @@ var RoomEvent;
|
|
4648
4661
|
*/
|
4649
4662
|
RoomEvent["MediaDevicesError"] = "mediaDevicesError";
|
4650
4663
|
/**
|
4651
|
-
* A participant's permission has changed.
|
4664
|
+
* A participant's permission has changed.
|
4652
4665
|
* args: (prevPermissions: [[ParticipantPermission]], participant: [[Participant]])
|
4653
4666
|
*/
|
4654
4667
|
RoomEvent["ParticipantPermissionsChanged"] = "participantPermissionsChanged";
|
@@ -4678,6 +4691,10 @@ var RoomEvent;
|
|
4678
4691
|
* fired when the first remote participant has subscribed to the localParticipant's track
|
4679
4692
|
*/
|
4680
4693
|
RoomEvent["LocalTrackSubscribed"] = "localTrackSubscribed";
|
4694
|
+
/**
|
4695
|
+
* fired when the client receives connection metrics from other participants
|
4696
|
+
*/
|
4697
|
+
RoomEvent["MetricsReceived"] = "metricsReceived";
|
4681
4698
|
})(RoomEvent || (RoomEvent = {}));
|
4682
4699
|
var ParticipantEvent;
|
4683
4700
|
(function (ParticipantEvent) {
|
@@ -4829,7 +4846,7 @@ var ParticipantEvent;
|
|
4829
4846
|
/** @internal */
|
4830
4847
|
ParticipantEvent["AudioStreamAcquired"] = "audioStreamAcquired";
|
4831
4848
|
/**
|
4832
|
-
* A participant's permission has changed.
|
4849
|
+
* A participant's permission has changed.
|
4833
4850
|
* args: (prevPermissions: [[ParticipantPermission]])
|
4834
4851
|
*/
|
4835
4852
|
ParticipantEvent["ParticipantPermissionsChanged"] = "participantPermissionsChanged";
|
@@ -5477,6 +5494,14 @@ class LivekitError extends Error {
|
|
5477
5494
|
this.code = code;
|
5478
5495
|
}
|
5479
5496
|
}
|
5497
|
+
var ConnectionErrorReason;
|
5498
|
+
(function (ConnectionErrorReason) {
|
5499
|
+
ConnectionErrorReason[ConnectionErrorReason["NotAllowed"] = 0] = "NotAllowed";
|
5500
|
+
ConnectionErrorReason[ConnectionErrorReason["ServerUnreachable"] = 1] = "ServerUnreachable";
|
5501
|
+
ConnectionErrorReason[ConnectionErrorReason["InternalError"] = 2] = "InternalError";
|
5502
|
+
ConnectionErrorReason[ConnectionErrorReason["Cancelled"] = 3] = "Cancelled";
|
5503
|
+
ConnectionErrorReason[ConnectionErrorReason["LeaveRequest"] = 4] = "LeaveRequest";
|
5504
|
+
})(ConnectionErrorReason || (ConnectionErrorReason = {}));
|
5480
5505
|
var MediaDeviceFailure;
|
5481
5506
|
(function (MediaDeviceFailure) {
|
5482
5507
|
// user rejected permissions
|
@@ -6242,7 +6267,7 @@ class ParticipantKeyHandler extends eventsExports.EventEmitter {
|
|
6242
6267
|
this.decryptionFailureCount = 0;
|
6243
6268
|
this._hasValidKey = true;
|
6244
6269
|
this.currentKeyIndex = 0;
|
6245
|
-
if (keyProviderOptions.keyringSize < 1 || keyProviderOptions.keyringSize >
|
6270
|
+
if (keyProviderOptions.keyringSize < 1 || keyProviderOptions.keyringSize > 256) {
|
6246
6271
|
throw new TypeError('Keyring size needs to be between 1 and 256');
|
6247
6272
|
}
|
6248
6273
|
this.cryptoKeyRing = new Array(keyProviderOptions.keyringSize).fill(undefined);
|