videomail-client 9.3.1 → 9.3.3
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/.vscode/settings.json
CHANGED
|
@@ -3,12 +3,10 @@
|
|
|
3
3
|
"files.trimTrailingWhitespace": true,
|
|
4
4
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
5
5
|
"editor.formatOnSave": true,
|
|
6
|
+
"editor.codeActionsOnSave": {
|
|
7
|
+
"source.fixAll.eslint": "always"
|
|
8
|
+
},
|
|
6
9
|
"prettier.configPath": "./prettier.config.cjs",
|
|
7
|
-
"editor.codeActionsOnSave": [
|
|
8
|
-
// Sort package.json keys with
|
|
9
|
-
// https://marketplace.visualstudio.com/items?itemName=unional.vscode-sort-package-json
|
|
10
|
-
"source.sortPackageJson"
|
|
11
|
-
],
|
|
12
10
|
"cSpell.words": [
|
|
13
11
|
"animitter",
|
|
14
12
|
"autobuffer",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "videomail-client",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.3",
|
|
4
4
|
"description": "A wicked npm package to record videos directly in the browser, wohooo!",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"webcam",
|
|
@@ -68,8 +68,8 @@
|
|
|
68
68
|
"number-is-integer": "2.0.0",
|
|
69
69
|
"request-frame": "1.5.3",
|
|
70
70
|
"safe-json-stringify": "1.2.0",
|
|
71
|
-
"superagent": "
|
|
72
|
-
"ua-parser-js": "1.0.
|
|
71
|
+
"superagent": "10.1.0",
|
|
72
|
+
"ua-parser-js": "1.0.39",
|
|
73
73
|
"websocket-stream": "5.5.2"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
@@ -108,14 +108,14 @@
|
|
|
108
108
|
"gulp-terser": "2.1.0",
|
|
109
109
|
"minimist": "1.2.8",
|
|
110
110
|
"nib": "1.2.0",
|
|
111
|
-
"postcss": "8.4.
|
|
111
|
+
"postcss": "8.4.47",
|
|
112
112
|
"prettier": "3.3.3",
|
|
113
113
|
"prettier-plugin-curly": "0.2.2",
|
|
114
|
-
"prettier-plugin-organize-imports": "4.
|
|
114
|
+
"prettier-plugin-organize-imports": "4.1.0",
|
|
115
115
|
"prettier-plugin-packagejson": "2.5.2",
|
|
116
116
|
"prettier-plugin-sh": "0.14.0",
|
|
117
117
|
"router": "1.3.8",
|
|
118
|
-
"tape": "5.
|
|
118
|
+
"tape": "5.9.0",
|
|
119
119
|
"tape-catch": "1.0.6",
|
|
120
120
|
"tape-run": "11.0.0",
|
|
121
121
|
"vinyl-buffer": "1.0.1",
|
|
@@ -13762,14 +13762,18 @@ function getStateLength (state) {
|
|
|
13762
13762
|
},{}],103:[function(_dereq_,module,exports){
|
|
13763
13763
|
"use strict";
|
|
13764
13764
|
|
|
13765
|
-
|
|
13766
|
-
|
|
13767
|
-
|
|
13768
|
-
|
|
13769
|
-
|
|
13770
|
-
|
|
13771
|
-
for (
|
|
13772
|
-
|
|
13765
|
+
const defaults = ['use', 'on', 'once', 'set', 'query', 'type', 'accept', 'auth', 'withCredentials', 'sortQuery', 'retry', 'ok', 'redirects', 'timeout', 'buffer', 'serialize', 'parse', 'ca', 'key', 'pfx', 'cert', 'disableTLSCerts'];
|
|
13766
|
+
class Agent {
|
|
13767
|
+
constructor() {
|
|
13768
|
+
this._defaults = [];
|
|
13769
|
+
}
|
|
13770
|
+
_setDefaults(request) {
|
|
13771
|
+
for (const def of this._defaults) {
|
|
13772
|
+
request[def.fn](...def.args);
|
|
13773
|
+
}
|
|
13774
|
+
}
|
|
13775
|
+
}
|
|
13776
|
+
for (const fn of defaults) {
|
|
13773
13777
|
// Default setting for all requests from this agent
|
|
13774
13778
|
Agent.prototype[fn] = function () {
|
|
13775
13779
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
@@ -13782,28 +13786,11 @@ for (var _i = 0, _arr = ['use', 'on', 'once', 'set', 'query', 'type', 'accept',
|
|
|
13782
13786
|
return this;
|
|
13783
13787
|
};
|
|
13784
13788
|
}
|
|
13785
|
-
Agent.prototype._setDefaults = function (request) {
|
|
13786
|
-
var _iterator = _createForOfIteratorHelper(this._defaults),
|
|
13787
|
-
_step;
|
|
13788
|
-
try {
|
|
13789
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
13790
|
-
const def = _step.value;
|
|
13791
|
-
request[def.fn](...def.args);
|
|
13792
|
-
}
|
|
13793
|
-
} catch (err) {
|
|
13794
|
-
_iterator.e(err);
|
|
13795
|
-
} finally {
|
|
13796
|
-
_iterator.f();
|
|
13797
|
-
}
|
|
13798
|
-
};
|
|
13799
13789
|
module.exports = Agent;
|
|
13800
13790
|
|
|
13801
13791
|
},{}],104:[function(_dereq_,module,exports){
|
|
13802
13792
|
"use strict";
|
|
13803
13793
|
|
|
13804
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
13805
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
13806
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
13807
13794
|
/**
|
|
13808
13795
|
* Root reference for iframes.
|
|
13809
13796
|
*/
|
|
@@ -13824,10 +13811,11 @@ const Emitter = _dereq_('component-emitter');
|
|
|
13824
13811
|
const safeStringify = _dereq_('fast-safe-stringify');
|
|
13825
13812
|
const qs = _dereq_('qs');
|
|
13826
13813
|
const RequestBase = _dereq_('./request-base');
|
|
13827
|
-
const
|
|
13828
|
-
isObject
|
|
13829
|
-
mixin
|
|
13830
|
-
hasOwn
|
|
13814
|
+
const {
|
|
13815
|
+
isObject,
|
|
13816
|
+
mixin,
|
|
13817
|
+
hasOwn
|
|
13818
|
+
} = _dereq_('./utils');
|
|
13831
13819
|
const ResponseBase = _dereq_('./response-base');
|
|
13832
13820
|
const Agent = _dereq_('./agent-base');
|
|
13833
13821
|
|
|
@@ -13911,17 +13899,8 @@ function pushEncodedKeyValuePair(pairs, key, value) {
|
|
|
13911
13899
|
return;
|
|
13912
13900
|
}
|
|
13913
13901
|
if (Array.isArray(value)) {
|
|
13914
|
-
|
|
13915
|
-
|
|
13916
|
-
try {
|
|
13917
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
13918
|
-
const v = _step.value;
|
|
13919
|
-
pushEncodedKeyValuePair(pairs, key, v);
|
|
13920
|
-
}
|
|
13921
|
-
} catch (err) {
|
|
13922
|
-
_iterator.e(err);
|
|
13923
|
-
} finally {
|
|
13924
|
-
_iterator.f();
|
|
13902
|
+
for (const v of value) {
|
|
13903
|
+
pushEncodedKeyValuePair(pairs, key, v);
|
|
13925
13904
|
}
|
|
13926
13905
|
} else if (isObject(value)) {
|
|
13927
13906
|
for (const subkey in value) {
|
|
@@ -13995,7 +13974,12 @@ request.types = {
|
|
|
13995
13974
|
*/
|
|
13996
13975
|
|
|
13997
13976
|
request.serialize = {
|
|
13998
|
-
'application/x-www-form-urlencoded':
|
|
13977
|
+
'application/x-www-form-urlencoded': obj => {
|
|
13978
|
+
return qs.stringify(obj, {
|
|
13979
|
+
indices: false,
|
|
13980
|
+
strictNullHandling: true
|
|
13981
|
+
});
|
|
13982
|
+
},
|
|
13999
13983
|
'application/json': safeStringify
|
|
14000
13984
|
};
|
|
14001
13985
|
|
|
@@ -14109,7 +14093,9 @@ function Response(request_) {
|
|
|
14109
14093
|
// responseText is accessible only if responseType is '' or 'text' and on older browsers
|
|
14110
14094
|
this.text = this.req.method !== 'HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text') || typeof this.xhr.responseType === 'undefined' ? this.xhr.responseText : null;
|
|
14111
14095
|
this.statusText = this.req.xhr.statusText;
|
|
14112
|
-
let
|
|
14096
|
+
let {
|
|
14097
|
+
status
|
|
14098
|
+
} = this.xhr;
|
|
14113
14099
|
// handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request
|
|
14114
14100
|
if (status === 1223) {
|
|
14115
14101
|
status = 204;
|
|
@@ -14160,9 +14146,15 @@ Response.prototype._parseBody = function (string_) {
|
|
|
14160
14146
|
*/
|
|
14161
14147
|
|
|
14162
14148
|
Response.prototype.toError = function () {
|
|
14163
|
-
const
|
|
14164
|
-
|
|
14165
|
-
|
|
14149
|
+
const {
|
|
14150
|
+
req
|
|
14151
|
+
} = this;
|
|
14152
|
+
const {
|
|
14153
|
+
method
|
|
14154
|
+
} = req;
|
|
14155
|
+
const {
|
|
14156
|
+
url
|
|
14157
|
+
} = req;
|
|
14166
14158
|
const message = `cannot ${method} ${url} (${this.status})`;
|
|
14167
14159
|
const error = new Error(message);
|
|
14168
14160
|
error.status = this.status;
|
|
@@ -14482,13 +14474,17 @@ Request.prototype._end = function () {
|
|
|
14482
14474
|
if (this._aborted) return this.callback(new Error('The request has been aborted even before .end() was called'));
|
|
14483
14475
|
const self = this;
|
|
14484
14476
|
this.xhr = request.getXHR();
|
|
14485
|
-
const
|
|
14477
|
+
const {
|
|
14478
|
+
xhr
|
|
14479
|
+
} = this;
|
|
14486
14480
|
let data = this._formData || this._data;
|
|
14487
14481
|
this._setTimeouts();
|
|
14488
14482
|
|
|
14489
14483
|
// state change
|
|
14490
14484
|
xhr.addEventListener('readystatechange', () => {
|
|
14491
|
-
const
|
|
14485
|
+
const {
|
|
14486
|
+
readyState
|
|
14487
|
+
} = xhr;
|
|
14492
14488
|
if (readyState >= 2 && self._responseTimeoutTimer) {
|
|
14493
14489
|
clearTimeout(self._responseTimeoutTimer);
|
|
14494
14490
|
}
|
|
@@ -14581,8 +14577,7 @@ Request.prototype._end = function () {
|
|
|
14581
14577
|
xhr.send(typeof data === 'undefined' ? null : data);
|
|
14582
14578
|
};
|
|
14583
14579
|
request.agent = () => new Agent();
|
|
14584
|
-
for (
|
|
14585
|
-
const method = _arr[_i];
|
|
14580
|
+
for (const method of ['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE']) {
|
|
14586
14581
|
Agent.prototype[method.toLowerCase()] = function (url, fn) {
|
|
14587
14582
|
const request_ = new request.Request(method, url);
|
|
14588
14583
|
this._setDefaults(request_);
|
|
@@ -14744,17 +14739,15 @@ request.put = (url, data, fn) => {
|
|
|
14744
14739
|
};
|
|
14745
14740
|
|
|
14746
14741
|
},{"./agent-base":103,"./request-base":105,"./response-base":106,"./utils":107,"component-emitter":24,"fast-safe-stringify":45,"qs":81}],105:[function(_dereq_,module,exports){
|
|
14747
|
-
(function (process){(function (){
|
|
14748
14742
|
"use strict";
|
|
14749
14743
|
|
|
14750
|
-
const semver = _dereq_('semver');
|
|
14751
|
-
|
|
14752
14744
|
/**
|
|
14753
14745
|
* Module of mixed-in functions shared between node and client code
|
|
14754
14746
|
*/
|
|
14755
|
-
const
|
|
14756
|
-
isObject
|
|
14757
|
-
hasOwn
|
|
14747
|
+
const {
|
|
14748
|
+
isObject,
|
|
14749
|
+
hasOwn
|
|
14750
|
+
} = _dereq_('./utils');
|
|
14758
14751
|
|
|
14759
14752
|
/**
|
|
14760
14753
|
* Expose `RequestBase`.
|
|
@@ -15189,25 +15182,8 @@ RequestBase.prototype.abort = function () {
|
|
|
15189
15182
|
this._aborted = true;
|
|
15190
15183
|
if (this.xhr) this.xhr.abort(); // browser
|
|
15191
15184
|
if (this.req) {
|
|
15192
|
-
// Node v13 has major differences in `abort()`
|
|
15193
|
-
// https://github.com/nodejs/node/blob/v12.x/lib/internal/streams/end-of-stream.js
|
|
15194
|
-
// https://github.com/nodejs/node/blob/v13.x/lib/internal/streams/end-of-stream.js
|
|
15195
|
-
// https://github.com/nodejs/node/blob/v14.x/lib/internal/streams/end-of-stream.js
|
|
15196
|
-
// (if you run a diff across these you will see the differences)
|
|
15197
|
-
//
|
|
15198
|
-
// References:
|
|
15199
|
-
// <https://github.com/nodejs/node/issues/31630>
|
|
15200
|
-
// <https://github.com/ladjs/superagent/pull/1084/commits/dc18679a7c5ccfc6046d882015e5126888973bc8>
|
|
15201
|
-
//
|
|
15202
|
-
// Thanks to @shadowgate15 and @niftylettuce
|
|
15203
|
-
if (semver.gte(process.version, 'v13.0.0') && semver.lt(process.version, 'v14.0.0')) {
|
|
15204
|
-
// Note that the reason this doesn't work is because in v13 as compared to v14
|
|
15205
|
-
// there is no `callback = nop` set in end-of-stream.js above
|
|
15206
|
-
throw new Error('Superagent does not work in v13 properly with abort() due to Node.js core changes');
|
|
15207
|
-
}
|
|
15208
15185
|
this.req.abort(); // node
|
|
15209
15186
|
}
|
|
15210
|
-
|
|
15211
15187
|
this.clearTimeout();
|
|
15212
15188
|
this.emit('abort');
|
|
15213
15189
|
return this;
|
|
@@ -15483,8 +15459,7 @@ RequestBase.prototype._setTimeouts = function () {
|
|
|
15483
15459
|
}
|
|
15484
15460
|
};
|
|
15485
15461
|
|
|
15486
|
-
}
|
|
15487
|
-
},{"./utils":107,"_process":79,"semver":16}],106:[function(_dereq_,module,exports){
|
|
15462
|
+
},{"./utils":107}],106:[function(_dereq_,module,exports){
|
|
15488
15463
|
"use strict";
|
|
15489
15464
|
|
|
15490
15465
|
/**
|
|
@@ -15608,9 +15583,6 @@ ResponseBase.prototype._setStatusProperties = function (status) {
|
|
|
15608
15583
|
},{"./utils":107}],107:[function(_dereq_,module,exports){
|
|
15609
15584
|
"use strict";
|
|
15610
15585
|
|
|
15611
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
15612
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15613
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
15614
15586
|
/**
|
|
15615
15587
|
* Return the mime type for the given `str`.
|
|
15616
15588
|
*
|
|
@@ -15631,20 +15603,11 @@ exports.type = string_ => string_.split(/ *; */).shift();
|
|
|
15631
15603
|
|
|
15632
15604
|
exports.params = value => {
|
|
15633
15605
|
const object = {};
|
|
15634
|
-
|
|
15635
|
-
|
|
15636
|
-
|
|
15637
|
-
|
|
15638
|
-
|
|
15639
|
-
const parts = string_.split(/ *= */);
|
|
15640
|
-
const key = parts.shift();
|
|
15641
|
-
const value = parts.shift();
|
|
15642
|
-
if (key && value) object[key] = value;
|
|
15643
|
-
}
|
|
15644
|
-
} catch (err) {
|
|
15645
|
-
_iterator.e(err);
|
|
15646
|
-
} finally {
|
|
15647
|
-
_iterator.f();
|
|
15606
|
+
for (const string_ of value.split(/ *; */)) {
|
|
15607
|
+
const parts = string_.split(/ *= */);
|
|
15608
|
+
const key = parts.shift();
|
|
15609
|
+
const value = parts.shift();
|
|
15610
|
+
if (key && value) object[key] = value;
|
|
15648
15611
|
}
|
|
15649
15612
|
return object;
|
|
15650
15613
|
};
|
|
@@ -15659,20 +15622,11 @@ exports.params = value => {
|
|
|
15659
15622
|
|
|
15660
15623
|
exports.parseLinks = value => {
|
|
15661
15624
|
const object = {};
|
|
15662
|
-
|
|
15663
|
-
|
|
15664
|
-
|
|
15665
|
-
|
|
15666
|
-
|
|
15667
|
-
const parts = string_.split(/ *; */);
|
|
15668
|
-
const url = parts[0].slice(1, -1);
|
|
15669
|
-
const rel = parts[1].split(/ *= */)[1].slice(1, -1);
|
|
15670
|
-
object[rel] = url;
|
|
15671
|
-
}
|
|
15672
|
-
} catch (err) {
|
|
15673
|
-
_iterator2.e(err);
|
|
15674
|
-
} finally {
|
|
15675
|
-
_iterator2.f();
|
|
15625
|
+
for (const string_ of value.split(/ *, */)) {
|
|
15626
|
+
const parts = string_.split(/ *; */);
|
|
15627
|
+
const url = parts[0].slice(1, -1);
|
|
15628
|
+
const rel = parts[1].split(/ *= */)[1].slice(1, -1);
|
|
15629
|
+
object[rel] = url;
|
|
15676
15630
|
}
|
|
15677
15631
|
return object;
|
|
15678
15632
|
};
|
|
@@ -15729,6 +15683,26 @@ exports.mixin = (target, source) => {
|
|
|
15729
15683
|
}
|
|
15730
15684
|
};
|
|
15731
15685
|
|
|
15686
|
+
/**
|
|
15687
|
+
* Check if the response is compressed using Gzip or Deflate.
|
|
15688
|
+
* @param {Object} res
|
|
15689
|
+
* @return {Boolean}
|
|
15690
|
+
*/
|
|
15691
|
+
|
|
15692
|
+
exports.isGzipOrDeflateEncoding = res => {
|
|
15693
|
+
return new RegExp(/^\s*(?:deflate|gzip)\s*$/).test(res.headers['content-encoding']);
|
|
15694
|
+
};
|
|
15695
|
+
|
|
15696
|
+
/**
|
|
15697
|
+
* Check if the response is compressed using Brotli.
|
|
15698
|
+
* @param {Object} res
|
|
15699
|
+
* @return {Boolean}
|
|
15700
|
+
*/
|
|
15701
|
+
|
|
15702
|
+
exports.isBrotliEncoding = res => {
|
|
15703
|
+
return new RegExp(/^\s*(?:br)\s*$/).test(res.headers['content-encoding']);
|
|
15704
|
+
};
|
|
15705
|
+
|
|
15732
15706
|
},{}],108:[function(_dereq_,module,exports){
|
|
15733
15707
|
(function (setImmediate,clearImmediate){(function (){
|
|
15734
15708
|
var nextTick = _dereq_('process/browser.js').nextTick;
|
|
@@ -15832,7 +15806,7 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
15832
15806
|
}).call(this)}).call(this,_dereq_("buffer").Buffer)
|
|
15833
15807
|
},{"buffer":18}],110:[function(_dereq_,module,exports){
|
|
15834
15808
|
/////////////////////////////////////////////////////////////////////////////////
|
|
15835
|
-
/* UAParser.js v1.0.
|
|
15809
|
+
/* UAParser.js v1.0.39
|
|
15836
15810
|
Copyright © 2012-2021 Faisal Salman <f@faisalman.com>
|
|
15837
15811
|
MIT License *//*
|
|
15838
15812
|
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
|
@@ -15850,7 +15824,7 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
15850
15824
|
/////////////
|
|
15851
15825
|
|
|
15852
15826
|
|
|
15853
|
-
var LIBVERSION = '1.0.
|
|
15827
|
+
var LIBVERSION = '1.0.39',
|
|
15854
15828
|
EMPTY = '',
|
|
15855
15829
|
UNKNOWN = '?',
|
|
15856
15830
|
FUNC_TYPE = 'function',
|
|
@@ -15893,7 +15867,8 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
15893
15867
|
ZEBRA = 'Zebra',
|
|
15894
15868
|
FACEBOOK = 'Facebook',
|
|
15895
15869
|
CHROMIUM_OS = 'Chromium OS',
|
|
15896
|
-
MAC_OS = 'Mac OS'
|
|
15870
|
+
MAC_OS = 'Mac OS',
|
|
15871
|
+
SUFFIX_BROWSER = ' Browser';
|
|
15897
15872
|
|
|
15898
15873
|
///////////
|
|
15899
15874
|
// Helper
|
|
@@ -16004,7 +15979,7 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
16004
15979
|
return (i === UNKNOWN) ? undefined : i;
|
|
16005
15980
|
}
|
|
16006
15981
|
}
|
|
16007
|
-
return str;
|
|
15982
|
+
return map.hasOwnProperty('*') ? map['*'] : str;
|
|
16008
15983
|
};
|
|
16009
15984
|
|
|
16010
15985
|
///////////////
|
|
@@ -16065,17 +16040,20 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
16065
16040
|
/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i // Baidu
|
|
16066
16041
|
], [VERSION, [NAME, 'Baidu']], [
|
|
16067
16042
|
/(kindle)\/([\w\.]+)/i, // Kindle
|
|
16068
|
-
/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,
|
|
16043
|
+
/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,
|
|
16044
|
+
// Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir
|
|
16069
16045
|
// Trident based
|
|
16070
16046
|
/(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i, // Avant/IEMobile/SlimBrowser
|
|
16071
16047
|
/(?:ms|\()(ie) ([\w\.]+)/i, // Internet Explorer
|
|
16072
16048
|
|
|
16073
16049
|
// Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
|
|
16074
|
-
/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|
|
|
16075
|
-
// Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ
|
|
16076
|
-
/(heytap|ovi)browser\/([\d\.]+)/i, //
|
|
16050
|
+
/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio)\/([-\w\.]+)/i,
|
|
16051
|
+
// Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio
|
|
16052
|
+
/(heytap|ovi)browser\/([\d\.]+)/i, // HeyTap/Ovi
|
|
16077
16053
|
/(weibo)__([\d\.]+)/i // Weibo
|
|
16078
16054
|
], [NAME, VERSION], [
|
|
16055
|
+
/quark(?:pc)?\/([-\w\.]+)/i // Quark
|
|
16056
|
+
], [VERSION, [NAME, 'Quark']], [
|
|
16079
16057
|
/\bddg\/([\w\.]+)/i // DuckDuckGo
|
|
16080
16058
|
], [VERSION, [NAME, 'DuckDuckGo']], [
|
|
16081
16059
|
/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i // UCBrowser
|
|
@@ -16109,9 +16087,11 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
16109
16087
|
/fxios\/([-\w\.]+)/i // Firefox for iOS
|
|
16110
16088
|
], [VERSION, [NAME, FIREFOX]], [
|
|
16111
16089
|
/\bqihu|(qi?ho?o?|360)browser/i // 360
|
|
16112
|
-
], [[NAME, '360
|
|
16113
|
-
|
|
16114
|
-
], [[NAME, /(.+)/, '$
|
|
16090
|
+
], [[NAME, '360' + SUFFIX_BROWSER]], [
|
|
16091
|
+
/\b(qq)\/([\w\.]+)/i // QQ
|
|
16092
|
+
], [[NAME, /(.+)/, '$1Browser'], VERSION], [
|
|
16093
|
+
/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
|
|
16094
|
+
], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
|
|
16115
16095
|
/samsungbrowser\/([\w\.]+)/i // Samsung Internet
|
|
16116
16096
|
], [VERSION, [NAME, SAMSUNG + ' Internet']], [
|
|
16117
16097
|
/(comodo_dragon)\/([\w\.]+)/i // Comodo Dragon
|
|
@@ -16124,7 +16104,7 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
16124
16104
|
/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, // Tesla
|
|
16125
16105
|
/m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i // QQBrowser/2345 Browser
|
|
16126
16106
|
], [NAME, VERSION], [
|
|
16127
|
-
/(lbbrowser)/i,
|
|
16107
|
+
/(lbbrowser|rekonq)/i, // LieBao Browser/Rekonq
|
|
16128
16108
|
/\[(linkedin)app\]/i // LinkedIn App for iOS & Android
|
|
16129
16109
|
], [NAME], [
|
|
16130
16110
|
|
|
@@ -16170,23 +16150,24 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
16170
16150
|
// Gecko based
|
|
16171
16151
|
/(navigator|netscape\d?)\/([-\w\.]+)/i // Netscape
|
|
16172
16152
|
], [[NAME, 'Netscape'], VERSION], [
|
|
16153
|
+
/(wolvic)\/([\w\.]+)/i // Wolvic
|
|
16154
|
+
], [NAME, VERSION], [
|
|
16173
16155
|
/mobile vr; rv:([\w\.]+)\).+firefox/i // Firefox Reality
|
|
16174
16156
|
], [VERSION, [NAME, FIREFOX+' Reality']], [
|
|
16175
16157
|
/ekiohf.+(flow)\/([\w\.]+)/i, // Flow
|
|
16176
16158
|
/(swiftfox)/i, // Swiftfox
|
|
16177
|
-
/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror
|
|
16178
|
-
// IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
|
|
16159
|
+
/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,
|
|
16160
|
+
// IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
|
|
16179
16161
|
/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
|
|
16180
16162
|
// Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
|
|
16181
16163
|
/(firefox)\/([\w\.]+)/i, // Other Firefox-based
|
|
16182
16164
|
/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, // Mozilla
|
|
16183
16165
|
|
|
16184
16166
|
// Other
|
|
16185
|
-
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|
|
|
16186
|
-
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/
|
|
16187
|
-
/(links) \(([\w\.]+)/i
|
|
16188
|
-
/
|
|
16189
|
-
], [NAME, VERSION], [
|
|
16167
|
+
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
|
|
16168
|
+
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser
|
|
16169
|
+
/(links) \(([\w\.]+)/i // Links
|
|
16170
|
+
], [NAME, [VERSION, /_/g, '.']], [
|
|
16190
16171
|
|
|
16191
16172
|
/(cobalt)\/([\w\.]+)/i // Cobalt
|
|
16192
16173
|
], [NAME, [VERSION, /master.|lts./, ""]]
|
|
@@ -16233,8 +16214,8 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
16233
16214
|
// Samsung
|
|
16234
16215
|
/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
|
|
16235
16216
|
], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [
|
|
16236
|
-
/\b((?:s[cgp]h|gt|sm)
|
|
16237
|
-
/samsung[- ]([-\w]+)/i,
|
|
16217
|
+
/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
|
|
16218
|
+
/samsung[- ]((?!sm-[lr])[-\w]+)/i,
|
|
16238
16219
|
/sec-(sgh\w+)/i
|
|
16239
16220
|
], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [
|
|
16240
16221
|
|
|
@@ -16265,7 +16246,7 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
16265
16246
|
/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi
|
|
16266
16247
|
/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, // Xiaomi Redmi
|
|
16267
16248
|
/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, // Xiaomi Redmi 'numeric' models
|
|
16268
|
-
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i // Xiaomi Mi
|
|
16249
|
+
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i // Xiaomi Mi
|
|
16269
16250
|
], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [
|
|
16270
16251
|
/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i, // Redmi Pad
|
|
16271
16252
|
/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i // Mi Pad tablets
|
|
@@ -16333,7 +16314,7 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
16333
16314
|
|
|
16334
16315
|
// Amazon
|
|
16335
16316
|
/(alexa)webm/i,
|
|
16336
|
-
/(kf[a-z]{2}wi|aeo
|
|
16317
|
+
/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i, // Kindle Fire without Silk / Echo Show
|
|
16337
16318
|
/(kf[a-z]+)( bui|\)).+silk\//i // Kindle Fire HD
|
|
16338
16319
|
], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [
|
|
16339
16320
|
/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i // Fire Phone
|
|
@@ -16362,6 +16343,14 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
16362
16343
|
/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
|
|
16363
16344
|
], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [
|
|
16364
16345
|
|
|
16346
|
+
// TCL
|
|
16347
|
+
/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i
|
|
16348
|
+
], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [
|
|
16349
|
+
|
|
16350
|
+
// itel
|
|
16351
|
+
/(itel) ((\w+))/i
|
|
16352
|
+
], [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { 'tablet' : ['p10001l', 'w7001'], '*' : 'mobile' }]], [
|
|
16353
|
+
|
|
16365
16354
|
// Acer
|
|
16366
16355
|
/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
|
|
16367
16356
|
], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [
|
|
@@ -16375,6 +16364,10 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
16375
16364
|
/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
|
|
16376
16365
|
], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [
|
|
16377
16366
|
|
|
16367
|
+
// Nothing
|
|
16368
|
+
/droid.+; (a(?:015|06[35]|142p?))/i
|
|
16369
|
+
], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [
|
|
16370
|
+
|
|
16378
16371
|
// MIXED
|
|
16379
16372
|
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,
|
|
16380
16373
|
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
|
|
@@ -16505,6 +16498,8 @@ module.exports = function typedarrayToBuffer (arr) {
|
|
|
16505
16498
|
// WEARABLES
|
|
16506
16499
|
///////////////////
|
|
16507
16500
|
|
|
16501
|
+
/\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i // Samsung Galaxy Watch
|
|
16502
|
+
], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [
|
|
16508
16503
|
/((pebble))app/i // Pebble
|
|
16509
16504
|
], [VENDOR, MODEL, [TYPE, WEARABLE]], [
|
|
16510
16505
|
/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i // Apple Watch
|
|
@@ -17339,7 +17334,7 @@ function wrappy (fn, cb) {
|
|
|
17339
17334
|
},{}],116:[function(_dereq_,module,exports){
|
|
17340
17335
|
module.exports={
|
|
17341
17336
|
"name": "videomail-client",
|
|
17342
|
-
"version": "9.3.
|
|
17337
|
+
"version": "9.3.3",
|
|
17343
17338
|
"description": "A wicked npm package to record videos directly in the browser, wohooo!",
|
|
17344
17339
|
"keywords": [
|
|
17345
17340
|
"webcam",
|
|
@@ -17407,8 +17402,8 @@ module.exports={
|
|
|
17407
17402
|
"number-is-integer": "2.0.0",
|
|
17408
17403
|
"request-frame": "1.5.3",
|
|
17409
17404
|
"safe-json-stringify": "1.2.0",
|
|
17410
|
-
"superagent": "
|
|
17411
|
-
"ua-parser-js": "1.0.
|
|
17405
|
+
"superagent": "10.1.0",
|
|
17406
|
+
"ua-parser-js": "1.0.39",
|
|
17412
17407
|
"websocket-stream": "5.5.2"
|
|
17413
17408
|
},
|
|
17414
17409
|
"devDependencies": {
|
|
@@ -17447,14 +17442,14 @@ module.exports={
|
|
|
17447
17442
|
"gulp-terser": "2.1.0",
|
|
17448
17443
|
"minimist": "1.2.8",
|
|
17449
17444
|
"nib": "1.2.0",
|
|
17450
|
-
"postcss": "8.4.
|
|
17445
|
+
"postcss": "8.4.47",
|
|
17451
17446
|
"prettier": "3.3.3",
|
|
17452
17447
|
"prettier-plugin-curly": "0.2.2",
|
|
17453
|
-
"prettier-plugin-organize-imports": "4.
|
|
17448
|
+
"prettier-plugin-organize-imports": "4.1.0",
|
|
17454
17449
|
"prettier-plugin-packagejson": "2.5.2",
|
|
17455
17450
|
"prettier-plugin-sh": "0.14.0",
|
|
17456
17451
|
"router": "1.3.8",
|
|
17457
|
-
"tape": "5.
|
|
17452
|
+
"tape": "5.9.0",
|
|
17458
17453
|
"tape-catch": "1.0.6",
|
|
17459
17454
|
"tape-run": "11.0.0",
|
|
17460
17455
|
"vinyl-buffer": "1.0.1",
|
|
@@ -22737,6 +22732,10 @@ var Recorder = function Recorder(visuals, replay) {
|
|
|
22737
22732
|
return getIntervalSum() / framesCount;
|
|
22738
22733
|
}
|
|
22739
22734
|
function getAvgFps() {
|
|
22735
|
+
var intervalSum = getIntervalSum();
|
|
22736
|
+
if (intervalSum === 0) {
|
|
22737
|
+
return undefined;
|
|
22738
|
+
}
|
|
22740
22739
|
return framesCount / getIntervalSum() * 1000;
|
|
22741
22740
|
}
|
|
22742
22741
|
this.getRecordingStats = function () {
|
|
@@ -22984,9 +22983,14 @@ var Recorder = function Recorder(visuals, replay) {
|
|
|
22984
22983
|
|
|
22985
22984
|
// see https://github.com/hapticdata/animitter/issues/3
|
|
22986
22985
|
loop.on("update", function (_deltaTime, elapsedTime) {
|
|
22987
|
-
|
|
22988
|
-
|
|
22989
|
-
|
|
22986
|
+
var avgFPS = undefined;
|
|
22987
|
+
if (elapsedTime !== 0) {
|
|
22988
|
+
// x1000 because of milliseconds
|
|
22989
|
+
avgFPS = Math.round(framesCount / elapsedTime * 1000);
|
|
22990
|
+
} else {
|
|
22991
|
+
avgFPS = undefined;
|
|
22992
|
+
}
|
|
22993
|
+
debug("Recorder: avgFps = ".concat(avgFPS, ", framesCount = ").concat(framesCount));
|
|
22990
22994
|
});
|
|
22991
22995
|
loop.start();
|
|
22992
22996
|
};
|