videomail-client 6.0.17 → 6.0.19

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "videomail-client",
3
- "version": "6.0.17",
3
+ "version": "6.0.19",
4
4
  "description": "A wicked npm package to record videos directly in the browser, wohooo!",
5
5
  "author": "Michael Heuberger <michael.heuberger@binarykitchen.com>",
6
6
  "contributors": [
@@ -59,14 +59,14 @@
59
59
  ]
60
60
  },
61
61
  "dependencies": {
62
- "@babel/runtime": "7.21.0",
62
+ "@babel/runtime": "7.22.5",
63
63
  "add-eventlistener-with-options": "1.25.5",
64
64
  "animitter": "3.0.0",
65
65
  "audio-sample": "3.0.1",
66
66
  "canvas-to-buffer": "3.0.1",
67
67
  "classlist.js": "1.1.20150312",
68
68
  "contains": "0.1.1",
69
- "core-js": "3.30.1",
69
+ "core-js": "3.31.0",
70
70
  "create-error": "0.3.1",
71
71
  "deepmerge": "4.3.1",
72
72
  "defined": "1.0.1",
@@ -91,19 +91,19 @@
91
91
  "websocket-stream": "5.5.2"
92
92
  },
93
93
  "devDependencies": {
94
- "@babel/core": "7.21.4",
95
- "@babel/eslint-parser": "7.21.3",
96
- "@babel/plugin-transform-runtime": "7.21.4",
97
- "@babel/preset-env": "7.21.4",
94
+ "@babel/core": "7.22.5",
95
+ "@babel/eslint-parser": "7.22.5",
96
+ "@babel/plugin-transform-runtime": "7.22.5",
97
+ "@babel/preset-env": "7.22.5",
98
98
  "audit-ci": "6.6.1",
99
99
  "autoprefixer": "10.4.14",
100
100
  "babelify": "10.0.0",
101
101
  "body-parser": "1.20.2",
102
102
  "browserify": "17.0.0",
103
103
  "connect-send-json": "1.0.0",
104
- "cssnano": "5.1.15",
104
+ "cssnano": "6.0.1",
105
105
  "del": "6.1.1",
106
- "eslint": "8.38.0",
106
+ "eslint": "8.43.0",
107
107
  "eslint-config-prettier": "8.8.0",
108
108
  "eslint-plugin-import": "2.27.5",
109
109
  "eslint-plugin-node": "11.1.0",
@@ -128,8 +128,8 @@
128
128
  "gulp-todo": "7.1.1",
129
129
  "minimist": "1.2.8",
130
130
  "nib": "1.2.0",
131
- "postcss": "8.4.23",
132
- "prettier": "2.8.7",
131
+ "postcss": "8.4.24",
132
+ "prettier": "2.8.8",
133
133
  "router": "1.3.8",
134
134
  "tape": "5.6.3",
135
135
  "tape-catch": "1.0.6",
@@ -5122,7 +5122,7 @@ module.exports =
5122
5122
  check(typeof self == 'object' && self) ||
5123
5123
  check(typeof global == 'object' && global) ||
5124
5124
  // eslint-disable-next-line no-new-func -- fallback
5125
- (function () { return this; })() || Function('return this')();
5125
+ (function () { return this; })() || this || Function('return this')();
5126
5126
 
5127
5127
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
5128
5128
  },{}],97:[function(_dereq_,module,exports){
@@ -6938,10 +6938,10 @@ var store = _dereq_('../internals/shared-store');
6938
6938
  (module.exports = function (key, value) {
6939
6939
  return store[key] || (store[key] = value !== undefined ? value : {});
6940
6940
  })('versions', []).push({
6941
- version: '3.30.1',
6941
+ version: '3.31.0',
6942
6942
  mode: IS_PURE ? 'pure' : 'global',
6943
6943
  copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',
6944
- license: 'https://github.com/zloirock/core-js/blob/v3.30.1/LICENSE',
6944
+ license: 'https://github.com/zloirock/core-js/blob/v3.31.0/LICENSE',
6945
6945
  source: 'https://github.com/zloirock/core-js'
6946
6946
  });
6947
6947
 
@@ -7236,18 +7236,23 @@ module.exports = {
7236
7236
  /* eslint-disable es/no-symbol -- required for testing */
7237
7237
  var V8_VERSION = _dereq_('../internals/engine-v8-version');
7238
7238
  var fails = _dereq_('../internals/fails');
7239
+ var global = _dereq_('../internals/global');
7240
+
7241
+ var $String = global.String;
7239
7242
 
7240
7243
  // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
7241
7244
  module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
7242
7245
  var symbol = Symbol();
7243
7246
  // Chrome 38 Symbol has incorrect toString conversion
7244
7247
  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
7245
- return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
7248
+ // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,
7249
+ // of course, fail.
7250
+ return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||
7246
7251
  // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
7247
7252
  !Symbol.sham && V8_VERSION && V8_VERSION < 41;
7248
7253
  });
7249
7254
 
7250
- },{"../internals/engine-v8-version":76,"../internals/fails":80}],174:[function(_dereq_,module,exports){
7255
+ },{"../internals/engine-v8-version":76,"../internals/fails":80,"../internals/global":96}],174:[function(_dereq_,module,exports){
7251
7256
  var global = _dereq_('../internals/global');
7252
7257
  var apply = _dereq_('../internals/function-apply');
7253
7258
  var bind = _dereq_('../internals/function-bind-context');
@@ -7908,13 +7913,15 @@ module.exports = !fails(function () {
7908
7913
  // eslint-disable-next-line unicorn/relative-url-style -- required for testing
7909
7914
  var url = new URL('b?a=1&b=2&c=3', 'http://a');
7910
7915
  var searchParams = url.searchParams;
7916
+ var searchParams2 = new URLSearchParams('a=1&a=2');
7911
7917
  var result = '';
7912
7918
  url.pathname = 'c%20d';
7913
7919
  searchParams.forEach(function (value, key) {
7914
7920
  searchParams['delete']('b');
7915
7921
  result += key + value;
7916
7922
  });
7917
- return (IS_PURE && !url.toJSON)
7923
+ searchParams2['delete']('a', 2);
7924
+ return (IS_PURE && (!url.toJSON || !searchParams2.has('a', 1) || searchParams2.has('a', 2)))
7918
7925
  || (!searchParams.size && (IS_PURE || !DESCRIPTORS))
7919
7926
  || !searchParams.sort
7920
7927
  || url.href !== 'http://a/c%20d?a=1&c=3'
@@ -10078,7 +10085,7 @@ var URLSearchParamsConstructor = function URLSearchParams(/* init */) {
10078
10085
  anInstance(this, URLSearchParamsPrototype);
10079
10086
  var init = arguments.length > 0 ? arguments[0] : undefined;
10080
10087
  var state = setInternalState(this, new URLSearchParamsState(init));
10081
- if (!DESCRIPTORS) this.length = state.entries.length;
10088
+ if (!DESCRIPTORS) this.size = state.entries.length;
10082
10089
  };
10083
10090
 
10084
10091
  var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;
@@ -10087,32 +10094,37 @@ defineBuiltIns(URLSearchParamsPrototype, {
10087
10094
  // `URLSearchParams.prototype.append` method
10088
10095
  // https://url.spec.whatwg.org/#dom-urlsearchparams-append
10089
10096
  append: function append(name, value) {
10090
- validateArgumentsLength(arguments.length, 2);
10091
10097
  var state = getInternalParamsState(this);
10098
+ validateArgumentsLength(arguments.length, 2);
10092
10099
  push(state.entries, { key: $toString(name), value: $toString(value) });
10093
10100
  if (!DESCRIPTORS) this.length++;
10094
10101
  state.updateURL();
10095
10102
  },
10096
10103
  // `URLSearchParams.prototype.delete` method
10097
10104
  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete
10098
- 'delete': function (name) {
10099
- validateArgumentsLength(arguments.length, 1);
10105
+ 'delete': function (name /* , value */) {
10100
10106
  var state = getInternalParamsState(this);
10107
+ var length = validateArgumentsLength(arguments.length, 1);
10101
10108
  var entries = state.entries;
10102
10109
  var key = $toString(name);
10110
+ var $value = length < 2 ? undefined : arguments[1];
10111
+ var value = $value === undefined ? $value : $toString($value);
10103
10112
  var index = 0;
10104
10113
  while (index < entries.length) {
10105
- if (entries[index].key === key) splice(entries, index, 1);
10106
- else index++;
10114
+ var entry = entries[index];
10115
+ if (entry.key === key && (value === undefined || entry.value === value)) {
10116
+ splice(entries, index, 1);
10117
+ if (value !== undefined) break;
10118
+ } else index++;
10107
10119
  }
10108
- if (!DESCRIPTORS) this.length = entries.length;
10120
+ if (!DESCRIPTORS) this.size = entries.length;
10109
10121
  state.updateURL();
10110
10122
  },
10111
10123
  // `URLSearchParams.prototype.get` method
10112
10124
  // https://url.spec.whatwg.org/#dom-urlsearchparams-get
10113
10125
  get: function get(name) {
10114
- validateArgumentsLength(arguments.length, 1);
10115
10126
  var entries = getInternalParamsState(this).entries;
10127
+ validateArgumentsLength(arguments.length, 1);
10116
10128
  var key = $toString(name);
10117
10129
  var index = 0;
10118
10130
  for (; index < entries.length; index++) {
@@ -10123,8 +10135,8 @@ defineBuiltIns(URLSearchParamsPrototype, {
10123
10135
  // `URLSearchParams.prototype.getAll` method
10124
10136
  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall
10125
10137
  getAll: function getAll(name) {
10126
- validateArgumentsLength(arguments.length, 1);
10127
10138
  var entries = getInternalParamsState(this).entries;
10139
+ validateArgumentsLength(arguments.length, 1);
10128
10140
  var key = $toString(name);
10129
10141
  var result = [];
10130
10142
  var index = 0;
@@ -10135,21 +10147,24 @@ defineBuiltIns(URLSearchParamsPrototype, {
10135
10147
  },
10136
10148
  // `URLSearchParams.prototype.has` method
10137
10149
  // https://url.spec.whatwg.org/#dom-urlsearchparams-has
10138
- has: function has(name) {
10139
- validateArgumentsLength(arguments.length, 1);
10150
+ has: function has(name /* , value */) {
10140
10151
  var entries = getInternalParamsState(this).entries;
10152
+ var length = validateArgumentsLength(arguments.length, 1);
10141
10153
  var key = $toString(name);
10154
+ var $value = length < 2 ? undefined : arguments[1];
10155
+ var value = $value === undefined ? $value : $toString($value);
10142
10156
  var index = 0;
10143
10157
  while (index < entries.length) {
10144
- if (entries[index++].key === key) return true;
10158
+ var entry = entries[index++];
10159
+ if (entry.key === key && (value === undefined || entry.value === value)) return true;
10145
10160
  }
10146
10161
  return false;
10147
10162
  },
10148
10163
  // `URLSearchParams.prototype.set` method
10149
10164
  // https://url.spec.whatwg.org/#dom-urlsearchparams-set
10150
10165
  set: function set(name, value) {
10151
- validateArgumentsLength(arguments.length, 1);
10152
10166
  var state = getInternalParamsState(this);
10167
+ validateArgumentsLength(arguments.length, 1);
10153
10168
  var entries = state.entries;
10154
10169
  var found = false;
10155
10170
  var key = $toString(name);
@@ -10167,7 +10182,7 @@ defineBuiltIns(URLSearchParamsPrototype, {
10167
10182
  }
10168
10183
  }
10169
10184
  if (!found) push(entries, { key: key, value: val });
10170
- if (!DESCRIPTORS) this.length = entries.length;
10185
+ if (!DESCRIPTORS) this.size = entries.length;
10171
10186
  state.updateURL();
10172
10187
  },
10173
10188
  // `URLSearchParams.prototype.sort` method
@@ -26459,7 +26474,7 @@ function wrappy (fn, cb) {
26459
26474
  },{}],358:[function(_dereq_,module,exports){
26460
26475
  module.exports={
26461
26476
  "name": "videomail-client",
26462
- "version": "6.0.17",
26477
+ "version": "6.0.19",
26463
26478
  "description": "A wicked npm package to record videos directly in the browser, wohooo!",
26464
26479
  "author": "Michael Heuberger <michael.heuberger@binarykitchen.com>",
26465
26480
  "contributors": [
@@ -26518,14 +26533,14 @@ module.exports={
26518
26533
  ]
26519
26534
  },
26520
26535
  "dependencies": {
26521
- "@babel/runtime": "7.21.0",
26536
+ "@babel/runtime": "7.22.5",
26522
26537
  "add-eventlistener-with-options": "1.25.5",
26523
26538
  "animitter": "3.0.0",
26524
26539
  "audio-sample": "3.0.1",
26525
26540
  "canvas-to-buffer": "3.0.1",
26526
26541
  "classlist.js": "1.1.20150312",
26527
26542
  "contains": "0.1.1",
26528
- "core-js": "3.30.1",
26543
+ "core-js": "3.31.0",
26529
26544
  "create-error": "0.3.1",
26530
26545
  "deepmerge": "4.3.1",
26531
26546
  "defined": "1.0.1",
@@ -26550,19 +26565,19 @@ module.exports={
26550
26565
  "websocket-stream": "5.5.2"
26551
26566
  },
26552
26567
  "devDependencies": {
26553
- "@babel/core": "7.21.4",
26554
- "@babel/eslint-parser": "7.21.3",
26555
- "@babel/plugin-transform-runtime": "7.21.4",
26556
- "@babel/preset-env": "7.21.4",
26568
+ "@babel/core": "7.22.5",
26569
+ "@babel/eslint-parser": "7.22.5",
26570
+ "@babel/plugin-transform-runtime": "7.22.5",
26571
+ "@babel/preset-env": "7.22.5",
26557
26572
  "audit-ci": "6.6.1",
26558
26573
  "autoprefixer": "10.4.14",
26559
26574
  "babelify": "10.0.0",
26560
26575
  "body-parser": "1.20.2",
26561
26576
  "browserify": "17.0.0",
26562
26577
  "connect-send-json": "1.0.0",
26563
- "cssnano": "5.1.15",
26578
+ "cssnano": "6.0.1",
26564
26579
  "del": "6.1.1",
26565
- "eslint": "8.38.0",
26580
+ "eslint": "8.43.0",
26566
26581
  "eslint-config-prettier": "8.8.0",
26567
26582
  "eslint-plugin-import": "2.27.5",
26568
26583
  "eslint-plugin-node": "11.1.0",
@@ -26587,8 +26602,8 @@ module.exports={
26587
26602
  "gulp-todo": "7.1.1",
26588
26603
  "minimist": "1.2.8",
26589
26604
  "nib": "1.2.0",
26590
- "postcss": "8.4.23",
26591
- "prettier": "2.8.7",
26605
+ "postcss": "8.4.24",
26606
+ "prettier": "2.8.8",
26592
26607
  "router": "1.3.8",
26593
26608
  "tape": "5.6.3",
26594
26609
  "tape-catch": "1.0.6",
@@ -27429,7 +27444,7 @@ _dereq_("core-js/modules/es.typed-array.to-string.js");
27429
27444
  var _defined = _interopRequireDefault(_dereq_("defined"));
27430
27445
  var _uaParserJs = _interopRequireDefault(_dereq_("ua-parser-js"));
27431
27446
  var _videomailError = _interopRequireDefault(_dereq_("./videomailError"));
27432
- var FALLBACK_VIDEO_TYPE = 'webm';
27447
+ var FALLBACK_VIDEO_TYPE = 'mp4';
27433
27448
  var Browser = function Browser(options) {
27434
27449
  options = options || {};
27435
27450
  var firefoxDownload = 'http://www.mozilla.org/firefox/update/';
@@ -27592,10 +27607,10 @@ var Browser = function Browser(options) {
27592
27607
  }
27593
27608
  this.getVideoType = function (video) {
27594
27609
  if (!videoType && video) {
27595
- if (canPlayType(video, 'webm')) {
27596
- videoType = 'webm';
27597
- } else if (canPlayType(video, 'mp4')) {
27610
+ if (canPlayType(video, 'mp4')) {
27598
27611
  videoType = 'mp4';
27612
+ } else if (canPlayType(video, 'webm')) {
27613
+ videoType = 'webm';
27599
27614
  }
27600
27615
  }
27601
27616
  if (videoType !== 'webm' && videoType !== 'mp4') {
@@ -31049,6 +31064,7 @@ _dereq_("core-js/modules/web.timers.js");
31049
31064
  _dereq_("core-js/modules/es.number.to-fixed.js");
31050
31065
  _dereq_("core-js/modules/es.date.now.js");
31051
31066
  _dereq_("core-js/modules/es.date.to-string.js");
31067
+ _dereq_("core-js/modules/es.object.keys.js");
31052
31068
  _dereq_("core-js/modules/es.object.to-string.js");
31053
31069
  _dereq_("core-js/modules/es.regexp.to-string.js");
31054
31070
  _dereq_("core-js/modules/es.function.name.js");
@@ -31396,7 +31412,7 @@ var Recorder = function Recorder(visuals, replay) {
31396
31412
  clearUserMediaTimeout();
31397
31413
  debug('Recorder: userMediaErrorCallback()', ', name:', err.name, ', message:', err.message, ', Webcam characteristics:', userMedia.getCharacteristics(),
31398
31414
  // added recently in the hope to investigate weird webcam issues
31399
- ', extraA arguments:', extraA.toString(), ', extraB arguments:', extraB.toString());
31415
+ ', extraA arguments:', extraA ? extraA.toString() : undefined, ', extraB arguments:', extraB ? extraB.toString() : undefined);
31400
31416
  var errorListeners = self.listeners(_events["default"].ERROR);
31401
31417
  if (errorListeners && errorListeners.length) {
31402
31418
  if (err.name !== _videomailError["default"].MEDIA_DEVICE_NOT_SUPPORTED) {
@@ -32092,7 +32108,7 @@ var _default = Recorder;
32092
32108
  exports["default"] = _default;
32093
32109
 
32094
32110
  }).call(this)}).call(this,_dereq_("buffer").Buffer)
32095
- },{"../../constants":360,"../../events":361,"../../util/browser":365,"../../util/eventEmitter":367,"../../util/humanize":368,"../../util/pretty":370,"../../util/videomailError":372,"./userMedia":388,"@babel/runtime/helpers/interopRequireDefault":1,"animitter":4,"buffer":11,"canvas-to-buffer":14,"core-js/modules/es.array.concat.js":205,"core-js/modules/es.date.now.js":212,"core-js/modules/es.date.to-string.js":213,"core-js/modules/es.function.bind.js":214,"core-js/modules/es.function.name.js":215,"core-js/modules/es.number.to-fixed.js":216,"core-js/modules/es.object.define-property.js":217,"core-js/modules/es.object.to-string.js":220,"core-js/modules/es.regexp.to-string.js":231,"core-js/modules/web.timers.js":262,"deepmerge":269,"hidden":293,"hyperscript":295,"safe-json-stringify":337,"util":351,"websocket-stream":354}],387:[function(_dereq_,module,exports){
32111
+ },{"../../constants":360,"../../events":361,"../../util/browser":365,"../../util/eventEmitter":367,"../../util/humanize":368,"../../util/pretty":370,"../../util/videomailError":372,"./userMedia":388,"@babel/runtime/helpers/interopRequireDefault":1,"animitter":4,"buffer":11,"canvas-to-buffer":14,"core-js/modules/es.array.concat.js":205,"core-js/modules/es.date.now.js":212,"core-js/modules/es.date.to-string.js":213,"core-js/modules/es.function.bind.js":214,"core-js/modules/es.function.name.js":215,"core-js/modules/es.number.to-fixed.js":216,"core-js/modules/es.object.define-property.js":217,"core-js/modules/es.object.keys.js":219,"core-js/modules/es.object.to-string.js":220,"core-js/modules/es.regexp.to-string.js":231,"core-js/modules/web.timers.js":262,"deepmerge":269,"hidden":293,"hyperscript":295,"safe-json-stringify":337,"util":351,"websocket-stream":354}],387:[function(_dereq_,module,exports){
32096
32112
  "use strict";
32097
32113
 
32098
32114
  _dereq_("core-js/modules/es.object.define-property.js");
@@ -32173,12 +32189,12 @@ var Replay = function Replay(parentElement, options) {
32173
32189
  this.setVideomail = function (newVideomail) {
32174
32190
  videomail = newVideomail;
32175
32191
  if (videomail) {
32176
- if (videomail.webm) {
32177
- this.setWebMSource(videomail.webm);
32178
- }
32179
32192
  if (videomail.mp4) {
32180
32193
  this.setMp4Source(videomail.mp4);
32181
32194
  }
32195
+ if (videomail.webm) {
32196
+ this.setWebMSource(videomail.webm);
32197
+ }
32182
32198
  if (videomail.poster) {
32183
32199
  replayElement.setAttribute('poster', videomail.poster);
32184
32200
  }
@@ -32301,10 +32317,14 @@ var Replay = function Replay(parentElement, options) {
32301
32317
  }
32302
32318
  if (!source) {
32303
32319
  if (src) {
32320
+ var fps = options.video.fps;
32321
+
32322
+ // Ensure it's greater than the frame duration itself
32323
+ var t = 2 * (1 / fps);
32304
32324
  source = (0, _hyperscript["default"])('source', {
32305
32325
  // Ensures HTML video thumbnail turns up on iOS, see
32306
32326
  // https://muffinman.io/blog/hack-for-ios-safari-to-display-html-video-thumbnail/
32307
- src: src + '#t=0.1',
32327
+ src: src + '#t=' + t,
32308
32328
  type: 'video/' + type
32309
32329
  });
32310
32330
  replayElement.appendChild(source);