{ "name": "heros-web", "version": "0.1.0", "private": true, "type": "module", "scripts": { "dev": "vite --host 0.0.0.0", "debug": "vite --host 0.0.0.0 --debug", "build": "tsc && vite build", "generate:audio": "node scripts/generate-bgm.mjs", "generate:camp-audio": "node scripts/generate-camp-audio.mjs", "generate:sfx": "node scripts/generate-sfx.mjs", "generate:battle-ui-icons": "python scripts/build-battle-ui-icons.py", "export:battle-map-v2-data": "node scripts/export-battle-map-v2-data.mjs", "generate:battle-maps-v2": "node scripts/export-battle-map-v2-data.mjs && python scripts/generate-battle-maps-v2.py", "audit:equipment-icons": "node scripts/audit-equipment-icon-quality.mjs", "audit:visual-assets": "node scripts/audit-visual-asset-quality.mjs", "preview": "vite preview --host 0.0.0.0", "measure:performance": "node scripts/measure-performance.mjs", "verify:performance": "node scripts/measure-performance.mjs", "verify:battle-data": "node scripts/verify-battle-scenario-data.mjs", "verify:campaign-data": "node scripts/verify-campaign-flow-data.mjs", "verify:campaign-save": "node scripts/verify-campaign-save-normalization.mjs", "verify:campaign-completion": "node scripts/verify-campaign-completion.mjs", "verify:growth-consistency": "node scripts/verify-growth-consistency.mjs", "verify:battle-save": "node scripts/verify-battle-save-normalization.mjs", "verify:battle-usables": "node scripts/verify-battle-usables.mjs", "verify:combat-presentation": "node scripts/verify-combat-presentation-settings.mjs", "verify:enemy-intent": "node scripts/verify-enemy-intent-rollout.mjs", "verify:sortie-synergy": "node scripts/verify-sortie-synergy.mjs", "verify:sortie-recommendations": "node scripts/verify-sortie-recommendations.mjs", "verify:sortie-roster-history": "node scripts/verify-sortie-roster-history.mjs", "verify:camp-rewards": "node scripts/verify-camp-reward-data.mjs", "verify:camp-skins": "node scripts/verify-camp-skin-data.mjs", "verify:camp-soundscapes": "node scripts/verify-camp-soundscape-data.mjs", "verify:sound-director": "node scripts/verify-sound-director.mjs", "verify:campaign-recruits": "node scripts/verify-campaign-recruit-data.mjs", "verify:equipment-catalog": "node scripts/verify-equipment-catalog-data.mjs", "verify:inventory-rewards": "node scripts/verify-inventory-reward-data.mjs", "verify:story-assets": "node scripts/verify-story-asset-data.mjs", "verify:story-images": "node scripts/verify-story-image-asset-data.mjs", "verify:visual-assets": "node scripts/verify-visual-asset-data.mjs", "verify:unit-sprites": "node scripts/verify-unit-sprite-asset-data.mjs", "verify:unit-action-assets": "python scripts/optimize-unit-action-assets.py && node scripts/verify-battle-action-asset-budgets.mjs", "verify:unit-action-assets:dist": "node scripts/verify-battle-action-asset-budgets.mjs --dist", "verify:loader-lifecycle": "node scripts/verify-loader-lifecycle.mjs", "verify:battle-map-assets": "node scripts/verify-battle-map-asset-data.mjs", "verify:audio-assets": "node scripts/verify-audio-asset-data.mjs", "verify:av-feedback": "node scripts/verify-audiovisual-feedback.mjs", "verify:av-feedback:browser": "node scripts/verify-audiovisual-feedback-browser.mjs", "verify:desktop-viewport": "node scripts/verify-desktop-browser-viewport.mjs", "verify:static-data": "node scripts/verify-static-data.mjs", "verify:flow": "node scripts/verify-flow-segments.mjs", "verify:flow:manifest": "node scripts/verify-flow-segments.mjs --list-segments", "verify:flow:monolith": "node scripts/verify-flow.mjs", "verify:flow:segment": "node scripts/verify-flow.mjs", "verify:interaction-ux": "node scripts/verify-interaction-ux.mjs", "verify:save-flow": "node scripts/verify-save-retry-flow.mjs", "verify:release": "node scripts/verify-release-candidate.mjs", "verify:local-release": "pnpm run verify:static-data && pnpm run verify:unit-action-assets && pnpm run verify:enemy-intent && tsc --noEmit && pnpm run build && pnpm run verify:unit-action-assets:dist && pnpm run verify:loader-lifecycle && pnpm run verify:interaction-ux && pnpm run verify:av-feedback:browser && pnpm run verify:release && pnpm run verify:performance", "verify:1.0": "pnpm run verify:local-release && pnpm run verify:flow && pnpm run qa:campaign-complete && pnpm run qa:battle-maps:webgl", "verify:public-deploy": "node scripts/verify-public-deploy.mjs", "qa:representative": "node scripts/qa-representative-battles.mjs", "qa:battle-maps:webgl": "node scripts/qa-representative-battles.mjs --set=campaign --battles=1,9,18,22,33,40,46,54,59,61,64,66 --renderer=webgl --report=dist/qa-battle-maps-webgl.json", "qa:smoke": "node scripts/qa-representative-battles.mjs --set=smoke", "qa:early": "node scripts/qa-representative-battles.mjs --set=campaign --battles=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66", "qa:campaign-complete": "node scripts/qa-representative-battles.mjs --set=campaign --cumulative=1 --completion=1 --renderer=canvas --report=dist/qa-campaign-complete.json", "qa:early:repeat": "node scripts/qa-repeat.mjs --set=campaign --battles=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66", "deploy:nas": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy-nas.ps1 -Build", "deploy:nas:dist": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy-nas.ps1", "ship:release": "node scripts/ship-release.mjs" }, "dependencies": { "phaser": "^3.90.0" }, "devDependencies": { "@types/node": "^24.0.4", "playwright": "^1.61.0", "typescript": "^5.8.3", "vite": "^6.3.5" } }