From a1ab889fca24d8b7c54915dd908e0694273aaded Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Fri, 21 Dec 2018 00:36:42 +0000 Subject: [PATCH 01/30] chore(package): update electron to version 4.0.0 Closes #1523 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0fd270fe..2c7b3069 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "buble": "^0.19.6", "cross-zip": "^2.0.1", "depcheck": "^0.6.11", - "electron": "^1.8.8", + "electron": "^4.0.0", "electron-osx-sign": "^0.4.11", "electron-packager": "~8.5.1", "electron-winstaller": "^2.6.4", From 429a376ccfd855a11a1ef426b931c018f9dc965b Mon Sep 17 00:00:00 2001 From: Lucas <5874806+RecoX@users.noreply.github.com> Date: Thu, 31 Jan 2019 11:41:31 +1300 Subject: [PATCH 02/30] Recommended readings to start working in the app. As there is no too much information in the readme.md in how is this made, I think put a link of Electron and React to have an idea of the technologies used here is a good starter. --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 13bc1d01..19944003 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,15 @@ The Mac app can only be packaged from **macOS**. The Linux app can be packaged from **any** platform. + +#### Recommended readings to start working in the app + +Electron: +https://electronjs.org/docs/tutorial/quick-start + +React: +https://reactjs.org/docs/getting-started.html + ### Privacy WebTorrent Desktop collects some basic usage stats to help us make the app better. From 21ee5566a77689ac672f2582afda6135b96437a7 Mon Sep 17 00:00:00 2001 From: Lucas <5874806+RecoX@users.noreply.github.com> Date: Thu, 31 Jan 2019 11:48:37 +1300 Subject: [PATCH 03/30] Update README.md --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 19944003..1f7177ff 100644 --- a/README.md +++ b/README.md @@ -161,12 +161,15 @@ The Linux app can be packaged from **any** platform. #### Recommended readings to start working in the app -Electron: +Electron (Framework to make native apps for Windows, OSX and Linux in Javascript): https://electronjs.org/docs/tutorial/quick-start -React: +React.js (Framework to work with Frontend UI): https://reactjs.org/docs/getting-started.html +Material UI (React components that implement Google's Material Design.): +https://material-ui.com/getting-started + ### Privacy WebTorrent Desktop collects some basic usage stats to help us make the app better. From 6add81add86a9995a697fbe5112595a09d2f1735 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 8 May 2019 14:07:11 +0000 Subject: [PATCH 04/30] chore(package): update depcheck to version 0.8.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ffb08d85..74812fb4 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "babel-eslint": "^9.0.0", "buble": "^0.19.6", "cross-zip": "^2.0.1", - "depcheck": "^0.7.2", + "depcheck": "^0.8.0", "electron": "^1.8.8", "electron-osx-sign": "^0.4.11", "electron-packager": "~8.5.1", From 60e9bf461c5c0827311716b584423bd2b7a0fb8c Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 8 May 2019 14:07:18 +0000 Subject: [PATCH 05/30] chore(package): update lockfile package-lock.json --- package-lock.json | 126 ++++++++++++++++++++++++---------------------- 1 file changed, 66 insertions(+), 60 deletions(-) diff --git a/package-lock.json b/package-lock.json index adb956d7..a1d588ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2854,9 +2854,9 @@ "dev": true }, "depcheck": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/depcheck/-/depcheck-0.7.2.tgz", - "integrity": "sha512-KzwYzptnHrm093lYLKKIlBZ0VBvt135Hh1ADUPo8FhIeAkY/Xmo5NxSgHMXczzx5b3qX+qc2UB73VKaW0YbgZA==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/depcheck/-/depcheck-0.8.0.tgz", + "integrity": "sha512-ZCwp4SeB6JYMyd2/lFC4RwtAZ8CqPY5c4Yq2sQQI0q3ycCs9M4GVqbKqvtMFFbZaVVjNw9gVEIPELCQxR3HDpw==", "dev": true, "requires": { "@babel/parser": "^7.3.1", @@ -2871,17 +2871,17 @@ "please-upgrade-node": "^3.1.1", "require-package-name": "^2.0.1", "resolve": "^1.10.0", - "walkdir": "0.0.12", - "yargs": "^12.0.1" + "walkdir": "^0.3.2", + "yargs": "^13.2.2" }, "dependencies": { "@babel/generator": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.0.tgz", - "integrity": "sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", + "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", "dev": true, "requires": { - "@babel/types": "^7.4.0", + "@babel/types": "^7.4.4", "jsesc": "^2.5.1", "lodash": "^4.17.11", "source-map": "^0.5.0", @@ -2889,41 +2889,41 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz", - "integrity": "sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", "dev": true, "requires": { - "@babel/types": "^7.4.0" + "@babel/types": "^7.4.4" } }, "@babel/parser": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.3.tgz", - "integrity": "sha512-gxpEUhTS1sGA63EGQGuA+WESPR/6tz6ng7tSHFCmaTJK/cGK8y37cBTspX+U2xCAue2IQVvF6Z0oigmjwD8YGQ==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz", + "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==", "dev": true }, "@babel/traverse": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.3.tgz", - "integrity": "sha512-HmA01qrtaCwwJWpSKpA948cBvU5BrmviAief/b3AVw936DtcdsTexlbyzNuDnthwhOQ37xshn7hvQaEQk7ISYQ==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz", + "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.0", + "@babel/generator": "^7.4.4", "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/types": "^7.4.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.11" } }, "@babel/types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.0.tgz", - "integrity": "sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -3517,6 +3517,12 @@ } } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", @@ -4352,9 +4358,9 @@ "integrity": "sha1-u81AyEUaftTvXDc7gWmkCd0dEdk=" }, "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-package-info": { @@ -8131,9 +8137,9 @@ "dev": true }, "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "require-object-coercible-x": { @@ -10563,9 +10569,9 @@ } }, "walkdir": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.12.tgz", - "integrity": "sha512-HFhaD4mMWPzFSqhpyDG48KDdrjfn409YQuVW7ckZYhW4sE87mYtWifdB/+73RA7+p4s4K18n5Jfx1kHthE1gBw==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.3.2.tgz", + "integrity": "sha512-0Twghia4Z5wDGDYWURlhZmI47GvERMCsXIu0QZWVVZyW9ZjpbbZvD9Zy9M6cWiQQRRbAcYajIyKNavaZZDt1Uw==", "dev": true }, "warning": { @@ -10946,7 +10952,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { @@ -11039,29 +11045,28 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", + "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", "dev": true, "requires": { "cliui": "^4.0.0", - "decamelize": "^1.2.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.0.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "find-up": { @@ -11120,30 +11125,31 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.0.tgz", + "integrity": "sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA==", "dev": true, "requires": { "camelcase": "^5.0.0", From f475975b40df7385c53466ce1de9d1e9571d84b6 Mon Sep 17 00:00:00 2001 From: Borewit Date: Wed, 15 May 2019 17:41:01 +0200 Subject: [PATCH 06/30] Adjust single instance call to comply with Electron 4 --- package-lock.json | 103 +++++++++++++++++++++++++++------------------- src/main/index.js | 4 +- 2 files changed, 62 insertions(+), 45 deletions(-) diff --git a/package-lock.json b/package-lock.json index adb956d7..a36b8c9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -236,9 +236,9 @@ "dev": true }, "@types/node": { - "version": "8.10.38", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.38.tgz", - "integrity": "sha512-EibsnbJerd0hBFaDjJStFrVbVBAtOy4dgL8zZFw0uOvPqzBAX59Ci8cgjg3+RgJIWhsB5A4c+pi+D4P9tQQh/A==", + "version": "10.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.6.tgz", + "integrity": "sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg==", "dev": true }, "abbrev": { @@ -3173,13 +3173,13 @@ "dev": true }, "electron": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-1.8.8.tgz", - "integrity": "sha512-1f9zJehcTTGjrkb06o6ds+gsRq6SYhZJyxOk6zIWjRH8hVy03y/RzUDELzNas71f5vcvXmfGVvyjeEsadDI8tg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-4.2.1.tgz", + "integrity": "sha512-v1pwY6PQ+ITVkV/QGgEAEjoBGnPIuut80M+GseWkLcIJ+mIN3xbpuhd1v6arJ1XV7H6waNwjtIFgGSmVWWNRhw==", "dev": true, "requires": { - "@types/node": "^8.0.24", - "electron-download": "^3.0.1", + "@types/node": "^10.12.18", + "electron-download": "^4.1.0", "extract-zip": "^1.0.3" } }, @@ -3304,22 +3304,43 @@ } }, "electron-download": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", - "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.1.tgz", + "integrity": "sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg==", "dev": true, "requires": { - "debug": "^2.2.0", - "fs-extra": "^0.30.0", - "home-path": "^1.0.1", + "debug": "^3.0.0", + "env-paths": "^1.0.0", + "fs-extra": "^4.0.1", "minimist": "^1.2.0", - "nugget": "^2.0.0", - "path-exists": "^2.1.0", - "rc": "^1.1.2", - "semver": "^5.3.0", - "sumchecker": "^1.2.0" + "nugget": "^2.0.1", + "path-exists": "^3.0.0", + "rc": "^1.2.1", + "semver": "^5.4.1", + "sumchecker": "^2.0.2" }, "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", @@ -3582,12 +3603,6 @@ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" }, - "es6-promise": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", - "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -4255,16 +4270,25 @@ "dev": true }, "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "dependencies": { + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } } }, "fs-temp": { @@ -4898,12 +4922,6 @@ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" }, - "home-path": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.6.tgz", - "integrity": "sha512-wo+yjrdAtoXt43Vy92a+0IPCYViiyLAHyp0QVS4xL/tfvVz5sXIW1ubLZk3nhVkD92fQpUMKX+fzMjr5F489vw==", - "dev": true - }, "hosted-git-info": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", @@ -9310,13 +9328,12 @@ } }, "sumchecker": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", - "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", + "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", "dev": true, "requires": { - "debug": "^2.2.0", - "es6-promise": "^4.0.5" + "debug": "^2.2.0" } }, "supports-color": { diff --git a/src/main/index.js b/src/main/index.js index 2b61eeaf..9e035cc2 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -38,9 +38,9 @@ if (!shouldQuit && !config.IS_PORTABLE) { // signal this instance and quit. Note: This feature creates a lock file in // %APPDATA%\Roaming\WebTorrent so we do not do it for the Portable App since // we want to be "silent" as well as "portable". - shouldQuit = app.makeSingleInstance(onAppOpen) - if (shouldQuit) { + if (!app.requestSingleInstanceLock()) { app.quit() + shouldQuit = true } } From c204b7a82c353089917fe4c3acba31207e163f49 Mon Sep 17 00:00:00 2001 From: Borewit Date: Wed, 15 May 2019 19:54:13 +0200 Subject: [PATCH 07/30] onAppOpen seems to be no longer in use. --- src/main/index.js | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/main/index.js b/src/main/index.js index 9e035cc2..04ad2bdd 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -168,19 +168,6 @@ function onOpen (e, torrentId) { } } -function onAppOpen (newArgv) { - newArgv = sliceArgv(newArgv) - - if (app.ipcReady) { - log('Second app instance opened, but was prevented:', newArgv) - windows.main.show() - - processArgv(newArgv) - } else { - argv.push(...newArgv) - } -} - // Remove leading args. // Production: 1 arg, eg: /Applications/WebTorrent.app/Contents/MacOS/WebTorrent // Development: 2 args, eg: electron . From c5a21bddfda6be10284f6322b468db881787b659 Mon Sep 17 00:00:00 2001 From: David Ernst Date: Mon, 3 Jun 2019 20:47:05 -0700 Subject: [PATCH 08/30] Fix hiddenInset (Mac) titlebar style for electron 4 --- src/main/windows/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/windows/main.js b/src/main/windows/main.js index f310ad70..23d79b35 100644 --- a/src/main/windows/main.js +++ b/src/main/windows/main.js @@ -40,7 +40,7 @@ function init (state, options) { minWidth: config.WINDOW_MIN_WIDTH, show: false, title: config.APP_WINDOW_TITLE, - titleBarStyle: 'hidden-inset', // Hide title bar (Mac) + titleBarStyle: 'hiddenInset', // Hide title bar (Mac) useContentSize: true, // Specify web page size without OS chrome width: initialBounds.width, x: initialBounds.x, From a039cbf348013fac5734ff2899aa39ede0842368 Mon Sep 17 00:00:00 2001 From: David Ernst Date: Mon, 3 Jun 2019 21:52:06 -0700 Subject: [PATCH 09/30] Electron 4: Migrate .openDevTools() for new 'detach' pattern --- src/main/windows/main.js | 2 +- src/main/windows/webtorrent.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/windows/main.js b/src/main/windows/main.js index f310ad70..6aaf350f 100644 --- a/src/main/windows/main.js +++ b/src/main/windows/main.js @@ -209,7 +209,7 @@ function toggleDevTools () { if (main.win.webContents.isDevToolsOpened()) { main.win.webContents.closeDevTools() } else { - main.win.webContents.openDevTools({ detach: true }) + main.win.webContents.openDevTools({ mode: 'detach' }) } } diff --git a/src/main/windows/webtorrent.js b/src/main/windows/webtorrent.js index 0534eb7d..ec0ccd2b 100644 --- a/src/main/windows/webtorrent.js +++ b/src/main/windows/webtorrent.js @@ -56,6 +56,6 @@ function toggleDevTools () { webtorrent.win.webContents.closeDevTools() webtorrent.win.hide() } else { - webtorrent.win.webContents.openDevTools({ detach: true }) + webtorrent.win.webContents.openDevTools({ mode: 'detach' }) } } From 13edc02440b98f4deff61d4fb596dc46a5cecf00 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Mon, 17 Jun 2019 14:21:56 +0000 Subject: [PATCH 10/30] chore(package): update babel-eslint to version 10.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ffb08d85..9e369ed5 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "zero-fill": "^2.2.3" }, "devDependencies": { - "babel-eslint": "^9.0.0", + "babel-eslint": "^10.0.2", "buble": "^0.19.6", "cross-zip": "^2.0.1", "depcheck": "^0.7.2", From 4156a3f5462b7621aa9c85087ba92ef5b84f7c0c Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Mon, 17 Jun 2019 14:22:03 +0000 Subject: [PATCH 11/30] chore(package): update lockfile package-lock.json --- package-lock.json | 107 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 74 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index adb956d7..e825620e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,18 +14,29 @@ } }, "@babel/generator": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0.tgz", - "integrity": "sha512-/BM2vupkpbZXq22l1ALO7MqXJZH2k8bKVv8Y+pABFnzWdztDB/ZLveP5At21vLz5c2YtSE6p7j2FZEsqafMz5Q==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", + "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", "dev": true, "requires": { - "@babel/types": "^7.0.0", + "@babel/types": "^7.4.4", "jsesc": "^2.5.1", - "lodash": "^4.17.10", + "lodash": "^4.17.11", "source-map": "^0.5.0", "trim-right": "^1.0.1" }, "dependencies": { + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", @@ -55,12 +66,31 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.4.4" + }, + "dependencies": { + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + } } }, "@babel/highlight": { @@ -159,37 +189,48 @@ } }, "@babel/traverse": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.0.tgz", - "integrity": "sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", + "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.0.0", + "@babel/generator": "^7.4.4", "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "debug": "^3.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/types": "^7.4.4", + "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.10" + "lodash": "^4.17.11" }, "dependencies": { + "@babel/parser": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", + "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", + "dev": true + }, + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, "debug": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", - "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true - }, "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", @@ -197,9 +238,9 @@ "dev": true }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -750,9 +791,9 @@ } }, "babel-eslint": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-9.0.0.tgz", - "integrity": "sha512-itv1MwE3TMbY0QtNfeL7wzak1mV47Uy+n6HtSOO4Xd7rvmO+tsGQSgyOEEgo6Y2vHZKZphaoelNeSVj4vkLA1g==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.2.tgz", + "integrity": "sha512-UdsurWPtgiPgpJ06ryUnuaSXC2s0WoSZnQmEpbAH65XZSdwowgN5MvyP7e88nW07FYXv72erVtpBkxyDVKhH1Q==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", From f59a54782a712a2ea4b8a12b8e90068af035c7de Mon Sep 17 00:00:00 2001 From: Borewit Date: Mon, 17 Jun 2019 21:05:37 +0200 Subject: [PATCH 12/30] Fix processing arguments from second instance --- src/main/index.js | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/main/index.js b/src/main/index.js index 04ad2bdd..9014e0f6 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -16,6 +16,9 @@ const windows = require('./windows') let shouldQuit = false let argv = sliceArgv(process.argv) +// allow electron/chromium to play startup sounds (without user interaction) +app.commandLine.appendSwitch('autoplay-policy', 'no-user-gesture-required') + // Start the app without showing the main window when auto launching on login // (On Windows and Linux, we get a flag. On MacOS, we get special API.) const hidden = argv.includes('--hidden') || @@ -31,6 +34,12 @@ if (process.platform === 'win32') { const squirrelWin32 = require('./squirrel-win32') shouldQuit = squirrelWin32.handleEvent(argv[0]) argv = argv.filter((arg) => !arg.includes('--squirrel')) + + if (shouldQuit) { + app.quit() + } else { + app.on('second-instance', (event, commandLine) => onAppOpen(commandLine)) + } } if (!shouldQuit && !config.IS_PORTABLE) { @@ -39,11 +48,16 @@ if (!shouldQuit && !config.IS_PORTABLE) { // %APPDATA%\Roaming\WebTorrent so we do not do it for the Portable App since // we want to be "silent" as well as "portable". if (!app.requestSingleInstanceLock()) { - app.quit() shouldQuit = true } } +if (shouldQuit) { + app.quit() +} else { + app.on('second-instance', (event, commandLine, workingDirectory) => onAppOpen(commandLine)) +} + if (!shouldQuit) { init() } @@ -168,6 +182,19 @@ function onOpen (e, torrentId) { } } +function onAppOpen (newArgv) { + newArgv = sliceArgv(newArgv) + + if (app.ipcReady) { + log('Second app instance opened, but was prevented:', newArgv) + windows.main.show() + + processArgv(newArgv) + } else { + argv.push(...newArgv) + } +} + // Remove leading args. // Production: 1 arg, eg: /Applications/WebTorrent.app/Contents/MacOS/WebTorrent // Development: 2 args, eg: electron . From f6129444f76aaa8f42baaa1c3b24f4973039e4da Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2019 23:57:51 +0000 Subject: [PATCH 13/30] fix(package): update create-torrent to version 4.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ffb08d85..fcd6bdc1 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "chokidar": "^2.0.4", "chromecasts": "^1.9.1", "cp-file": "^7.0.0", - "create-torrent": "^3.33.0", + "create-torrent": "^4.0.0", "debounce": "^1.0.0", "deep-equal": "^1.0.1", "dlnacasts": "^0.1.0", From 290027b5c5a13ce9860bc8a931899c0f2976148b Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2019 23:57:54 +0000 Subject: [PATCH 14/30] chore(package): update lockfile package-lock.json --- package-lock.json | 56 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index adb956d7..af830c25 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2512,18 +2512,18 @@ } }, "create-torrent": { - "version": "3.33.0", - "resolved": "https://registry.npmjs.org/create-torrent/-/create-torrent-3.33.0.tgz", - "integrity": "sha512-KMd0KuvwVUg1grlRd5skG9ZkSbBYDDkAjDUMLnvxdRn0rL7ph3IwoOk7I8u1yLX4HYjGiLVlWYO55YWNNPjJFA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-torrent/-/create-torrent-4.0.0.tgz", + "integrity": "sha512-16JQRuPJWAntC4p+k6EFMxKatqzQOKv037aAun6Comomizlg9fOoBiIhxC/QCQfJFmGIfnT6HMOEa6da5xUmsg==", "requires": { "bencode": "^2.0.0", "block-stream2": "^1.0.0", "filestream": "^4.0.0", "flatten": "^1.0.2", "is-file": "^1.0.0", - "junk": "^2.1.0", + "junk": "^3.1.0", "minimist": "^1.1.0", - "multistream": "^2.0.2", + "multistream": "^3.0.0", "once": "^1.3.0", "piece-length": "^1.0.0", "readable-stream": "^3.0.2", @@ -2531,10 +2531,19 @@ "simple-sha1": "^2.0.0" }, "dependencies": { + "multistream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/multistream/-/multistream-3.0.0.tgz", + "integrity": "sha512-v1Fx9uhHEpTB725/Kj8YpRCvrLhb20LeABFLw+0dkBkKUUAbDCY6CUUNzGQsJ94ji/p50wBPsRjIQXN1iOwZYA==", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^3.4.0" + } + }, "readable-stream": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz", - "integrity": "sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5763,9 +5772,9 @@ } }, "junk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/junk/-/junk-2.1.0.tgz", - "integrity": "sha1-9DG0t/By3FAKXxDOf07HGTDnATQ=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==" }, "k-bucket": { "version": "5.0.0", @@ -10812,6 +10821,26 @@ "resolved": "https://registry.npmjs.org/bitfield/-/bitfield-2.0.0.tgz", "integrity": "sha512-4xM4DYejOHQ/qWBfeqBXNA4mJ12PwcOibFYnH1kYh5U9BHciCqEJBqGNVnMJXUhm8mflujNRLSv7IiVQxovgjw==" }, + "create-torrent": { + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/create-torrent/-/create-torrent-3.33.0.tgz", + "integrity": "sha512-KMd0KuvwVUg1grlRd5skG9ZkSbBYDDkAjDUMLnvxdRn0rL7ph3IwoOk7I8u1yLX4HYjGiLVlWYO55YWNNPjJFA==", + "requires": { + "bencode": "^2.0.0", + "block-stream2": "^1.0.0", + "filestream": "^4.0.0", + "flatten": "^1.0.2", + "is-file": "^1.0.0", + "junk": "^2.1.0", + "minimist": "^1.1.0", + "multistream": "^2.0.2", + "once": "^1.3.0", + "piece-length": "^1.0.0", + "readable-stream": "^3.0.2", + "run-parallel": "^1.0.0", + "simple-sha1": "^2.0.0" + } + }, "debug": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", @@ -10820,6 +10849,11 @@ "ms": "^2.1.1" } }, + "junk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-2.1.0.tgz", + "integrity": "sha1-9DG0t/By3FAKXxDOf07HGTDnATQ=" + }, "mime": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", From 9ed353322582751d40810c4055da05a95b2950a4 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Fri, 5 Jul 2019 14:26:38 -0700 Subject: [PATCH 15/30] standard --- bin/package.js | 12 ++++++------ src/main/dialog.js | 12 ++++++------ src/main/handlers.js | 2 +- src/main/index.js | 2 +- src/main/thumbar.js | 4 ++-- src/renderer/components/path-selector.js | 2 +- src/renderer/controllers/subtitles-controller.js | 4 ++-- src/renderer/main.js | 2 +- src/renderer/pages/preferences-page.js | 6 +++--- 9 files changed, 23 insertions(+), 23 deletions(-) diff --git a/bin/package.js b/bin/package.js index edf00dfd..2db7da46 100755 --- a/bin/package.js +++ b/bin/package.js @@ -198,16 +198,16 @@ function buildDarwin (cb) { infoPlist.CFBundleDocumentTypes = [ { - CFBundleTypeExtensions: [ 'torrent' ], + CFBundleTypeExtensions: ['torrent'], CFBundleTypeIconFile: path.basename(config.APP_FILE_ICON) + '.icns', CFBundleTypeName: 'BitTorrent Document', CFBundleTypeRole: 'Editor', LSHandlerRank: 'Owner', - LSItemContentTypes: [ 'org.bittorrent.torrent' ] + LSItemContentTypes: ['org.bittorrent.torrent'] }, { CFBundleTypeName: 'Any', - CFBundleTypeOSTypes: [ '****' ], + CFBundleTypeOSTypes: ['****'], CFBundleTypeRole: 'Editor', LSHandlerRank: 'Owner', LSTypeIsPackage: false @@ -219,13 +219,13 @@ function buildDarwin (cb) { CFBundleTypeRole: 'Editor', CFBundleURLIconFile: path.basename(config.APP_FILE_ICON) + '.icns', CFBundleURLName: 'BitTorrent Magnet URL', - CFBundleURLSchemes: [ 'magnet' ] + CFBundleURLSchemes: ['magnet'] }, { CFBundleTypeRole: 'Editor', CFBundleURLIconFile: path.basename(config.APP_FILE_ICON) + '.icns', CFBundleURLName: 'BitTorrent Stream-Magnet URL', - CFBundleURLSchemes: [ 'stream-magnet' ] + CFBundleURLSchemes: ['stream-magnet'] } ] @@ -242,7 +242,7 @@ function buildDarwin (cb) { UTTypeReferenceURL: 'http://www.bittorrent.org/beps/bep_0000.html', UTTypeTagSpecification: { 'com.apple.ostype': 'TORR', - 'public.filename-extension': [ 'torrent' ], + 'public.filename-extension': ['torrent'], 'public.mime-type': 'application/x-bittorrent' } } diff --git a/src/main/dialog.js b/src/main/dialog.js index 38b9c96b..c8244599 100644 --- a/src/main/dialog.js +++ b/src/main/dialog.js @@ -19,7 +19,7 @@ function openSeedFile () { log('openSeedFile') const opts = { title: 'Select a file for the torrent.', - properties: [ 'openFile' ] + properties: ['openFile'] } showOpenSeed(opts) } @@ -35,11 +35,11 @@ function openSeedDirectory () { const opts = process.platform === 'darwin' ? { title: 'Select a file or folder for the torrent.', - properties: [ 'openFile', 'openDirectory' ] + properties: ['openFile', 'openDirectory'] } : { title: 'Select a folder for the torrent.', - properties: [ 'openDirectory' ] + properties: ['openDirectory'] } showOpenSeed(opts) } @@ -54,11 +54,11 @@ function openFiles () { const opts = process.platform === 'darwin' ? { title: 'Select a file or folder to add.', - properties: [ 'openFile', 'openDirectory' ] + properties: ['openFile', 'openDirectory'] } : { title: 'Select a file to add.', - properties: [ 'openFile' ] + properties: ['openFile'] } setTitle(opts.title) electron.dialog.showOpenDialog(windows.main.win, opts, function (selectedPaths) { @@ -77,7 +77,7 @@ function openTorrentFile () { const opts = { title: 'Select a .torrent file.', filters: [{ name: 'Torrent Files', extensions: ['torrent'] }], - properties: [ 'openFile', 'multiSelections' ] + properties: ['openFile', 'multiSelections'] } setTitle(opts.title) electron.dialog.showOpenDialog(windows.main.win, opts, function (selectedPaths) { diff --git a/src/main/handlers.js b/src/main/handlers.js index 3c42e443..cdd7a97e 100644 --- a/src/main/handlers.js +++ b/src/main/handlers.js @@ -42,7 +42,7 @@ function installDarwin () { function uninstallDarwin () {} -const EXEC_COMMAND = [ process.execPath, '--' ] +const EXEC_COMMAND = [process.execPath, '--'] if (!config.IS_PRODUCTION) { EXEC_COMMAND.push(config.ROOT_PATH) diff --git a/src/main/index.js b/src/main/index.js index 2b61eeaf..2eece306 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -162,7 +162,7 @@ function onOpen (e, torrentId) { // Electron issue: https://github.com/atom/electron/issues/4338 setTimeout(() => windows.main.show(), 100) - processArgv([ torrentId ]) + processArgv([torrentId]) } else { argv.push(torrentId) } diff --git a/src/main/thumbar.js b/src/main/thumbar.js index fd30d576..f6f936e6 100644 --- a/src/main/thumbar.js +++ b/src/main/thumbar.js @@ -77,8 +77,8 @@ function onPlayerPlay () { function onPlayerUpdate (state) { if (!isEnabled()) return - buttons[PREV].flags = [ state.hasPrevious ? 'enabled' : 'disabled' ] - buttons[NEXT].flags = [ state.hasNext ? 'enabled' : 'disabled' ] + buttons[PREV].flags = [state.hasPrevious ? 'enabled' : 'disabled'] + buttons[NEXT].flags = [state.hasNext ? 'enabled' : 'disabled'] update() } diff --git a/src/renderer/components/path-selector.js b/src/renderer/components/path-selector.js index 6ad66d4b..d6744ffa 100644 --- a/src/renderer/components/path-selector.js +++ b/src/renderer/components/path-selector.js @@ -32,7 +32,7 @@ class PathSelector extends React.Component { handleClick () { const opts = Object.assign({ defaultPath: this.props.value, - properties: [ 'openFile', 'openDirectory' ] + properties: ['openFile', 'openDirectory'] }, this.props.dialog) remote.dialog.showOpenDialog( diff --git a/src/renderer/controllers/subtitles-controller.js b/src/renderer/controllers/subtitles-controller.js index 1ad65ea7..a2302810 100644 --- a/src/renderer/controllers/subtitles-controller.js +++ b/src/renderer/controllers/subtitles-controller.js @@ -15,8 +15,8 @@ module.exports = class SubtitlesController { openSubtitles () { remote.dialog.showOpenDialog({ title: 'Select a subtitles file.', - filters: [ { name: 'Subtitles', extensions: ['vtt', 'srt'] } ], - properties: [ 'openFile' ] + filters: [{ name: 'Subtitles', extensions: ['vtt', 'srt'] }], + properties: ['openFile'] }, (filenames) => { if (!Array.isArray(filenames)) return this.addSubtitles(filenames, true) diff --git a/src/renderer/main.js b/src/renderer/main.js index 498cc23c..d73d517e 100644 --- a/src/renderer/main.js +++ b/src/renderer/main.js @@ -458,7 +458,7 @@ function setDimensions (dimensions) { // Called when the user adds files (.torrent, files to seed, subtitles) to the app // via any method (drag-drop, drag to app icon, command line) function onOpen (files) { - if (!Array.isArray(files)) files = [ files ] + if (!Array.isArray(files)) files = [files] // File API seems to transform "magnet:?foo" in "magnet:///?foo" // this is a sanitization diff --git a/src/renderer/pages/preferences-page.js b/src/renderer/pages/preferences-page.js index 70ce49a0..9bbde8b7 100644 --- a/src/renderer/pages/preferences-page.js +++ b/src/renderer/pages/preferences-page.js @@ -37,7 +37,7 @@ class PreferencesPage extends React.Component { Date: Fri, 5 Jul 2019 21:45:40 +0000 Subject: [PATCH 16/30] fix(package): update parse-torrent to version 7.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fcd6bdc1..dface0c2 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "mkdirp": "^0.5.1", "music-metadata": "^3.6.1", "network-address": "^1.1.0", - "parse-torrent": "^6.0.1", + "parse-torrent": "^7.0.0", "prettier-bytes": "^1.0.1", "prop-types": "^15.6.2", "react": "^16.5.2", From 8b31c0376c2456831c3ff29d776a3118b2f7618f Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" <23040076+greenkeeper[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2019 21:45:43 +0000 Subject: [PATCH 17/30] chore(package): update lockfile package-lock.json --- package-lock.json | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index af830c25..e16c6862 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7205,31 +7205,23 @@ "integrity": "sha1-tPCdQTx6282Yf26SM8e0shDJOOQ=" }, "parse-torrent": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/parse-torrent/-/parse-torrent-6.1.2.tgz", - "integrity": "sha512-Z/vig84sHwtrTEbOzisT4xnYTFlOgAaLQccPruMPgRahZUppVE/BUXzAos3jZM7c64o0lfukQdQ4ozWa5lN39w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-torrent/-/parse-torrent-7.0.0.tgz", + "integrity": "sha512-i/Y9CNp2xn+moDrNWApBZ5rW9xRY6x6z4A71Lw886UKx7E/DkVAzuvA7efVtcPgdY3iI9ea0thaoqeMN3GZBOA==", "requires": { "bencode": "^2.0.0", "blob-to-buffer": "^1.2.6", - "get-stdin": "^6.0.0", + "get-stdin": "^7.0.0", "magnet-uri": "^5.1.3", "simple-get": "^3.0.1", "simple-sha1": "^2.0.0", "uniq": "^1.0.1" }, "dependencies": { - "bencode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bencode/-/bencode-2.0.0.tgz", - "integrity": "sha512-wr2HwwrUpfB5c68zmAudOltC7rZ1G0+lQOcnuEcfIM3AWAVnB3rHI3nlgd/2CWTfQ3w3zagKt89zni/M+VLZ8g==", - "requires": { - "safe-buffer": "^5.1.1" - } - }, "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==" } } }, @@ -10849,6 +10841,11 @@ "ms": "^2.1.1" } }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" + }, "junk": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/junk/-/junk-2.1.0.tgz", @@ -10864,6 +10861,20 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, + "parse-torrent": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/parse-torrent/-/parse-torrent-6.1.2.tgz", + "integrity": "sha512-Z/vig84sHwtrTEbOzisT4xnYTFlOgAaLQccPruMPgRahZUppVE/BUXzAos3jZM7c64o0lfukQdQ4ozWa5lN39w==", + "requires": { + "bencode": "^2.0.0", + "blob-to-buffer": "^1.2.6", + "get-stdin": "^6.0.0", + "magnet-uri": "^5.1.3", + "simple-get": "^3.0.1", + "simple-sha1": "^2.0.0", + "uniq": "^1.0.1" + } + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", From 0471d141c485a459a5209fc2cf17e0042118c880 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Fri, 5 Jul 2019 15:06:27 -0700 Subject: [PATCH 18/30] standard --- src/renderer/main.js | 136 +++++++++++++++--------------- src/renderer/pages/app.js | 6 +- src/renderer/pages/player-page.js | 6 +- test/setup.js | 2 +- 4 files changed, 75 insertions(+), 75 deletions(-) diff --git a/src/renderer/main.js b/src/renderer/main.js index d73d517e..ef40b662 100644 --- a/src/renderer/main.js +++ b/src/renderer/main.js @@ -235,100 +235,100 @@ function updateElectron () { const dispatchHandlers = { // Torrent list: creating, deleting, selecting torrents - 'openTorrentFile': () => ipcRenderer.send('openTorrentFile'), - 'openFiles': () => ipcRenderer.send('openFiles'), /* shows the open file dialog */ - 'openTorrentAddress': () => { state.modal = { id: 'open-torrent-address-modal' } }, + openTorrentFile: () => ipcRenderer.send('openTorrentFile'), + openFiles: () => ipcRenderer.send('openFiles'), /* shows the open file dialog */ + openTorrentAddress: () => { state.modal = { id: 'open-torrent-address-modal' } }, - 'addTorrent': (torrentId) => controllers.torrentList().addTorrent(torrentId), - 'showCreateTorrent': (paths) => controllers.torrentList().showCreateTorrent(paths), - 'createTorrent': (options) => controllers.torrentList().createTorrent(options), - 'toggleTorrent': (infoHash) => controllers.torrentList().toggleTorrent(infoHash), - 'pauseAllTorrents': () => controllers.torrentList().pauseAllTorrents(), - 'resumeAllTorrents': () => controllers.torrentList().resumeAllTorrents(), - 'toggleTorrentFile': (infoHash, index) => + addTorrent: (torrentId) => controllers.torrentList().addTorrent(torrentId), + showCreateTorrent: (paths) => controllers.torrentList().showCreateTorrent(paths), + createTorrent: (options) => controllers.torrentList().createTorrent(options), + toggleTorrent: (infoHash) => controllers.torrentList().toggleTorrent(infoHash), + pauseAllTorrents: () => controllers.torrentList().pauseAllTorrents(), + resumeAllTorrents: () => controllers.torrentList().resumeAllTorrents(), + toggleTorrentFile: (infoHash, index) => controllers.torrentList().toggleTorrentFile(infoHash, index), - 'confirmDeleteTorrent': (infoHash, deleteData) => + confirmDeleteTorrent: (infoHash, deleteData) => controllers.torrentList().confirmDeleteTorrent(infoHash, deleteData), - 'deleteTorrent': (infoHash, deleteData) => + deleteTorrent: (infoHash, deleteData) => controllers.torrentList().deleteTorrent(infoHash, deleteData), - 'toggleSelectTorrent': (infoHash) => + toggleSelectTorrent: (infoHash) => controllers.torrentList().toggleSelectTorrent(infoHash), - 'openTorrentContextMenu': (infoHash) => + openTorrentContextMenu: (infoHash) => controllers.torrentList().openTorrentContextMenu(infoHash), - 'startTorrentingSummary': (torrentKey) => + startTorrentingSummary: (torrentKey) => controllers.torrentList().startTorrentingSummary(torrentKey), - 'saveTorrentFileAs': (torrentKey) => + saveTorrentFileAs: (torrentKey) => controllers.torrentList().saveTorrentFileAs(torrentKey), - 'prioritizeTorrent': (infoHash) => controllers.torrentList().prioritizeTorrent(infoHash), - 'resumePausedTorrents': () => controllers.torrentList().resumePausedTorrents(), + prioritizeTorrent: (infoHash) => controllers.torrentList().prioritizeTorrent(infoHash), + resumePausedTorrents: () => controllers.torrentList().resumePausedTorrents(), // Playback - 'playFile': (infoHash, index) => controllers.playback().playFile(infoHash, index), - 'playPause': () => controllers.playback().playPause(), - 'nextTrack': () => controllers.playback().nextTrack(), - 'previousTrack': () => controllers.playback().previousTrack(), - 'skip': (time) => controllers.playback().skip(time), - 'skipTo': (time) => controllers.playback().skipTo(time), - 'changePlaybackRate': (dir) => controllers.playback().changePlaybackRate(dir), - 'changeVolume': (delta) => controllers.playback().changeVolume(delta), - 'setVolume': (vol) => controllers.playback().setVolume(vol), - 'openItem': (infoHash, index) => controllers.playback().openItem(infoHash, index), + playFile: (infoHash, index) => controllers.playback().playFile(infoHash, index), + playPause: () => controllers.playback().playPause(), + nextTrack: () => controllers.playback().nextTrack(), + previousTrack: () => controllers.playback().previousTrack(), + skip: (time) => controllers.playback().skip(time), + skipTo: (time) => controllers.playback().skipTo(time), + changePlaybackRate: (dir) => controllers.playback().changePlaybackRate(dir), + changeVolume: (delta) => controllers.playback().changeVolume(delta), + setVolume: (vol) => controllers.playback().setVolume(vol), + openItem: (infoHash, index) => controllers.playback().openItem(infoHash, index), // Subtitles - 'openSubtitles': () => controllers.subtitles().openSubtitles(), - 'selectSubtitle': (index) => controllers.subtitles().selectSubtitle(index), - 'toggleSubtitlesMenu': () => controllers.subtitles().toggleSubtitlesMenu(), - 'checkForSubtitles': () => controllers.subtitles().checkForSubtitles(), - 'addSubtitles': (files, autoSelect) => controllers.subtitles().addSubtitles(files, autoSelect), + openSubtitles: () => controllers.subtitles().openSubtitles(), + selectSubtitle: (index) => controllers.subtitles().selectSubtitle(index), + toggleSubtitlesMenu: () => controllers.subtitles().toggleSubtitlesMenu(), + checkForSubtitles: () => controllers.subtitles().checkForSubtitles(), + addSubtitles: (files, autoSelect) => controllers.subtitles().addSubtitles(files, autoSelect), // Local media: