Browse Source

Switch back to '@electron/remote' and switch back to 'electron-context-menu'.

pull/3202/head
TheGoddessInari 3 years ago
parent
commit
c6dabde368
No known key found for this signature in database
GPG Key ID: 1209B1B7632D69A
  1. 6
      app/Application.js
  2. 2
      app/ux/FileBackup.js
  3. 31
      app/ux/WebView.js
  4. 2
      app/view/main/About.js
  5. 2
      app/view/main/MainController.js
  6. 19
      electron/main.js
  7. 2
      masterpassword.html
  8. 294
      package-lock.json
  9. 2
      package.json
  10. 12
      resources/js/hamsket-service-api.js

6
app/Application.js

@ -27,10 +27,10 @@ Ext.define('Hamsket.Application', {
// Set cookies to help Tooltip.io messages segmentation
Ext.util.Cookies.set('version', require('electron').remote.app.getVersion());
Ext.util.Cookies.set('version', require('@electron/remote').app.getVersion());
// Check for updates
if ( require('electron').remote.process.argv.indexOf('--without-update') === -1 ) Hamsket.app.checkUpdate(true);
if ( require('@electron/remote').process.argv.indexOf('--without-update') === -1 ) Hamsket.app.checkUpdate(true);
// Mouse Wheel zooming
document.addEventListener('mousewheel', function(e) {
@ -85,7 +85,7 @@ Ext.define('Hamsket.Application', {
,method: 'GET'
,success(response) {
const json = JSON.parse(response.responseText);
const appVersion = new Ext.Version(require('electron').remote.app.getVersion());
const appVersion = new Ext.Version(require('@electron/remote').app.getVersion());
const updateVersion = new Ext.Version(json.tag_name);
if ( appVersion.isLessThan(updateVersion) ) {
console.info('New version is available', updateVersion);

2
app/ux/FileBackup.js

@ -3,7 +3,7 @@ Ext.define('Hamsket.ux.FileBackup', {
constructor() {
const me = this;
me.callParent(arguments);
me.remote = require('electron').remote;
me.remote = require('@electron/remote');
me.path = me.remote.require('path');
me.fs = me.remote.require('fs');
me.userPath = me.remote.app.getPath('userData');

31
app/ux/WebView.js

@ -164,7 +164,7 @@ Ext.define('Hamsket.ux.WebView',{
,partition: 'persist:' + me.record.get('type') + '_' + me.id.replace('tab_', '')
,allowtransparency: 'on'
,autosize: 'on'
,webpreferences: 'nativeWindowOpen=yes,enableRemoteModule=yes,spellcheck=yes,contextIsolation=no' //,nativeWindowOpen=true
,webpreferences: 'nativeWindowOpen=yes,spellcheck=yes,contextIsolation=no' //,nativeWindowOpen=true
,allowpopups: 'on'
//,disablewebsecurity: 'on' // Disabled because some services (Like Google Drive) dont work with this enabled
,userAgent: me.getUserAgent()
@ -265,7 +265,7 @@ Ext.define('Hamsket.ux.WebView',{
// Block some Deep links to prevent that open its app (Ex: Slack)
if (['slack:'].includes(protocol)) return;
// Allow Deep links
if (!['http:', 'https:', 'about:'].includes(protocol)) return require('electron').shell.openExternal(url.href);
if (!['http:', 'https:', 'about:'].includes(protocol)) return require('@electron/remote').shell.openExternal(url.href);
});
webview.addEventListener('will-navigate', function(e, url) {
@ -437,7 +437,7 @@ Ext.define('Hamsket.ux.WebView',{
}
function showWindowAndActivateTab(event) {
const currentWindow = require('electron').remote.getCurrentWindow();
const currentWindow = require('@electron/remote').getCurrentWindow();
currentWindow.show();
currentWindow.focus();
const tabPanel = Ext.cq1('app-main');
@ -700,10 +700,11 @@ Ext.define('Hamsket.ux.WebView',{
}
,getWebContents() {
if ( this.record.get('enabled') ) {
const remote = require('electron').remote;
const remote = require('@electron/remote');
const webview = this.getWebView();
const id = webview.getWebContentsId();
return remote.webContents.fromId(id);
const webContents = remote.webContents.fromId(id);
return webContents;
} else {
return false;
}
@ -743,7 +744,7 @@ Ext.define('Hamsket.ux.WebView',{
}
,getOSArch(platform) {
const me = this;
const remote = require('electron').remote;
const remote = require('@electron/remote');
platform = platform ? platform : remote.require('os').platform();
let arch = remote.require('os').arch();
@ -765,7 +766,7 @@ Ext.define('Hamsket.ux.WebView',{
return arch;
}
,getOSArchType() {
let arch = require('electron').remote.require('os').arch();
let arch = require('@electron/remote').require('os').arch();
switch(arch) {
case 'x64':
@ -797,7 +798,7 @@ Ext.define('Hamsket.ux.WebView',{
}
,getOSPlatform(platform) {
const me = this;
platform = platform ? platform : require('electron').remote.require('os').platform();
platform = platform ? platform : require('@electron/remote').require('os').platform();
switch (platform) {
case 'win32':
platform = `${me.getOSRelease(platform)}; ${me.getOSArch(platform)}`;
@ -820,15 +821,15 @@ Ext.define('Hamsket.ux.WebView',{
return platform;
}
,isWindows(platform) {
platform = platform ? platform : require('electron').remote.require('os').platform();
platform = platform ? platform : require('@electron/remote').require('os').platform();
return platform === 'win32';
}
,isMac(platform) {
platform = platform ? platform : require('electron').remote.require('os').platform();
platform = platform ? platform : require('@electron/remote').require('os').platform();
return platform === 'darwin';
}
,is32bit() {
const arch = require('electron').remote.require('os').arch();
const arch = require('@electron/remote').require('os').arch();
if (arch === 'ia32' || arch === 'x32')
return true;
else
@ -836,7 +837,7 @@ Ext.define('Hamsket.ux.WebView',{
}
,getOSRelease(platform) {
const me = this;
const remote = require('electron').remote;
const remote = require('@electron/remote');
if (me.isWindows(platform)) {
if (platform)
{
@ -852,13 +853,13 @@ Ext.define('Hamsket.ux.WebView',{
}
}
,getChromeVersion(version) {
return version || require('electron').remote.require('process').versions['chrome'];
return version || require('@electron/remote').process.versions['chrome'];
}
,getElectronVersion() {
return require('electron').require('process').versions['electron'];
return require('@electron/remote').process.versions['electron'];
}
,getAppVersion() {
return require('electron').remote.app.getVersion();
return require('@electron/remote').app.getVersion();
}
,blur() {
this.getWebView().blur();

2
app/view/main/About.js

@ -15,7 +15,7 @@ Ext.define('Hamsket.view.main.About', {
me.data.buildversion = require('fs').readFileSync( __dirname + '/BUILDVERSION', 'utf8');
}
,data: {
version: require('electron').remote.app.getVersion()
version: require('@electron/remote').app.getVersion()
,platform: process.platform
,arch: process.arch
,electron: process.versions.electron

2
app/view/main/MainController.js

@ -137,7 +137,7 @@ Ext.define('Hamsket.view.main.MainController', {
// Get Record
const rec = Ext.getStore('Services').getById(serviceId);
const {session: rsession} = require('electron').remote;
const {session: rsession} = require('@electron/remote');
if ( !rec.get('enabled') ) {
const session = rsession.fromPartition(`persist:${rec.get('type')}_${serviceId}`);

19
electron/main.js

@ -12,6 +12,7 @@ const updater = require('./updater');
// File System
const fs = require("fs");
const path = require('path');
const contextMenu = require('electron-context-menu');
// If 'data' folder exists in Hamsket's folder, set userdata, logs, and usercache path to there
var basepath = app.getAppPath();
@ -117,11 +118,12 @@ function createWindow () {
partition: 'persist:hamsket',
nodeIntegration: true,
webviewTag: true,
enableRemoteModule: true,
contextIsolation: false
contextIsolation: false,
}
});
require("@electron/remote/main").enable(mainWindow.webContents);
if ( !config.get('start_minimized') && config.get('maximized') ) mainWindow.maximize();
if (config.get('start_minimized')){
if (config.get('window_display_behavior') == 'show_taskbar') {
@ -235,11 +237,11 @@ function createMasterPasswordWindow() {
,frame: false
,webPreferences: {
nodeIntegration: true,
enableRemoteModule: true,
contextIsolation: false
}
});
require("@electron/remote/main").enable(mainMasterPasswordWindow.webContents);
mainMasterPasswordWindow.loadURL('file://' + __dirname + '/../masterpassword.html');
mainMasterPasswordWindow.on('close', function() { mainMasterPasswordWindow = null; });
@ -585,6 +587,7 @@ if ( config.get('disable_gpu') ) app.disableHardwareAcceleration();
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
app.on('ready', function() {
require('@electron/remote/main').initialize();
if (config.get('master_password')) {
createMasterPasswordWindow();
} else {
@ -621,8 +624,18 @@ app.on('before-quit', function () {
// Prevent the ability to create webview with nodeIntegration.
app.on('web-contents-created', (event, contents) => {
const contextMenuWebContentsDispose = contextMenu({
window: contents,
showCopyImageAddress: true,
showSaveImage: false,
showSaveImageAs: true,
});
contents.on('will-attach-webview', (event, webPreferences, params) => {
// Always prevent node integration
webPreferences.nodeIntegration = false;
});
contents.on('destroyed', function() {
contextMenuWebContentsDispose();
})
});

2
masterpassword.html

@ -48,7 +48,7 @@
}
function exit() {
require('electron').remote.app.quit();
require('@electron/remote').app.quit();
}
</script>

294
package-lock.json generated

@ -11,7 +11,7 @@
"dependencies": {
"@electron/remote": "^2.0.1",
"auto-launch": "^5.0.5",
"electron-contextmenu-wrapper": "5.0.0",
"electron-context-menu": "^3.1.1",
"electron-store": "^8.0.1",
"mime": "^3.0.0",
"tmp": "^0.2.1"
@ -521,7 +521,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"engines": {
"node": ">=8"
}
@ -530,7 +529,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@ -781,6 +779,14 @@
"node": "*"
}
},
"node_modules/astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/async": {
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
@ -1386,6 +1392,21 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cli-truncate": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
"integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
"dependencies": {
"slice-ansi": "^3.0.0",
"string-width": "^4.2.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@ -1418,7 +1439,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
@ -1429,8 +1449,7 @@
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/colors": {
"version": "1.0.3",
@ -2196,12 +2215,38 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/electron-contextmenu-wrapper": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/electron-contextmenu-wrapper/-/electron-contextmenu-wrapper-5.0.0.tgz",
"integrity": "sha512-1XdHmQWQn87xEnFBWIfYCvKfifqpsWfJBhO+v9pXWsDvtaksOs04gDV5HfOnGYSFLMJb5sYh9wA6ZPusebp8QA==",
"node_modules/electron-context-menu": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-3.1.1.tgz",
"integrity": "sha512-LJhwaKf6XHwk2LQ5SdwoGNODoA8lRwks9bbEeAqqMf4e3hsrT7pZtX6MaHKYNFZKxF14JjI/VR+VRjGvxmaQoA==",
"dependencies": {
"cli-truncate": "^2.1.0",
"electron-dl": "^3.2.1",
"electron-is-dev": "^2.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/electron-dl": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-3.3.0.tgz",
"integrity": "sha512-Zwaz/OMGPIfBLV2SQH4sTsdDOs/U4y5AOHfremMBXEpjIxX+SiTx845DZAvJJwgb5hfowyWOBLiJhd/emBNLLQ==",
"dependencies": {
"debug": "^4.3.2"
"ext-name": "^5.0.0",
"pupa": "^2.0.1",
"unused-filename": "^2.1.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/electron-is-dev": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-2.0.0.tgz",
"integrity": "sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA==",
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/electron-osx-sign": {
@ -2334,8 +2379,7 @@
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/encodeurl": {
"version": "1.0.2",
@ -2381,7 +2425,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
"integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
"dev": true,
"engines": {
"node": ">=8"
}
@ -2420,6 +2463,29 @@
"node": ">=0.8"
}
},
"node_modules/ext-list": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
"integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
"dependencies": {
"mime-db": "^1.28.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/ext-name": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
"integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
"dependencies": {
"ext-list": "^2.0.0",
"sort-keys-length": "^1.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/extract-zip": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
@ -3023,7 +3089,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
"engines": {
"node": ">=8"
}
@ -3642,7 +3707,6 @@
"version": "1.51.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
"integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==",
"dev": true,
"engines": {
"node": ">= 0.6"
}
@ -3851,6 +3915,14 @@
"node": ">=10"
}
},
"node_modules/modify-filename": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/modify-filename/-/modify-filename-1.1.0.tgz",
"integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@ -4051,7 +4123,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
"engines": {
"node": ">=8"
}
@ -4345,7 +4416,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
"integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
"dev": true,
"dependencies": {
"escape-goat": "^2.0.0"
},
@ -4821,6 +4891,19 @@
"integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==",
"dev": true
},
"node_modules/slice-ansi": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
"integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
"dependencies": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
"is-fullwidth-code-point": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/snake-case": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
@ -4830,6 +4913,36 @@
"no-case": "^2.2.0"
}
},
"node_modules/sort-keys": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
"integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
"dependencies": {
"is-plain-obj": "^1.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/sort-keys-length": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
"integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
"dependencies": {
"sort-keys": "^1.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/sort-keys/node_modules/is-plain-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
"integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@ -5087,7 +5200,6 @@
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@ -5101,7 +5213,6 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
@ -5418,6 +5529,18 @@
"node": ">=4"
}
},
"node_modules/unused-filename": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/unused-filename/-/unused-filename-2.1.0.tgz",
"integrity": "sha512-BMiNwJbuWmqCpAM1FqxCTD7lXF97AvfQC8Kr/DIeA6VtvhJaMDupZ82+inbjl5yVP44PcxOuCSxye1QMS0wZyg==",
"dependencies": {
"modify-filename": "^1.1.0",
"path-exists": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/update-notifier": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",
@ -6459,14 +6582,12 @@
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
@ -6669,6 +6790,11 @@
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true
},
"astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="
},
"async": {
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
@ -7143,6 +7269,15 @@
"integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
"dev": true
},
"cli-truncate": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
"integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
"requires": {
"slice-ansi": "^3.0.0",
"string-width": "^4.2.0"
}
},
"cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@ -7172,7 +7307,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
@ -7180,8 +7314,7 @@
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"colors": {
"version": "1.0.3",
@ -7785,14 +7918,31 @@
}
}
},
"electron-contextmenu-wrapper": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/electron-contextmenu-wrapper/-/electron-contextmenu-wrapper-5.0.0.tgz",
"integrity": "sha512-1XdHmQWQn87xEnFBWIfYCvKfifqpsWfJBhO+v9pXWsDvtaksOs04gDV5HfOnGYSFLMJb5sYh9wA6ZPusebp8QA==",
"electron-context-menu": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-3.1.1.tgz",
"integrity": "sha512-LJhwaKf6XHwk2LQ5SdwoGNODoA8lRwks9bbEeAqqMf4e3hsrT7pZtX6MaHKYNFZKxF14JjI/VR+VRjGvxmaQoA==",
"requires": {
"cli-truncate": "^2.1.0",
"electron-dl": "^3.2.1",
"electron-is-dev": "^2.0.0"
}
},
"electron-dl": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-3.3.0.tgz",
"integrity": "sha512-Zwaz/OMGPIfBLV2SQH4sTsdDOs/U4y5AOHfremMBXEpjIxX+SiTx845DZAvJJwgb5hfowyWOBLiJhd/emBNLLQ==",
"requires": {
"debug": "^4.3.2"
"ext-name": "^5.0.0",
"pupa": "^2.0.1",
"unused-filename": "^2.1.0"
}
},
"electron-is-dev": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-2.0.0.tgz",
"integrity": "sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA=="
},
"electron-osx-sign": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz",
@ -7895,8 +8045,7 @@
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"encodeurl": {
"version": "1.0.2",
@ -7932,8 +8081,7 @@
"escape-goat": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
"integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
"dev": true
"integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q=="
},
"escape-string-regexp": {
"version": "4.0.0",
@ -7953,6 +8101,23 @@
"integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==",
"dev": true
},
"ext-list": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
"integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
"requires": {
"mime-db": "^1.28.0"
}
},
"ext-name": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
"integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
"requires": {
"ext-list": "^2.0.0",
"sort-keys-length": "^1.0.0"
}
},
"extract-zip": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
@ -8411,8 +8576,7 @@
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
},
"is-glob": {
"version": "2.0.1",
@ -8904,8 +9068,7 @@
"mime-db": {
"version": "1.51.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
"integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==",
"dev": true
"integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g=="
},
"mime-types": {
"version": "2.1.34",
@ -9063,6 +9226,11 @@
}
}
},
"modify-filename": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/modify-filename/-/modify-filename-1.1.0.tgz",
"integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE="
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@ -9213,8 +9381,7 @@
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
},
"path-is-absolute": {
"version": "1.0.1",
@ -9427,7 +9594,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
"integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
"dev": true,
"requires": {
"escape-goat": "^2.0.0"
}
@ -9811,6 +9977,16 @@
"integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==",
"dev": true
},
"slice-ansi": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
"integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
"requires": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
"is-fullwidth-code-point": "^3.0.0"
}
},
"snake-case": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
@ -9820,6 +9996,29 @@
"no-case": "^2.2.0"
}
},
"sort-keys": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
"integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
"requires": {
"is-plain-obj": "^1.0.0"
},
"dependencies": {
"is-plain-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
"integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
}
}
},
"sort-keys-length": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
"integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
"requires": {
"sort-keys": "^1.0.0"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@ -10013,7 +10212,6 @@
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@ -10024,7 +10222,6 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.1"
}
@ -10273,6 +10470,15 @@
"resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz",
"integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA=="
},
"unused-filename": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/unused-filename/-/unused-filename-2.1.0.tgz",
"integrity": "sha512-BMiNwJbuWmqCpAM1FqxCTD7lXF97AvfQC8Kr/DIeA6VtvhJaMDupZ82+inbjl5yVP44PcxOuCSxye1QMS0wZyg==",
"requires": {
"modify-filename": "^1.1.0",
"path-exists": "^4.0.0"
}
},
"update-notifier": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",

2
package.json

@ -82,7 +82,7 @@
"dependencies": {
"@electron/remote": "^2.0.1",
"auto-launch": "^5.0.5",
"electron-contextmenu-wrapper": "5.0.0",
"electron-context-menu": "^3.1.1",
"electron-store": "^8.0.1",
"mime": "^3.0.0",
"tmp": "^0.2.1"

12
resources/js/hamsket-service-api.js

@ -2,8 +2,7 @@
* This file is loaded in the service web views to provide a Hamsket API.
*/
const { ipcRenderer, remote } = require('electron');
const { ContextMenuBuilder, ContextMenuListener } = require('electron-contextmenu-wrapper');
const { ipcRenderer } = require('electron');
/**
* Make the Hamsket API available via a global "hamsket" variable.
@ -40,8 +39,8 @@ window.hamsket.clearUnreadCount = function() {
};
window.hamsket.parseIntOrZero = function (n) {
const result = parseInt(n, 10);
return isNaN(result) ? 0 : result;
const result = Number.parseInt(n, 10);
return Number.isNaN(result) ? 0 : result;
};
window.hamsket.isInViewport = function(node) {
@ -53,11 +52,6 @@ window.hamsket.isInViewport = function(node) {
rect.top < (window.innerHeight || document.documentElement.clientHeight);
};
window.hamsket.contextMenuBuilder = new ContextMenuBuilder();
window.hamsket.contextMenuListener = new ContextMenuListener(function(event, info) {
window.hamsket.contextMenuBuilder.showPopupMenu(info);
});
/**
* Override to add notification click event to display Hamsket window and activate service tab

Loading…
Cancel
Save