{ "name": "VRCX", "private": true, "description": "Friendship management tool for VRChat", "keywords": [ "vrchat" ], "homepage": "https://github.com/vrcx-team/VRCX#readme", "bugs": { "url": "https://github.com/vrcx-team/VRCX/issues" }, "license": "MIT", "author": "VRCX Team", "repository": { "type": "git", "url": "git+https://github.com/vrcx-team/VRCX.git" }, "main": "src-electron/main.js", "scripts": { "dev": "cross-env PLATFORM=windows vite serve src", "dev-linux": "cross-env PLATFORM=linux vite serve src", "localization": "node ./src/shared/utils/localizationHelperCLI.js", "lint": "npm run lint:oxlint && npm run lint:eslint", "lint:eslint": "eslint .", "lint:oxlint": "oxlint .", "typecheck:js": "tsc -p tsconfig.checkjs.json --pretty false", "test": "vitest run", "test:coverage": "vitest run --coverage", "build:licenses": "node ./build-scripts/generate-third-party-licenses.js", "prod": "cross-env PLATFORM=windows vite build src && npm run build:licenses", "prod-linux": "cross-env PLATFORM=linux vite build src && npm run build:licenses", "build-electron": "node ./src-electron/download-dotnet-runtime.js --arch=x64 && node ./src-electron/patch-package-version.js && electron-builder --x64 --publish never", "build-electron-arm64": "node ./src-electron/download-dotnet-runtime.js --arch=arm64 && node ./src-electron/patch-package-version.js && electron-builder --arm64 --publish never", "postbuild-electron": "node ./src-electron/patch-node-api-dotnet.js --arch=x64 && node ./src-electron/rename-builds.js --arch=x64", "postbuild-electron-arm64": "node ./src-electron/patch-node-api-dotnet.js --arch=arm64 && node ./src-electron/rename-builds.js --arch=arm64", "start-electron": "electron . --hot-reload" }, "dependencies": { "hazardous": "^0.3.0", "node-api-dotnet": "^0.9.19" }, "devDependencies": { "@dnd-kit/vue": "^0.3.2", "@eslint/js": "^9.39.4", "@fontsource-variable/inter": "^5.2.8", "@fontsource-variable/noto-sans-jp": "^5.2.10", "@fontsource-variable/noto-sans-kr": "^5.2.10", "@fontsource-variable/noto-sans-sc": "^5.2.10", "@fontsource-variable/noto-sans-tc": "^5.2.10", "@internationalized/date": "^3.12.0", "@pinia/testing": "^1.0.3", "@sentry/vite-plugin": "^4.9.1", "@sentry/vue": "^10.46.0", "@sigma/edge-curve": "^3.1.0", "@sigma/node-border": "^3.0.0", "@tailwindcss/vite": "^4.2.2", "@tanstack/vue-query": "^5.95.2", "@tanstack/vue-table": "^8.21.3", "@tanstack/vue-virtual": "^3.13.23", "@types/node": "^24.12.0", "@vee-validate/zod": "^4.15.1", "@vitejs/plugin-vue": "^6.0.5", "@vitejs/plugin-vue-jsx": "^5.1.5", "@vitest/coverage-v8": "^4.1.2", "@vue/test-utils": "^2.4.6", "@vueuse/core": "^14.2.1", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cross-env": "^10.1.0", "dayjs": "^1.11.20", "echarts": "^6.0.0", "electron": "^40.8.5", "electron-builder": "^26.8.1", "embla-carousel-vue": "^8.6.0", "eslint": "^9.39.4", "eslint-plugin-jsdoc": "^62.8.1", "eslint-plugin-oxlint": "^1.57.0", "eslint-plugin-vue": "^9.33.0", "globals": "^17.4.0", "graphology": "^0.26.0", "graphology-communities-louvain": "^2.0.2", "graphology-layout-forceatlas2": "^0.10.1", "graphology-layout-noverlap": "^0.4.2", "jsdom": "^28.1.0", "lightningcss": "^1.32.0", "lucide-vue-next": "^0.562.0", "noty": "^3.2.0-beta-deprecated", "oxfmt": "^0.40.0", "oxlint": "^1.57.0", "pinia": "^3.0.4", "reka-ui": "^2.9.2", "remixicon": "^4.9.1", "sigma": "^3.0.2", "tailwind-merge": "^3.5.0", "tailwindcss": "^4.2.2", "tw-animate-css": "^1.4.0", "vee-validate": "^4.15.1", "vite": "^8.0.3", "vitest": "^4.1.2", "vue": "^3.5.31", "vue-advanced-cropper": "^2.8.9", "vue-i18n": "^11.3.0", "vue-input-otp": "^0.3.2", "vue-json-pretty": "^2.6.0", "vue-marquee-text-component": "^2.0.1", "vue-router": "^4.6.4", "vue-showdown": "^4.2.0", "vue-sonner": "^2.0.9", "worker-timers": "^8.0.31", "yargs": "^18.0.0", "zod": "^3.25.76" }, "engines": { "node": ">=24.10.0", "npm": ">=11.5.0" }, "build": { "appId": "app.vrcx", "productName": "VRCX", "icon": "images/VRCX.png", "files": [ "build/html/**/*", "src-electron/*", "images/VRCX.png", "images/VRCX.ico", "images/VRCX_notify.png", "images/VRCX_notify.ico", "Version", "src-electron/libs/linux/libopenvr_api.so", ".no-updater" ], "asarUnpack": [ "node_modules/node-api-dotnet/**/*", "node_modules/node-api-dotnet/net9.0/**/*", "build/Electron/*", "build/Electron/**", "build/Electron/dotnet-runtime/**/*", "src-electron/libs/linux/libopenvr_api.so" ], "extraResources": [ { "from": "build/Electron/", "to": "app.asar.unpacked/build/Electron/" }, { "from": "node_modules/node-api-dotnet/net9.0/Microsoft.JavaScript.NodeApi.dll", "to": "app.asar.unpacked/node_modules/node-api-dotnet/net9.0/Microsoft.JavaScript.NodeApi.dll" }, { "from": "node_modules/node-api-dotnet/net9.0/Microsoft.JavaScript.NodeApi.DotNetHost.dll", "to": "app.asar.unpacked/node_modules/node-api-dotnet/net9.0/Microsoft.JavaScript.NodeApi.DotNetHost.dll" }, { "from": "build/Electron/dotnet-runtime/", "to": "dotnet-runtime/" }, { "from": "src-electron/libs/linux/libopenvr_api.so", "to": "bin/libopenvr_api.so" }, { "from": "src-electron/libs/linux/libopenvr_api.so", "to": "app.asar.unpacked/build/Electron/openvr_api.so" } ], "directories": { "output": "build" }, "linux": { "artifactName": "VRCX_Version.${ext}", "target": [ "AppImage" ], "icon": "images/VRCX.png", "category": "Utility", "executableName": "vrcx", "desktop": { "entry": { "Name": "VRCX", "Comment": "Friendship management tool for VRChat", "Icon": "VRCX", "Terminal": "false", "Type": "Application", "Categories": "Utility;Application;" } }, "maintainer": "rs189 <35667100+rs189@users.noreply.github.com>", "description": "Friendship management tool for VRChat" }, "mac": { "artifactName": "VRCX_Version.${ext}", "target": [ "dmg" ], "icon": "images/VRCX.png", "category": "public.app-category.utilities", "executableName": "VRCX" } } }