hyper/package.json
Max Horvath ed8b42b56c
Fix macOS 26 GPU performance issue by upgrading to Electron 38
Upgrades Electron from 34.5.1 to 38.6.0 to resolve excessive WindowServer
GPU usage on macOS 26 (Sequoia). This issue was caused by Electron's
override of the private _cornerMask API, which forced the compositor to
treat window masks as dynamic rather than static, resulting in persistent
high GPU load.

Changes:
- Upgrade electron: 34.5.1 → 38.6.0
- Upgrade electron-mksnapshot: 34.5.1 → 38.6.0
- Upgrade @electron/rebuild: ^3.7.1 → ^3.7.2
- Upgrade node-abi: ^3.67.0 → ^3.81.0 (required for Electron 38 support)

The fix was introduced in Electron 36.9.2, 37.6.0, 38.2.0, and all later
versions. We're upgrading to 38.6.0 as it's the latest stable version
compatible with Node 20.11.0.

Fixes: electron/electron#48376
2025-11-13 20:01:36 +01:00

164 lines
6.5 KiB
JSON

{
"name": "hyper-root",
"version": "4.0.0-q-canary.8",
"repository": "quine-global/hyper",
"engines": {
"node": "20.11.0"
},
"scripts": {
"start": "echo 'please run `yarn run dev` in one tab and then `yarn run app` in another one'",
"app": "cross-env ELECTRONMON_LOGLEVEL=error electronmon target",
"dev": "concurrently -n \"Webpack,TypeScript\" -c \"cyan.bold,blue.bold\" \"webpack -w\" \"tsc --build -v --pretty --watch --preserveWatchOutput\" -k",
"ts": "tsc --build -v --pretty --preserveWatchOutput",
"build": "cross-env NODE_ENV=production webpack && tsc -b -v && cross-env BABEL_ENV=production babel target/renderer/bundle.js --out-file target/renderer/bundle.js --no-comments --minified",
"lint": "eslint . --fix --ext .js,.jsx,.ts,.tsx,.json",
"test": "yarn run lint && yarn run test:unit",
"test:unit": "cross-env DEBUG=ava:watcher ava",
"test:unit:watch": "yarn run test:unit -- --watch",
"test:e2e": "cross-env DEBUG=ava:watcher ava --config ava-e2e.config.js",
"postinstall": "yarn run v8-snapshot && webpack --config-name hyper-app && yarn run install-app-deps-with-retry && yarn run rebuild-node-pty && cpy --cwd=target node_modules \"../../app/\" && husky && yarn run generate-schema",
"install-app-deps-with-retry": "electron-builder install-app-deps || electron-builder install-app-deps || electron-builder install-app-deps",
"rebuild-node-pty": "electron-rebuild -f -o node-pty -m target",
"dist": "yarn run build && yarn run electron-builder-with-retry",
"electron-builder-with-retry": "electron-builder -p never || electron-builder -p never || electron-builder -p never",
"clean": "node ./bin/rimraf-standalone.js node_modules && node ./bin/rimraf-standalone.js ./app/node_modules && node ./bin/rimraf-standalone.js ./app/renderer && node ./bin/rimraf-standalone.js ./target && node ./bin/rimraf-standalone.js ./dist",
"v8-snapshot": "cross-env npm_config_arch=x64 yarn run v8-snapshot:arch && cross-env npm_config_arch=arm64 yarn run v8-snapshot:arch",
"v8-snapshot:arch": "yarn run mk-snapshot && yarn run cp-snapshot",
"mk-snapshot": "cross-env ELECTRON_CUSTOM_VERSION=$npm_package_devDependencies_electron node node_modules/electron-mksnapshot/download-mksnapshot.js && node bin/mk-snapshot.js",
"cp-snapshot": "node bin/cp-snapshot.js",
"generate-schema": "typescript-json-schema ./typings/config.d.ts rawConfig -o ./app/config/schema.json --required",
"uuaw": "uuaw"
},
"license": "MIT",
"author": {
"name": "ZEIT, Inc.",
"email": "team@zeit.co"
},
"dependencies": {
"@electron/remote": "2.1.2",
"@react-icons/all-files": "4.1.0",
"@redux-devtools/extension": "^3.3.0",
"@xterm/addon-canvas": "0.7.0",
"@xterm/addon-fit": "0.10.0",
"@xterm/addon-image": "0.8.0",
"@xterm/addon-ligatures": "0.9.0",
"@xterm/addon-search": "0.15.0",
"@xterm/addon-unicode11": "0.8.0",
"@xterm/addon-web-links": "0.11.0",
"@xterm/addon-webgl": "0.18.0",
"@xterm/xterm": "5.5.0",
"args": "5.0.3",
"ava": "https://github.com/quine-global/ava#38aebe3badef8d54f68e8315e9849cfa83d531fe",
"chalk": "5.3.0",
"clsx": "2.1.1",
"color": "4.2.3",
"columnify": "1.6.0",
"css-loader": "7.1.2",
"electron-rebuild": "^3.2.9",
"got": "12.4.1",
"json-loader": "0.5.7",
"lodash": "4.17.21",
"mousetrap": "chabou/mousetrap#useCapture",
"ms": "2.1.3",
"open": "8.4.2",
"ora": "8.1.1",
"php-escape-shell": "1.0.0",
"react": "18.3.1",
"react-dom": "18.3.1",
"react-redux": "8.1.3",
"react-use": "^17.5.1",
"redux": "4.2.1",
"redux-thunk": "2.4.2",
"registry-url": "^6.0.1",
"reselect": "4.1.8",
"seamless-immutable": "7.1.4",
"semver": "7.6.3",
"shebang-loader": "0.0.1",
"styled-jsx": "5.1.6",
"stylis": "3.5.4",
"typescript-json-schema": "0.65.1",
"use-device-pixel-ratio": "^1.1.2",
"uuid": "10.0.0",
"webpack-cli": "5.1.4"
},
"devDependencies": {
"@ava/babel": "2.0.0",
"@ava/typescript": "^4.1.0",
"@babel/cli": "7.25.9",
"@babel/core": "7.26.0",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-numeric-separator": "^7.18.6",
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
"@babel/plugin-proposal-optional-chaining": "7.21.0",
"@babel/preset-react": "7.25.9",
"@babel/preset-typescript": "7.26.0",
"@electron/rebuild": "^3.7.2",
"@types/args": "5.0.3",
"@types/async-retry": "1.4.9",
"@types/color": "3.0.6",
"@types/columnify": "^1.5.4",
"@types/fs-extra": "11.0.4",
"@types/lodash": "^4.17.13",
"@types/mousetrap": "1.6.15",
"@types/ms": "0.7.34",
"@types/node": "22.9.3",
"@types/plist": "3.0.5",
"@types/react": "18.3.12",
"@types/react-dom": "18.3.1",
"@types/seamless-immutable": "7.1.19",
"@types/styled-jsx": "2.2.9",
"@types/uuid": "10.0.0",
"@typescript-eslint/eslint-plugin": "7.0.0",
"@typescript-eslint/parser": "6.21.0",
"babel-loader": "9.2.1",
"concurrently": "9.1.0",
"copy-webpack-plugin": "12.0.2",
"cpy-cli": "^5.0.0",
"cross-env": "7.0.3",
"electron": "38.6.0",
"electron-builder": "26.0.13",
"electron-link": "^0.6.0",
"electron-mksnapshot": "38.6.0",
"electronmon": "^2.0.3",
"eslint": "8.57.0",
"eslint-config-prettier": "9.1.0",
"eslint-import-resolver-typescript": "^3.6.3",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-json-schema-validator": "^4.8.3",
"eslint-plugin-jsonc": "^2.18.2",
"eslint-plugin-lodash": "^7.4.0",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-react": "7.37.2",
"husky": "^9.1.7",
"husky-init": "^8.0.0",
"inquirer": "10.1.8",
"node-addon-api": "8.2.2",
"node-gyp": "^10.2.0",
"null-loader": "4.0.1",
"parse-url": "9.2.0",
"playwright": "1.49.0",
"plist": "3.1.0",
"prettier": "3.3.3",
"proxyquire": "2.1.3",
"style-loader": "4.0.0",
"terser": "5.36.0",
"terser-webpack-plugin": "^5.3.10",
"ts-node": "10.9.2",
"typescript": "5.7.2",
"uuaw": "^1.2.2",
"webpack": "5.96.1"
},
"electronmon": {
"patterns": [
"!app/**",
"!lib/**",
"!dist/**"
]
},
"resolutions": {
"@types/retry": "0.12.5",
"node-abi": "^3.81.0"
},
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
}