hensei-web/package.json
Justin Edmund e4b7f0c356
Fix TypeScript errors for production build (#436)
## Summary
Fixed multiple TypeScript errors that were preventing the production
build from completing on Railway.

## Changes Made

### Nullable Type Fixes
- Fixed `searchParams.toString()` calls with optional chaining (`?.`)
and fallback values
- Fixed `pathname` nullable access in UpdateToastClient
- Added fallbacks for undefined values in translation interpolations

### Type Consistency Fixes
- Fixed recency parameter handling (string from URL, converted to number
internally)
- Removed duplicate local interface definitions for Party and User types
- Fixed Party type mismatches by using global type definitions

### API Route Error Handling
- Fixed error type checking in catch blocks for login/signup routes
- Added proper type guards for axios error objects

### Component Props Fixes
- Fixed RadixSelect.Trigger by removing invalid placeholder prop
- Fixed Toast and Tooltip components by using Omit to exclude
conflicting content type
- Added missing onAdvancedFilter prop to FilterBar components
- Fixed PartyFooter props with required parameters

## Test Plan
- [x] Fixed all TypeScript compilation errors locally
- [ ] Production build should complete successfully on Railway
- [ ] All affected components should function correctly

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-04 01:47:10 -07:00

125 lines
4 KiB
JSON

{
"name": "grid-web",
"private": true,
"cacheDirectories": [
".next/cache"
],
"scripts": {
"dev": "next dev -p 1234",
"build": "next build",
"start": "next start",
"lint": "next lint",
"postinstall": "node scripts/patch-next-intl.js",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build"
},
"engines": {
"node": "20.x",
"npm": ">=10.0.0"
},
"dependencies": {
"@radix-ui/react-alert-dialog": "^1.0.5",
"@radix-ui/react-dialog": "^1.0.5",
"@radix-ui/react-dropdown-menu": "^2.0.6",
"@radix-ui/react-hover-card": "^1.0.7",
"@radix-ui/react-popover": "^1.0.7",
"@radix-ui/react-radio-group": "^1.1.3",
"@radix-ui/react-select": "^2.0.0",
"@radix-ui/react-slider": "^1.1.2",
"@radix-ui/react-switch": "^1.0.3",
"@radix-ui/react-toast": "^1.1.5",
"@radix-ui/react-toggle-group": "^1.0.4",
"@radix-ui/react-tooltip": "^1.0.7",
"@svgr/webpack": "^8.1.0",
"@tanstack/react-query": "^5.17.19",
"@tiptap/extension-bubble-menu": "^2.1.16",
"@tiptap/extension-highlight": "^2.1.16",
"@tiptap/extension-link": "^2.1.16",
"@tiptap/extension-mention": "^2.1.16",
"@tiptap/extension-placeholder": "^2.1.16",
"@tiptap/extension-typography": "^2.1.16",
"@tiptap/extension-youtube": "^2.1.16",
"@tiptap/pm": "^2.1.16",
"@tiptap/react": "^2.1.16",
"@tiptap/starter-kit": "^2.1.16",
"@tiptap/suggestion": "^2.1.16",
"@types/react-bootstrap-typeahead": "^5.1.9",
"axios": "^1.6.7",
"classnames": "^2.5.1",
"cmdk": "^0.2.1",
"cookies-next": "^4.1.0",
"date-fns": "^3.3.1",
"dompurify": "^3.0.8",
"fast-deep-equal": "^3.1.3",
"fix-date": "^1.1.6",
"i18next": "^23.7.20",
"i18next-browser-languagedetector": "^7.2.0",
"i18next-http-backend": "^2.4.2",
"local-storage": "^2.0.0",
"lodash.clonedeep": "^4.5.0",
"lodash.debounce": "^4.0.8",
"lodash.isequal": "^4.5.0",
"meyer-reset-scss": "^2.0.4",
"next": "^14.1.0",
"next-i18next": "^15.1.1",
"next-intl": "^4.3.5",
"next-themes": "^0.2.1",
"nuqs": "^1.15.4",
"pluralize": "^8.0.0",
"react": "^18.2.0",
"react-bootstrap-typeahead": "^6.3.2",
"react-dom": "^18.2.0",
"react-i18next": "^14.0.1",
"react-infinite-scroll-component": "^6.1.0",
"react-linkify": "^1.0.0-alpha",
"react-lite-youtube-embed": "^2.4.0",
"react-scroll": "^1.9.0",
"react-string-replace": "^1.1.1",
"react-use": "^17.4.2",
"remixicon-react": "^1.0.0",
"sanitize-html": "^2.11.0",
"sass": "^1.69.7",
"tippy.js": "^6.3.7",
"usehooks-ts": "^2.9.1",
"uuid": "^9.0.1",
"valtio": "^1.13.0",
"youtube-api-v3-wrapper": "^2.3.0",
"zod": "^3.22.4"
},
"devDependencies": {
"@storybook/addon-essentials": "latest",
"@storybook/addon-interactions": "latest",
"@storybook/addon-links": "latest",
"@storybook/addon-mdx-gfm": "latest",
"@storybook/addon-styling": "latest",
"@storybook/blocks": "latest",
"@storybook/nextjs": "latest",
"@storybook/react": "latest",
"@storybook/testing-library": "latest",
"@types/dompurify": "^3.0.5",
"@types/lodash.clonedeep": "^4.5.9",
"@types/lodash.debounce": "^4.0.9",
"@types/node": "20.11.5",
"@types/pluralize": "^0.0.33",
"@types/react": "18.2.48",
"@types/react-dom": "18.2.18",
"@types/react-infinite-scroller": "^1.2.5",
"@types/react-linkify": "^1.0.4",
"@types/react-scroll": "^1.8.10",
"@types/sanitize-html": "^2.9.5",
"@types/uuid": "^9.0.7",
"eslint": "8.56.0",
"eslint-config-next": "14.1.0",
"eslint-plugin-storybook": "^0.6.15",
"eslint-plugin-valtio": "^0.6.2",
"sass-loader": "^13.3.3",
"storybook": "latest",
"typescript": "5.3.3"
},
"overrides": {
"@tiptap/extension-mention": {
"@tiptap/suggestion": "^2.1.16"
}
},
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
}