videomail-client 7.0.0 → 8.0.2

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/.browserslistrc CHANGED
@@ -1,5 +1,5 @@
1
1
  > 1%
2
2
  last 5 versions
3
3
  Firefox ESR
4
- iOS >= 11
4
+ iOS >= 12
5
5
  android >= 4
package/.eslintrc.js CHANGED
@@ -1,21 +1,13 @@
1
1
  module.exports = {
2
2
  parser: '@babel/eslint-parser',
3
- extends: ['eslint:recommended', 'prettier'],
3
+ extends: ['eslint:recommended', 'plugin:import/recommended', 'prettier'],
4
4
  env: {
5
5
  browser: true,
6
6
  node: true,
7
7
  es6: true
8
8
  },
9
9
  rules: {
10
- 'no-else-return': 1,
11
- 'space-before-function-paren': [
12
- 'error',
13
- {
14
- anonymous: 'ignore',
15
- named: 'ignore',
16
- asyncArrow: 'ignore'
17
- }
18
- ]
19
- },
20
- ignorePatterns: ['node_modules/*']
10
+ // Turns on errors for missing imports which is great
11
+ 'import/no-unresolved': 'error'
12
+ }
21
13
  }
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- 20.5.1
1
+ 20.12.2
package/.prettierrc.js ADDED
@@ -0,0 +1,13 @@
1
+ //@ts-check
2
+
3
+ // Note: whatever prettier defaults, remove
4
+
5
+ /** @type {import('prettier').Config} */
6
+ const config = {
7
+ "printWidth": 90,
8
+ "semi": false,
9
+ "singleQuote": true,
10
+ "trailingComma": "none"
11
+ };
12
+
13
+ module.exports = config;
package/TODO.md CHANGED
@@ -8,10 +8,10 @@
8
8
  | src/js/wrappers/container.js | 293 | figure out how to fire dom's onload event again
9
9
  | src/js/wrappers/container.js | 294 | or how to run all the scripts over again
10
10
  | src/js/wrappers/optionsWrapper.js | 27 | fix this, it's not really an option
11
- | src/js/wrappers/visuals/recorder.js | 590 | in https://github.com/binarykitchen/videomail-client/issues/142
12
- | src/js/wrappers/visuals/recorder.js | 627 | retry with navigator.getUserMedia_() maybe?
13
- | src/js/wrappers/visuals/recorder.js | 767 | commented out because for some reasons server does
14
- | src/js/wrappers/visuals/recorder.js | 772 | consider removing this later or have it for debug=1 only?
11
+ | src/js/wrappers/visuals/recorder.js | 594 | in https://github.com/binarykitchen/videomail-client/issues/142
12
+ | src/js/wrappers/visuals/recorder.js | 631 | retry with navigator.getUserMedia_() maybe?
13
+ | src/js/wrappers/visuals/recorder.js | 778 | commented out because for some reasons server does
14
+ | src/js/wrappers/visuals/recorder.js | 783 | consider removing this later or have it for debug=1 only?
15
15
  | src/js/wrappers/visuals/userMedia.js | 309 | consider removing that if it's not the case anymore (for better performance)
16
16
  | gulpfile.js | 1 | write this in ES6 once i have figured out how to
17
17
  | gulpfile.js | 58 | fix this, so that it also works when not minified, this
package/audit-ci.json CHANGED
@@ -2,9 +2,12 @@
2
2
  "high": true,
3
3
  "package-manager": "npm",
4
4
  "allowlist": [
5
- "GHSA-jf85-cpcp-j695",
6
5
  "GHSA-xvch-5gv4-984h",
7
6
  "GHSA-7p7h-4mm5-852v",
8
- "GHSA-ww39-953v-wcq6"
7
+ "GHSA-ww39-953v-wcq6",
8
+ "GHSA-p6mc-m468-83gw",
9
+ "GHSA-grv7-fg5c-xmjg",
10
+ "GHSA-35jh-r3h4-6jhm",
11
+ "GHSA-3h5v-q93c-6h6q"
9
12
  ]
10
13
  }
@@ -0,0 +1,38 @@
1
+ const getPresetOptions = (isTest = false, isProduction = false) => {
2
+ if (isTest) return { targets: { node: 'current' } } // for speed
3
+
4
+ return {
5
+ // undefined means parse .browserlistrc by default
6
+ targets: !isProduction ? 'last 2 versions' : undefined
7
+ }
8
+ }
9
+
10
+ const getBabelConfig = (api) => {
11
+ const isDev = api.env('development')
12
+ const isTest = api.env('test')
13
+ const isProduction = api.env('production')
14
+
15
+ api.cache.using(() => isDev || isTest)
16
+
17
+ const presets = [['@babel/preset-env', getPresetOptions(isTest, isProduction)]]
18
+
19
+ const plugins = [
20
+ // Polyfills the runtime needed for async/await, generators, and friends
21
+ // https://babeljs.io/docs/en/babel-plugin-transform-runtime
22
+ !isTest && [
23
+ '@babel/plugin-transform-runtime',
24
+ {
25
+ corejs: false,
26
+ regenerator: true
27
+ }
28
+ ]
29
+ ].filter(Boolean)
30
+
31
+ return {
32
+ presets: presets,
33
+ plugins: plugins,
34
+ compact: isProduction
35
+ }
36
+ }
37
+
38
+ module.exports = getBabelConfig
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "videomail-client",
3
- "version": "7.0.0",
3
+ "version": "8.0.2",
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": [
@@ -20,20 +20,21 @@
20
20
  "main": "prototype/js/videomail-client.js",
21
21
  "scripts": {
22
22
  "build": "gulp build",
23
+ "clean": "rm -rf node_modules && rm -rf package-lock.json",
23
24
  "test": "gulp test",
24
25
  "watch": "NODE_NO_HTTP2=1 gulp watch",
25
26
  "audit": "npx audit-ci --config audit-ci.json",
26
27
  "patch": "./env/dev/release.sh --importance=patch",
27
28
  "minor": "./env/dev/release.sh --importance=minor",
28
29
  "major": "./env/dev/release.sh --importance=major",
29
- "lint": "eslint --color --ext .js ./src ./test ./gulpfile.js",
30
- "lint-fix": "npm --silent run lint -- --fix; exit 0",
30
+ "lint": "eslint --color ./src ./test ./gulpfile.js",
31
+ "lint:fix": "npm --silent run lint -- --fix",
31
32
  "prettier": "prettier --check ./src ./test gulpfile.js",
32
- "prettier-fix": "prettier --write ./src ./test gulpfile.js"
33
+ "prettier:fix": "prettier --write ./src ./test gulpfile.js"
33
34
  },
34
35
  "engines": {
35
- "node": ">=18.12.1",
36
- "npm": ">=8.19.2"
36
+ "node": ">=20.5.1",
37
+ "npm": ">=9.8.0"
37
38
  },
38
39
  "keywords": [
39
40
  "webcam",
@@ -44,39 +45,25 @@
44
45
  "audio",
45
46
  "recorder"
46
47
  ],
47
- "babel": {
48
- "presets": [
49
- [
50
- "@babel/env",
51
- {
52
- "useBuiltIns": "usage",
53
- "corejs": 3
54
- }
55
- ]
56
- ],
57
- "plugins": [
58
- "@babel/transform-runtime"
59
- ]
60
- },
61
48
  "dependencies": {
62
- "@babel/runtime": "7.23.2",
49
+ "@babel/core": "7.24.7",
63
50
  "add-eventlistener-with-options": "1.25.5",
64
51
  "animitter": "3.0.0",
65
52
  "audio-sample": "3.0.1",
66
53
  "canvas-to-buffer": "3.0.1",
67
54
  "classlist.js": "1.1.20150312",
68
55
  "contains": "0.1.1",
69
- "core-js": "3.33.2",
56
+ "core-js": "3.37.1",
70
57
  "create-error": "0.3.1",
71
58
  "deepmerge": "4.3.1",
72
59
  "defined": "1.0.1",
73
60
  "despot": "1.1.3",
74
61
  "document-visibility": "1.0.1",
75
62
  "element-closest": "3.0.2",
76
- "filesize": "10.1.0",
63
+ "filesize": "10.1.2",
77
64
  "get-form-data": "3.0.0",
78
65
  "hidden": "1.1.1",
79
- "humanize-duration": "3.31.0",
66
+ "humanize-duration": "3.32.1",
80
67
  "hyperscript": "2.0.2",
81
68
  "insert-css": "2.0.0",
82
69
  "iphone-inline-video": "2.2.2",
@@ -87,29 +74,28 @@
87
74
  "request-frame": "1.5.3",
88
75
  "safe-json-stringify": "1.2.0",
89
76
  "superagent": "8.1.2",
90
- "ua-parser-js": "1.0.37",
77
+ "ua-parser-js": "1.0.38",
91
78
  "websocket-stream": "5.5.2"
92
79
  },
93
80
  "devDependencies": {
94
- "@babel/core": "7.23.3",
95
- "@babel/eslint-parser": "7.23.3",
96
- "@babel/plugin-transform-runtime": "7.23.3",
97
- "@babel/preset-env": "7.23.3",
81
+ "@babel/eslint-parser": "7.24.7",
82
+ "@babel/plugin-transform-runtime": "7.24.7",
83
+ "@babel/preset-env": "7.24.7",
98
84
  "audit-ci": "6.6.1",
99
- "autoprefixer": "10.4.16",
85
+ "autoprefixer": "10.4.19",
100
86
  "babelify": "10.0.0",
101
87
  "body-parser": "1.20.2",
102
88
  "browserify": "17.0.0",
103
89
  "connect-send-json": "1.0.0",
104
- "cssnano": "6.0.1",
90
+ "cssnano": "6.0.5",
105
91
  "del": "6.1.1",
106
- "eslint": "8.54.0",
107
- "eslint-config-prettier": "8.8.0",
108
- "eslint-plugin-import": "2.29.0",
92
+ "eslint": "8.57.0",
93
+ "eslint-config-prettier": "9.1.0",
94
+ "eslint-plugin-import": "2.29.1",
109
95
  "eslint-plugin-node": "11.1.0",
110
- "eslint-plugin-promise": "6.1.1",
96
+ "eslint-plugin-promise": "6.2.0",
111
97
  "fancy-log": "2.0.0",
112
- "glob": "8.0.3",
98
+ "glob": "10.4.2",
113
99
  "gulp": "4.0.2",
114
100
  "gulp-bump": "3.2.0",
115
101
  "gulp-bytediff": "1.0.0",
@@ -120,20 +106,20 @@
120
106
  "gulp-inject-string": "1.1.2",
121
107
  "gulp-load-plugins": "2.0.8",
122
108
  "gulp-plumber": "1.2.1",
123
- "gulp-postcss": "9.0.1",
109
+ "gulp-postcss": "10.0.0",
124
110
  "gulp-rename": "2.0.0",
125
111
  "gulp-sourcemaps": "3.0.0",
126
- "gulp-stylus": "2.7.1",
112
+ "gulp-stylus": "3.0.1",
127
113
  "gulp-terser": "2.1.0",
128
114
  "gulp-todo": "7.1.1",
129
115
  "minimist": "1.2.8",
130
116
  "nib": "1.2.0",
131
- "postcss": "8.4.31",
132
- "prettier": "2.8.8",
117
+ "postcss": "8.4.38",
118
+ "prettier": "3.3.2",
133
119
  "router": "1.3.8",
134
- "tape": "5.7.2",
120
+ "tape": "5.8.1",
135
121
  "tape-catch": "1.0.6",
136
- "tape-run": "10.0.0",
122
+ "tape-run": "11.0.0",
137
123
  "vinyl-buffer": "1.0.1",
138
124
  "vinyl-source-stream": "2.0.0",
139
125
  "watchify": "4.0.0"
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html>
1
+ <!doctype html>
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
@@ -16,7 +16,10 @@
16
16
 
17
17
  body {
18
18
  padding: 80px 100px;
19
- font: 13px 'Helvetica Neue', 'Lucida Grande', 'Arial';
19
+ font:
20
+ 13px 'Helvetica Neue',
21
+ 'Lucida Grande',
22
+ 'Arial';
20
23
  background: #ece9e9 -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fff), to(#ece9e9));
21
24
  background: #ece9e9 -moz-linear-gradient(top, #fff, #ece9e9);
22
25
  background-repeat: no-repeat;
@@ -118,17 +121,28 @@
118
121
  top: 20px;
119
122
  right: 20px;
120
123
  width: 90px;
121
- -webkit-transition: width ease 0.2s, opacity ease 0.4s;
122
- -moz-transition: width ease 0.2s, opacity ease 0.4s;
124
+ -webkit-transition:
125
+ width ease 0.2s,
126
+ opacity ease 0.4s;
127
+ -moz-transition:
128
+ width ease 0.2s,
129
+ opacity ease 0.4s;
123
130
  -webkit-border-radius: 32px;
124
131
  -moz-border-radius: 32px;
125
- -webkit-box-shadow: inset 0px 0px 3px rgba(0, 0, 0, 0.25),
126
- inset 0px 1px 3px rgba(0, 0, 0, 0.7), 0px 1px 0px rgba(255, 255, 255, 0.03);
127
- -moz-box-shadow: inset 0px 0px 3px rgba(0, 0, 0, 0.25),
128
- inset 0px 1px 3px rgba(0, 0, 0, 0.7), 0px 1px 0px rgba(255, 255, 255, 0.03);
132
+ -webkit-box-shadow:
133
+ inset 0px 0px 3px rgba(0, 0, 0, 0.25),
134
+ inset 0px 1px 3px rgba(0, 0, 0, 0.7),
135
+ 0px 1px 0px rgba(255, 255, 255, 0.03);
136
+ -moz-box-shadow:
137
+ inset 0px 0px 3px rgba(0, 0, 0, 0.25),
138
+ inset 0px 1px 3px rgba(0, 0, 0, 0.7),
139
+ 0px 1px 0px rgba(255, 255, 255, 0.03);
129
140
  -webkit-font-smoothing: antialiased;
130
141
  text-align: left;
131
- font: 13px 'Helvetica Neue', Arial, sans-serif;
142
+ font:
143
+ 13px 'Helvetica Neue',
144
+ Arial,
145
+ sans-serif;
132
146
  padding: 4px 10px;
133
147
  border: none;
134
148
  background: transparent;
@@ -459,6 +473,12 @@
459
473
  ><span class="date">2022-11-15 11:11:53</span></a
460
474
  >
461
475
  </li>
476
+ <li>
477
+ <a href="/user_media_on_record.html" class="" title="user_media_on_record.html"
478
+ ><span class="name">user_media_on_record.html</span
479
+ ><span class="size">???</span><span class="date">???</span></a
480
+ >
481
+ </li>
462
482
  <li>
463
483
  <a
464
484
  href="/videomail_optional_form.html"