Created
April 3, 2020 07:43
-
-
Save phuctvt/148a735dfbe59cd58551e997a0d337b1 to your computer and use it in GitHub Desktop.
Electron example (credit: https://www.youtube.com/watch?v=kN1Czs0m1SU)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<title>Add Shopping List Item</title> | |
</head> | |
<body> | |
<form> | |
<div> | |
<label for="item">Enter Item</label> | |
<input type="text" id="item" autofocus> | |
</div> | |
<button type="submit">Add Item</button> | |
</form> | |
<script> | |
const { ipcRenderer } = require('electron'); | |
const form = document.querySelector('form'); | |
form.addEventListener('submit', e => { | |
e.preventDefault(); | |
const item = document.querySelector('#item').value; | |
ipcRenderer.send('item:add', item); | |
}); | |
</script> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const electron = require('electron'); | |
const url = require('url'); | |
const path = require('path'); | |
const { app, BrowserWindow, Menu, ipcMain } = electron; | |
let mainWindow; | |
let addWindow; | |
// Renderer: | |
// ipcRenderer.on() | |
// ipcRenderer.send() | |
// Main: | |
// ipcMain.on() | |
// BrowserWindow.webContents.send() | |
app.on('ready', () => { | |
// Create new window. | |
mainWindow = new BrowserWindow({ | |
webPreferences: { nodeIntegration: true } | |
}); | |
mainWindow.loadURL(url.format({ | |
pathname: path.join(__dirname, 'mainWindow.html'), | |
protocol: 'file:', | |
slashes: true | |
})); | |
mainWindow.on('closed', () => { | |
app.quit(); | |
}); | |
const mainMenu = Menu.buildFromTemplate(mainMenuTemplate); | |
Menu.setApplicationMenu(mainMenu); | |
}) | |
function createAddWindow() { | |
addWindow = new BrowserWindow({ | |
width: 500, | |
height: 300, | |
title: 'Add Shopping List Item', | |
webPreferences: { nodeIntegration: true } | |
}); | |
addWindow.loadURL(url.format({ | |
pathname: path.join(__dirname, 'addWindow.html'), | |
protocol: 'file:', | |
slashes: true | |
})); | |
addWindow.on('closed', () => { | |
addWindow = null; | |
}); | |
} | |
ipcMain.on('item:add', (e, item) => { | |
mainWindow.webContents.send('item:add', item); | |
addWindow.close(); | |
}); | |
const mainMenuTemplate = [ | |
{ | |
label: 'File', | |
submenu: [ | |
{ | |
label: 'Add Item', | |
click: () => { | |
createAddWindow(); | |
} | |
}, | |
{ | |
label: 'Clear All Items', | |
click: () => { | |
mainWindow.webContents.send('item:clear'); | |
} | |
}, | |
{ | |
label: 'Quit', | |
accelerator: process.platform === 'darwin' ? 'Command+Q' : 'Ctrl+Q', | |
click: () => { | |
app.quit(); | |
} | |
} | |
] | |
} | |
]; | |
if (process.platform === 'darwin') { | |
mainMenuTemplate.unshift({}); | |
} | |
process.env.NODE_ENV = 'production'; | |
if (process.env.NODE_ENV !== 'production') { | |
mainMenuTemplate.push({ | |
label: 'Developer Tools', | |
submenu: [ | |
{ | |
label: 'Toggle DevTools', | |
accelerator: process.platform === 'darwin' ? 'Command+I' : 'Ctrl+I', | |
click: (item, focusedWindow) => { | |
focusedWindow.toggleDevTools(); | |
} | |
}, | |
{ | |
role: 'reload' | |
} | |
] | |
}); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* { | |
font-family: sans-serif; | |
} | |
body { | |
background-image: url('./background.jpg'); | |
background-size: cover; | |
background-position: 0 60%; | |
background-attachment: fixed; | |
} | |
.center-block { | |
margin: 0 auto; | |
margin-top: 1em; | |
width: 50%; | |
border-radius: 5px; | |
padding: 0.3em 1em; | |
background-color: rgba(255, 255, 255, 0.3); | |
backdrop-filter: blur(20px); | |
box-shadow: 0 3px 10px 0 #555; | |
} | |
ul { | |
list-style-type: none; | |
padding-left: 0em; | |
} | |
ul > li { | |
border: 1px solid black; | |
border-left: 0.5em solid black; | |
border-radius: 5px; | |
margin: 0.5em 0; | |
padding: 0.3em 0.5em; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<title>Shopping List</title> | |
<link rel="stylesheet" href="mainWindow.css"> | |
</head> | |
<body> | |
<div class="center-block"> | |
<h2>Shopping List</h2> | |
<ul> | |
<li>Apple</li> | |
<li>Banana</li> | |
<li>Milk</li> | |
</ul> | |
</div> | |
<div class="center-block">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ipsa qui deserunt neque hic! Similique cupiditate unde repudiandae voluptatum maxime ipsam dolorum perferendis saepe, inventore corrupti consectetur corporis enim animi optio!</div> | |
<div class="center-block">Lorem ipsum dolor sit amet consectetur adipisicing elit. Natus error, magnam ab nemo nihil tempore voluptate harum ex quos, soluta eveniet impedit repudiandae quae? Molestiae dignissimos perferendis quaerat eos ipsum?</div> | |
<div class="center-block">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ad, eos sed iure dolore quia eum laborum mollitia illo praesentium, similique, itaque ipsam eaque fugit! Cumque distinctio laborum eum ab possimus?</div> | |
<div class="center-block">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam eius in, fugit, odio odit eum nihil adipisci veritatis voluptates eos sunt veniam earum, exercitationem optio consectetur unde est temporibus quis!</div> | |
<div class="center-block">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Tempore obcaecati vero nostrum recusandae adipisci dicta minus quas expedita. Aliquam velit recusandae qui molestiae quaerat pariatur amet? Sunt, possimus. Aut, dolor?</div> | |
<div class="center-block">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ipsa qui deserunt neque hic! Similique cupiditate unde repudiandae voluptatum maxime ipsam dolorum perferendis saepe, inventore corrupti consectetur corporis enim animi optio!</div> | |
<div class="center-block">Lorem ipsum dolor sit amet consectetur adipisicing elit. Natus error, magnam ab nemo nihil tempore voluptate harum ex quos, soluta eveniet impedit repudiandae quae? Molestiae dignissimos perferendis quaerat eos ipsum?</div> | |
<div class="center-block">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ad, eos sed iure dolore quia eum laborum mollitia illo praesentium, similique, itaque ipsam eaque fugit! Cumque distinctio laborum eum ab possimus?</div> | |
<div class="center-block">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam eius in, fugit, odio odit eum nihil adipisci veritatis voluptates eos sunt veniam earum, exercitationem optio consectetur unde est temporibus quis!</div> | |
<div class="center-block">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Tempore obcaecati vero nostrum recusandae adipisci dicta minus quas expedita. Aliquam velit recusandae qui molestiae quaerat pariatur amet? Sunt, possimus. Aut, dolor?</div> | |
<div class="center-block">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ipsa qui deserunt neque hic! Similique cupiditate unde repudiandae voluptatum maxime ipsam dolorum perferendis saepe, inventore corrupti consectetur corporis enim animi optio!</div> | |
<div class="center-block">Lorem ipsum dolor sit amet consectetur adipisicing elit. Natus error, magnam ab nemo nihil tempore voluptate harum ex quos, soluta eveniet impedit repudiandae quae? Molestiae dignissimos perferendis quaerat eos ipsum?</div> | |
<div class="center-block">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ad, eos sed iure dolore quia eum laborum mollitia illo praesentium, similique, itaque ipsam eaque fugit! Cumque distinctio laborum eum ab possimus?</div> | |
<div class="center-block">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam eius in, fugit, odio odit eum nihil adipisci veritatis voluptates eos sunt veniam earum, exercitationem optio consectetur unde est temporibus quis!</div> | |
<div class="center-block">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Tempore obcaecati vero nostrum recusandae adipisci dicta minus quas expedita. Aliquam velit recusandae qui molestiae quaerat pariatur amet? Sunt, possimus. Aut, dolor?</div> | |
<script> | |
const { ipcRenderer } = require('electron'); | |
const ul = document.querySelector('ul'); | |
ipcRenderer.on('item:add', (e, item) => { | |
const li = document.createElement('li'); | |
const itemText = document.createTextNode(item); | |
li.appendChild(itemText); | |
ul.appendChild(li); | |
}); | |
ipcRenderer.on('item:clear', () => { | |
ul.innerHTML = ''; | |
}) | |
ul.addEventListener('dblclick', (e) => { | |
e.target.remove(); | |
}); | |
</script> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "testelectron", | |
"version": "1.0.0", | |
"lockfileVersion": 1, | |
"requires": true, | |
"dependencies": { | |
"@electron/get": { | |
"version": "1.9.0", | |
"resolved": "https://registry.npmjs.org/@electron/get/-/get-1.9.0.tgz", | |
"integrity": "sha512-OBIKtF6ttIJotDXe4KJMUyTBO4xMii+mFjlA8R4CORuD4HvCUaCK3lPjhdTRCvuEv6gzWNbAvd9DNBv0v780lw==", | |
"requires": { | |
"debug": "^4.1.1", | |
"env-paths": "^2.2.0", | |
"fs-extra": "^8.1.0", | |
"global-agent": "^2.0.2", | |
"global-tunnel-ng": "^2.7.1", | |
"got": "^9.6.0", | |
"progress": "^2.0.3", | |
"sanitize-filename": "^1.6.2", | |
"sumchecker": "^3.0.1" | |
} | |
}, | |
"@sindresorhus/is": { | |
"version": "0.14.0", | |
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", | |
"integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" | |
}, | |
"@szmarczak/http-timer": { | |
"version": "1.1.2", | |
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", | |
"integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", | |
"requires": { | |
"defer-to-connect": "^1.0.1" | |
} | |
}, | |
"@types/node": { | |
"version": "12.12.34", | |
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.34.tgz", | |
"integrity": "sha512-BneGN0J9ke24lBRn44hVHNeDlrXRYF+VRp0HbSUNnEZahXGAysHZIqnf/hER6aabdBgzM4YOV4jrR8gj4Zfi0g==" | |
}, | |
"boolean": { | |
"version": "3.0.1", | |
"resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", | |
"integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==", | |
"optional": true | |
}, | |
"buffer-crc32": { | |
"version": "0.2.13", | |
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", | |
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" | |
}, | |
"buffer-from": { | |
"version": "1.1.1", | |
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", | |
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" | |
}, | |
"cacheable-request": { | |
"version": "6.1.0", | |
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", | |
"integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", | |
"requires": { | |
"clone-response": "^1.0.2", | |
"get-stream": "^5.1.0", | |
"http-cache-semantics": "^4.0.0", | |
"keyv": "^3.0.0", | |
"lowercase-keys": "^2.0.0", | |
"normalize-url": "^4.1.0", | |
"responselike": "^1.0.2" | |
}, | |
"dependencies": { | |
"get-stream": { | |
"version": "5.1.0", | |
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", | |
"integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", | |
"requires": { | |
"pump": "^3.0.0" | |
} | |
}, | |
"lowercase-keys": { | |
"version": "2.0.0", | |
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", | |
"integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" | |
} | |
} | |
}, | |
"clone-response": { | |
"version": "1.0.2", | |
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", | |
"integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", | |
"requires": { | |
"mimic-response": "^1.0.0" | |
} | |
}, | |
"concat-stream": { | |
"version": "1.6.2", | |
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", | |
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", | |
"requires": { | |
"buffer-from": "^1.0.0", | |
"inherits": "^2.0.3", | |
"readable-stream": "^2.2.2", | |
"typedarray": "^0.0.6" | |
} | |
}, | |
"config-chain": { | |
"version": "1.1.12", | |
"resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", | |
"integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", | |
"optional": true, | |
"requires": { | |
"ini": "^1.3.4", | |
"proto-list": "~1.2.1" | |
} | |
}, | |
"core-js": { | |
"version": "3.6.4", | |
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", | |
"integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", | |
"optional": true | |
}, | |
"core-util-is": { | |
"version": "1.0.2", | |
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", | |
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" | |
}, | |
"debug": { | |
"version": "4.1.1", | |
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", | |
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", | |
"requires": { | |
"ms": "^2.1.1" | |
} | |
}, | |
"decompress-response": { | |
"version": "3.3.0", | |
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", | |
"integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", | |
"requires": { | |
"mimic-response": "^1.0.0" | |
} | |
}, | |
"defer-to-connect": { | |
"version": "1.1.3", | |
"resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", | |
"integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" | |
}, | |
"define-properties": { | |
"version": "1.1.3", | |
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", | |
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", | |
"optional": true, | |
"requires": { | |
"object-keys": "^1.0.12" | |
} | |
}, | |
"detect-node": { | |
"version": "2.0.4", | |
"resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", | |
"integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", | |
"optional": true | |
}, | |
"duplexer3": { | |
"version": "0.1.4", | |
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", | |
"integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" | |
}, | |
"electron": { | |
"version": "8.2.0", | |
"resolved": "https://registry.npmjs.org/electron/-/electron-8.2.0.tgz", | |
"integrity": "sha512-mnV43gKCrCUMHLmGws/DU/l8LhaxrFD53A4ofwtthdCqOZWGIdk1+eMphiVumXR5a3lC64XVvmXQ2k28i7F/zw==", | |
"requires": { | |
"@electron/get": "^1.0.1", | |
"@types/node": "^12.0.12", | |
"extract-zip": "^1.0.3" | |
} | |
}, | |
"encodeurl": { | |
"version": "1.0.2", | |
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", | |
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", | |
"optional": true | |
}, | |
"end-of-stream": { | |
"version": "1.4.4", | |
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", | |
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", | |
"requires": { | |
"once": "^1.4.0" | |
} | |
}, | |
"env-paths": { | |
"version": "2.2.0", | |
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", | |
"integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==" | |
}, | |
"es6-error": { | |
"version": "4.1.1", | |
"resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", | |
"integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", | |
"optional": true | |
}, | |
"escape-string-regexp": { | |
"version": "2.0.0", | |
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", | |
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", | |
"optional": true | |
}, | |
"extract-zip": { | |
"version": "1.7.0", | |
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", | |
"integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", | |
"requires": { | |
"concat-stream": "^1.6.2", | |
"debug": "^2.6.9", | |
"mkdirp": "^0.5.4", | |
"yauzl": "^2.10.0" | |
}, | |
"dependencies": { | |
"debug": { | |
"version": "2.6.9", | |
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | |
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | |
"requires": { | |
"ms": "2.0.0" | |
} | |
}, | |
"ms": { | |
"version": "2.0.0", | |
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | |
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" | |
} | |
} | |
}, | |
"fd-slicer": { | |
"version": "1.1.0", | |
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", | |
"integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", | |
"requires": { | |
"pend": "~1.2.0" | |
} | |
}, | |
"fs-extra": { | |
"version": "8.1.0", | |
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", | |
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", | |
"requires": { | |
"graceful-fs": "^4.2.0", | |
"jsonfile": "^4.0.0", | |
"universalify": "^0.1.0" | |
} | |
}, | |
"get-stream": { | |
"version": "4.1.0", | |
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", | |
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", | |
"requires": { | |
"pump": "^3.0.0" | |
} | |
}, | |
"global-agent": { | |
"version": "2.1.8", | |
"resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.8.tgz", | |
"integrity": "sha512-VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A==", | |
"optional": true, | |
"requires": { | |
"boolean": "^3.0.0", | |
"core-js": "^3.6.4", | |
"es6-error": "^4.1.1", | |
"matcher": "^2.1.0", | |
"roarr": "^2.15.2", | |
"semver": "^7.1.2", | |
"serialize-error": "^5.0.0" | |
} | |
}, | |
"global-tunnel-ng": { | |
"version": "2.7.1", | |
"resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", | |
"integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", | |
"optional": true, | |
"requires": { | |
"encodeurl": "^1.0.2", | |
"lodash": "^4.17.10", | |
"npm-conf": "^1.1.3", | |
"tunnel": "^0.0.6" | |
} | |
}, | |
"globalthis": { | |
"version": "1.0.1", | |
"resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", | |
"integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", | |
"optional": true, | |
"requires": { | |
"define-properties": "^1.1.3" | |
} | |
}, | |
"got": { | |
"version": "9.6.0", | |
"resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", | |
"integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", | |
"requires": { | |
"@sindresorhus/is": "^0.14.0", | |
"@szmarczak/http-timer": "^1.1.2", | |
"cacheable-request": "^6.0.0", | |
"decompress-response": "^3.3.0", | |
"duplexer3": "^0.1.4", | |
"get-stream": "^4.1.0", | |
"lowercase-keys": "^1.0.1", | |
"mimic-response": "^1.0.1", | |
"p-cancelable": "^1.0.0", | |
"to-readable-stream": "^1.0.0", | |
"url-parse-lax": "^3.0.0" | |
} | |
}, | |
"graceful-fs": { | |
"version": "4.2.3", | |
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", | |
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" | |
}, | |
"http-cache-semantics": { | |
"version": "4.1.0", | |
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", | |
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" | |
}, | |
"inherits": { | |
"version": "2.0.4", | |
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | |
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" | |
}, | |
"ini": { | |
"version": "1.3.5", | |
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", | |
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", | |
"optional": true | |
}, | |
"isarray": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | |
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" | |
}, | |
"json-buffer": { | |
"version": "3.0.0", | |
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", | |
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" | |
}, | |
"json-stringify-safe": { | |
"version": "5.0.1", | |
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", | |
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", | |
"optional": true | |
}, | |
"jsonfile": { | |
"version": "4.0.0", | |
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", | |
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", | |
"requires": { | |
"graceful-fs": "^4.1.6" | |
} | |
}, | |
"keyv": { | |
"version": "3.1.0", | |
"resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", | |
"integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", | |
"requires": { | |
"json-buffer": "3.0.0" | |
} | |
}, | |
"lodash": { | |
"version": "4.17.15", | |
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", | |
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", | |
"optional": true | |
}, | |
"lowercase-keys": { | |
"version": "1.0.1", | |
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", | |
"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" | |
}, | |
"matcher": { | |
"version": "2.1.0", | |
"resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz", | |
"integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==", | |
"optional": true, | |
"requires": { | |
"escape-string-regexp": "^2.0.0" | |
} | |
}, | |
"mimic-response": { | |
"version": "1.0.1", | |
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", | |
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" | |
}, | |
"minimist": { | |
"version": "1.2.5", | |
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", | |
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" | |
}, | |
"mkdirp": { | |
"version": "0.5.4", | |
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", | |
"integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", | |
"requires": { | |
"minimist": "^1.2.5" | |
} | |
}, | |
"ms": { | |
"version": "2.1.2", | |
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | |
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | |
}, | |
"normalize-url": { | |
"version": "4.5.0", | |
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", | |
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" | |
}, | |
"npm-conf": { | |
"version": "1.1.3", | |
"resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", | |
"integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", | |
"optional": true, | |
"requires": { | |
"config-chain": "^1.1.11", | |
"pify": "^3.0.0" | |
} | |
}, | |
"object-keys": { | |
"version": "1.1.1", | |
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", | |
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", | |
"optional": true | |
}, | |
"once": { | |
"version": "1.4.0", | |
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | |
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", | |
"requires": { | |
"wrappy": "1" | |
} | |
}, | |
"p-cancelable": { | |
"version": "1.1.0", | |
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", | |
"integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" | |
}, | |
"pend": { | |
"version": "1.2.0", | |
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", | |
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" | |
}, | |
"pify": { | |
"version": "3.0.0", | |
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", | |
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", | |
"optional": true | |
}, | |
"prepend-http": { | |
"version": "2.0.0", | |
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", | |
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" | |
}, | |
"process-nextick-args": { | |
"version": "2.0.1", | |
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", | |
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" | |
}, | |
"progress": { | |
"version": "2.0.3", | |
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", | |
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" | |
}, | |
"proto-list": { | |
"version": "1.2.4", | |
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", | |
"integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", | |
"optional": true | |
}, | |
"pump": { | |
"version": "3.0.0", | |
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", | |
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", | |
"requires": { | |
"end-of-stream": "^1.1.0", | |
"once": "^1.3.1" | |
} | |
}, | |
"readable-stream": { | |
"version": "2.3.7", | |
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", | |
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", | |
"requires": { | |
"core-util-is": "~1.0.0", | |
"inherits": "~2.0.3", | |
"isarray": "~1.0.0", | |
"process-nextick-args": "~2.0.0", | |
"safe-buffer": "~5.1.1", | |
"string_decoder": "~1.1.1", | |
"util-deprecate": "~1.0.1" | |
} | |
}, | |
"responselike": { | |
"version": "1.0.2", | |
"resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", | |
"integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", | |
"requires": { | |
"lowercase-keys": "^1.0.0" | |
} | |
}, | |
"roarr": { | |
"version": "2.15.3", | |
"resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz", | |
"integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==", | |
"optional": true, | |
"requires": { | |
"boolean": "^3.0.0", | |
"detect-node": "^2.0.4", | |
"globalthis": "^1.0.1", | |
"json-stringify-safe": "^5.0.1", | |
"semver-compare": "^1.0.0", | |
"sprintf-js": "^1.1.2" | |
} | |
}, | |
"safe-buffer": { | |
"version": "5.1.2", | |
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | |
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | |
}, | |
"sanitize-filename": { | |
"version": "1.6.3", | |
"resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", | |
"integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", | |
"requires": { | |
"truncate-utf8-bytes": "^1.0.0" | |
} | |
}, | |
"semver": { | |
"version": "7.1.3", | |
"resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", | |
"integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", | |
"optional": true | |
}, | |
"semver-compare": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", | |
"integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", | |
"optional": true | |
}, | |
"serialize-error": { | |
"version": "5.0.0", | |
"resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", | |
"integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", | |
"optional": true, | |
"requires": { | |
"type-fest": "^0.8.0" | |
} | |
}, | |
"sprintf-js": { | |
"version": "1.1.2", | |
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", | |
"integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", | |
"optional": true | |
}, | |
"string_decoder": { | |
"version": "1.1.1", | |
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | |
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | |
"requires": { | |
"safe-buffer": "~5.1.0" | |
} | |
}, | |
"sumchecker": { | |
"version": "3.0.1", | |
"resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", | |
"integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", | |
"requires": { | |
"debug": "^4.1.0" | |
} | |
}, | |
"to-readable-stream": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", | |
"integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" | |
}, | |
"truncate-utf8-bytes": { | |
"version": "1.0.2", | |
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", | |
"integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", | |
"requires": { | |
"utf8-byte-length": "^1.0.1" | |
} | |
}, | |
"tunnel": { | |
"version": "0.0.6", | |
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", | |
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", | |
"optional": true | |
}, | |
"type-fest": { | |
"version": "0.8.1", | |
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", | |
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", | |
"optional": true | |
}, | |
"typedarray": { | |
"version": "0.0.6", | |
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", | |
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" | |
}, | |
"universalify": { | |
"version": "0.1.2", | |
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", | |
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" | |
}, | |
"url-parse-lax": { | |
"version": "3.0.0", | |
"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", | |
"integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", | |
"requires": { | |
"prepend-http": "^2.0.0" | |
} | |
}, | |
"utf8-byte-length": { | |
"version": "1.0.4", | |
"resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", | |
"integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" | |
}, | |
"util-deprecate": { | |
"version": "1.0.2", | |
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | |
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" | |
}, | |
"wrappy": { | |
"version": "1.0.2", | |
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | |
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" | |
}, | |
"yauzl": { | |
"version": "2.10.0", | |
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", | |
"integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", | |
"requires": { | |
"buffer-crc32": "~0.2.3", | |
"fd-slicer": "~1.1.0" | |
} | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "testelectron", | |
"version": "1.0.0", | |
"description": "", | |
"main": "main.js", | |
"scripts": { | |
"start": "electron ." | |
}, | |
"author": "", | |
"license": "ISC", | |
"dependencies": { | |
"electron": "^8.2.0" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment