From e3431b10e3018b0af95e5b5edf3223f3f086da32 Mon Sep 17 00:00:00 2001 From: Danny Qiu Date: Thu, 28 Dec 2017 07:29:46 -0500 Subject: Update to latest version of node-sass and electron-spellchecker --- package.json | 4 +- yarn.lock | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 113 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 9c111d336..301b88b81 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "babel-runtime": "^6.23.0", "classnames": "^2.2.5", "electron-fetch": "^1.1.0", - "electron-spellchecker": "^1.2.0", + "electron-spellchecker": "^1.1.2", "electron-updater": "^2.4.3", "electron-window-state": "^4.1.0", "fs-extra": "^3.0.1", @@ -104,7 +104,7 @@ "gulp-sass": "^3.1.0", "gulp-sass-variables": "^1.1.1", "gulp-server-livereload": "^1.9.2", - "node-sass": "^4.5.3" + "node-sass": "^4.7.2" }, "config": { "commitizen": { diff --git a/yarn.lock b/yarn.lock index c662ce63f..3dead4308 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,7 +39,7 @@ rimraf "^2.4.0" underscore "^1.6.0" -"@paulcbetts/spellchecker@^4.0.5": +"@paulcbetts/spellchecker@^4.0.6": version "4.0.6" resolved "https://registry.yarnpkg.com/@paulcbetts/spellchecker/-/spellchecker-4.0.6.tgz#79ef1f9c19c5a3156921ccaa9ffdc3efbbee47e3" dependencies: @@ -1303,6 +1303,10 @@ capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" +caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -2013,12 +2017,12 @@ electron-remote@^1.1.1: rxjs "^5.0.0-beta.12" xmlhttprequest "^1.8.0" -electron-spellchecker@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/electron-spellchecker/-/electron-spellchecker-1.2.0.tgz#f6306afd4078244c1e6311370667d95b873fbcbb" +electron-spellchecker@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/electron-spellchecker/-/electron-spellchecker-1.1.2.tgz#5fbe1e65d246b77e6e7433ee2387d9d26010f7a8" dependencies: "@paulcbetts/cld" "^2.4.6" - "@paulcbetts/spellchecker" "^4.0.5" + "@paulcbetts/spellchecker" "^4.0.6" bcp47 "^1.1.2" debug "^2.6.3" electron-remote "^1.1.1" @@ -2724,6 +2728,16 @@ gaze@^1.0.0: dependencies: globule "^1.0.0" +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -3118,6 +3132,15 @@ har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" +har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + har-validator@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" @@ -3433,6 +3456,15 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" +is-my-json-valid@^2.12.4: + version "2.17.1" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" @@ -3491,6 +3523,10 @@ is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" @@ -3686,6 +3722,10 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + jsonwebtoken@^7.4.1: version "7.4.3" resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz#77f5021de058b605a1783fa1283e99812e645638" @@ -4354,7 +4394,7 @@ node-pre-gyp@^0.6.36: tar "^2.2.1" tar-pack "^3.4.0" -node-sass@^4.2.0, node-sass@^4.5.3: +node-sass@^4.2.0: version "4.5.3" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.3.tgz#d09c9d1179641239d1b97ffc6231fdcec53e1568" dependencies: @@ -4377,6 +4417,30 @@ node-sass@^4.2.0, node-sass@^4.5.3: sass-graph "^2.1.1" stdout-stream "^1.4.0" +node-sass@^4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.7.2.tgz#9366778ba1469eb01438a9e8592f4262bcb6794e" + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^3.0.0" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + in-publish "^2.0.0" + lodash.assign "^4.2.0" + lodash.clonedeep "^4.3.2" + lodash.mergewith "^4.6.0" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.3.2" + node-gyp "^3.3.1" + npmlog "^4.0.0" + request "~2.79.0" + sass-graph "^2.2.4" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + node-watch@^0.3.4: version "0.3.5" resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.3.5.tgz#a07f253a4f538de9d4ca522dd7f1996eeec0d97e" @@ -4907,6 +4971,10 @@ q@^1.1.2: version "1.5.0" resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" +qs@~6.3.0: + version "6.3.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" + qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" @@ -5251,6 +5319,31 @@ request@2, request@^2.45.0, request@^2.54.0, request@^2.79.0, request@^2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" +request@~2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + uuid "^3.0.0" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5354,7 +5447,7 @@ sanitize-filename@^1.6.0, sanitize-filename@^1.6.1: dependencies: truncate-utf8-bytes "^1.0.0" -sass-graph@^2.1.1: +sass-graph@^2.1.1, sass-graph@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" dependencies: @@ -5924,6 +6017,12 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +"true-case-path@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62" + dependencies: + glob "^6.0.4" + truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" @@ -5940,6 +6039,10 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -6299,7 +6402,7 @@ xmlhttprequest@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" -- cgit v1.2.3-70-g09d2 From b51009db821aa3f4c8a330576c9afc96703f2edc Mon Sep 17 00:00:00 2001 From: Danny Qiu Date: Thu, 28 Dec 2017 07:35:38 -0500 Subject: Remove auto-update in development --- src/electron/ipc-api/autoUpdate.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/electron/ipc-api/autoUpdate.js b/src/electron/ipc-api/autoUpdate.js index 7bc193e2d..ba49a2f97 100644 --- a/src/electron/ipc-api/autoUpdate.js +++ b/src/electron/ipc-api/autoUpdate.js @@ -1,8 +1,9 @@ import { app, ipcMain } from 'electron'; import { autoUpdater } from 'electron-updater'; +import { isDevMode } from '../../environment.js'; export default (params) => { - if (process.platform === 'darwin' || process.platform === 'win32') { + if (!isDevMode && (process.platform === 'darwin' || process.platform === 'win32')) { // autoUpdater.setFeedURL(updateUrl); ipcMain.on('autoUpdate', (event, args) => { try { -- cgit v1.2.3-70-g09d2 From 2fe42d52413de915760d4a089e110568724e36b6 Mon Sep 17 00:00:00 2001 From: Danny Qiu Date: Thu, 28 Dec 2017 07:36:31 -0500 Subject: Log event on second instnace of Franz --- src/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/index.js b/src/index.js index a047e2bc1..f82bb3590 100644 --- a/src/index.js +++ b/src/index.js @@ -44,6 +44,7 @@ const isSecondInstance = app.makeSingleInstance((argv) => { }); if (isSecondInstance) { + console.log('An instance of Franz is already running. Exiting...'); app.exit(); } -- cgit v1.2.3-70-g09d2 From 9e2a998cccee808d8f2f16d4dc6f45d3c069ec32 Mon Sep 17 00:00:00 2001 From: Danny Qiu Date: Fri, 29 Dec 2017 01:31:52 -0500 Subject: Add button to clear service cache --- src/actions/service.js | 3 +++ src/api/LocalApi.js | 4 +++ src/api/ServicesApi.js | 7 ++++- src/api/server/LocalApi.js | 11 ++++++++ .../settings/services/EditServiceForm.js | 30 ++++++++++++++++++++++ src/containers/settings/EditServiceScreen.js | 11 ++++++++ src/i18n/locales/en-US.json | 2 ++ src/stores/ServicesStore.js | 9 +++++++ src/styles/button.scss | 12 +++++++++ 9 files changed, 88 insertions(+), 1 deletion(-) diff --git a/src/actions/service.js b/src/actions/service.js index e3100e986..5d483b12a 100644 --- a/src/actions/service.js +++ b/src/actions/service.js @@ -25,6 +25,9 @@ export default { serviceId: PropTypes.string.isRequired, redirect: PropTypes.string, }, + clearCache: { + serviceId: PropTypes.string.isRequired, + }, setUnreadMessageCount: { serviceId: PropTypes.string.isRequired, count: PropTypes.object.isRequired, diff --git a/src/api/LocalApi.js b/src/api/LocalApi.js index 6f2b049d6..d52e9cd10 100644 --- a/src/api/LocalApi.js +++ b/src/api/LocalApi.js @@ -15,4 +15,8 @@ export default class LocalApi { removeKey(key) { return this.local.removeKey(key); } + + clearAppCache() { + return this.local.clearAppCache(); + } } diff --git a/src/api/ServicesApi.js b/src/api/ServicesApi.js index 3cb40ba0d..36ed9482f 100644 --- a/src/api/ServicesApi.js +++ b/src/api/ServicesApi.js @@ -1,5 +1,6 @@ export default class ServicesApi { - constructor(server) { + constructor(server, local) { + this.local = local; this.server = server; } @@ -30,4 +31,8 @@ export default class ServicesApi { reorder(data) { return this.server.reorderService(data); } + + clearCache(serviceId) { + return this.local.clearCache(serviceId); + } } diff --git a/src/api/server/LocalApi.js b/src/api/server/LocalApi.js index 79ac6e12f..fec89f948 100644 --- a/src/api/server/LocalApi.js +++ b/src/api/server/LocalApi.js @@ -1,3 +1,7 @@ +import { remote } from 'electron'; + +const { session } = remote; + export default class LocalApi { // App async updateAppSettings(data) { @@ -30,4 +34,11 @@ export default class LocalApi { localStorage.setItem('app', JSON.stringify(settings)); } } + + // Services + async clearCache(serviceId) { + console.debug(`Clearing cache for persist:service-${serviceId}`); + const s = session.fromPartition(`persist:service-${serviceId}`); + await new Promise(resolve => s.clearCache(resolve)); + } } diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js index 4458c4c5a..b5300f605 100644 --- a/src/components/settings/services/EditServiceForm.js +++ b/src/components/settings/services/EditServiceForm.js @@ -71,6 +71,14 @@ const messages = defineMessages({ id: 'settings.service.form.isMutedInfo', defaultMessage: '!!!When disabled, all notification sounds and audio playback are muted', }, + buttonClearCache: { + id: 'settings.service.form.buttonClearCache', + defaultMessage: '!!!Clear cache', + }, + buttonClearingCache: { + id: 'settings.service.form.buttonClearingCache', + defaultMessage: '!!!Clearing cache', + }, headlineNotifications: { id: 'settings.service.form.headlineNotifications', defaultMessage: '!!!Notifications', @@ -102,8 +110,10 @@ export default class EditServiceForm extends Component { form: PropTypes.instanceOf(Form).isRequired, onSubmit: PropTypes.func.isRequired, onDelete: PropTypes.func.isRequired, + onClearCache: PropTypes.func.isRequired, isSaving: PropTypes.bool.isRequired, isDeleting: PropTypes.bool.isRequired, + isClearingCache: PropTypes.bool.isRequired, }; static defaultProps = { @@ -158,7 +168,9 @@ export default class EditServiceForm extends Component { form, isSaving, isDeleting, + isClearingCache, onDelete, + onClearCache, } = this.props; const { intl } = this.context; @@ -181,6 +193,23 @@ export default class EditServiceForm extends Component { /> ); + const clearCacheButton = isClearingCache ? ( +