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 +1 -1
- package/.eslintrc.js +4 -12
- package/.nvmrc +1 -1
- package/.prettierrc.js +13 -0
- package/TODO.md +4 -4
- package/audit-ci.json +5 -2
- package/babel.config.js +38 -0
- package/package.json +28 -42
- package/prototype/index.html +29 -9
- package/prototype/js/videomail-client.js +982 -9293
- package/prototype/js/videomail-client.min.js +15 -15
- package/prototype/js/videomail-client.min.js.map +1 -1
- package/prototype/user_media_on_record.html +32 -0
- package/src/js/events.js +2 -1
- package/src/js/options.js +4 -2
- package/src/js/wrappers/buttons.js +25 -14
- package/src/js/wrappers/visuals/notifier.js +11 -4
- package/src/js/wrappers/visuals/recorder.js +41 -11
- package/src/js/wrappers/visuals.js +9 -3
- package/src/styles/css/main.min.css.js +1 -1
- package/src/styles/styl/main.styl +3 -0
- package/.prettierrc +0 -18
package/.browserslistrc
CHANGED
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
|
-
|
|
11
|
-
'
|
|
12
|
-
|
|
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.
|
|
1
|
+
20.12.2
|
package/.prettierrc.js
ADDED
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 |
|
|
12
|
-
| src/js/wrappers/visuals/recorder.js |
|
|
13
|
-
| src/js/wrappers/visuals/recorder.js |
|
|
14
|
-
| src/js/wrappers/visuals/recorder.js |
|
|
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
|
}
|
package/babel.config.js
ADDED
|
@@ -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": "
|
|
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
|
|
30
|
-
"lint
|
|
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
|
|
33
|
+
"prettier:fix": "prettier --write ./src ./test gulpfile.js"
|
|
33
34
|
},
|
|
34
35
|
"engines": {
|
|
35
|
-
"node": ">=
|
|
36
|
-
"npm": ">=8.
|
|
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/
|
|
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.
|
|
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.
|
|
63
|
+
"filesize": "10.1.2",
|
|
77
64
|
"get-form-data": "3.0.0",
|
|
78
65
|
"hidden": "1.1.1",
|
|
79
|
-
"humanize-duration": "3.
|
|
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.
|
|
77
|
+
"ua-parser-js": "1.0.38",
|
|
91
78
|
"websocket-stream": "5.5.2"
|
|
92
79
|
},
|
|
93
80
|
"devDependencies": {
|
|
94
|
-
"@babel/
|
|
95
|
-
"@babel/
|
|
96
|
-
"@babel/
|
|
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.
|
|
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.
|
|
90
|
+
"cssnano": "6.0.5",
|
|
105
91
|
"del": "6.1.1",
|
|
106
|
-
"eslint": "8.
|
|
107
|
-
"eslint-config-prettier": "
|
|
108
|
-
"eslint-plugin-import": "2.29.
|
|
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.
|
|
96
|
+
"eslint-plugin-promise": "6.2.0",
|
|
111
97
|
"fancy-log": "2.0.0",
|
|
112
|
-
"glob": "
|
|
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": "
|
|
109
|
+
"gulp-postcss": "10.0.0",
|
|
124
110
|
"gulp-rename": "2.0.0",
|
|
125
111
|
"gulp-sourcemaps": "3.0.0",
|
|
126
|
-
"gulp-stylus": "
|
|
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.
|
|
132
|
-
"prettier": "
|
|
117
|
+
"postcss": "8.4.38",
|
|
118
|
+
"prettier": "3.3.2",
|
|
133
119
|
"router": "1.3.8",
|
|
134
|
-
"tape": "5.
|
|
120
|
+
"tape": "5.8.1",
|
|
135
121
|
"tape-catch": "1.0.6",
|
|
136
|
-
"tape-run": "
|
|
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"
|
package/prototype/index.html
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!
|
|
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:
|
|
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:
|
|
122
|
-
|
|
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:
|
|
126
|
-
inset 0px
|
|
127
|
-
|
|
128
|
-
|
|
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:
|
|
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"
|