-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage.json
More file actions
97 lines (97 loc) · 3.15 KB
/
package.json
File metadata and controls
97 lines (97 loc) · 3.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
{
"name": "subsight",
"version": "3.0.0",
"description": "Modern subscription tracking app with AI-powered insights",
"author": "Muhammad Tanveer Abbas <https://themvpguy.vercel.app/>",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/MuhammadTanveerAbbas/Subsight-Tracker"
},
"homepage": "https://subsight-tracker.vercel.app",
"private": true,
"scripts": {
"dev": "next dev --turbopack",
"prebuild": "pnpm typecheck",
"build": "next build",
"start": "next start",
"lint": "next lint",
"typecheck": "tsc --noEmit",
"validate:env": "node -e \"if(!process.env.GROQ_API_KEY)throw new Error('GROQ_API_KEY required')\"",
"audit": "pnpm audit --audit-level=moderate",
"test": "vitest",
"test:unit": "vitest run",
"test:watch": "vitest watch",
"test:e2e": "playwright test",
"test:e2e:ui": "playwright test --ui",
"test:coverage": "vitest run --coverage"
},
"dependencies": {
"@hookform/resolvers": "^4.1.3",
"@radix-ui/react-accordion": "^1.2.3",
"@radix-ui/react-alert-dialog": "^1.1.6",
"@radix-ui/react-avatar": "^1.1.3",
"@radix-ui/react-checkbox": "^1.1.4",
"@radix-ui/react-collapsible": "^1.1.11",
"@radix-ui/react-dialog": "^1.1.6",
"@radix-ui/react-dropdown-menu": "^2.1.6",
"@radix-ui/react-label": "^2.1.2",
"@radix-ui/react-menubar": "^1.1.6",
"@radix-ui/react-popover": "^1.1.6",
"@radix-ui/react-progress": "^1.1.2",
"@radix-ui/react-radio-group": "^1.2.3",
"@radix-ui/react-scroll-area": "^1.2.3",
"@radix-ui/react-select": "^2.1.6",
"@radix-ui/react-separator": "^1.1.2",
"@radix-ui/react-slider": "^1.2.3",
"@radix-ui/react-slot": "^1.2.3",
"@radix-ui/react-switch": "^1.1.3",
"@radix-ui/react-tabs": "^1.1.3",
"@radix-ui/react-toast": "^1.2.6",
"@radix-ui/react-tooltip": "^1.1.8",
"@stripe/stripe-js": "^8.9.0",
"@supabase/ssr": "^0.9.0",
"@supabase/supabase-js": "^2.89.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"date-fns": "^3.6.0",
"dotenv": "^16.5.0",
"embla-carousel-react": "^8.6.0",
"groq-sdk": "^1.1.1",
"html2canvas": "^1.4.1",
"jspdf": "^4.2.0",
"lucide-react": "^0.475.0",
"next": "^15.1.6",
"nodemailer": "^8.0.2",
"react": "^18.3.1",
"react-day-picker": "^8.10.1",
"react-dom": "^18.3.1",
"react-hook-form": "^7.54.2",
"recharts": "^2.15.1",
"stripe": "^20.4.1",
"tailwind-merge": "^3.0.1",
"tailwindcss-animate": "^1.0.7",
"zod": "^3.24.2"
},
"devDependencies": {
"@playwright/test": "^1.56.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@types/jest": "^30.0.0",
"@types/node": "^20",
"@types/nodemailer": "^7.0.11",
"@types/react": "^18",
"@types/react-dom": "^18",
"@vitejs/plugin-react": "^5.0.4",
"@vitest/ui": "^3.2.4",
"baseline-browser-mapping": "^2.9.13",
"jest": "^30.2.0",
"jest-environment-jsdom": "^30.2.0",
"jsdom": "^27.0.1",
"postcss": "^8",
"tailwindcss": "^3.4.1",
"typescript": "^5",
"vitest": "^3.2.4"
}
}