videomail-client 9.4.0 → 9.4.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.
@@ -3,11 +3,11 @@ name: Test Runner for videomail-client
3
3
  on:
4
4
  push:
5
5
  branches:
6
- - develop
6
+ - dev
7
7
 
8
8
  pull_request:
9
9
  branches:
10
- - develop
10
+ - dev
11
11
 
12
12
  jobs:
13
13
  build-test-lint-check:
@@ -2,17 +2,21 @@
2
2
  "editor.tabSize": 2,
3
3
  "files.trimTrailingWhitespace": true,
4
4
  "editor.defaultFormatter": "esbenp.prettier-vscode",
5
- "editor.formatOnSave": true,
6
5
  "editor.codeActionsOnSave": {
7
6
  "source.fixAll.eslint": "always"
8
7
  },
8
+ "eslint.options": {
9
+ "overrideConfigFile": "./.eslintrc.js"
10
+ },
9
11
  "prettier.configPath": "./prettier.config.cjs",
12
+ "stylelint.validate": ["stylus"],
10
13
  "cSpell.words": [
11
14
  "animitter",
12
15
  "autobuffer",
13
16
  "browserstack",
14
17
  "bytediff",
15
18
  "classlist",
19
+ "crossorigin",
16
20
  "cssnano",
17
21
  "deepmerge",
18
22
  "derequire",
package/etc/release.sh ADDED
@@ -0,0 +1,96 @@
1
+ #!/bin/bash
2
+ set -eo pipefail
3
+
4
+ GREEN='\033[0;32m'
5
+ NC='\033[0m' # No Color
6
+
7
+ info() {
8
+ printf "${GREEN}$@${NC}"
9
+ }
10
+
11
+ export GIT_MERGE_AUTOEDIT=no
12
+
13
+ die() {
14
+ unset GIT_MERGE_AUTOEDIT
15
+ echo >&2 "☠ ☠ ☠ ☠ ☠ ☠ ☠ $@ ☠ ☠ ☠ ☠ ☠ ☠ ☠"
16
+ exit 1
17
+ }
18
+
19
+ info "Checking for vulnerabilities...\n"
20
+
21
+ # thanks to set -e it will exit here if audit fails
22
+ npm run audit
23
+
24
+ # todo: figure out an elegant solution to avoid duplicate code
25
+ # when having three bash scripts for patches, features and releases
26
+ # maybe with command line args?
27
+ # when done, rename this file
28
+
29
+ for i in "$@"; do
30
+ case $i in
31
+ -i=* | --importance=*)
32
+ IMPORTANCE="${i#*=}"
33
+ shift # past argument=value
34
+ ;;
35
+ *)
36
+ # unknown option
37
+ ;;
38
+ esac
39
+ done
40
+
41
+ if [[ -z ${IMPORTANCE:-} ]]; then
42
+ die "Aborting the bump! Argument --importance is missing"
43
+ fi
44
+
45
+ # ensures all is commited
46
+ if [[ $(git status --porcelain) ]]; then
47
+ die "Aborting the bump! You have uncommitted changes"
48
+ fi
49
+
50
+ # Ensures master is up to date
51
+ git checkout master
52
+ git pull
53
+ git checkout dev
54
+
55
+ info "Figuring next version for importance ${IMPORTANCE}...\n"
56
+ read VERSION <<<$(gulp bumpVersion --importance=$IMPORTANCE | awk '/to/ {print $5}')
57
+ info "It's version ${VERSION}\n"
58
+
59
+ git checkout master
60
+ git push
61
+ git checkout dev
62
+ git push
63
+
64
+ # Start a new release
65
+ git flow release start $VERSION
66
+
67
+ # This will increment version in package.json
68
+ gulp bumpVersion --write --version=$VERSION
69
+
70
+ # Ensure dependencies are okay
71
+ npm install
72
+
73
+ # Rebuild all assets
74
+ gulp build --minify
75
+
76
+ git add -A
77
+ git commit -m "Final commit of version $VERSION" --no-edit
78
+
79
+ info "Publishing to npm ...\n"
80
+ npm publish
81
+
82
+ # Complete the release. This will also tag it.
83
+ git flow release finish $VERSION -p -m "Completing release of $VERSION"
84
+
85
+ git checkout master
86
+ git push --follow-tags
87
+
88
+ # Prepare the dev branch for the new cycle
89
+ git checkout dev
90
+
91
+ # Strange bug, have to bump it again
92
+ gulp bumpVersion --write --version=$VERSION
93
+
94
+ unset GIT_MERGE_AUTOEDIT
95
+
96
+ info "\nAll good. Ready for the next cycle!\n"
@@ -0,0 +1,26 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIEUzCCArugAwIBAgIRAN/YfTdhkaWPOikBV/CnP3cwDQYJKoZIhvcNAQELBQAw
3
+ gY0xHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTExMC8GA1UECwwobWlj
4
+ aGFlbC1oZXViZXJnZXJATTEgKE1pY2hhZWwgSGV1YmVyZ2VyKTE4MDYGA1UEAwwv
5
+ bWtjZXJ0IG1pY2hhZWwtaGV1YmVyZ2VyQE0xIChNaWNoYWVsIEhldWJlcmdlcikw
6
+ HhcNMjQxMDAyMjMxOTIxWhcNMjcwMTAyMjMxOTIxWjBcMScwJQYDVQQKEx5ta2Nl
7
+ cnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxMTAvBgNVBAsMKG1pY2hhZWwtaGV1
8
+ YmVyZ2VyQE0xIChNaWNoYWVsIEhldWJlcmdlcikwggEiMA0GCSqGSIb3DQEBAQUA
9
+ A4IBDwAwggEKAoIBAQDogjYZlm03dDvQmd+GsSTuVLb4dUedoV7unfkurNuYFJUg
10
+ m9TVWJrsgljSmcobI2ByJLYx+6qub8o4p7W9VTXYjCqmwNvTGh6r+MFnkyOglPS+
11
+ c22Q0qmLcUPNTCwWRuxAImLGJvo8lSJmxutYQ5CsWDfz0B/O8VAABds6GYKYt7rz
12
+ QLACGMz6oiZWRpzVWzqTagJ23TXmYDde45OteTQpttA3PxrQYZtw+XhJAR45rHwE
13
+ X3J8lJRwWEq+QWvHehP7+nlaIIJanLP+x/qd6Vvoy4n2NlmBcDItK7cWxRx0xdW7
14
+ u3HhjeSZrkmz6Ido5FPRNjJASc1JHGE4jwUL54bNAgMBAAGjXjBcMA4GA1UdDwEB
15
+ /wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAfBgNVHSMEGDAWgBSJqVlmXtgN
16
+ xoK8V59jOd6vWTJ1VjAUBgNVHREEDTALgglsb2NhbGhvc3QwDQYJKoZIhvcNAQEL
17
+ BQADggGBADDfAY3vdgB7t3iflT/Szx4Jz0c38itzKKSTtH+JCBL4a7UVE0Zk6j3W
18
+ haBAoOtqOh7iygSvHCtnus+d1EnGzafnbhK2KZdK5hIbr7D/ZV8hqKLFHaynmopl
19
+ z/yaJ5fPgMwlIYRQqu3DUujuculqvMjeBuauxO9H8bMRmdnh5yGRBNBErJA86uwI
20
+ hvKKPAZX2rHcqhWkPP09K+8qX37cp2yhxnrF6+18bTvg1TGRAd3/60Fiko7o5VcV
21
+ +29ToWxoW0jf2efXLaV0OpfQdsSvG54yax3f3zYWcJXTK1uEulCZbWJMThnGTlrx
22
+ Npev+MtKgJCnenPsPTwWk5ObQBWM/mdybMSSyzoy4bMH7aSckPWe8cFRuRfWzXU3
23
+ +MQ/eHKQXcg2r8HQ28OYlH3dP921dfUinGKFKrloqGBTqokkZPUjgzIs5F9+ByJi
24
+ +41ySU28hwLZXG4qKpqsFNhQOmJayJFgOMdSyoCPRvg2CafvsWuGkPrBTsas9zoE
25
+ mkAxOjgSrA==
26
+ -----END CERTIFICATE-----
@@ -0,0 +1,28 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDogjYZlm03dDvQ
3
+ md+GsSTuVLb4dUedoV7unfkurNuYFJUgm9TVWJrsgljSmcobI2ByJLYx+6qub8o4
4
+ p7W9VTXYjCqmwNvTGh6r+MFnkyOglPS+c22Q0qmLcUPNTCwWRuxAImLGJvo8lSJm
5
+ xutYQ5CsWDfz0B/O8VAABds6GYKYt7rzQLACGMz6oiZWRpzVWzqTagJ23TXmYDde
6
+ 45OteTQpttA3PxrQYZtw+XhJAR45rHwEX3J8lJRwWEq+QWvHehP7+nlaIIJanLP+
7
+ x/qd6Vvoy4n2NlmBcDItK7cWxRx0xdW7u3HhjeSZrkmz6Ido5FPRNjJASc1JHGE4
8
+ jwUL54bNAgMBAAECggEBAMrL1/gVdolpvkpCC+7lT3r5NOYdFSvt9mlWLGODrb1G
9
+ JpRclxTGxcoIHwUB0oA9KQAl+Sw7gDHJm64yyZesXNzV1NXBXXsRSzNgMwDuG6MS
10
+ iS4ca7JnrC3Nyv+jsshzb9i4pUKD+LsisPDIC7nepK9N+u+T1kqfu9FpSj+wxHIC
11
+ FR+5hfdwkkH2Sqbsvu+b2o0n+qI4zbsdSV/7N2d9X2UCuYMsr095isTRaNEEbvX3
12
+ Y2KW61pK//GxVUVoqVxq6iEF0SK8zdEZF91T32ywoHHBswe8EJMnu2yDQTF+nfVo
13
+ 5LIpeMf+walKmn2fjd/3KthWrZQNPF2nz42JOgy5IlkCgYEA7AdddLCqiUfESGuS
14
+ VpCZk4C19ocX7FpXs8YkuB/nKLjLfQ0BcfX4qSqbQdKBainMfJfwjc0MOUx/Lo4s
15
+ 7f0d7qn/u/U/W09vsEvAZj64lNunr6eWBaNTAlzESMyzLjbxzEL1do/8zsdnrvLz
16
+ c5SNHWwWIlQy4mdHEtufbwxavycCgYEA/C6YsWTWj6SIcz4R1wVkH3fxIBbFnnEa
17
+ nSwTmkDZrcap/8aaMTImHfvBYuM/xwEYKTnaBO801LggIDcTZSmwJF7+hNrhGKZz
18
+ Rx3lkQT3aW5Zh04eqimxGZ4W6uwxTO0DsBE2N7fSaQE8dQszoqjweNll76Wabmca
19
+ h4L5B0leQusCgYEAmRR5x3nhUSILqtCh26TzBhifa6HYoUFCymUDYavHV8DqsVMj
20
+ Ec9vFAB/K6SkrL8pUdGVgdJwUCVOA1rQxxW4ORdmtnfsPIN7s8KdqXKacmk4C5PM
21
+ mCGCb/DMmU6yE5ItJsZyvw/J7i6kD3Kg9OBu2ZtFi8RCMFa9YPyyHerMXFcCgYAO
22
+ AKxb1USQr0sgUwb8kIERukA6TulkNdWLeqIQA5/SpWBVInr3VliFe7AuRH4LF8V2
23
+ rI6tjXa6hQrLnyNFj74HFvs890ZebwehoEhZ+BOg2A7Ck5TiT/RUftG486p9If/9
24
+ a8c96sgVKotn2FpioszPeQrO9rwPe0we0CfxvqIsRwKBgQCXjSpD+Ak5Qt2Lfjb3
25
+ wqePMJ8C/INU7qMz62pJqlC+UM5GRrlZMkTzxEkMOlm1GW/y8J0wvIJhw4L2ofsH
26
+ NLCs2WQCvVfKC3L0BafSPzXPejFzYhRgKUSSQkknZeDQQzEy6WWwwPZMV/BTSqXH
27
+ Sj7SWGOET46bFODDf4CCRsRjyA==
28
+ -----END PRIVATE KEY-----
@@ -0,0 +1,15 @@
1
+ #!/bin/bash
2
+
3
+ set -ex
4
+
5
+ # That's for local development only
6
+
7
+ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+
9
+ DOMAIN="localhost"
10
+ KEY_FILE="$DIR/localhost.key"
11
+ CERT_FILE="$DIR/localhost.crt"
12
+
13
+ mkcert -cert-file $CERT_FILE -key-file $KEY_FILE $DOMAIN
14
+
15
+ echo "Done!"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "videomail-client",
3
- "version": "9.4.0",
3
+ "version": "9.4.2",
4
4
  "description": "A wicked npm package to record videos directly in the browser, wohooo!",
5
5
  "keywords": [
6
6
  "webcam",
@@ -28,12 +28,11 @@
28
28
  "scripts": {
29
29
  "audit": "npx audit-ci --config audit-ci.json",
30
30
  "build": "gulp build",
31
- "clean": "rm -rf node_modules && rm -rf package-lock.json",
32
31
  "lint": "eslint --color ./src ./test ./gulpfile.js",
33
32
  "lint:fix": "npm --silent run lint -- --fix",
34
- "major": "./env/dev/release.sh --importance=major",
35
- "minor": "./env/dev/release.sh --importance=minor",
36
- "patch": "./env/dev/release.sh --importance=patch",
33
+ "major": "./etc/release.sh --importance=major",
34
+ "minor": "./etc/release.sh --importance=minor",
35
+ "patch": "./etc/release.sh --importance=patch",
37
36
  "prettier": "prettier --check ./src ./test ./prototype/*.html gulpfile.js",
38
37
  "prettier:fix": "prettier --write ./src ./test ./prototype/*.html gulpfile.js",
39
38
  "test": "gulp test",
@@ -109,7 +108,6 @@
109
108
  "postcss": "8.4.47",
110
109
  "prettier": "3.3.3",
111
110
  "prettier-plugin-curly": "0.2.2",
112
- "prettier-plugin-organize-imports": "4.1.0",
113
111
  "prettier-plugin-packagejson": "2.5.2",
114
112
  "prettier-plugin-sh": "0.14.0",
115
113
  "router": "1.3.8",
@@ -121,8 +119,8 @@
121
119
  "watchify": "4.0.0"
122
120
  },
123
121
  "engines": {
124
- "node": ">=20.16.0",
125
- "npm": ">=10.8.1"
122
+ "node": "^22.8.0",
123
+ "npm": "^10.8.2"
126
124
  },
127
125
  "readmeFilename": "README.md"
128
126
  }
@@ -3,13 +3,7 @@
3
3
  /** @type {import('prettier').Config} */
4
4
  const config = {
5
5
  printWidth: 90,
6
- plugins: [
7
- "prettier-plugin-organize-imports",
8
- "prettier-plugin-curly",
9
- "prettier-plugin-sh",
10
- "prettier-plugin-packagejson",
11
- ],
12
- organizeImportsSkipDestructiveCodeActions: true,
6
+ plugins: ["prettier-plugin-curly", "prettier-plugin-sh", "prettier-plugin-packagejson"],
13
7
  };
14
8
 
15
9
  module.exports = config;
@@ -16907,7 +16907,7 @@ function wrappy (fn, cb) {
16907
16907
  },{}],112:[function(_dereq_,module,exports){
16908
16908
  module.exports={
16909
16909
  "name": "videomail-client",
16910
- "version": "9.4.0",
16910
+ "version": "9.4.2",
16911
16911
  "description": "A wicked npm package to record videos directly in the browser, wohooo!",
16912
16912
  "keywords": [
16913
16913
  "webcam",
@@ -16935,12 +16935,11 @@ module.exports={
16935
16935
  "scripts": {
16936
16936
  "audit": "npx audit-ci --config audit-ci.json",
16937
16937
  "build": "gulp build",
16938
- "clean": "rm -rf node_modules && rm -rf package-lock.json",
16939
16938
  "lint": "eslint --color ./src ./test ./gulpfile.js",
16940
16939
  "lint:fix": "npm --silent run lint -- --fix",
16941
- "major": "./env/dev/release.sh --importance=major",
16942
- "minor": "./env/dev/release.sh --importance=minor",
16943
- "patch": "./env/dev/release.sh --importance=patch",
16940
+ "major": "./etc/release.sh --importance=major",
16941
+ "minor": "./etc/release.sh --importance=minor",
16942
+ "patch": "./etc/release.sh --importance=patch",
16944
16943
  "prettier": "prettier --check ./src ./test ./prototype/*.html gulpfile.js",
16945
16944
  "prettier:fix": "prettier --write ./src ./test ./prototype/*.html gulpfile.js",
16946
16945
  "test": "gulp test",
@@ -17016,7 +17015,6 @@ module.exports={
17016
17015
  "postcss": "8.4.47",
17017
17016
  "prettier": "3.3.3",
17018
17017
  "prettier-plugin-curly": "0.2.2",
17019
- "prettier-plugin-organize-imports": "4.1.0",
17020
17018
  "prettier-plugin-packagejson": "2.5.2",
17021
17019
  "prettier-plugin-sh": "0.14.0",
17022
17020
  "router": "1.3.8",
@@ -17028,8 +17026,8 @@ module.exports={
17028
17026
  "watchify": "4.0.0"
17029
17027
  },
17030
17028
  "engines": {
17031
- "node": ">=20.16.0",
17032
- "npm": ">=10.8.1"
17029
+ "node": "^22.8.0",
17030
+ "npm": "^10.8.2"
17033
17031
  },
17034
17032
  "readmeFilename": "README.md"
17035
17033
  }
@@ -21924,15 +21922,7 @@ var Recorder = function Recorder(visuals, replay) {
21924
21922
  connecting = connected = false;
21925
21923
  if (err) {
21926
21924
  self.emit(_events.default.ERROR, err || "Unhandled websocket error");
21927
- } else {
21928
- // COMMENTED OUT TEMPORARILY, PROBABLY OLD CODE TOO
21929
- // UPON CLOSE IT SHOULD TRY TO RECONNECT INSTEAD OF DISCONNECT.
21930
-
21931
- // self.emit(Events.DISCONNECTED);
21932
- // // prevents from https://github.com/binarykitchen/videomail.io/issues/297 happening
21933
- // cancelAnimationFrame();
21934
-
21935
- // New: try to reconnect
21925
+ } else if (userMediaLoaded) {
21936
21926
  initSocket();
21937
21927
  }
21938
21928
  });
@@ -23068,6 +23058,10 @@ var Replay = function Replay(parentElement, options) {
23068
23058
  default: true
23069
23059
  });
23070
23060
  replayElement.appendChild(track);
23061
+
23062
+ // Because the local videomail server for development uses a different port, see
23063
+ // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track
23064
+ replayElement.setAttribute("crossorigin", "anonymous");
23071
23065
  }
23072
23066
  }
23073
23067
  function setVideoSource(type, src, bustCache) {