{ "name": "portfolio-phase-1", "version": "1.0.0", "description": "", "type": "module", "directories": { "doc": "docs" }, "scripts": { "dev": "vite --host 127.0.0.1", "typecheck": "vue-tsc --noEmit", "test:unit": "vitest run", "test:deployment": "vitest run --config tests/deployment/vitest.config.ts", "test:browser": "playwright test", "build:client": "vite build --outDir dist-client --manifest", "build:ssr": "vite build --ssr src/entry-server.ts --outDir dist-ssr", "prerender": "node scripts/prerender.mjs", "verify:artifacts": "node scripts/verify-artifacts.mjs", "prepare:assets": "node scripts/prepare-assets.mjs", "verify:assets": "node scripts/prepare-assets.mjs --verify", "check:budgets": "node scripts/check-bundle-budgets.mjs dist", "check:budgets:transfer": "node scripts/check-bundle-budgets.mjs dist --transfer-only", "capture:runtime-budgets": "playwright test tests/performance/runtime-budget-trace.spec.ts --project=runtime-budget-desktop --workers=1", "verify:runtime-budgets": "node scripts/verify-runtime-budgets.mjs", "verify:phase3": "npm run verify:runtime-budgets && npm run test:browser", "verify:supply-chain": "node scripts/supply-chain-check.mjs verify --project . --evidence release-evidence/supply-chain", "smoke:production": "node scripts/smoke-production.mjs", "aggregate:performance": "node scripts/aggregate-drive-traces.mjs", "sign:performance": "node scripts/sign-drive-trace.mjs", "verify:approved-assets": "node scripts/materialize-empty-asset-set.mjs", "build:preview": "npm run verify:approved-assets && npm run typecheck && npm run test:unit && npm run build:client && npm run build:ssr && npm run prerender -- --config config/site.preview.json && npm run verify:artifacts -- --config config/site.preview.json && npm run check:budgets:transfer" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "@fontsource-variable/geist": "5.3.0", "@fontsource-variable/geist-mono": "5.3.0", "@phosphor-icons/vue": "2.2.1", "canonicalize": "2.1.0", "three": "^0.185.1", "vue": "^3.5.42", "zod": "^4.5.4" }, "devDependencies": { "@axe-core/playwright": "^4.13.0", "@cyclonedx/cyclonedx-npm": "6.0.1", "@playwright/test": "^1.62.1", "@vitejs/plugin-vue": "^6.0.8", "@vue/server-renderer": "^3.5.42", "@vue/test-utils": "^2.5.0", "@zxing/library": "^0.21.3", "eslint": "^10.9.1", "file-type": "^22.0.2", "happy-dom": "^20.12.0", "license-checker-rseidelsohn": "4.4.2", "lighthouse": "^13.4.1", "prettier": "^3.9.6", "sharp": "^0.35.4", "tesseract.js": "^7.0.0", "typescript": "^5.9.3", "vite": "^8.2.2", "vitest": "^4.1.11", "vue-tsc": "^3.3.11" } }