-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy pathpackage.json
More file actions
105 lines (105 loc) · 2.87 KB
/
Copy pathpackage.json
File metadata and controls
105 lines (105 loc) · 2.87 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
98
99
100
101
102
103
104
105
{
"name": "sakeenah",
"description": "Modern Islamic wedding invitation platform with multi-tenant architecture",
"version": "2.1.0",
"author": "mrofisr",
"license": "Apache-2.0",
"repository": {
"type": "git",
"url": "https://github.com/mrofisr/sakeenah.git"
},
"keywords": [
"wedding",
"invitation",
"islamic",
"react",
"vite",
"hono",
"postgresql",
"multi-tenant"
],
"private": true,
"type": "module",
"scripts": {
"dev": "concurrently \"bun run dev:client\" \"bun run dev:server\"",
"dev:client": "vite",
"dev:server": "bun src/server/server.js",
"build": "vite build",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"format": "prettier --write .",
"format:check": "prettier --check .",
"preview": "vite preview",
"server": "bun src/server/server.js",
"generate-links": "bun generate-links-example.js",
"deploy": "bun run build && wrangler deploy",
"cf:dev": "wrangler dev",
"cf:deploy": "wrangler deploy",
"cf:tail": "wrangler tail",
"test": "vitest run",
"test:watch": "vitest",
"test:unit": "vitest run src/server/**/*.spec.js",
"test:e2e": "vitest run e2e/**/*.e2e.spec.js",
"test:coverage": "vitest run --coverage",
"prepare": "husky"
},
"husky": {
"hooks": {
"pre-push": "bun run lint && bun run format:check && bun run test:coverage && bun run build"
}
},
"dependencies": {
"@hono/node-server": "^1.8.0",
"@hono/zod-validator": "^0.7.6",
"@tanstack/react-query": "^5.90.20",
"caniuse-lite": "^1.0.30001757",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"framer-motion": "^11.15.0",
"hono": "^4.0.0",
"lucide-react": "^0.469.0",
"pg": "^8.16.3",
"react": "^18.3.1",
"react-confetti": "^6.1.0",
"react-dom": "^18.3.1",
"react-helmet-async": "^2.0.5",
"react-router-dom": "^7.1.1",
"tailwind-merge": "^2.6.0",
"tailwindcss-animate": "^1.0.7",
"zod": "^4.3.6"
},
"devDependencies": {
"@cloudflare/workers-types": "^4.20251128.0",
"@eslint/js": "^9.17.0",
"@types/react": "^18.3.18",
"@types/react-dom": "^18.3.5",
"@vitejs/plugin-react": "^4.3.4",
"@vitest/coverage-v8": "^2.1.0",
"autoprefixer": "^10.4.20",
"concurrently": "^8.2.0",
"eslint": "^9.17.0",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.4.16",
"globals": "^15.14.0",
"husky": "^9.1.7",
"lint-staged": "^16.2.7",
"postcss": "^8.4.49",
"prettier": "^3.4.2",
"tailwindcss": "^3.4.17",
"terser": "^5.46.0",
"vite": "^6.0.5",
"vitest": "^2.1.0",
"wrangler": "^4.62.0"
},
"lint-staged": {
"*.{js,jsx}": [
"eslint --fix",
"prettier --write",
"vitest related --run"
],
"*.{json,css,md}": [
"prettier --write"
]
}
}