freshyo/docs/common-ui-dependency-audit.md
2026-08-16 15:45:05 +05:30

55 lines
1.8 KiB
Markdown

# Dependency Audit — packages/ui (common-ui)
Audited 2026-08-16. Packages listed below are declared in `package.json` but **never imported** anywhere in this package's own source (`src/`, `hooks/`, `index.ts`).
## Never used in this package
- `@react-native-google-signin/google-signin`
- `@react-native-picker/picker`
- `@react-navigation/bottom-tabs`
- `@react-navigation/drawer`
- `@react-navigation/elements`
- `buffer`
- `dayjs`
- `expo`
- `expo-blur`
- `expo-dev-client`
- `expo-device`
- `expo-font`
- `expo-haptics`
- `expo-linear-gradient`
- `expo-linking`
- `expo-notifications`
- `expo-router`
- `expo-splash-screen`
- `expo-symbols`
- `expo-system-ui`
- `formik`
- `jwt-decode`
- `react-dom`
- `react-hook-form`
- `react-native-gesture-handler`
- `react-native-pager-view`
- `react-native-phonepe-pg`
- `react-native-razorpay`
- `react-native-reanimated`
- `react-native-safe-area-context`
- `react-native-screens`
- `react-native-tab-view`
- `react-native-toast-message`
- `react-native-web`
- `react-native-webview`
- `yup`
## Caveats
- Several of the above (`react-native-gesture-handler`, `react-native-reanimated`, `react-native-safe-area-context`, `react-native-screens`, `react-navigation/*`, `expo-router`, etc.) are runtime peer/transitive requirements of `@react-navigation/native` and the consuming Expo apps, which declare them in their own `package.json`. They are unused in `packages/ui` but not removable from the workspace if the apps rely on hoisting.
- `expo` (base) is not imported directly but is required by the `expo-*` modules that are used.
- Safest candidates for removal (not used by apps either): `expo-dev-client`, `react-native-phonepe-pg`.
## Imported but not declared (opposite problem)
The package imports these without listing them in `package.json`; they currently resolve via hoisting:
- `expo-auth-session`
- `react-native-svg`