# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

# Generated from pnpm-lock.yaml by scripts/npm-deps.py
NPM_PKGS="
	7zip-bin@5.2.0
	@adobe/css-tools@4.4.3
	@ampproject/remapping@2.3.0
	@babel/code-frame@7.27.1
	@babel/compat-data@7.27.1
	@babel/core@7.27.1
	@babel/generator@7.27.1
	@babel/helper-compilation-targets@7.27.1
	@babel/helper-module-imports@7.27.1
	@babel/helper-module-transforms@7.27.1
	@babel/helper-plugin-utils@7.27.1
	@babel/helper-string-parser@7.27.1
	@babel/helper-validator-identifier@7.27.1
	@babel/helper-validator-option@7.27.1
	@babel/helpers@7.27.1
	@babel/parser@7.27.1
	@babel/plugin-syntax-async-generators@7.8.4
	@babel/plugin-syntax-bigint@7.8.3
	@babel/plugin-syntax-class-properties@7.12.13
	@babel/plugin-syntax-class-static-block@7.14.5
	@babel/plugin-syntax-import-attributes@7.27.1
	@babel/plugin-syntax-import-meta@7.10.4
	@babel/plugin-syntax-json-strings@7.8.3
	@babel/plugin-syntax-jsx@7.27.1
	@babel/plugin-syntax-logical-assignment-operators@7.10.4
	@babel/plugin-syntax-nullish-coalescing-operator@7.8.3
	@babel/plugin-syntax-numeric-separator@7.10.4
	@babel/plugin-syntax-object-rest-spread@7.8.3
	@babel/plugin-syntax-optional-catch-binding@7.8.3
	@babel/plugin-syntax-optional-chaining@7.8.3
	@babel/plugin-syntax-private-property-in-object@7.14.5
	@babel/plugin-syntax-top-level-await@7.14.5
	@babel/plugin-syntax-typescript@7.27.1
	@babel/plugin-transform-arrow-functions@7.27.1
	@babel/runtime@7.27.1
	@babel/runtime@7.29.2
	@babel/template@7.27.1
	@babel/traverse@7.27.1
	@babel/types@7.27.1
	@bcoe/v8-coverage@0.2.3
	@develar/schema-utils@2.6.5
	@discordjs/collection@2.1.1
	@discordjs/rest@2.6.0
	@discordjs/util@1.2.0
	@electron-internal/extract-zip@1.0.4
	@electron/asar@3.4.1
	@electron/fuses@1.8.0
	@electron/get@3.1.0
	@electron/get@5.0.0
	@electron/notarize@2.2.1
	@electron/notarize@2.5.0
	@electron/osx-sign@1.0.5
	@electron/osx-sign@1.3.3
	@electron/rebuild@4.0.3
	@electron/universal@1.5.1
	@electron/universal@2.0.3
	@emnapi/core@1.4.3
	@emnapi/runtime@1.4.3
	@emnapi/wasi-threads@1.0.2
	@emotion/babel-plugin@11.13.5
	@emotion/cache@11.14.0
	@emotion/hash@0.9.2
	@emotion/is-prop-valid@1.4.0
	@emotion/memoize@0.9.0
	@emotion/react@11.14.0
	@emotion/serialize@1.3.3
	@emotion/sheet@1.4.0
	@emotion/styled@11.14.1
	@emotion/unitless@0.10.0
	@emotion/use-insertion-effect-with-fallbacks@1.2.0
	@emotion/utils@1.4.2
	@emotion/weak-memoize@0.4.0
	@esbuild/linux-arm64@0.25.12|arm64
	@esbuild/linux-arm64@0.25.3|arm64
	@esbuild/linux-x64@0.25.12|amd64
	@esbuild/linux-x64@0.25.3|amd64
	@eslint-community/eslint-utils@4.7.0
	@eslint-community/regexpp@4.12.1
	@eslint/config-array@0.20.1
	@eslint/config-helpers@0.2.2
	@eslint/core@0.14.0
	@eslint/core@0.15.2
	@eslint/eslintrc@3.3.1
	@eslint/js@9.29.0
	@eslint/object-schema@2.1.6
	@eslint/plugin-kit@0.3.4
	@fiahfy/packbits@0.0.6
	@fontsource/cabin@4.5.10
	@fontsource/rubik@4.5.14
	@fortawesome/fontawesome-common-types@6.7.2
	@fortawesome/fontawesome-common-types@7.3.1
	@fortawesome/fontawesome-svg-core@7.3.1
	@fortawesome/free-brands-svg-icons@6.7.2
	@fortawesome/free-regular-svg-icons@6.7.2
	@fortawesome/free-solid-svg-icons@6.7.2
	@fortawesome/react-fontawesome@0.2.6
	@gulpjs/to-absolute-glob@4.0.0
	@hello-pangea/dnd@18.0.1
	@humanfs/core@0.19.1
	@humanfs/node@0.16.6
	@humanwhocodes/module-importer@1.0.1
	@humanwhocodes/retry@0.3.1
	@humanwhocodes/retry@0.4.3
	@isaacs/cliui@8.0.2
	@isaacs/fs-minipass@4.0.1
	@istanbuljs/load-nyc-config@1.1.0
	@istanbuljs/schema@0.1.3
	@jest/console@29.7.0
	@jest/core@29.7.0
	@jest/environment@29.7.0
	@jest/expect@29.7.0
	@jest/expect-utils@29.7.0
	@jest/fake-timers@29.7.0
	@jest/globals@29.7.0
	@jest/reporters@29.7.0
	@jest/schemas@29.6.3
	@jest/source-map@29.6.3
	@jest/test-result@29.7.0
	@jest/test-sequencer@29.7.0
	@jest/transform@29.7.0
	@jest/types@29.6.3
	@jridgewell/gen-mapping@0.3.8
	@jridgewell/resolve-uri@3.1.2
	@jridgewell/set-array@1.2.1
	@jridgewell/sourcemap-codec@1.5.0
	@jridgewell/trace-mapping@0.3.25
	@kwsites/file-exists@1.1.1
	@kwsites/promise-deferred@1.1.1
	@malept/cross-spawn-promise@1.1.1
	@malept/cross-spawn-promise@2.0.0
	@malept/flatpak-bundler@0.4.0
	@mui/core-downloads-tracker@5.18.0
	@mui/icons-material@5.18.0
	@mui/material@5.18.0
	@mui/private-theming@5.17.1
	@mui/styled-engine@5.18.0
	@mui/system@5.18.0
	@mui/types@7.2.24
	@mui/utils@5.17.1
	@napi-rs/wasm-runtime@0.2.11
	@node-steam/vdf@2.2.0
	@nodelib/fs.scandir@2.1.5
	@nodelib/fs.stat@2.0.5
	@nodelib/fs.walk@1.2.8
	@npmcli/agent@2.2.2
	@npmcli/agent@3.0.0
	@npmcli/fs@3.1.1
	@npmcli/fs@4.0.0
	@parcel/watcher@2.5.1
	@parcel/watcher-linux-arm64-glibc@2.5.1|arm64
	@parcel/watcher-linux-arm64-musl@2.5.1|arm64
	@parcel/watcher-linux-x64-glibc@2.5.1|amd64
	@parcel/watcher-linux-x64-musl@2.5.1|amd64
	@pkgjs/parseargs@0.11.0
	@playwright/test@1.55.1
	@popperjs/core@2.11.8
	@remix-run/router@1.23.0
	@rollup/pluginutils@5.1.4
	@rollup/rollup-linux-arm64-gnu@4.60.1|arm64
	@rollup/rollup-linux-arm64-musl@4.60.1|arm64
	@rollup/rollup-linux-x64-gnu@4.60.1|amd64
	@rollup/rollup-linux-x64-musl@4.60.1|amd64
	@sapphire/async-queue@1.5.5
	@sapphire/snowflake@3.5.5
	@shockpkg/icon-encoder@2.1.3
	@sinclair/typebox@0.27.8
	@sindresorhus/is@4.6.0
	@sinonjs/commons@3.0.1
	@sinonjs/fake-timers@10.3.0
	@svgr/babel-plugin-add-jsx-attribute@8.0.0
	@svgr/babel-plugin-remove-jsx-attribute@8.0.0
	@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0
	@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0
	@svgr/babel-plugin-svg-dynamic-title@8.0.0
	@svgr/babel-plugin-svg-em-dimensions@8.0.0
	@svgr/babel-plugin-transform-react-native-svg@8.1.0
	@svgr/babel-plugin-transform-svg-component@8.0.0
	@svgr/babel-preset@8.1.0
	@svgr/core@8.1.0
	@svgr/hast-util-to-babel-ast@8.0.0
	@svgr/plugin-jsx@8.1.0
	@swc/core@1.11.24
	@swc/core-linux-arm64-gnu@1.11.24|arm64
	@swc/core-linux-arm64-musl@1.11.24|arm64
	@swc/core-linux-x64-gnu@1.11.24|amd64
	@swc/core-linux-x64-musl@1.11.24|amd64
	@swc/counter@0.1.3
	@swc/types@0.1.21
	@szmarczak/http-timer@4.0.6
	@testing-library/dom@9.3.4
	@testing-library/jest-dom@5.17.0
	@testing-library/react@14.3.1
	@testing-library/user-event@14.6.1
	@tootallnate/once@2.0.0
	@ts-morph/common@0.18.1
	@tybys/wasm-util@0.9.0
	@types/aria-query@5.0.4
	@types/babel__core@7.20.5
	@types/babel__generator@7.27.0
	@types/babel__template@7.4.4
	@types/babel__traverse@7.20.7
	@types/cacheable-request@6.0.3
	@types/d3-array@3.2.1
	@types/d3-color@3.1.3
	@types/d3-ease@3.0.2
	@types/d3-interpolate@3.0.4
	@types/d3-path@3.1.1
	@types/d3-scale@4.0.9
	@types/d3-shape@3.1.7
	@types/d3-time@3.0.4
	@types/d3-timer@3.0.2
	@types/debug@4.1.12
	@types/debug@4.1.13
	@types/estree@1.0.7
	@types/estree@1.0.8
	@types/fs-extra@11.0.4
	@types/fs-extra@9.0.13
	@types/graceful-fs@4.1.9
	@types/hast@2.3.10
	@types/history@4.7.11
	@types/http-cache-semantics@4.0.4
	@types/ini@1.3.34
	@types/istanbul-lib-coverage@2.0.6
	@types/istanbul-lib-report@3.0.3
	@types/istanbul-reports@3.0.4
	@types/jest@29.5.14
	@types/json-schema@7.0.15
	@types/jsonfile@6.1.4
	@types/keyv@3.1.4
	@types/mdast@3.0.15
	@types/minimatch@3.0.5
	@types/ms@2.1.0
	@types/node@22.19.3
	@types/node@24.12.2
	@types/normalize-package-data@2.4.4
	@types/parse-json@4.0.2
	@types/parse5@6.0.3
	@types/plist@3.0.5
	@types/prop-types@15.7.14
	@types/react@18.3.21
	@types/react-dom@18.3.7
	@types/react-router@5.1.20
	@types/react-router-dom@5.3.3
	@types/react-transition-group@4.4.12
	@types/responselike@1.0.3
	@types/sanitize-html@2.16.0
	@types/semver@7.7.0
	@types/source-map-support@0.5.10
	@types/stack-utils@2.0.3
	@types/symlink-or-copy@1.2.2
	@types/testing-library__jest-dom@5.14.9
	@types/tmp@0.2.6
	@types/unist@2.0.11
	@types/use-sync-external-store@0.0.6
	@types/verror@1.10.11
	@types/yargs@17.0.33
	@types/yargs-parser@21.0.3
	@typescript-eslint/eslint-plugin@8.34.1
	@typescript-eslint/parser@6.21.0
	@typescript-eslint/parser@8.34.1
	@typescript-eslint/project-service@8.34.1
	@typescript-eslint/scope-manager@6.21.0
	@typescript-eslint/scope-manager@8.34.1
	@typescript-eslint/tsconfig-utils@8.34.1
	@typescript-eslint/type-utils@8.34.1
	@typescript-eslint/types@6.21.0
	@typescript-eslint/types@8.34.1
	@typescript-eslint/typescript-estree@6.21.0
	@typescript-eslint/typescript-estree@8.34.1
	@typescript-eslint/utils@8.34.1
	@typescript-eslint/visitor-keys@6.21.0
	@typescript-eslint/visitor-keys@8.34.1
	@unrs/resolver-binding-linux-arm64-gnu@1.9.1|arm64
	@unrs/resolver-binding-linux-arm64-musl@1.9.1|arm64
	@unrs/resolver-binding-linux-x64-gnu@1.9.1|amd64
	@unrs/resolver-binding-linux-x64-musl@1.9.1|amd64
	@vitejs/plugin-react-swc@3.9.0
	@vladfrangu/async_event_emitter@2.4.7
	@xhayper/discord-rpc@1.3.0
	@xmldom/xmldom@0.8.10
	abbrev@2.0.0
	abbrev@3.0.1
	acorn@8.15.0
	acorn-jsx@5.3.2
	agent-base@6.0.2
	agent-base@7.1.3
	aggregate-error@3.1.0
	ajv@6.12.6
	ajv@8.17.1
	ajv-formats@2.1.1
	ajv-keywords@3.5.2
	ansi-escapes@4.3.2
	ansi-regex@5.0.1
	ansi-regex@6.1.0
	ansi-styles@4.3.0
	ansi-styles@5.2.0
	ansi-styles@6.2.1
	any-base@1.1.0
	anymatch@3.1.3
	app-builder-bin@4.0.0
	app-builder-bin@5.0.0-alpha.12
	app-builder-lib@24.13.3
	app-builder-lib@26.8.1
	archiver@5.3.2
	archiver-utils@2.1.0
	archiver-utils@3.0.4
	argparse@1.0.10
	argparse@2.0.1
	aria-query@5.1.3
	aria-query@5.3.2
	array-buffer-byte-length@1.0.2
	array-includes@3.1.8
	array-union@2.1.0
	array.prototype.findlast@1.2.5
	array.prototype.flat@1.3.3
	array.prototype.flatmap@1.3.3
	array.prototype.tosorted@1.1.4
	arraybuffer.prototype.slice@1.0.4
	assert-plus@1.0.0
	astral-regex@2.0.0
	async@3.2.6
	async-exit-hook@2.0.1
	async-function@1.0.0
	asynckit@0.4.0
	at-least-node@1.0.0
	atomically@1.7.0
	available-typed-arrays@1.0.7
	axios@1.13.5
	b4a@1.6.7
	babel-jest@29.7.0
	babel-plugin-istanbul@6.1.1
	babel-plugin-jest-hoist@29.6.3
	babel-plugin-macros@3.1.0
	babel-preset-current-node-syntax@1.1.0
	babel-preset-jest@29.6.3
	bail@2.0.2
	balanced-match@1.0.2
	balanced-match@4.0.3
	bare-events@2.5.4
	base64-js@1.5.1
	bl@4.1.0
	bl@5.1.0
	bluebird@3.7.2
	bluebird-lst@1.0.9
	boolbase@1.0.0
	boolean@3.2.0
	brace-expansion@1.1.12
	brace-expansion@1.1.13
	brace-expansion@2.0.2
	brace-expansion@2.0.3
	brace-expansion@5.0.2
	braces@3.0.3
	broccoli-node-api@1.7.0
	broccoli-node-info@2.2.0
	broccoli-output-wrapper@3.2.5
	broccoli-plugin@4.0.7
	browserslist@4.24.4
	bs-logger@0.2.6
	bser@2.1.1
	buffer@5.7.1
	buffer@6.0.3
	buffer-crc32@0.2.13
	buffer-equal@1.0.1
	buffer-from@1.1.2
	builder-util@24.13.1
	builder-util@26.8.1
	builder-util-runtime@9.2.4
	builder-util-runtime@9.5.1
	cac@6.7.14
	cacache@18.0.4
	cacache@19.0.1
	cacheable-lookup@5.0.4
	cacheable-request@7.0.4
	call-bind@1.0.8
	call-bind-apply-helpers@1.0.2
	call-bound@1.0.4
	callsites@3.1.0
	camelcase@5.3.1
	camelcase@6.3.0
	caniuse-lite@1.0.30001716
	chalk@3.0.0
	chalk@4.1.2
	char-regex@1.0.2
	character-entities@2.0.2
	cheerio@1.0.0
	cheerio-select@2.1.0
	chokidar@4.0.3
	chownr@2.0.0
	chownr@3.0.0
	chromium-pickle-js@0.2.0
	ci-info@3.9.0
	ci-info@4.3.1
	ci-info@4.4.0
	cjs-module-lexer@1.4.3
	classnames@2.5.1
	clean-stack@2.2.0
	cli-cursor@3.1.0
	cli-spinners@2.9.2
	cli-truncate@2.1.0
	cliui@7.0.4
	cliui@8.0.1
	clone@1.0.4
	clone@2.1.2
	clone-response@1.0.3
	clone-stats@1.0.0
	clsx@2.1.1
	co@4.6.0
	code-block-writer@11.0.3
	collect-v8-coverage@1.0.2
	color-convert@2.0.1
	color-name@1.1.4
	colors@1.4.0
	combined-stream@1.0.8
	comma-separated-tokens@2.0.3
	commander@12.1.0
	commander@5.1.0
	commander@6.2.1
	comment-parser@1.4.1
	compare-version@0.1.2
	compress-commons@4.1.2
	concat-map@0.0.1
	conf@10.2.0
	config-file-ts@0.2.6
	convert-source-map@1.9.0
	convert-source-map@2.0.0
	core-util-is@1.0.2
	core-util-is@1.0.3
	cosmiconfig@7.1.0
	cosmiconfig@8.3.6
	crc@3.8.0
	crc-32@1.2.2
	crc32-stream@4.0.3
	create-jest@29.7.0
	cross-env@7.0.3
	cross-fetch@4.0.0
	cross-spawn@7.0.5
	cross-spawn@7.0.6
	css-box-model@1.2.1
	css-select@5.1.0
	css-what@6.1.0
	css.escape@1.5.1
	csstype@3.1.3
	d3-array@3.2.4
	d3-color@3.1.0
	d3-ease@3.0.1
	d3-format@3.1.0
	d3-interpolate@3.0.1
	d3-path@3.1.0
	d3-scale@4.0.2
	d3-shape@3.2.0
	d3-time@3.1.0
	d3-time-format@4.1.0
	d3-timer@3.0.1
	data-view-buffer@1.0.2
	data-view-byte-length@1.0.2
	data-view-byte-offset@1.0.1
	debounce-fn@4.0.0
	debug@2.6.9
	debug@3.2.7
	debug@4.4.0
	debug@4.4.1
	debug@4.4.3
	decimal.js-light@2.5.1
	decode-named-character-reference@1.1.0
	decompress-response@6.0.0
	dedent@1.6.0
	deep-equal@2.2.3
	deep-is@0.1.4
	deepmerge@4.3.1
	defaults@1.0.4
	defer-to-connect@2.0.1
	define-data-property@1.1.4
	define-properties@1.2.1
	delayed-stream@1.0.0
	dequal@2.0.3
	detect-libc@1.0.3
	detect-libc@2.0.4
	detect-newline@3.1.0
	detect-node@2.1.0
	diff@5.2.0
	diff-sequences@29.6.3
	dir-compare@3.3.0
	dir-compare@4.2.0
	dir-glob@3.0.1
	discord-api-types@0.38.36
	dmg-builder@26.8.1
	doctrine@2.1.0
	dom-accessibility-api@0.5.16
	dom-helpers@5.2.1
	dom-serializer@2.0.0
	domelementtype@2.3.0
	domhandler@5.0.3
	domutils@3.2.2
	dot-case@3.0.4
	dot-prop@6.0.1
	dotenv@16.5.0
	dotenv@9.0.2
	dotenv-expand@11.0.7
	dotenv-expand@5.1.0
	dunder-proto@1.0.1
	eastasianwidth@0.2.0
	easydl@1.2.0
	ejs@3.1.10
	electron@43.1.1
	electron-builder@26.8.1
	electron-builder-squirrel-windows@24.13.3
	electron-devtools-installer@4.0.0
	electron-publish@24.13.1
	electron-publish@26.8.1
	electron-store@8.2.0
	electron-to-chromium@1.5.149
	electron-updater@6.8.3
	electron-vite@3.1.0
	emittery@0.13.1
	emoji-regex@8.0.0
	emoji-regex@9.2.2
	encoding@0.1.13
	encoding-sniffer@0.2.0
	end-of-stream@1.4.5
	ensure-posix-path@1.1.1
	entities@4.5.0
	entities@6.0.0
	env-paths@2.2.1
	env-paths@3.0.0
	eol@0.9.1
	err-code@2.0.3
	error-ex@1.3.2
	es-abstract@1.23.9
	es-define-property@1.0.1
	es-errors@1.3.0
	es-get-iterator@1.1.3
	es-iterator-helpers@1.2.1
	es-object-atoms@1.1.1
	es-set-tostringtag@2.1.0
	es-shim-unscopables@1.1.0
	es-to-primitive@1.3.0
	es6-error@4.1.1
	esbuild@0.25.12
	esbuild@0.25.3
	escalade@3.2.0
	escape-string-regexp@2.0.0
	escape-string-regexp@4.0.0
	eslint@9.29.0
	eslint-config-prettier@10.1.8
	eslint-import-context@0.1.8
	eslint-import-resolver-node@0.3.9
	eslint-import-resolver-typescript@4.4.3
	eslint-plugin-import-x@4.15.2
	eslint-plugin-react@7.37.5
	eslint-plugin-react-hooks@5.2.0
	eslint-scope@8.4.0
	eslint-visitor-keys@3.4.3
	eslint-visitor-keys@4.2.1
	espree@10.4.0
	esprima@4.0.1
	esquery@1.6.0
	esrecurse@4.3.0
	estraverse@5.3.0
	estree-walker@2.0.2
	esutils@2.0.3
	eventemitter3@4.0.7
	execa@5.1.1
	exit@0.1.2
	expect@29.7.0
	exponential-backoff@3.1.2
	extend@3.0.2
	extsprintf@1.4.1
	fast-deep-equal@3.1.3
	fast-equals@5.2.2
	fast-fifo@1.3.2
	fast-glob@3.3.3
	fast-json-stable-stringify@2.1.0
	fast-levenshtein@2.0.6
	fast-uri@3.0.6
	fast-xml-builder@1.1.4
	fast-xml-parser@5.5.7
	fastq@1.19.1
	fb-watchman@2.0.2
	fdir@6.4.4
	fdir@6.5.0
	file-entry-cache@6.0.1
	file-entry-cache@8.0.0
	filelist@1.0.4
	filesize@10.1.6
	fill-range@7.1.1
	find-root@1.1.0
	find-up@3.0.0
	find-up@4.1.0
	find-up@5.0.0
	flat-cache@3.2.0
	flat-cache@4.0.1
	flatted@3.3.3
	flow-parser@0.156.0
	flow-remove-types@2.156.0
	follow-redirects@1.15.11
	for-each@0.3.5
	foreground-child@3.3.1
	form-data@4.0.5
	fs-constants@1.0.0
	fs-extra@10.1.0
	fs-extra@11.3.0
	fs-extra@8.1.0
	fs-extra@9.1.0
	fs-merger@3.2.1
	fs-minipass@2.1.0
	fs-minipass@3.0.3
	fs-mkdirp-stream@2.0.1
	fs-tree-diff@2.0.1
	fs.realpath@1.0.0
	function-bind@1.1.2
	function.prototype.name@1.1.8
	functions-have-names@1.2.3
	fuse.js@6.6.2
	gensync@1.0.0-beta.2
	get-caller-file@2.0.5
	get-intrinsic@1.3.0
	get-package-type@0.1.0
	get-proto@1.0.1
	get-stream@5.2.0
	get-stream@6.0.1
	get-symbol-description@1.1.0
	get-tsconfig@4.10.1
	glob@10.5.0
	glob@7.2.3
	glob-parent@5.1.2
	glob-parent@6.0.2
	glob-stream@8.0.2
	global-agent@3.0.0
	globals@11.12.0
	globals@14.0.0
	globalthis@1.0.4
	globby@11.1.0
	gopd@1.2.0
	got@11.8.6
	graceful-fs@4.2.11
	graphemer@1.4.0
	gulp-sort@2.0.0
	has-bigints@1.1.0
	has-flag@4.0.0
	has-property-descriptors@1.0.2
	has-proto@1.2.0
	has-symbols@1.1.0
	has-tostringtag@1.0.2
	hasown@2.0.2
	hast-util-from-parse5@7.1.2
	hast-util-parse-selector@3.1.1
	hast-util-raw@7.2.3
	hast-util-to-parse5@7.1.0
	hast-util-whitespace@2.0.1
	hastscript@7.2.0
	heimdalljs@0.2.6
	heimdalljs-logger@0.1.10
	hoist-non-react-statics@3.3.2
	hosted-git-info@2.8.9
	hosted-git-info@4.1.0
	html-escaper@2.0.2
	html-parse-stringify@3.0.1
	html-void-elements@2.0.1
	htmlparser2@8.0.2
	htmlparser2@9.1.0
	http-cache-semantics@4.1.1
	http-proxy-agent@5.0.0
	http-proxy-agent@7.0.2
	http2-wrapper@1.0.3
	https-proxy-agent@5.0.1
	https-proxy-agent@7.0.6
	human-signals@2.1.0
	husky@8.0.3
	i18next@22.5.1
	i18next@24.2.3
	i18next-fs-backend@2.6.0
	i18next-http-backend@2.7.3
	i18next-parser@9.3.0
	iconv-lite@0.6.3
	ieee754@1.2.1
	ignore@5.3.2
	ignore@7.0.5
	immediate@3.0.6
	immutable@5.1.2
	import-fresh@3.3.1
	import-local@3.2.0
	imurmurhash@0.1.4
	indent-string@4.0.0
	inflight@1.0.6
	inherits@2.0.4
	ini@3.0.1
	inline-style-parser@0.1.1
	internal-slot@1.1.0
	internmap@2.0.3
	intro.js@7.2.0
	intro.js-react@1.0.0
	ip-address@9.0.5
	is-arguments@1.2.0
	is-array-buffer@3.0.5
	is-arrayish@0.2.1
	is-async-function@2.1.1
	is-bigint@1.1.0
	is-boolean-object@1.2.2
	is-buffer@2.0.5
	is-bun-module@2.0.0
	is-callable@1.2.7
	is-ci@3.0.1
	is-core-module@2.16.1
	is-data-view@1.0.2
	is-date-object@1.1.0
	is-extglob@2.1.1
	is-finalizationregistry@1.1.1
	is-fullwidth-code-point@3.0.0
	is-generator-fn@2.1.0
	is-generator-function@1.1.0
	is-glob@4.0.3
	is-interactive@1.0.0
	is-lambda@1.0.1
	is-map@2.0.3
	is-negated-glob@1.0.0
	is-number@7.0.0
	is-number-object@1.1.1
	is-obj@2.0.0
	is-plain-obj@4.1.0
	is-plain-object@5.0.0
	is-regex@1.2.1
	is-set@2.0.3
	is-shared-array-buffer@1.0.4
	is-stream@2.0.1
	is-string@1.1.1
	is-symbol@1.1.1
	is-typed-array@1.1.15
	is-unicode-supported@0.1.0
	is-valid-glob@1.0.0
	is-weakmap@2.0.2
	is-weakref@1.1.1
	is-weakset@2.0.4
	isarray@1.0.0
	isarray@2.0.5
	isbinaryfile@4.0.10
	isbinaryfile@5.0.4
	isbinaryfile@5.0.7
	isexe@2.0.0
	isexe@3.1.1
	istanbul-lib-coverage@3.2.2
	istanbul-lib-instrument@5.2.1
	istanbul-lib-instrument@6.0.3
	istanbul-lib-report@3.0.1
	istanbul-lib-source-maps@4.0.1
	istanbul-reports@3.1.7
	iterator.prototype@1.1.5
	jackspeak@3.4.3
	jake@10.9.2
	jest@29.7.0
	jest-changed-files@29.7.0
	jest-circus@29.7.0
	jest-cli@29.7.0
	jest-config@29.7.0
	jest-diff@29.7.0
	jest-docblock@29.7.0
	jest-each@29.7.0
	jest-environment-node@29.7.0
	jest-get-type@29.6.3
	jest-haste-map@29.7.0
	jest-leak-detector@29.7.0
	jest-matcher-utils@29.7.0
	jest-message-util@29.7.0
	jest-mock@29.7.0
	jest-pnp-resolver@1.2.3
	jest-regex-util@29.6.3
	jest-resolve@29.7.0
	jest-resolve-dependencies@29.7.0
	jest-runner@29.7.0
	jest-runtime@29.7.0
	jest-snapshot@29.7.0
	jest-util@29.7.0
	jest-validate@29.7.0
	jest-watcher@29.7.0
	jest-worker@29.7.0
	jiti@2.6.1
	js-tokens@4.0.0
	js-yaml@3.14.2
	js-yaml@4.1.1
	jsbn@1.1.0
	jsesc@3.1.0
	json-buffer@3.0.1
	json-parse-even-better-errors@2.3.1
	json-schema-traverse@0.4.1
	json-schema-traverse@1.0.0
	json-schema-typed@7.0.3
	json-stable-stringify-without-jsonify@1.0.1
	json-stringify-safe@5.0.1
	json5@2.2.3
	jsonfile@4.0.0
	jsonfile@6.1.0
	jsx-ast-utils@3.3.5
	jszip@3.10.1
	keyv@4.5.4
	kleur@3.0.3
	kleur@4.1.5
	lazy-val@1.0.5
	lazystream@1.0.1
	lead@4.0.0
	leven@3.1.0
	levn@0.4.1
	lie@3.3.0
	lilconfig@3.1.3
	lines-and-columns@1.2.4
	locate-path@3.0.0
	locate-path@5.0.0
	locate-path@6.0.0
	lodash@4.17.21
	lodash.defaults@4.2.0
	lodash.difference@4.5.0
	lodash.escaperegexp@4.1.2
	lodash.flatten@4.4.0
	lodash.isequal@4.5.0
	lodash.isplainobject@4.0.6
	lodash.memoize@4.1.2
	lodash.merge@4.6.2
	lodash.union@4.6.0
	log-symbols@4.1.0
	loose-envify@1.4.0
	lower-case@2.0.2
	lowercase-keys@2.0.0
	lru-cache@10.4.3
	lru-cache@5.1.1
	lru-cache@6.0.0
	lz-string@1.5.0
	magic-bytes.js@1.12.1
	magic-string@0.30.17
	make-dir@4.0.0
	make-error@1.3.6
	make-fetch-happen@13.0.1
	make-fetch-happen@14.0.3
	makeerror@1.0.12
	matcher@3.0.0
	matcher-collection@2.0.1
	math-intrinsics@1.1.0
	mdast-util-definitions@5.1.2
	mdast-util-from-markdown@1.3.1
	mdast-util-to-hast@12.3.0
	mdast-util-to-string@3.2.0
	merge-stream@2.0.0
	merge2@1.4.1
	micromark@3.2.0
	micromark-core-commonmark@1.1.0
	micromark-factory-destination@1.1.0
	micromark-factory-label@1.1.0
	micromark-factory-space@1.1.0
	micromark-factory-title@1.1.0
	micromark-factory-whitespace@1.1.0
	micromark-util-character@1.2.0
	micromark-util-chunked@1.1.0
	micromark-util-classify-character@1.1.0
	micromark-util-combine-extensions@1.1.0
	micromark-util-decode-numeric-character-reference@1.1.0
	micromark-util-decode-string@1.1.0
	micromark-util-encode@1.1.0
	micromark-util-html-tag-name@1.2.0
	micromark-util-normalize-identifier@1.1.0
	micromark-util-resolve-all@1.1.0
	micromark-util-sanitize-uri@1.2.0
	micromark-util-subtokenize@1.1.0
	micromark-util-symbol@1.1.0
	micromark-util-types@1.1.0
	micromatch@4.0.8
	mime@2.6.0
	mime-db@1.52.0
	mime-types@2.1.35
	mimic-fn@2.1.0
	mimic-fn@3.1.0
	mimic-response@1.0.1
	mimic-response@3.1.0
	min-indent@1.0.1
	minimatch@10.0.1
	minimatch@10.2.2
	minimatch@3.1.2
	minimatch@3.1.5
	minimatch@5.1.6
	minimatch@5.1.9
	minimatch@9.0.3
	minimatch@9.0.5
	minimist@1.2.8
	minipass@3.3.6
	minipass@5.0.0
	minipass@7.1.2
	minipass-collect@2.0.1
	minipass-fetch@3.0.5
	minipass-fetch@4.0.1
	minipass-flush@1.0.5
	minipass-pipeline@1.2.4
	minipass-sized@1.0.3
	minizlib@2.1.2
	minizlib@3.1.0
	mkdirp@0.5.6
	mkdirp@1.0.4
	mktemp@0.4.0
	mri@1.2.0
	ms@2.0.0
	ms@2.1.3
	nanoid@3.3.11
	napi-postinstall@0.2.4
	natural-compare@1.4.0
	negotiator@0.6.4
	negotiator@1.0.0
	no-case@3.0.4
	node-abi@4.26.0
	node-addon-api@1.7.2
	node-addon-api@7.1.1
	node-api-version@0.2.1
	node-fetch@2.7.0
	node-gyp@10.3.1
	node-gyp@11.5.0
	node-int64@0.4.0
	node-modules-regexp@1.0.0
	node-releases@2.0.19
	nopt@7.2.1
	nopt@8.1.0
	normalize-package-data@2.5.0
	normalize-path@3.0.0
	normalize-url@6.1.0
	now-and-later@3.0.0
	npm-run-path@4.0.1
	nth-check@2.1.1
	object-assign@4.1.1
	object-inspect@1.13.4
	object-is@1.1.6
	object-keys@1.1.1
	object-sizeof@1.6.3
	object.assign@4.1.7
	object.entries@1.1.9
	object.fromentries@2.0.8
	object.values@1.2.1
	once@1.4.0
	onetime@5.1.2
	optionator@0.9.4
	ora@5.4.1
	own-keys@1.0.1
	p-cancelable@2.1.1
	p-limit@2.3.0
	p-limit@3.1.0
	p-locate@3.0.0
	p-locate@4.1.0
	p-locate@5.0.0
	p-map@4.0.0
	p-map@7.0.4
	p-try@2.2.0
	package-json-from-dist@1.0.1
	pako@1.0.11
	parent-module@1.0.1
	parse-json@5.2.0
	parse-srcset@1.0.2
	parse5@6.0.1
	parse5@7.3.0
	parse5-htmlparser2-tree-adapter@7.1.0
	parse5-parser-stream@7.1.2
	path-browserify@1.0.1
	path-exists@3.0.0
	path-exists@4.0.0
	path-expression-matcher@1.2.0
	path-is-absolute@1.0.1
	path-key@3.1.1
	path-parse@1.0.7
	path-posix@1.0.0
	path-scurry@1.11.1
	path-type@4.0.0
	pe-library@0.4.1
	picocolors@1.1.1
	picomatch@2.3.1
	picomatch@4.0.2
	picomatch@4.0.4
	pirates@3.0.2
	pirates@4.0.7
	pkg-dir@4.2.0
	pkg-up@3.1.0
	playwright@1.55.1
	playwright-core@1.55.1
	plist@3.1.0
	possible-typed-array-names@1.1.0
	postcss@8.5.3
	postcss@8.5.8
	prelude-ls@1.2.1
	prettier@3.7.4
	pretty-format@27.5.1
	pretty-format@29.7.0
	proc-log@4.2.0
	proc-log@5.0.0
	process-nextick-args@2.0.1
	progress@2.0.3
	promise-map-series@0.3.0
	promise-retry@2.0.1
	prompts@2.4.2
	prop-types@15.8.1
	proper-lockfile@4.1.2
	property-information@6.5.0
	proxy-from-env@1.1.0
	pump@3.0.2
	punycode@2.3.1
	pure-rand@6.1.0
	queue-microtask@1.2.3
	quick-lru@5.1.1
	quick-temp@0.1.8
	raf-schd@4.0.3
	react@18.3.1
	react-dom@18.3.1
	react-i18next@12.3.1
	react-is@16.13.1
	react-is@17.0.2
	react-is@18.3.1
	react-is@19.3.0
	react-markdown@8.0.7
	react-redux@9.3.0
	react-router@6.30.0
	react-router-dom@6.30.0
	react-smooth@4.0.4
	react-transition-group@4.4.5
	read-binary-file-arch@1.0.6
	read-config-file@6.3.2
	read-pkg@5.2.0
	read-pkg-up@7.0.1
	readable-stream@2.3.8
	readable-stream@3.6.2
	readdir-glob@1.1.3
	readdirp@4.1.2
	recharts@2.15.3
	recharts-scale@0.4.5
	redent@3.0.0
	redux@5.0.1
	reflect.getprototypeof@1.0.10
	regexp.prototype.flags@1.5.4
	rehype-raw@6.1.1
	remark-parse@10.0.2
	remark-rehype@10.1.0
	remove-trailing-separator@1.1.0
	replace-ext@2.0.0
	require-directory@2.1.1
	require-from-string@2.0.2
	resedit@1.7.2
	resolve@1.22.10
	resolve@1.22.11
	resolve@2.0.0-next.5
	resolve-alpn@1.2.1
	resolve-cwd@3.0.0
	resolve-from@4.0.0
	resolve-from@5.0.0
	resolve-options@2.0.0
	resolve-pkg-maps@1.0.0
	resolve.exports@2.0.3
	responselike@2.0.1
	restore-cursor@3.1.0
	retry@0.12.0
	reusify@1.1.0
	rimraf@2.7.1
	rimraf@3.0.2
	roarr@2.15.4
	rollup@4.60.1
	rsvp@3.2.1
	rsvp@4.8.5
	run-parallel@1.2.0
	rxjs@7.8.2
	sade@1.8.1
	safe-array-concat@1.1.3
	safe-buffer@5.1.2
	safe-buffer@5.2.1
	safe-push-apply@1.0.0
	safe-regex-test@1.1.0
	safer-buffer@2.1.2
	sanitize-filename@1.6.3
	sanitize-filename@1.6.4
	sanitize-html@2.16.0
	sass@1.89.0
	sax@1.4.1
	sax@1.6.0
	scheduler@0.23.2
	semver@5.7.2
	semver@6.3.1
	semver@7.7.2
	semver@7.7.4
	semver-compare@1.0.0
	serialize-error@7.0.1
	set-function-length@1.2.2
	set-function-name@2.0.2
	set-proto@1.0.0
	setimmediate@1.0.5
	shebang-command@2.0.0
	shebang-regex@3.0.0
	shlex@2.1.2
	short-uuid@4.2.2
	side-channel@1.1.0
	side-channel-list@1.0.0
	side-channel-map@1.0.1
	side-channel-weakmap@1.0.2
	signal-exit@3.0.7
	signal-exit@4.1.0
	simple-git@3.27.0
	simple-keyboard@3.8.54
	simple-update-notifier@2.0.0
	sisteransi@1.0.5
	slash@3.0.0
	slice-ansi@3.0.0
	smart-buffer@4.2.0
	snake-case@3.0.4
	socks@2.8.4
	socks-proxy-agent@8.0.5
	sort-keys@5.1.0
	source-map@0.5.7
	source-map@0.6.1
	source-map-js@1.2.1
	source-map-support@0.5.13
	source-map-support@0.5.21
	space-separated-tokens@2.0.2
	spdx-correct@3.2.0
	spdx-exceptions@2.5.0
	spdx-expression-parse@3.0.1
	spdx-license-ids@3.0.21
	sprintf-js@1.0.3
	sprintf-js@1.1.3
	ssri@10.0.6
	ssri@12.0.0
	stable-hash-x@0.1.1
	stack-utils@2.0.6
	stat-mode@1.0.0
	steam-shortcut-editor@3.1.3
	stop-iteration-iterator@1.1.0
	stream-composer@1.0.2
	streamx@2.22.0
	string-length@4.0.2
	string-width@4.2.3
	string-width@5.1.2
	string.prototype.matchall@4.0.12
	string.prototype.repeat@1.0.0
	string.prototype.trim@1.2.10
	string.prototype.trimend@1.0.9
	string.prototype.trimstart@1.0.8
	string_decoder@1.1.1
	string_decoder@1.3.0
	strip-ansi@6.0.1
	strip-ansi@7.1.0
	strip-bom@4.0.0
	strip-final-newline@2.0.0
	strip-indent@3.0.0
	strip-json-comments@3.1.1
	strnum@2.2.2
	style-to-object@0.4.4
	stylis@4.2.0
	sumchecker@3.0.1
	supports-color@7.2.0
	supports-color@8.1.1
	supports-preserve-symlinks-flag@1.0.0
	svg-parser@2.0.4
	symlink-or-copy@1.3.1
	tar@6.2.1
	tar@7.5.9
	tar-stream@2.2.0
	teex@1.0.1
	temp-file@3.4.0
	term-size@2.2.1
	test-exclude@6.0.0
	text-decoder@1.2.3
	through2@2.0.5
	tiny-async-pool@1.3.0
	tiny-invariant@1.3.3
	tiny-typed-emitter@2.1.0
	tinyglobby@0.2.14
	tinyglobby@0.2.15
	tmp@0.2.4
	tmp-promise@3.0.3
	tmpl@1.0.5
	to-regex-range@5.0.1
	to-through@3.0.0
	tr46@0.0.3
	trim-lines@3.0.1
	trough@2.2.0
	true-myth@4.1.1
	truncate-utf8-bytes@1.0.2
	ts-api-utils@1.4.3
	ts-api-utils@2.1.0
	ts-jest@29.3.3
	ts-morph@17.0.1
	ts-prune@0.10.3
	tslib@2.8.1
	type-check@0.4.0
	type-detect@4.0.8
	type-fest@0.13.1
	type-fest@0.21.3
	type-fest@0.6.0
	type-fest@0.8.1
	type-fest@2.19.0
	type-fest@3.13.1
	type-fest@4.41.0
	typed-array-buffer@1.0.3
	typed-array-byte-length@1.0.3
	typed-array-byte-offset@1.0.4
	typed-array-length@1.0.7
	typed-emitter@2.1.0
	typescript@5.8.3
	typescript@5.9.3
	typescript-eslint@8.34.1
	unbox-primitive@1.1.0
	underscore.string@3.3.6
	undici@6.21.3
	undici@6.24.1
	undici@7.24.7
	undici-types@6.21.0
	undici-types@7.16.0
	unified@10.1.2
	unimported@1.31.1
	unique-filename@3.0.0
	unique-filename@4.0.0
	unique-slug@4.0.0
	unique-slug@5.0.0
	unist-util-generated@2.0.1
	unist-util-is@5.2.1
	unist-util-position@4.0.4
	unist-util-stringify-position@3.0.3
	unist-util-visit@4.1.2
	unist-util-visit-parents@5.1.3
	universalify@0.1.2
	universalify@2.0.1
	unrs-resolver@1.9.1
	unzip-crx-3@0.2.0
	update-browserslist-db@1.1.3
	upng-js@2.1.0
	uri-js@4.4.1
	use-sync-external-store@1.5.0
	utf8-byte-length@1.0.5
	util-deprecate@1.0.2
	uuid@8.3.2
	uvu@0.5.6
	v8-to-istanbul@9.3.0
	validate-npm-package-license@3.0.4
	value-or-function@4.0.0
	verror@1.10.1
	vfile@5.3.7
	vfile-location@4.1.0
	vfile-message@3.1.4
	victory-vendor@36.9.2
	vinyl@3.0.0
	vinyl-contents@2.0.0
	vinyl-fs@4.0.0
	vinyl-sourcemap@2.0.0
	vite@6.3.5
	vite-plugin-svgr@4.3.0
	vlq@0.2.3
	void-elements@3.1.0
	walk-sync@2.2.0
	walker@1.0.8
	wcwidth@1.0.1
	web-namespaces@2.0.1
	webidl-conversions@3.0.1
	whatwg-encoding@3.1.1
	whatwg-mimetype@4.0.0
	whatwg-url@5.0.0
	which@1.3.1
	which@2.0.2
	which@4.0.0
	which@5.0.0
	which-boxed-primitive@1.1.1
	which-builtin-type@1.2.1
	which-collection@1.0.2
	which-typed-array@1.1.19
	word-wrap@1.2.5
	wrap-ansi@7.0.0
	wrap-ansi@8.1.0
	wrappy@1.0.2
	write-file-atomic@4.0.2
	ws@8.18.3
	xmlbuilder@15.1.1
	xtend@4.0.2
	xvfb-maybe@0.2.1
	y18n@5.0.8
	yaku@0.16.7
	yallist@3.1.1
	yallist@4.0.0
	yallist@5.0.0
	yaml@1.10.2
	yargs@16.2.0
	yargs@17.7.2
	yargs-parser@20.2.9
	yargs-parser@21.1.1
	yocto-queue@0.1.0
	zip-stream@4.1.1
	zod@3.25.6
	zustand@4.5.6
	zwitch@2.0.4
"
NPM_PNPM_VERSION="10.28.0"
ELECTRON_SLOT="44"

inherit desktop edo electron npm xdg

DESCRIPTION="GOG, Epic Games and Amazon Games launcher"
HOMEPAGE="https://heroicgameslauncher.com/
	https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher"
SRC_URI="
	https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/archive/refs/tags/v${PV}.tar.gz
		-> ${P}.gh.tar.gz
	${NPM_PKG_URIS}
"
S="${WORKDIR}/HeroicGamesLauncher-${PV}"

LICENSE="GPL-3"
# Bundled npm packages
LICENSE+=" 0BSD Apache-2.0 BSD BSD-2 CC0-1.0 ISC MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
IUSE="gamescope +vulkan"
RESTRICT="mirror test"

# Heroic runs these store tools; upstream downloads prebuilt copies
RDEPEND+="
	!games-util/heroic-bin
	games-util/comet
	games-util/gogdl
	games-util/legendary
	games-util/nile
	gamescope? ( gui-wm/gamescope )
	vulkan? ( games-util/vulkan-helper )
"
BDEPEND="${NPM_NODE_DEPEND}"

# Electron reports the app as unpackaged when it is run as a directory, which
# sends Heroic looking for its UI and assets in the source layout
PATCHES=( "${FILESDIR}/${P}-system-electron-paths.patch" )

src_compile() {
	electron_setup_env

	npm_with_registry pnpm install --frozen-lockfile
	edo pnpm run build

	# The installed app gets a production-only node_modules
	local prod="${WORKDIR}/prod"
	mkdir -p "${prod}" || die
	cp -r package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc patches "${prod}" || die
	pushd "${prod}" >/dev/null || die
	npm_with_registry pnpm install --frozen-lockfile --prod --ignore-scripts
	popd >/dev/null || die
}

src_install() {
	local app="$(electron_app_dir)"

	insinto "${app}"
	doins package.json
	doins -r build "${WORKDIR}/prod/node_modules"

	# Upstream commits these as prebuilt binaries
	find "${ED}${app}" -name vulkan-helper -delete || die

	local tool tools=( legendary gogdl nile comet )
	local bindir="${app}/build/bin/$(usex arm64 arm64 x64)/linux"
	use vulkan && tools+=( vulkan-helper )
	for tool in "${tools[@]}"; do
		dosym -r "/usr/bin/${tool}" "${bindir}/${tool}"
	done

	electron_make_launcher heroic

	newicon flatpak/com.heroicgameslauncher.hgl.png com.heroicgameslauncher.hgl.png
	sed -e 's/^Exec=heroic-run /Exec=heroic /' \
		flatpak/com.heroicgameslauncher.hgl.desktop > "${T}/heroic.desktop" || die
	newmenu "${T}/heroic.desktop" com.heroicgameslauncher.hgl.desktop

	if use gamescope; then
		sed -e 's/^Name=Heroic Games Launcher/& (Gamescope)/' \
			-e 's/^Exec=heroic /Exec=env GDK_BACKEND=wayland gamescope -f -R --RT --force-grab-cursor --prefer-vk-device --adaptive-sync --nested-unfocused-refresh 30 -- heroic --ozone-platform=x11 --enable-features=UseOzonePlatform,WaylandWindowDecorations /' \
			"${T}/heroic.desktop" > "${T}/heroic-gamescope.desktop" || die
		newmenu "${T}/heroic-gamescope.desktop" com.heroicgameslauncher.hgl.gamescope.desktop
	fi

	dodoc README.md CHANGELOG.md
}