mirror of
				https://github.com/tobspr/shapez.io.git
				synced 2025-06-13 13:04:03 +00:00 
			
		
		
		
	Prepare standalone build
This commit is contained in:
		
							parent
							
								
									f370b52ff3
								
							
						
					
					
						commit
						70c60cc744
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -107,4 +107,6 @@ dist | ||||
| # Buildfiles | ||||
| build | ||||
| 
 | ||||
| tmp_standalone_files | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								artwork/icon-standalone.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								artwork/icon-standalone.ico
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 103 KiB | 
							
								
								
									
										
											BIN
										
									
								
								artwork/icon-standalone.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								artwork/icon-standalone.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 14 KiB | 
							
								
								
									
										
											BIN
										
									
								
								artwork/icon-standalone.psd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								artwork/icon-standalone.psd
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										13
									
								
								electron/electron.code-workspace
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								electron/electron.code-workspace
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| { | ||||
| 	"folders": [ | ||||
| 		{ | ||||
| 			"path": "." | ||||
| 		} | ||||
| 	], | ||||
| 	"settings": { | ||||
| 		"files.exclude": { | ||||
| 			"**/node_modules": true, | ||||
| 			"**/typedefs_gen": true | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								electron/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								electron/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 103 KiB | 
							
								
								
									
										
											BIN
										
									
								
								electron/favicon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								electron/favicon.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 14 KiB | 
							
								
								
									
										228
									
								
								electron/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										228
									
								
								electron/index.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,228 @@ | ||||
| /* eslint-disable quotes,no-undef */ | ||||
| 
 | ||||
| const { app, BrowserWindow, Menu, MenuItem, session } = require("electron"); | ||||
| const path = require("path"); | ||||
| const url = require("url"); | ||||
| const childProcess = require("child_process"); | ||||
| const { ipcMain } = require("electron"); | ||||
| const fs = require("fs"); | ||||
| const isDev = process.argv.indexOf("--dev") >= 0; | ||||
| const isLocal = process.argv.indexOf("--local") >= 0; | ||||
| 
 | ||||
| const roamingFolder = | ||||
|     process.env.APPDATA || | ||||
|     (process.platform == "darwin" | ||||
|         ? process.env.HOME + "/Library/Preferences" | ||||
|         : process.env.HOME + "/.local/share"); | ||||
| let storePath = path.join(roamingFolder, "shapez.io", "saves"); | ||||
| 
 | ||||
| if (!fs.existsSync(storePath)) { | ||||
|     // No try-catch by design
 | ||||
|     fs.mkdirSync(storePath, { recursive: true }); | ||||
| } | ||||
| 
 | ||||
| /** @type {BrowserWindow} */ | ||||
| let win = null; | ||||
| let menu = null; | ||||
| 
 | ||||
| function createWindow() { | ||||
|     let faviconExtension = ".png"; | ||||
|     if (process.platform === "win32") { | ||||
|         faviconExtension = ".ico"; | ||||
|     } | ||||
| 
 | ||||
|     win = new BrowserWindow({ | ||||
|         width: 1280, | ||||
|         height: 800, | ||||
|         show: false, | ||||
|         backgroundColor: "#222428", | ||||
|         useContentSize: true, | ||||
|         minWidth: 800, | ||||
|         minHeight: 600, | ||||
|         title: "shapez.io Standalone", | ||||
|         transparent: false, | ||||
|         icon: path.join(__dirname, "favicon" + faviconExtension), | ||||
|         // fullscreen: true,
 | ||||
|         autoHideMenuBar: true, | ||||
|         webPreferences: { | ||||
|             nodeIntegration: true, | ||||
|             webSecurity: false, | ||||
|         }, | ||||
|         allowRunningInsecureContent: false, | ||||
|     }); | ||||
| 
 | ||||
|     if (isLocal) { | ||||
|         win.loadURL("http://localhost:3005"); | ||||
|     } else { | ||||
|         win.loadURL( | ||||
|             url.format({ | ||||
|                 pathname: path.join(__dirname, "index.html"), | ||||
|                 protocol: "file:", | ||||
|                 slashes: true, | ||||
|             }) | ||||
|         ); | ||||
|     } | ||||
|     win.webContents.session.clearCache(); | ||||
|     win.webContents.session.clearStorageData(); | ||||
| 
 | ||||
|     win.webContents.on("new-window", (event, pth) => { | ||||
|         event.preventDefault(); | ||||
|         if (process.platform == "win32") { | ||||
|             childProcess.execSync("start " + pth); | ||||
|         } else if (process.platform == "linux") { | ||||
|             childProcess.execSync("xdg-open " + pth); | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     win.on("closed", () => { | ||||
|         console.log("Window closed"); | ||||
|         win = null; | ||||
|         app.quit(); | ||||
|     }); | ||||
| 
 | ||||
|     function handleWindowBeforeunload(event) { | ||||
|         const confirmed = dialog.showMessageBox(remote.getCurrentWindow(), options) === 1; | ||||
|         if (confirmed) { | ||||
|             remote.getCurrentWindow().close(); | ||||
|         } else { | ||||
|             event.returnValue = false; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     win.on("", handleWindowBeforeunload); | ||||
| 
 | ||||
|     if (isDev) { | ||||
|         menu = new Menu(); | ||||
| 
 | ||||
|         const mainItem = new MenuItem({ | ||||
|             label: "Toggle Dev Tools", | ||||
|             click: () => win.toggleDevTools(), | ||||
|             accelerator: "F12", | ||||
|         }); | ||||
|         menu.append(mainItem); | ||||
| 
 | ||||
|         const reloadItem = new MenuItem({ | ||||
|             label: "Restart", | ||||
|             click: () => win.reload(), | ||||
|             accelerator: "F5", | ||||
|         }); | ||||
|         menu.append(reloadItem); | ||||
| 
 | ||||
|         const fullscreenItem = new MenuItem({ | ||||
|             label: "Fullscreen", | ||||
|             click: () => win.setFullScreen(!win.isFullScreen()), | ||||
|             accelerator: "F11", | ||||
|         }); | ||||
|         menu.append(fullscreenItem); | ||||
| 
 | ||||
|         Menu.setApplicationMenu(menu); | ||||
|     } else { | ||||
|         Menu.setApplicationMenu(null); | ||||
|     } | ||||
| 
 | ||||
|     win.once("ready-to-show", () => { | ||||
|         win.show(); | ||||
|         win.focus(); | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| if (!app.requestSingleInstanceLock()) { | ||||
|     app.exit(0); | ||||
| } else { | ||||
|     app.on("second-instance", (event, commandLine, workingDirectory) => { | ||||
|         // Someone tried to run a second instance, we should focus
 | ||||
|         if (win) { | ||||
|             if (win.isMinimized()) { | ||||
|                 win.restore(); | ||||
|             } | ||||
|             win.focus(); | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| app.on("ready", createWindow); | ||||
| 
 | ||||
| app.on("window-all-closed", () => { | ||||
|     console.log("All windows closed"); | ||||
|     app.quit(); | ||||
| }); | ||||
| 
 | ||||
| ipcMain.on("set-fullscreen", (event, flag) => { | ||||
|     win.setFullScreen(flag); | ||||
| }); | ||||
| 
 | ||||
| ipcMain.on("exit-app", (event, flag) => { | ||||
|     win.close(); | ||||
|     app.quit(); | ||||
| }); | ||||
| 
 | ||||
| function performFsJob(job) { | ||||
|     const fname = path.join(storePath, job.filename); | ||||
| 
 | ||||
|     switch (job.type) { | ||||
|         case "read": { | ||||
|             if (!fs.existsSync(fname)) { | ||||
|                 return { | ||||
|                     // Special FILE_NOT_FOUND error code
 | ||||
|                     error: "file_not_found", | ||||
|                 }; | ||||
|             } | ||||
| 
 | ||||
|             let contents = ""; | ||||
|             try { | ||||
|                 contents = fs.readFileSync(fname, { encoding: "utf8" }); | ||||
|             } catch (ex) { | ||||
|                 return { | ||||
|                     error: ex, | ||||
|                 }; | ||||
|             } | ||||
| 
 | ||||
|             return { | ||||
|                 success: true, | ||||
|                 data: contents, | ||||
|             }; | ||||
|         } | ||||
|         case "write": { | ||||
|             try { | ||||
|                 fs.writeFileSync(fname, job.contents); | ||||
|             } catch (ex) { | ||||
|                 return { | ||||
|                     error: ex, | ||||
|                 }; | ||||
|             } | ||||
| 
 | ||||
|             return { | ||||
|                 success: true, | ||||
|                 data: job.contents, | ||||
|             }; | ||||
|         } | ||||
| 
 | ||||
|         case "delete": { | ||||
|             try { | ||||
|                 fs.unlinkSync(fname); | ||||
|             } catch (ex) { | ||||
|                 return { | ||||
|                     error: ex, | ||||
|                 }; | ||||
|             } | ||||
| 
 | ||||
|             return { | ||||
|                 success: true, | ||||
|                 data: null, | ||||
|             }; | ||||
|         } | ||||
| 
 | ||||
|         default: | ||||
|             throw new Error("Unkown fs job: " + job.type); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| ipcMain.on("fs-job", (event, arg) => { | ||||
|     const result = performFsJob(arg); | ||||
|     event.reply("fs-response", { id: arg.id, result }); | ||||
| }); | ||||
| 
 | ||||
| ipcMain.on("fs-sync-job", (event, arg) => { | ||||
|     const result = performFsJob(arg); | ||||
|     event.returnValue = result; | ||||
| }); | ||||
							
								
								
									
										16
									
								
								electron/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								electron/package.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | ||||
| { | ||||
|     "name": "electron", | ||||
|     "version": "1.0.0", | ||||
|     "main": "index.js", | ||||
|     "license": "MIT", | ||||
|     "private": true, | ||||
|     "scripts": { | ||||
|         "startDev": "electron --disable-direct-composition --in-process-gpu . --dev --local", | ||||
|         "startDevGpu": "electron --enable-gpu-rasterization --enable-accelerated-2d-canvas --num-raster-threads=8 --enable-zero-copy . --dev --local", | ||||
|         "start": "electron --disable-direct-composition --in-process-gpu ." | ||||
|     }, | ||||
|     "devDependencies": { | ||||
|         "electron": "^6.1.12" | ||||
|     }, | ||||
|     "dependencies": {} | ||||
| } | ||||
							
								
								
									
										1
									
								
								electron/steam_appid.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								electron/steam_appid.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| 1134480 | ||||
							
								
								
									
										961
									
								
								electron/yarn.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										961
									
								
								electron/yarn.lock
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,961 @@ | ||||
| # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. | ||||
| # yarn lockfile v1 | ||||
| 
 | ||||
| 
 | ||||
| "@types/node@^10.12.18": | ||||
|   version "10.17.24" | ||||
|   resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.24.tgz#c57511e3a19c4b5e9692bb2995c40a3a52167944" | ||||
|   integrity sha512-5SCfvCxV74kzR3uWgTYiGxrd69TbT1I6+cMx1A5kEly/IVveJBimtAMlXiEyVFn5DvUFewQWxOOiJhlxeQwxgA== | ||||
| 
 | ||||
| ajv@^6.5.5: | ||||
|   version "6.12.2" | ||||
|   resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" | ||||
|   integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== | ||||
|   dependencies: | ||||
|     fast-deep-equal "^3.1.1" | ||||
|     fast-json-stable-stringify "^2.0.0" | ||||
|     json-schema-traverse "^0.4.1" | ||||
|     uri-js "^4.2.2" | ||||
| 
 | ||||
| ansi-regex@^2.0.0: | ||||
|   version "2.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" | ||||
|   integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= | ||||
| 
 | ||||
| array-find-index@^1.0.1: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" | ||||
|   integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= | ||||
| 
 | ||||
| asn1@~0.2.3: | ||||
|   version "0.2.4" | ||||
|   resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" | ||||
|   integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== | ||||
|   dependencies: | ||||
|     safer-buffer "~2.1.0" | ||||
| 
 | ||||
| assert-plus@1.0.0, assert-plus@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" | ||||
|   integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= | ||||
| 
 | ||||
| asynckit@^0.4.0: | ||||
|   version "0.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" | ||||
|   integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= | ||||
| 
 | ||||
| aws-sign2@~0.7.0: | ||||
|   version "0.7.0" | ||||
|   resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" | ||||
|   integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= | ||||
| 
 | ||||
| aws4@^1.8.0: | ||||
|   version "1.9.1" | ||||
|   resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" | ||||
|   integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== | ||||
| 
 | ||||
| bcrypt-pbkdf@^1.0.0: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" | ||||
|   integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= | ||||
|   dependencies: | ||||
|     tweetnacl "^0.14.3" | ||||
| 
 | ||||
| buffer-from@^1.0.0: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" | ||||
|   integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== | ||||
| 
 | ||||
| camelcase-keys@^2.0.0: | ||||
|   version "2.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" | ||||
|   integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= | ||||
|   dependencies: | ||||
|     camelcase "^2.0.0" | ||||
|     map-obj "^1.0.0" | ||||
| 
 | ||||
| camelcase@^2.0.0: | ||||
|   version "2.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" | ||||
|   integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= | ||||
| 
 | ||||
| caseless@~0.12.0: | ||||
|   version "0.12.0" | ||||
|   resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" | ||||
|   integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= | ||||
| 
 | ||||
| code-point-at@^1.0.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" | ||||
|   integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= | ||||
| 
 | ||||
| combined-stream@^1.0.6, combined-stream@~1.0.6: | ||||
|   version "1.0.8" | ||||
|   resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" | ||||
|   integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== | ||||
|   dependencies: | ||||
|     delayed-stream "~1.0.0" | ||||
| 
 | ||||
| concat-stream@1.6.2: | ||||
|   version "1.6.2" | ||||
|   resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" | ||||
|   integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== | ||||
|   dependencies: | ||||
|     buffer-from "^1.0.0" | ||||
|     inherits "^2.0.3" | ||||
|     readable-stream "^2.2.2" | ||||
|     typedarray "^0.0.6" | ||||
| 
 | ||||
| core-util-is@1.0.2, core-util-is@~1.0.0: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" | ||||
|   integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= | ||||
| 
 | ||||
| currently-unhandled@^0.4.1: | ||||
|   version "0.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" | ||||
|   integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= | ||||
|   dependencies: | ||||
|     array-find-index "^1.0.1" | ||||
| 
 | ||||
| dashdash@^1.12.0: | ||||
|   version "1.14.1" | ||||
|   resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" | ||||
|   integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= | ||||
|   dependencies: | ||||
|     assert-plus "^1.0.0" | ||||
| 
 | ||||
| debug@2.6.9, debug@^2.1.3, debug@^2.2.0: | ||||
|   version "2.6.9" | ||||
|   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" | ||||
|   integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== | ||||
|   dependencies: | ||||
|     ms "2.0.0" | ||||
| 
 | ||||
| debug@^3.0.0: | ||||
|   version "3.2.6" | ||||
|   resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" | ||||
|   integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== | ||||
|   dependencies: | ||||
|     ms "^2.1.1" | ||||
| 
 | ||||
| decamelize@^1.1.2: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" | ||||
|   integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= | ||||
| 
 | ||||
| deep-extend@^0.6.0: | ||||
|   version "0.6.0" | ||||
|   resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" | ||||
|   integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== | ||||
| 
 | ||||
| delayed-stream@~1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" | ||||
|   integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= | ||||
| 
 | ||||
| ecc-jsbn@~0.1.1: | ||||
|   version "0.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" | ||||
|   integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= | ||||
|   dependencies: | ||||
|     jsbn "~0.1.0" | ||||
|     safer-buffer "^2.1.0" | ||||
| 
 | ||||
| electron-download@^4.1.0: | ||||
|   version "4.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-4.1.1.tgz#02e69556705cc456e520f9e035556ed5a015ebe8" | ||||
|   integrity sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg== | ||||
|   dependencies: | ||||
|     debug "^3.0.0" | ||||
|     env-paths "^1.0.0" | ||||
|     fs-extra "^4.0.1" | ||||
|     minimist "^1.2.0" | ||||
|     nugget "^2.0.1" | ||||
|     path-exists "^3.0.0" | ||||
|     rc "^1.2.1" | ||||
|     semver "^5.4.1" | ||||
|     sumchecker "^2.0.2" | ||||
| 
 | ||||
| electron@^6.1.12: | ||||
|   version "6.1.12" | ||||
|   resolved "https://registry.yarnpkg.com/electron/-/electron-6.1.12.tgz#a7aee6dfa75b57f32b3645ef8e14dcef6d5f31a9" | ||||
|   integrity sha512-RUPM8xJfTcm53V9EKMBhvpLu1+CQkmuvWDmVCypR5XbUG1OOrOLiKl0CqUZ9+tEDuOmC+DmzmJP2MZXScBU5IA== | ||||
|   dependencies: | ||||
|     "@types/node" "^10.12.18" | ||||
|     electron-download "^4.1.0" | ||||
|     extract-zip "^1.0.3" | ||||
| 
 | ||||
| env-paths@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" | ||||
|   integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= | ||||
| 
 | ||||
| error-ex@^1.2.0: | ||||
|   version "1.3.2" | ||||
|   resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" | ||||
|   integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== | ||||
|   dependencies: | ||||
|     is-arrayish "^0.2.1" | ||||
| 
 | ||||
| extend@~3.0.2: | ||||
|   version "3.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" | ||||
|   integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== | ||||
| 
 | ||||
| extract-zip@^1.0.3: | ||||
|   version "1.6.7" | ||||
|   resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" | ||||
|   integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= | ||||
|   dependencies: | ||||
|     concat-stream "1.6.2" | ||||
|     debug "2.6.9" | ||||
|     mkdirp "0.5.1" | ||||
|     yauzl "2.4.1" | ||||
| 
 | ||||
| extsprintf@1.3.0: | ||||
|   version "1.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" | ||||
|   integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= | ||||
| 
 | ||||
| extsprintf@^1.2.0: | ||||
|   version "1.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" | ||||
|   integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= | ||||
| 
 | ||||
| fast-deep-equal@^3.1.1: | ||||
|   version "3.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" | ||||
|   integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== | ||||
| 
 | ||||
| fast-json-stable-stringify@^2.0.0: | ||||
|   version "2.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" | ||||
|   integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== | ||||
| 
 | ||||
| fd-slicer@~1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" | ||||
|   integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= | ||||
|   dependencies: | ||||
|     pend "~1.2.0" | ||||
| 
 | ||||
| find-up@^1.0.0: | ||||
|   version "1.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" | ||||
|   integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= | ||||
|   dependencies: | ||||
|     path-exists "^2.0.0" | ||||
|     pinkie-promise "^2.0.0" | ||||
| 
 | ||||
| forever-agent@~0.6.1: | ||||
|   version "0.6.1" | ||||
|   resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" | ||||
|   integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= | ||||
| 
 | ||||
| form-data@~2.3.2: | ||||
|   version "2.3.3" | ||||
|   resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" | ||||
|   integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== | ||||
|   dependencies: | ||||
|     asynckit "^0.4.0" | ||||
|     combined-stream "^1.0.6" | ||||
|     mime-types "^2.1.12" | ||||
| 
 | ||||
| fs-extra@^4.0.1: | ||||
|   version "4.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" | ||||
|   integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== | ||||
|   dependencies: | ||||
|     graceful-fs "^4.1.2" | ||||
|     jsonfile "^4.0.0" | ||||
|     universalify "^0.1.0" | ||||
| 
 | ||||
| get-stdin@^4.0.1: | ||||
|   version "4.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" | ||||
|   integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= | ||||
| 
 | ||||
| getpass@^0.1.1: | ||||
|   version "0.1.7" | ||||
|   resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" | ||||
|   integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= | ||||
|   dependencies: | ||||
|     assert-plus "^1.0.0" | ||||
| 
 | ||||
| graceful-fs@^4.1.2: | ||||
|   version "4.2.4" | ||||
|   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" | ||||
|   integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== | ||||
| 
 | ||||
| graceful-fs@^4.1.6: | ||||
|   version "4.2.2" | ||||
|   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" | ||||
|   integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== | ||||
| 
 | ||||
| har-schema@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" | ||||
|   integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= | ||||
| 
 | ||||
| har-validator@~5.1.3: | ||||
|   version "5.1.3" | ||||
|   resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" | ||||
|   integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== | ||||
|   dependencies: | ||||
|     ajv "^6.5.5" | ||||
|     har-schema "^2.0.0" | ||||
| 
 | ||||
| hosted-git-info@^2.1.4: | ||||
|   version "2.8.8" | ||||
|   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" | ||||
|   integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== | ||||
| 
 | ||||
| http-signature@~1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" | ||||
|   integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= | ||||
|   dependencies: | ||||
|     assert-plus "^1.0.0" | ||||
|     jsprim "^1.2.2" | ||||
|     sshpk "^1.7.0" | ||||
| 
 | ||||
| indent-string@^2.1.0: | ||||
|   version "2.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" | ||||
|   integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= | ||||
|   dependencies: | ||||
|     repeating "^2.0.0" | ||||
| 
 | ||||
| inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: | ||||
|   version "2.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" | ||||
|   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== | ||||
| 
 | ||||
| ini@~1.3.0: | ||||
|   version "1.3.5" | ||||
|   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" | ||||
|   integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== | ||||
| 
 | ||||
| is-arrayish@^0.2.1: | ||||
|   version "0.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" | ||||
|   integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= | ||||
| 
 | ||||
| is-finite@^1.0.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" | ||||
|   integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== | ||||
| 
 | ||||
| is-fullwidth-code-point@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" | ||||
|   integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= | ||||
|   dependencies: | ||||
|     number-is-nan "^1.0.0" | ||||
| 
 | ||||
| is-typedarray@~1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" | ||||
|   integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= | ||||
| 
 | ||||
| is-utf8@^0.2.0: | ||||
|   version "0.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" | ||||
|   integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= | ||||
| 
 | ||||
| isarray@0.0.1: | ||||
|   version "0.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" | ||||
|   integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= | ||||
| 
 | ||||
| isarray@~1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" | ||||
|   integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= | ||||
| 
 | ||||
| isstream@~0.1.2: | ||||
|   version "0.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" | ||||
|   integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= | ||||
| 
 | ||||
| jsbn@~0.1.0: | ||||
|   version "0.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" | ||||
|   integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= | ||||
| 
 | ||||
| json-schema-traverse@^0.4.1: | ||||
|   version "0.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" | ||||
|   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== | ||||
| 
 | ||||
| json-schema@0.2.3: | ||||
|   version "0.2.3" | ||||
|   resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" | ||||
|   integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= | ||||
| 
 | ||||
| json-stringify-safe@~5.0.1: | ||||
|   version "5.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" | ||||
|   integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= | ||||
| 
 | ||||
| jsonfile@^4.0.0: | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" | ||||
|   integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= | ||||
|   optionalDependencies: | ||||
|     graceful-fs "^4.1.6" | ||||
| 
 | ||||
| jsprim@^1.2.2: | ||||
|   version "1.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" | ||||
|   integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= | ||||
|   dependencies: | ||||
|     assert-plus "1.0.0" | ||||
|     extsprintf "1.3.0" | ||||
|     json-schema "0.2.3" | ||||
|     verror "1.10.0" | ||||
| 
 | ||||
| load-json-file@^1.0.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" | ||||
|   integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= | ||||
|   dependencies: | ||||
|     graceful-fs "^4.1.2" | ||||
|     parse-json "^2.2.0" | ||||
|     pify "^2.0.0" | ||||
|     pinkie-promise "^2.0.0" | ||||
|     strip-bom "^2.0.0" | ||||
| 
 | ||||
| loud-rejection@^1.0.0: | ||||
|   version "1.6.0" | ||||
|   resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" | ||||
|   integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= | ||||
|   dependencies: | ||||
|     currently-unhandled "^0.4.1" | ||||
|     signal-exit "^3.0.0" | ||||
| 
 | ||||
| map-obj@^1.0.0, map-obj@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" | ||||
|   integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= | ||||
| 
 | ||||
| meow@^3.1.0: | ||||
|   version "3.7.0" | ||||
|   resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" | ||||
|   integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= | ||||
|   dependencies: | ||||
|     camelcase-keys "^2.0.0" | ||||
|     decamelize "^1.1.2" | ||||
|     loud-rejection "^1.0.0" | ||||
|     map-obj "^1.0.1" | ||||
|     minimist "^1.1.3" | ||||
|     normalize-package-data "^2.3.4" | ||||
|     object-assign "^4.0.1" | ||||
|     read-pkg-up "^1.0.1" | ||||
|     redent "^1.0.0" | ||||
|     trim-newlines "^1.0.0" | ||||
| 
 | ||||
| mime-db@1.44.0: | ||||
|   version "1.44.0" | ||||
|   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" | ||||
|   integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== | ||||
| 
 | ||||
| mime-types@^2.1.12, mime-types@~2.1.19: | ||||
|   version "2.1.27" | ||||
|   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" | ||||
|   integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== | ||||
|   dependencies: | ||||
|     mime-db "1.44.0" | ||||
| 
 | ||||
| minimist@0.0.8: | ||||
|   version "0.0.8" | ||||
|   resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" | ||||
|   integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= | ||||
| 
 | ||||
| minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: | ||||
|   version "1.2.5" | ||||
|   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" | ||||
|   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== | ||||
| 
 | ||||
| mkdirp@0.5.1: | ||||
|   version "0.5.1" | ||||
|   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" | ||||
|   integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= | ||||
|   dependencies: | ||||
|     minimist "0.0.8" | ||||
| 
 | ||||
| ms@2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" | ||||
|   integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= | ||||
| 
 | ||||
| ms@^2.1.1: | ||||
|   version "2.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" | ||||
|   integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== | ||||
| 
 | ||||
| normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: | ||||
|   version "2.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" | ||||
|   integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== | ||||
|   dependencies: | ||||
|     hosted-git-info "^2.1.4" | ||||
|     resolve "^1.10.0" | ||||
|     semver "2 || 3 || 4 || 5" | ||||
|     validate-npm-package-license "^3.0.1" | ||||
| 
 | ||||
| nugget@^2.0.1: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" | ||||
|   integrity sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA= | ||||
|   dependencies: | ||||
|     debug "^2.1.3" | ||||
|     minimist "^1.1.0" | ||||
|     pretty-bytes "^1.0.2" | ||||
|     progress-stream "^1.1.0" | ||||
|     request "^2.45.0" | ||||
|     single-line-log "^1.1.2" | ||||
|     throttleit "0.0.2" | ||||
| 
 | ||||
| number-is-nan@^1.0.0: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" | ||||
|   integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= | ||||
| 
 | ||||
| oauth-sign@~0.9.0: | ||||
|   version "0.9.0" | ||||
|   resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" | ||||
|   integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== | ||||
| 
 | ||||
| object-assign@^4.0.1: | ||||
|   version "4.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" | ||||
|   integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= | ||||
| 
 | ||||
| object-keys@~0.4.0: | ||||
|   version "0.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" | ||||
|   integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= | ||||
| 
 | ||||
| parse-json@^2.2.0: | ||||
|   version "2.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" | ||||
|   integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= | ||||
|   dependencies: | ||||
|     error-ex "^1.2.0" | ||||
| 
 | ||||
| path-exists@^2.0.0: | ||||
|   version "2.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" | ||||
|   integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= | ||||
|   dependencies: | ||||
|     pinkie-promise "^2.0.0" | ||||
| 
 | ||||
| path-exists@^3.0.0: | ||||
|   version "3.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" | ||||
|   integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= | ||||
| 
 | ||||
| path-parse@^1.0.6: | ||||
|   version "1.0.6" | ||||
|   resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" | ||||
|   integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== | ||||
| 
 | ||||
| path-type@^1.0.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" | ||||
|   integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= | ||||
|   dependencies: | ||||
|     graceful-fs "^4.1.2" | ||||
|     pify "^2.0.0" | ||||
|     pinkie-promise "^2.0.0" | ||||
| 
 | ||||
| pend@~1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" | ||||
|   integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= | ||||
| 
 | ||||
| performance-now@^2.1.0: | ||||
|   version "2.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" | ||||
|   integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= | ||||
| 
 | ||||
| pify@^2.0.0: | ||||
|   version "2.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" | ||||
|   integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= | ||||
| 
 | ||||
| pinkie-promise@^2.0.0: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" | ||||
|   integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= | ||||
|   dependencies: | ||||
|     pinkie "^2.0.0" | ||||
| 
 | ||||
| pinkie@^2.0.0: | ||||
|   version "2.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" | ||||
|   integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= | ||||
| 
 | ||||
| pretty-bytes@^1.0.2: | ||||
|   version "1.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" | ||||
|   integrity sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ= | ||||
|   dependencies: | ||||
|     get-stdin "^4.0.1" | ||||
|     meow "^3.1.0" | ||||
| 
 | ||||
| process-nextick-args@~2.0.0: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" | ||||
|   integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== | ||||
| 
 | ||||
| progress-stream@^1.1.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" | ||||
|   integrity sha1-LNPP6jO6OonJwSHsM0er6asSX3c= | ||||
|   dependencies: | ||||
|     speedometer "~0.1.2" | ||||
|     through2 "~0.2.3" | ||||
| 
 | ||||
| psl@^1.1.28: | ||||
|   version "1.8.0" | ||||
|   resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" | ||||
|   integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== | ||||
| 
 | ||||
| punycode@^2.1.0, punycode@^2.1.1: | ||||
|   version "2.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" | ||||
|   integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== | ||||
| 
 | ||||
| qs@~6.5.2: | ||||
|   version "6.5.2" | ||||
|   resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" | ||||
|   integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== | ||||
| 
 | ||||
| rc@^1.2.1: | ||||
|   version "1.2.8" | ||||
|   resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" | ||||
|   integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== | ||||
|   dependencies: | ||||
|     deep-extend "^0.6.0" | ||||
|     ini "~1.3.0" | ||||
|     minimist "^1.2.0" | ||||
|     strip-json-comments "~2.0.1" | ||||
| 
 | ||||
| read-pkg-up@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" | ||||
|   integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= | ||||
|   dependencies: | ||||
|     find-up "^1.0.0" | ||||
|     read-pkg "^1.0.0" | ||||
| 
 | ||||
| read-pkg@^1.0.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" | ||||
|   integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= | ||||
|   dependencies: | ||||
|     load-json-file "^1.0.0" | ||||
|     normalize-package-data "^2.3.2" | ||||
|     path-type "^1.0.0" | ||||
| 
 | ||||
| readable-stream@^2.2.2: | ||||
|   version "2.3.6" | ||||
|   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" | ||||
|   integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== | ||||
|   dependencies: | ||||
|     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" | ||||
| 
 | ||||
| readable-stream@~1.1.9: | ||||
|   version "1.1.14" | ||||
|   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" | ||||
|   integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= | ||||
|   dependencies: | ||||
|     core-util-is "~1.0.0" | ||||
|     inherits "~2.0.1" | ||||
|     isarray "0.0.1" | ||||
|     string_decoder "~0.10.x" | ||||
| 
 | ||||
| redent@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" | ||||
|   integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= | ||||
|   dependencies: | ||||
|     indent-string "^2.1.0" | ||||
|     strip-indent "^1.0.1" | ||||
| 
 | ||||
| repeating@^2.0.0: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" | ||||
|   integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= | ||||
|   dependencies: | ||||
|     is-finite "^1.0.0" | ||||
| 
 | ||||
| request@^2.45.0: | ||||
|   version "2.88.2" | ||||
|   resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" | ||||
|   integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== | ||||
|   dependencies: | ||||
|     aws-sign2 "~0.7.0" | ||||
|     aws4 "^1.8.0" | ||||
|     caseless "~0.12.0" | ||||
|     combined-stream "~1.0.6" | ||||
|     extend "~3.0.2" | ||||
|     forever-agent "~0.6.1" | ||||
|     form-data "~2.3.2" | ||||
|     har-validator "~5.1.3" | ||||
|     http-signature "~1.2.0" | ||||
|     is-typedarray "~1.0.0" | ||||
|     isstream "~0.1.2" | ||||
|     json-stringify-safe "~5.0.1" | ||||
|     mime-types "~2.1.19" | ||||
|     oauth-sign "~0.9.0" | ||||
|     performance-now "^2.1.0" | ||||
|     qs "~6.5.2" | ||||
|     safe-buffer "^5.1.2" | ||||
|     tough-cookie "~2.5.0" | ||||
|     tunnel-agent "^0.6.0" | ||||
|     uuid "^3.3.2" | ||||
| 
 | ||||
| resolve@^1.10.0: | ||||
|   version "1.17.0" | ||||
|   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" | ||||
|   integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== | ||||
|   dependencies: | ||||
|     path-parse "^1.0.6" | ||||
| 
 | ||||
| safe-buffer@^5.0.1, safe-buffer@^5.1.2: | ||||
|   version "5.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" | ||||
|   integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== | ||||
| 
 | ||||
| safe-buffer@~5.1.0, safe-buffer@~5.1.1: | ||||
|   version "5.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" | ||||
|   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== | ||||
| 
 | ||||
| safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: | ||||
|   version "2.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" | ||||
|   integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== | ||||
| 
 | ||||
| "semver@2 || 3 || 4 || 5", semver@^5.4.1: | ||||
|   version "5.7.1" | ||||
|   resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" | ||||
|   integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== | ||||
| 
 | ||||
| signal-exit@^3.0.0: | ||||
|   version "3.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" | ||||
|   integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== | ||||
| 
 | ||||
| single-line-log@^1.1.2: | ||||
|   version "1.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" | ||||
|   integrity sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q= | ||||
|   dependencies: | ||||
|     string-width "^1.0.1" | ||||
| 
 | ||||
| spdx-correct@^3.0.0: | ||||
|   version "3.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" | ||||
|   integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== | ||||
|   dependencies: | ||||
|     spdx-expression-parse "^3.0.0" | ||||
|     spdx-license-ids "^3.0.0" | ||||
| 
 | ||||
| spdx-exceptions@^2.1.0: | ||||
|   version "2.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" | ||||
|   integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== | ||||
| 
 | ||||
| spdx-expression-parse@^3.0.0: | ||||
|   version "3.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" | ||||
|   integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== | ||||
|   dependencies: | ||||
|     spdx-exceptions "^2.1.0" | ||||
|     spdx-license-ids "^3.0.0" | ||||
| 
 | ||||
| spdx-license-ids@^3.0.0: | ||||
|   version "3.0.5" | ||||
|   resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" | ||||
|   integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== | ||||
| 
 | ||||
| speedometer@~0.1.2: | ||||
|   version "0.1.4" | ||||
|   resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" | ||||
|   integrity sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0= | ||||
| 
 | ||||
| sshpk@^1.7.0: | ||||
|   version "1.16.1" | ||||
|   resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" | ||||
|   integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== | ||||
|   dependencies: | ||||
|     asn1 "~0.2.3" | ||||
|     assert-plus "^1.0.0" | ||||
|     bcrypt-pbkdf "^1.0.0" | ||||
|     dashdash "^1.12.0" | ||||
|     ecc-jsbn "~0.1.1" | ||||
|     getpass "^0.1.1" | ||||
|     jsbn "~0.1.0" | ||||
|     safer-buffer "^2.0.2" | ||||
|     tweetnacl "~0.14.0" | ||||
| 
 | ||||
| string-width@^1.0.1: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" | ||||
|   integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= | ||||
|   dependencies: | ||||
|     code-point-at "^1.0.0" | ||||
|     is-fullwidth-code-point "^1.0.0" | ||||
|     strip-ansi "^3.0.0" | ||||
| 
 | ||||
| string_decoder@~0.10.x: | ||||
|   version "0.10.31" | ||||
|   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" | ||||
|   integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= | ||||
| 
 | ||||
| string_decoder@~1.1.1: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" | ||||
|   integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== | ||||
|   dependencies: | ||||
|     safe-buffer "~5.1.0" | ||||
| 
 | ||||
| strip-ansi@^3.0.0: | ||||
|   version "3.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" | ||||
|   integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= | ||||
|   dependencies: | ||||
|     ansi-regex "^2.0.0" | ||||
| 
 | ||||
| strip-bom@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" | ||||
|   integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= | ||||
|   dependencies: | ||||
|     is-utf8 "^0.2.0" | ||||
| 
 | ||||
| strip-indent@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" | ||||
|   integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= | ||||
|   dependencies: | ||||
|     get-stdin "^4.0.1" | ||||
| 
 | ||||
| strip-json-comments@~2.0.1: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" | ||||
|   integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= | ||||
| 
 | ||||
| sumchecker@^2.0.2: | ||||
|   version "2.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-2.0.2.tgz#0f42c10e5d05da5d42eea3e56c3399a37d6c5b3e" | ||||
|   integrity sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4= | ||||
|   dependencies: | ||||
|     debug "^2.2.0" | ||||
| 
 | ||||
| throttleit@0.0.2: | ||||
|   version "0.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" | ||||
|   integrity sha1-z+34jmDADdlpe2H90qg0OptoDq8= | ||||
| 
 | ||||
| through2@~0.2.3: | ||||
|   version "0.2.3" | ||||
|   resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" | ||||
|   integrity sha1-6zKE2k6jEbbMis42U3SKUqvyWj8= | ||||
|   dependencies: | ||||
|     readable-stream "~1.1.9" | ||||
|     xtend "~2.1.1" | ||||
| 
 | ||||
| tough-cookie@~2.5.0: | ||||
|   version "2.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" | ||||
|   integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== | ||||
|   dependencies: | ||||
|     psl "^1.1.28" | ||||
|     punycode "^2.1.1" | ||||
| 
 | ||||
| trim-newlines@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" | ||||
|   integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= | ||||
| 
 | ||||
| tunnel-agent@^0.6.0: | ||||
|   version "0.6.0" | ||||
|   resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" | ||||
|   integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= | ||||
|   dependencies: | ||||
|     safe-buffer "^5.0.1" | ||||
| 
 | ||||
| tweetnacl@^0.14.3, tweetnacl@~0.14.0: | ||||
|   version "0.14.5" | ||||
|   resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" | ||||
|   integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= | ||||
| 
 | ||||
| typedarray@^0.0.6: | ||||
|   version "0.0.6" | ||||
|   resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" | ||||
|   integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= | ||||
| 
 | ||||
| universalify@^0.1.0: | ||||
|   version "0.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" | ||||
|   integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== | ||||
| 
 | ||||
| uri-js@^4.2.2: | ||||
|   version "4.2.2" | ||||
|   resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" | ||||
|   integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== | ||||
|   dependencies: | ||||
|     punycode "^2.1.0" | ||||
| 
 | ||||
| util-deprecate@~1.0.1: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" | ||||
|   integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= | ||||
| 
 | ||||
| uuid@^3.3.2: | ||||
|   version "3.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" | ||||
|   integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== | ||||
| 
 | ||||
| validate-npm-package-license@^3.0.1: | ||||
|   version "3.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" | ||||
|   integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== | ||||
|   dependencies: | ||||
|     spdx-correct "^3.0.0" | ||||
|     spdx-expression-parse "^3.0.0" | ||||
| 
 | ||||
| verror@1.10.0: | ||||
|   version "1.10.0" | ||||
|   resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" | ||||
|   integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= | ||||
|   dependencies: | ||||
|     assert-plus "^1.0.0" | ||||
|     core-util-is "1.0.2" | ||||
|     extsprintf "^1.2.0" | ||||
| 
 | ||||
| xtend@~2.1.1: | ||||
|   version "2.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" | ||||
|   integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= | ||||
|   dependencies: | ||||
|     object-keys "~0.4.0" | ||||
| 
 | ||||
| yauzl@2.4.1: | ||||
|   version "2.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" | ||||
|   integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= | ||||
|   dependencies: | ||||
|     fd-slicer "~1.0.1" | ||||
| @ -295,6 +295,4 @@ gulp.task( | ||||
| ); | ||||
| gulp.task("main.deploy.prod", $.sequence("utils.requireCleanWorkingTree", "build.prod", "ftp.upload.prod")); | ||||
| gulp.task("main.deploy.all", $.sequence("main.deploy.staging", "main.deploy.prod")); | ||||
| 
 | ||||
| // gulp.task("main.standalone.beta", $.sequence("build.standalone-beta", "standalone.package.beta"));
 | ||||
| gulp.task("main.standalone", $.sequence("build.standalone-prod", "standalone.package.prod")); | ||||
|  | ||||
| @ -33,7 +33,7 @@ function gulptasksStandalone($, gulp, buildFolder) { | ||||
|             JSON.stringify( | ||||
|                 { | ||||
|                     devDependencies: { | ||||
|                         electron: "6.0.10", | ||||
|                         electron: "6.1.12", | ||||
|                     }, | ||||
|                 }, | ||||
|                 null, | ||||
| @ -87,7 +87,7 @@ function gulptasksStandalone($, gulp, buildFolder) { | ||||
|     }); | ||||
| 
 | ||||
|     gulp.task("standalone.prepare.copyGamefiles", () => { | ||||
|         return gulp.src("../../www/**/*.*", { base: "../../www" }).pipe(gulp.dest(tempDestBuildDir)); | ||||
|         return gulp.src("../build/**/*.*", { base: "../build" }).pipe(gulp.dest(tempDestBuildDir)); | ||||
|     }); | ||||
| 
 | ||||
|     gulp.task("standalone.killRunningInstances", () => { | ||||
| @ -118,18 +118,9 @@ function gulptasksStandalone($, gulp, buildFolder) { | ||||
|      * @param {boolean=} isRelease | ||||
|      */ | ||||
|     function packageStandalone(platform, arch, cb, isRelease = false) { | ||||
|         const libDirName = (platform === "win32" ? "win" : platform) + (arch === "x64" ? "64" : "32"); | ||||
| 
 | ||||
|         const libDir = path.join(electronBaseDir, "lib", libDirName); | ||||
|         if (!fs.existsSync(libDir)) { | ||||
|             console.error("FATAL ERROR: LIB DIR does not exist:", libDir); | ||||
|             cb(); | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         packager({ | ||||
|             dir: tempDestBuildDir, | ||||
|             appCopyright: "Tobias Springer IT Solutions", | ||||
|             appCopyright: "Tobias Springer", | ||||
|             appVersion: buildutils.getVersion(), | ||||
|             buildVersion: "1.0.0", | ||||
|             arch, | ||||
| @ -137,7 +128,7 @@ function gulptasksStandalone($, gulp, buildFolder) { | ||||
|             asar: true, | ||||
|             executableName: "shapezio", | ||||
|             icon: path.join(electronBaseDir, "favicon"), | ||||
|             name: "Shapez.io Standalone", | ||||
|             name: "shapez.io Standalone", | ||||
|             out: tempDestDir, | ||||
|             overwrite: true, | ||||
|             appBundleId: "io.shapez.standalone", | ||||
| @ -151,14 +142,7 @@ function gulptasksStandalone($, gulp, buildFolder) { | ||||
|                         return; | ||||
|                     } | ||||
| 
 | ||||
|                     console.log("Copying lib files to", appPath); | ||||
|                     const libFiles = $.glob.sync(path.join("**", "*.+(dylib|so|dll|lib)"), { cwd: libDir }); | ||||
|                     libFiles.forEach(f => { | ||||
|                         console.log(" -> Copying", f); | ||||
|                         fs.copyFileSync(path.join(libDir, f), path.join(appPath, f)); | ||||
|                     }); | ||||
| 
 | ||||
|                     const playablePath = appPath + "_PLAYABLE"; | ||||
|                     const playablePath = appPath + "_playable"; | ||||
|                     fse.copySync(appPath, playablePath); | ||||
|                     fs.writeFileSync(path.join(playablePath, "steam_appid.txt"), "1134480"); | ||||
|                     fs.writeFileSync( | ||||
| @ -180,20 +164,6 @@ function gulptasksStandalone($, gulp, buildFolder) { | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     // gulp.task("standalone.package.beta.win64", (cb) => packageStandalone("win32", "x64", cb));
 | ||||
|     // gulp.task("standalone.package.beta.win32", (cb) => packageStandalone("win32", "ia32", cb));
 | ||||
|     // gulp.task("standalone.package.beta.linux64", (cb) => packageStandalone("linux", "x64", cb));
 | ||||
|     // gulp.task("standalone.package.beta.linux32", (cb) => packageStandalone("linux", "ia32", cb));
 | ||||
|     // gulp.task("standalone.package.beta.darwin64", (cb) => packageStandalone("darwin", "x64", cb));
 | ||||
| 
 | ||||
|     // gulp.task("standalone.package.beta", $.sequence("standalone.prepare", [
 | ||||
|     //     "standalone.package.beta.win64",
 | ||||
|     // "standalone.package.beta.win32",
 | ||||
|     // "standalone.package.beta.linux64",
 | ||||
|     // "standalone.package.beta.linux32",
 | ||||
|     // "standalone.package.beta.darwin64"
 | ||||
|     // ]));
 | ||||
| 
 | ||||
|     gulp.task("standalone.package.prod.win64", cb => packageStandalone("win32", "x64", cb, true)); | ||||
|     gulp.task("standalone.package.prod.win32", cb => packageStandalone("win32", "ia32", cb, true)); | ||||
|     gulp.task("standalone.package.prod.linux64", cb => packageStandalone("linux", "x64", cb, true)); | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								res/ui/icons/main_menu_exit.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								res/ui/icons/main_menu_exit.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.5 KiB | 
| @ -7,7 +7,8 @@ | ||||
|     // background: #aaacb4 center center / cover !important; | ||||
|     background: #bbc2cf center center / cover !important; | ||||
| 
 | ||||
|     .settingsButton { | ||||
|     .settingsButton, | ||||
|     .exitAppButton { | ||||
|         position: absolute; | ||||
|         @include S(top, 30px); | ||||
|         @include S(right, 30px); | ||||
| @ -22,6 +23,11 @@ | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     .exitAppButton { | ||||
|         @include S(right, 100px); | ||||
|         background-image: resolve("icons/main_menu_exit.png"); | ||||
|     } | ||||
| 
 | ||||
|     .fullscreenBackgroundVideo { | ||||
|         // display: none !important; | ||||
|         z-index: -1; | ||||
|  | ||||
							
								
								
									
										23
									
								
								src/html/index.standalone.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/html/index.standalone.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | ||||
| <!DOCTYPE html> | ||||
| <html> | ||||
|     <head> | ||||
|         <title>shapez.io Standalone</title> | ||||
| 
 | ||||
|         <!-- mobile stuff --> | ||||
|         <meta name="format-detection" content="telephone=no" /> | ||||
|         <meta name="msapplication-tap-highlight" content="no" /> | ||||
|         <meta | ||||
|             name="viewport" | ||||
|             content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no, viewport-fit=cover" | ||||
|         /> | ||||
|         <meta name="HandheldFriendly" content="true" /> | ||||
|         <meta name="MobileOptimized" content="320" /> | ||||
|         <meta name="theme-color" content="#393747" /> | ||||
| 
 | ||||
|         <!-- misc --> | ||||
|         <meta http-equiv="Cache-Control" content="private, max-age=0, no-store, no-cache, must-revalidate" /> | ||||
|         <meta http-equiv="Expires" content="0" /> | ||||
|         <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> | ||||
|     </head> | ||||
|     <body oncontextmenu="return false" style="background: #393747;"></body> | ||||
| </html> | ||||
| @ -34,6 +34,8 @@ import { StorageImplBrowserIndexedDB } from "./platform/browser/storage_indexed_ | ||||
| import { SettingsState } from "./states/settings"; | ||||
| import { KeybindingsState } from "./states/keybindings"; | ||||
| import { AboutState } from "./states/about"; | ||||
| import { PlatformWrapperImplElectron } from "./platform/electron/wrapper"; | ||||
| import { StorageImplElectron } from "./platform/electron/storage"; | ||||
| 
 | ||||
| const logger = createLogger("application"); | ||||
| 
 | ||||
| @ -124,13 +126,22 @@ export class Application { | ||||
|         // Start with empty ad provider
 | ||||
|         this.adProvider = new NoAdProvider(this); | ||||
| 
 | ||||
|         if (window.indexedDB) { | ||||
|             this.storage = new StorageImplBrowserIndexedDB(this); | ||||
|         if (G_IS_STANDALONE) { | ||||
|             this.storage = new StorageImplElectron(this); | ||||
|         } else { | ||||
|             this.storage = new StorageImplBrowser(this); | ||||
|             if (window.indexedDB) { | ||||
|                 this.storage = new StorageImplBrowserIndexedDB(this); | ||||
|             } else { | ||||
|                 this.storage = new StorageImplBrowser(this); | ||||
|             } | ||||
|         } | ||||
|         this.sound = new SoundImplBrowser(this); | ||||
|         this.platformWrapper = new PlatformWrapperImplBrowser(this); | ||||
| 
 | ||||
|         if (G_IS_STANDALONE) { | ||||
|             this.platformWrapper = new PlatformWrapperImplElectron(this); | ||||
|         } else { | ||||
|             this.platformWrapper = new PlatformWrapperImplBrowser(this); | ||||
|         } | ||||
|         this.analytics = new GoogleAnalyticsImpl(this); | ||||
| 
 | ||||
|         if (queryParamOptions.betaMode) { | ||||
|  | ||||
| @ -83,8 +83,8 @@ export const globalConfig = { | ||||
| 
 | ||||
|     debug: { | ||||
|         /* dev:start */ | ||||
|         fastGameEnter: true, | ||||
|         noArtificialDelays: true, | ||||
|         // fastGameEnter: true,
 | ||||
|         // noArtificialDelays: true,
 | ||||
|         // disableSavegameWrite: true,
 | ||||
|         // showEntityBounds: true,
 | ||||
|         // showAcceptorEjectors: true,
 | ||||
|  | ||||
							
								
								
									
										83
									
								
								src/js/platform/electron/storage.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								src/js/platform/electron/storage.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,83 @@ | ||||
| import { StorageInterface } from "../storage"; | ||||
| import { getIPCRenderer } from "../../core/utils"; | ||||
| import { createLogger } from "../../core/logging"; | ||||
| 
 | ||||
| const logger = createLogger("electron-storage"); | ||||
| 
 | ||||
| export class StorageImplElectron extends StorageInterface { | ||||
|     constructor(app) { | ||||
|         super(app); | ||||
| 
 | ||||
|         /** @type {Object.<number, {resolve:Function, reject: Function}>} */ | ||||
|         this.jobs = {}; | ||||
|         this.jobId = 0; | ||||
| 
 | ||||
|         getIPCRenderer().on("fs-response", (event, arg) => { | ||||
|             const id = arg.id; | ||||
|             if (!this.jobs[id]) { | ||||
|                 logger.warn("Got unhandled FS response, job not known:", id); | ||||
|                 return; | ||||
|             } | ||||
|             const { resolve, reject } = this.jobs[id]; | ||||
|             if (arg.result.success) { | ||||
|                 resolve(arg.result.data); | ||||
|             } else { | ||||
|                 reject(arg.result.error); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     initialize() { | ||||
|         return Promise.resolve(); | ||||
|     } | ||||
| 
 | ||||
|     writeFileAsync(filename, contents) { | ||||
|         return new Promise((resolve, reject) => { | ||||
|             // ipcMain
 | ||||
|             const jobId = ++this.jobId; | ||||
|             this.jobs[jobId] = { resolve, reject }; | ||||
| 
 | ||||
|             getIPCRenderer().send("fs-job", { | ||||
|                 type: "write", | ||||
|                 filename, | ||||
|                 contents, | ||||
|                 id: jobId, | ||||
|             }); | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     writeFileSyncIfSupported(filename, contents) { | ||||
|         return getIPCRenderer().sendSync("fs-sync-job", { | ||||
|             type: "write", | ||||
|             filename, | ||||
|             contents, | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     readFileAsync(filename) { | ||||
|         return new Promise((resolve, reject) => { | ||||
|             // ipcMain
 | ||||
|             const jobId = ++this.jobId; | ||||
|             this.jobs[jobId] = { resolve, reject }; | ||||
| 
 | ||||
|             getIPCRenderer().send("fs-job", { | ||||
|                 type: "read", | ||||
|                 filename, | ||||
|                 id: jobId, | ||||
|             }); | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     deleteFileAsync(filename) { | ||||
|         return new Promise((resolve, reject) => { | ||||
|             // ipcMain
 | ||||
|             const jobId = ++this.jobId; | ||||
|             this.jobs[jobId] = { resolve, reject }; | ||||
|             getIPCRenderer().send("fs-job", { | ||||
|                 type: "delete", | ||||
|                 filename, | ||||
|                 id: jobId, | ||||
|             }); | ||||
|         }); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										50
									
								
								src/js/platform/electron/wrapper.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								src/js/platform/electron/wrapper.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,50 @@ | ||||
| import { PlatformWrapperImplBrowser } from "../browser/wrapper"; | ||||
| import { getIPCRenderer } from "../../core/utils"; | ||||
| import { createLogger } from "../../core/logging"; | ||||
| 
 | ||||
| const logger = createLogger("electron-wrapper"); | ||||
| 
 | ||||
| export class PlatformWrapperImplElectron extends PlatformWrapperImplBrowser { | ||||
|     getId() { | ||||
|         return "electron"; | ||||
|     } | ||||
| 
 | ||||
|     getSupportsRestart() { | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     openExternalLink(url) { | ||||
|         logger.log(this, "Opening external:", url); | ||||
|         window.open(url, "about:blank"); | ||||
|     } | ||||
| 
 | ||||
|     getSupportsAds() { | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     performRestart() { | ||||
|         logger.log(this, "Performing restart"); | ||||
|         window.location.reload(true); | ||||
|     } | ||||
| 
 | ||||
|     initializeAdProvider() { | ||||
|         return Promise.resolve(); | ||||
|     } | ||||
| 
 | ||||
|     getSupportsFullscreen() { | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     setFullscreen(flag) { | ||||
|         getIPCRenderer().send("set-fullscreen", flag); | ||||
|     } | ||||
| 
 | ||||
|     getSupportsAppExit() { | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     exitApp() { | ||||
|         logger.log(this, "Sending app exit signal"); | ||||
|         getIPCRenderer().send("exit-app"); | ||||
|     } | ||||
| } | ||||
| @ -33,10 +33,22 @@ export class MainMenuState extends GameState { | ||||
|         return ` | ||||
| 
 | ||||
|             <button class="settingsButton"></button> | ||||
|              | ||||
|         ${ | ||||
|             G_IS_STANDALONE | ||||
|                 ? ` | ||||
|             <button class="exitAppButton"></button> | ||||
|         ` | ||||
|                 : "" | ||||
|         } | ||||
| 
 | ||||
|             <video autoplay muted loop class="fullscreenBackgroundVideo"> | ||||
|             ${ | ||||
|                 G_IS_STANDALONE | ||||
|                     ? "" | ||||
|                     : `<video autoplay muted loop class="fullscreenBackgroundVideo">
 | ||||
|                 <source src="${cachebust("res/bg_render.webm")}" type="video/webm"> | ||||
|             </video> | ||||
|             </video>` | ||||
|             } | ||||
| 
 | ||||
| 
 | ||||
|             <div class="logo"> | ||||
| @ -184,6 +196,11 @@ export class MainMenuState extends GameState { | ||||
|         } | ||||
| 
 | ||||
|         this.trackClicks(qs(".settingsButton"), this.onSettingsButtonClicked); | ||||
| 
 | ||||
|         if (G_IS_STANDALONE) { | ||||
|             this.trackClicks(qs(".exitAppButton"), this.onExitAppButtonClicked); | ||||
|         } | ||||
| 
 | ||||
|         this.renderSavegames(); | ||||
| 
 | ||||
|         const steamLinks = this.htmlElement.querySelectorAll(".steamLink"); | ||||
| @ -199,6 +216,10 @@ export class MainMenuState extends GameState { | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     onExitAppButtonClicked() { | ||||
|         this.app.platformWrapper.exitApp(); | ||||
|     } | ||||
| 
 | ||||
|     renderSavegames() { | ||||
|         const oldContainer = this.htmlElement.querySelector(".mainContainer .savegames"); | ||||
|         if (oldContainer) { | ||||
|  | ||||
| @ -100,6 +100,13 @@ export class PreloadState extends GameState { | ||||
|                 return this.app.settings.initialize(); | ||||
|             }) | ||||
| 
 | ||||
|             .then(() => { | ||||
|                 // Initialize fullscreen
 | ||||
|                 if (this.app.platformWrapper.getSupportsFullscreen()) { | ||||
|                     this.app.platformWrapper.setFullscreen(this.app.settings.getIsFullScreen()); | ||||
|                 } | ||||
|             }) | ||||
| 
 | ||||
|             .then(() => this.setStatus("Initializing sounds")) | ||||
|             .then(() => { | ||||
|                 // Notice: We don't await the sounds loading itself
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 tobspr
						tobspr