- Enhanced event creation wizard with multi-step validation - Added advanced QR scanning system with offline support - Implemented comprehensive territory management features - Expanded analytics with export functionality and KPIs - Created complete design token system with theme switching - Added 25+ Playwright test files for comprehensive coverage - Implemented enterprise-grade permission system - Enhanced component library with 80+ React components - Added Firebase integration for deployment - Completed Phase 3 development goals substantially 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
121 lines
5.9 KiB
JSON
121 lines
5.9 KiB
JSON
{
|
|
"name": "bct-react-rebuild",
|
|
"private": true,
|
|
"version": "1.0.0",
|
|
"type": "module",
|
|
"description": "Black Canyon Tickets React Rebuild - Premium UI/UX with glassmorphism design",
|
|
"scripts": {
|
|
"dev": "./node_modules/.bin/vite --host 0.0.0.0",
|
|
"build": "./node_modules/.bin/tsc && ./node_modules/.bin/vite build",
|
|
"preview": "./node_modules/.bin/vite preview",
|
|
"lint": "./node_modules/.bin/eslint . --report-unused-disable-directives --max-warnings 0",
|
|
"lint:ci": "eslint \"src/**/*.{ts,tsx}\" --max-warnings=0 --no-error-on-unmatched-pattern",
|
|
"lint:fix": "./node_modules/.bin/eslint . --fix",
|
|
"lint:check": "./node_modules/.bin/eslint . --report-unused-disable-directives",
|
|
"format": "./node_modules/.bin/prettier --write .",
|
|
"format:check": "./node_modules/.bin/prettier --check .",
|
|
"typecheck": "tsc --noEmit",
|
|
"quality": "npm run typecheck && npm run lint && npm run format:check",
|
|
"quality:fix": "npm run typecheck && npm run lint:fix && npm run format",
|
|
"test": "playwright test",
|
|
"test:ci": "npm run test -- --workers=1",
|
|
"test:ci:full": "npm run typecheck && npm run test -- --workers=1",
|
|
"test:ui": "./node_modules/.bin/playwright test --ui",
|
|
"test:headed": "./node_modules/.bin/playwright test --headed",
|
|
"test:qa": "./node_modules/.bin/tsx tests/test-runner.ts",
|
|
"test:qa:critical": "./node_modules/.bin/tsx tests/test-runner.ts --critical",
|
|
"test:qa:headed": "./node_modules/.bin/tsx tests/test-runner.ts --headed",
|
|
"test:smoke": "playwright test tests/smoke.spec.ts",
|
|
"test:publish-scanner": "playwright test tests/publish-scanner.smoke.spec.ts",
|
|
"test:publish-scanner:ci": "playwright test tests/publish-scanner.smoke.spec.ts --workers=1",
|
|
"test:auth": "./node_modules/.bin/playwright test tests/auth-realistic.spec.ts",
|
|
"test:auth:enhanced": "./node_modules/.bin/playwright test tests/auth.spec.ts",
|
|
"test:auth:bulletproof": "./node_modules/.bin/playwright test tests/auth-bulletproof.spec.ts",
|
|
"test:auth:bulletproof:headed": "./node_modules/.bin/playwright test tests/auth-bulletproof.spec.ts --headed",
|
|
"test:auth:bulletproof:ui": "./node_modules/.bin/playwright test tests/auth-bulletproof.spec.ts --ui",
|
|
"test:navigation": "./node_modules/.bin/playwright test tests/navigation.spec.ts",
|
|
"test:theme": "./node_modules/.bin/playwright test tests/theme.spec.ts",
|
|
"test:responsive": "./node_modules/.bin/playwright test tests/responsive.spec.ts",
|
|
"test:components": "./node_modules/.bin/playwright test tests/components.spec.ts",
|
|
"test:scanner": "./node_modules/.bin/playwright test tests/scan-offline.spec.ts tests/gate-ops.spec.ts",
|
|
"test:pwa": "./node_modules/.bin/playwright test tests/pwa-field-test.spec.ts",
|
|
"test:offline": "./node_modules/.bin/playwright test tests/offline-scenarios.spec.ts",
|
|
"test:performance": "./node_modules/.bin/playwright test tests/battery-performance.spec.ts --timeout=120000",
|
|
"test:mobile": "./node_modules/.bin/playwright test tests/mobile-ux.spec.ts",
|
|
"test:gate": "./node_modules/.bin/playwright test tests/real-world-gate.spec.ts",
|
|
"test:field": "./node_modules/.bin/playwright test tests/pwa-field-test.spec.ts tests/offline-scenarios.spec.ts tests/mobile-ux.spec.ts tests/real-world-gate.spec.ts --timeout=90000",
|
|
"test:all-scanner": "./node_modules/.bin/playwright test tests/scan-offline.spec.ts tests/gate-ops.spec.ts tests/pwa-field-test.spec.ts tests/offline-scenarios.spec.ts tests/battery-performance.spec.ts tests/mobile-ux.spec.ts tests/real-world-gate.spec.ts --timeout=120000",
|
|
"validate:theme": "node scripts/validate-theme.js",
|
|
"validate:colors": "node scripts/validate-theme.js",
|
|
"check:colors": "node scripts/check-hardcoded-colors.js",
|
|
"firebase:emulators": "firebase emulators:start",
|
|
"firebase:deploy:functions": "firebase deploy --only functions",
|
|
"firebase:deploy:hosting": "firebase deploy --only hosting",
|
|
"firebase:deploy:all": "npm run build && firebase deploy --only functions,hosting",
|
|
"firebase:deploy:preview": "npm run build && firebase hosting:channel:deploy staging",
|
|
"firebase:install": "cd functions && npm install"
|
|
},
|
|
"dependencies": {
|
|
"@hookform/resolvers": "^3.9.1",
|
|
"@sentry/integrations": "^7.114.0",
|
|
"@sentry/react": "^10.5.0",
|
|
"@tanstack/react-query": "^5.85.5",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"@tanstack/react-virtual": "^3.13.12",
|
|
"@zxing/browser": "^0.1.5",
|
|
"clsx": "^2.1.1",
|
|
"date-fns": "^4.1.0",
|
|
"firebase": "^12.1.0",
|
|
"framer-motion": "^11.11.17",
|
|
"idb": "^8.0.3",
|
|
"lucide-react": "^0.460.0",
|
|
"react": "^18.3.1",
|
|
"react-dom": "^18.3.1",
|
|
"react-hook-form": "^7.53.2",
|
|
"react-router-dom": "^6.28.0",
|
|
"tailwind-merge": "^2.6.0",
|
|
"ulid": "^3.0.1",
|
|
"zod": "^3.23.8",
|
|
"zustand": "^5.0.7"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.54.2",
|
|
"@tanstack/react-query-devtools": "^5.85.5",
|
|
"@types/node": "^22.10.2",
|
|
"@types/react": "^18.3.12",
|
|
"@types/react-dom": "^18.3.1",
|
|
"@typescript-eslint/eslint-plugin": "^8.39.1",
|
|
"@typescript-eslint/parser": "^8.39.1",
|
|
"@vitejs/plugin-react": "^4.3.3",
|
|
"autoprefixer": "^10.4.20",
|
|
"eslint": "^9.15.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-import-resolver-node": "^0.3.9",
|
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
"eslint-plugin-import": "^2.32.0",
|
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
"eslint-plugin-prettier": "^5.5.4",
|
|
"eslint-plugin-react": "^7.37.5",
|
|
"eslint-plugin-react-hooks": "^5.0.0",
|
|
"eslint-plugin-react-refresh": "^0.4.14",
|
|
"postcss": "^8.4.49",
|
|
"prettier": "^3.3.3",
|
|
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
"tailwindcss": "^3.4.14",
|
|
"tsx": "^4.19.2",
|
|
"typescript": "^5.6.3",
|
|
"typescript-eslint": "^8.39.1",
|
|
"vite": "^6.0.1"
|
|
},
|
|
"keywords": [
|
|
"react",
|
|
"typescript",
|
|
"vite",
|
|
"tailwind",
|
|
"ticketing",
|
|
"glassmorphism"
|
|
],
|
|
"author": "Black Canyon Tickets",
|
|
"license": "MIT"
|
|
}
|