{ "name": "redalert2-web", "private": true, "version": "0.0.0", "type": "module", "packageManager": "bun@1.3.10", "scripts": { "dev": "node ./node_modules/vite/bin/vite.js", "dev:bun": "bun --bun vite", "build": "bun --bun vite build", "test": "bun test", "test:rendering": "node src/test/rendering/run.mjs", "typecheck:entry": "bun --bun tsc -p tsconfig.build.json", "preview": "bun --bun vite preview", "live:runtime": "bun scripts/live-interaction-runtime.mjs", "live:runtime:build": "bun --bun vite build && bun scripts/live-interaction-runtime.mjs", "debug:skirmish": "bun scripts/skirmish-flow.mjs", "debug:live-interaction": "bun scripts/live-interaction-flow.mjs", "debug:live-interaction-loading": "bun scripts/live-interaction-loading-flow.mjs", "debug:perf-smoke": "bun scripts/perf-smoke-flow.mjs", "debug:perftest": "bun scripts/perftest-flow.mjs", "debug:game-res-init": "bun scripts/game-res-init-flow.mjs", "debug:refinery-free-unit": "bun scripts/refinery-free-unit-flow.mjs", "debug:viewport": "bun scripts/viewport-flow.mjs", "debug:terror-drone": "bun scripts/terror-drone-flow.mjs", "debug:chrono-legionnaire": "bun scripts/chrono-legionnaire-flow.mjs", "debug:radiation": "bun scripts/radiation-flow.mjs", "debug:storage-explorer": "bun scripts/storage-explorer-flow.mjs", "debug:options": "bun scripts/options-flow.mjs", "debug:test-entries": "bun scripts/test-entry-flow.mjs", "debug:tester-panels": "bun scripts/tester-panel-flow.mjs", "debug:skirmish-lobby-data": "bun scripts/skirmish-lobby-data-flow.mjs", "debug:victory-exit": "bun scripts/victory-exit-flow.mjs", "debug:crate-sound": "bun scripts/crate-sound-flow.mjs", "debug:superweapon": "bun scripts/superweapon-flow.mjs", "debug:nuke": "bun scripts/nuke-flow.mjs", "debug:minimap-shroud": "bun scripts/minimap-shroud-flow.mjs", "debug:anti-air-hit": "bun scripts/anti-air-hit-flow.mjs", "debug:lan-mesh": "bun scripts/lan-mesh-flow.mjs", "debug:lan-app-message": "bun scripts/lan-app-message-flow.mjs", "debug:lan-entry": "bun scripts/lan-entry-shot.mjs", "debug:lan-lockstep": "bun scripts/lan-lockstep-flow.mjs", "debug:lan-match-session": "bun scripts/lan-match-session-flow.ts", "debug:lan-map-transfer": "bun scripts/lan-room-map-transfer-flow.ts" }, "dependencies": { "7z-wasm": "^1.1.0", "@brakebein/threeoctree": "^2.0.1", "@datastructures-js/priority-queue": "^6.3.5", "@ffmpeg/ffmpeg": "^0.12.15", "@puzzl/core": "^1.0.0-beta.1", "@ra2web/pcxfile": "^1.0.1", "@ra2web/wavefile": "^1.0.2", "@timohausmann/quadtree-ts": "2.2.2", "classnames": "^2.5.1", "file-system-access": "^1.0.4", "js-logger": "^1.6.1", "jsqr": "^1.4.0", "liang-barsky": "^1.0.12", "mersenne-twister": "^1.1.0", "qrcode": "^1.5.4", "react": "19.2.4", "react-dom": "19.2.4", "shader-particle-engine": "^1.0.6", "sprintf-js": "^1.1.3", "stats.js": "^0.17.0", "three": "0.183.2", "three.meshline": "^1.4.0" }, "devDependencies": { "@playwright/test": "1.58.2", "@types/react": "19.2.14", "@types/react-dom": "19.2.3", "@types/sprintf-js": "^1.1.4", "@types/three": "0.183.1", "@vitejs/plugin-basic-ssl": "^2.3.0", "@vitejs/plugin-react": "6.0.1", "typescript": "5.9.3", "vite": "8.0.1" } }