* feat(native): Capacitor mobile app shell with native features Adds iOS + Android native app via Capacitor WebView wrapper pointing at the live deployment. Includes push notifications, biometric auth, camera with offline photo queue, offline detection, status bar theming, keyboard handling, and deep linking. Zero server-side refactoring required -- web deploys update the app instantly. * docs(native): add developer documentation for iOS and Android --------- Co-authored-by: Nicholai <nicholaivogelfilms@gmail.com>
131 lines
4.1 KiB
JSON
Executable File
131 lines
4.1 KiB
JSON
Executable File
{
|
|
"name": "compass",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev --turbopack",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "next lint",
|
|
"deploy": "opennextjs-cloudflare build && opennextjs-cloudflare deploy",
|
|
"upload": "opennextjs-cloudflare build && opennextjs-cloudflare upload",
|
|
"preview": "opennextjs-cloudflare build && opennextjs-cloudflare preview",
|
|
"cf-typegen": "wrangler types --env-interface CloudflareEnv ./cloudflare-env.d.ts",
|
|
"db:generate": "drizzle-kit generate",
|
|
"db:migrate:local": "wrangler d1 migrations apply compass-db --local",
|
|
"db:migrate:prod": "wrangler d1 migrations apply compass-db --remote",
|
|
"prepare": "husky",
|
|
"cap:sync": "cap sync",
|
|
"cap:ios": "cap open ios",
|
|
"cap:android": "cap open android"
|
|
},
|
|
"dependencies": {
|
|
"@ai-sdk/react": "^3.0.74",
|
|
"@capacitor/android": "^8.0.2",
|
|
"@capacitor/app": "^8.0.0",
|
|
"@capacitor/camera": "^8.0.0",
|
|
"@capacitor/cli": "^8.0.2",
|
|
"@capacitor/core": "^8.0.2",
|
|
"@capacitor/filesystem": "^8.1.0",
|
|
"@capacitor/haptics": "^8.0.0",
|
|
"@capacitor/ios": "^8.0.2",
|
|
"@capacitor/keyboard": "^8.0.0",
|
|
"@capacitor/network": "^8.0.0",
|
|
"@capacitor/preferences": "^8.0.0",
|
|
"@capacitor/push-notifications": "^8.0.0",
|
|
"@capacitor/splash-screen": "^8.0.0",
|
|
"@capacitor/status-bar": "^8.0.0",
|
|
"@capgo/capacitor-native-biometric": "^8.3.7",
|
|
"@capgo/capacitor-uploader": "^8.1.3",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@hookform/resolvers": "^5.2.2",
|
|
"@json-render/core": "^0.4.0",
|
|
"@json-render/react": "^0.4.0",
|
|
"@opennextjs/cloudflare": "^1.14.4",
|
|
"@openrouter/ai-sdk-provider": "^2.1.1",
|
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
"@radix-ui/react-aspect-ratio": "^1.1.8",
|
|
"@radix-ui/react-avatar": "^1.1.11",
|
|
"@radix-ui/react-checkbox": "^1.3.3",
|
|
"@radix-ui/react-collapsible": "^1.1.12",
|
|
"@radix-ui/react-context-menu": "^2.2.16",
|
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
"@radix-ui/react-hover-card": "^1.1.15",
|
|
"@radix-ui/react-label": "^2.1.8",
|
|
"@radix-ui/react-menubar": "^1.1.16",
|
|
"@radix-ui/react-navigation-menu": "^1.2.14",
|
|
"@radix-ui/react-popover": "^1.1.15",
|
|
"@radix-ui/react-progress": "^1.1.8",
|
|
"@radix-ui/react-radio-group": "^1.3.8",
|
|
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
"@radix-ui/react-select": "^2.2.6",
|
|
"@radix-ui/react-separator": "^1.1.8",
|
|
"@radix-ui/react-slider": "^1.3.6",
|
|
"@radix-ui/react-slot": "^1.2.4",
|
|
"@radix-ui/react-switch": "^1.2.6",
|
|
"@radix-ui/react-tabs": "^1.1.13",
|
|
"@radix-ui/react-toggle": "^1.1.10",
|
|
"@radix-ui/react-toggle-group": "^1.1.11",
|
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
"@tabler/icons-react": "^3.36.1",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"@workos-inc/authkit-nextjs": "^2.13.0",
|
|
"@workos-inc/node": "^8.1.0",
|
|
"@xyflow/react": "^12.10.0",
|
|
"ai": "^6.0.73",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"date-fns": "^4.1.0",
|
|
"drizzle-orm": "^0.45.1",
|
|
"embla-carousel-react": "^8.6.0",
|
|
"framer-motion": "11",
|
|
"frappe-gantt": "^1.0.4",
|
|
"input-otp": "^1.4.2",
|
|
"lucide-react": "^0.563.0",
|
|
"motion": "^12.33.0",
|
|
"nanoid": "^5.1.6",
|
|
"next": "15.5.9",
|
|
"next-themes": "^0.4.6",
|
|
"radix-ui": "^1.4.3",
|
|
"react": "19.1.4",
|
|
"react-day-picker": "^9.13.0",
|
|
"react-dom": "19.1.4",
|
|
"react-hook-form": "^7.71.1",
|
|
"react-markdown": "10",
|
|
"react-resizable-panels": "^4.4.1",
|
|
"recharts": "2.15.4",
|
|
"remark-gfm": "4",
|
|
"remeda": "2",
|
|
"shiki": "^3.22.0",
|
|
"sonner": "^2.0.7",
|
|
"streamdown": "^2.1.0",
|
|
"tailwind-merge": "^3.4.0",
|
|
"tokenlens": "^1.3.1",
|
|
"tw-animate-css": "^1.4.0",
|
|
"use-stick-to-bottom": "^1.1.2",
|
|
"vaul": "^1.1.2",
|
|
"zod": "^4.3.5"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3",
|
|
"@tailwindcss/postcss": "^4",
|
|
"@types/node": "^25.0.10",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"drizzle-kit": "^0.31.8",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "15.4.6",
|
|
"husky": "^9.1.7",
|
|
"media-chrome": "^4.17.2",
|
|
"tailwindcss": "^4",
|
|
"typescript": "^5",
|
|
"wrangler": "^4.59.3"
|
|
}
|
|
}
|