main.cjs
1 const { protocol } = require('electron') 2 const path = require('path') 3 const { pathToFileURL } = require('url') 4 5 const P2P_PRIVILEGES = { 6 standard: true, 7 secure: true, 8 allowServiceWorkers: true, 9 supportFetchAPI: true, 10 bypassCSP: false, 11 corsEnabled: true, 12 stream: true 13 } 14 15 const BROWSER_PRIVILEGES = { 16 standard: false, 17 secure: true, 18 allowServiceWorkers: false, 19 supportFetchAPI: true, 20 bypassCSP: false, 21 corsEnabled: true 22 } 23 24 const LOW_PRIVILEGES = { 25 standard: false, 26 secure: false, 27 allowServiceWorkers: false, 28 supportFetchAPI: false, 29 bypassCSP: false, 30 corsEnabled: true 31 } 32 33 protocol.registerSchemesAsPrivileged([ 34 { scheme: 'https+raw', privileges: P2P_PRIVILEGES }, 35 { scheme: 'hyper', privileges: P2P_PRIVILEGES }, 36 { scheme: 'gemini', privileges: P2P_PRIVILEGES }, 37 { scheme: 'ipfs', privileges: P2P_PRIVILEGES }, 38 { scheme: 'ipns', privileges: P2P_PRIVILEGES }, 39 { scheme: 'ipld', privileges: P2P_PRIVILEGES }, 40 { scheme: 'pubsub', privileges: P2P_PRIVILEGES }, 41 { scheme: 'bittorrent', privileges: P2P_PRIVILEGES }, 42 { scheme: 'bt', privileges: P2P_PRIVILEGES }, 43 { scheme: 'ssb', privileges: P2P_PRIVILEGES }, 44 { scheme: 'agregore', privileges: BROWSER_PRIVILEGES }, 45 { scheme: 'magnet', privileges: LOW_PRIVILEGES } 46 ]) 47 48 const indexFile = path.join(__dirname, 'index.js') 49 .replace(`.asar${path.sep}`, `.asar.unpacked${path.sep}`) 50 51 import(pathToFileURL(indexFile)).catch((e) => { 52 console.error(e.stack) 53 process.exit(1) 54 })