package.json raw
1 {
2 "name": "smesh",
3 "version": "0.6.10",
4 "description": "A user-friendly Nostr client for exploring relay feeds",
5 "private": true,
6 "type": "module",
7 "author": "codytseng",
8 "license": "MIT",
9 "repository": {
10 "type": "git",
11 "url": "git+https://git.mleku.dev/mleku/smesh"
12 },
13 "homepage": "https://git.mleku.dev/mleku/smesh",
14 "scripts": {
15 "dev": "vite --host",
16 "dev:8080": "vite --host 0.0.0.0 --port 8080",
17 "build": "tsc -b && vite build",
18 "lint": "eslint .",
19 "format": "prettier --write .",
20 "preview": "vite preview",
21 "test": "vitest",
22 "test:run": "vitest run",
23 "test:coverage": "vitest run --coverage"
24 },
25 "dependencies": {
26 "@dnd-kit/core": "^6.3.1",
27 "@dnd-kit/modifiers": "^9.0.0",
28 "@dnd-kit/sortable": "^10.0.0",
29 "@dnd-kit/utilities": "^3.2.2",
30 "@getalby/bitcoin-connect-react": "^3.10.0",
31 "@noble/hashes": "^1.6.1",
32 "@radix-ui/react-accordion": "^1.2.12",
33 "@radix-ui/react-alert-dialog": "^1.1.4",
34 "@radix-ui/react-avatar": "^1.1.2",
35 "@radix-ui/react-checkbox": "^1.3.3",
36 "@radix-ui/react-dialog": "^1.1.4",
37 "@radix-ui/react-dropdown-menu": "^2.1.4",
38 "@radix-ui/react-hover-card": "^1.1.4",
39 "@radix-ui/react-label": "^2.1.1",
40 "@radix-ui/react-popover": "^1.1.4",
41 "@radix-ui/react-radio-group": "^1.3.8",
42 "@radix-ui/react-scroll-area": "1.2.0",
43 "@radix-ui/react-select": "^2.1.4",
44 "@radix-ui/react-separator": "^1.1.1",
45 "@radix-ui/react-slider": "^1.3.5",
46 "@radix-ui/react-slot": "^1.2.3",
47 "@radix-ui/react-switch": "^1.1.2",
48 "@radix-ui/react-tabs": "^1.1.2",
49 "@radix-ui/react-toast": "^1.2.4",
50 "@tailwindcss/typography": "^0.5.16",
51 "@tiptap/extension-emoji": "^2.26.1",
52 "@tiptap/extension-history": "^2.12.0",
53 "@tiptap/extension-mention": "^2.12.0",
54 "@tiptap/extension-placeholder": "^2.12.0",
55 "@tiptap/pm": "^2.12.0",
56 "@tiptap/react": "^2.12.0",
57 "@tiptap/starter-kit": "^2.12.0",
58 "@tiptap/suggestion": "^2.12.0",
59 "@types/qrcode": "^1.5.6",
60 "@webbtc/webln-types": "^3.0.0",
61 "blossom-client-sdk": "^4.1.0",
62 "blurhash": "^2.0.5",
63 "class-variance-authority": "^0.7.1",
64 "clsx": "^2.1.1",
65 "cmdk": "^1.0.0",
66 "dataloader": "^2.2.3",
67 "dayjs": "^1.11.13",
68 "embla-carousel-react": "^8.6.0",
69 "embla-carousel-wheel-gestures": "^8.1.0",
70 "emoji-picker-react": "^4.12.2",
71 "flexsearch": "^0.7.43",
72 "franc-min": "^6.2.0",
73 "html5-qrcode": "^2.3.8",
74 "i18next": "^24.2.0",
75 "i18next-browser-languagedetector": "^8.0.4",
76 "jotai": "^2.15.0",
77 "lru-cache": "^11.0.2",
78 "lucide-react": "^0.469.0",
79 "next-themes": "^0.4.6",
80 "nostr-tools": "^2.17.0",
81 "nstart-modal": "^2.0.0",
82 "path-to-regexp": "^8.2.0",
83 "qr-code-styling": "^1.9.2",
84 "qr-scanner": "^1.4.2",
85 "qrcode": "^1.5.4",
86 "react": "^18.3.1",
87 "react-dom": "^18.3.1",
88 "react-i18next": "^15.2.0",
89 "react-markdown": "^10.1.0",
90 "react-simple-pull-to-refresh": "^1.3.3",
91 "remark-breaks": "^4.0.0",
92 "remark-gfm": "^4.0.1",
93 "sonner": "^2.0.5",
94 "tailwind-merge": "^2.5.5",
95 "tailwindcss-animate": "^1.0.7",
96 "thumbhash": "^0.1.1",
97 "tippy.js": "^6.3.7",
98 "uri-templates": "^0.2.0",
99 "vaul": "^1.1.2",
100 "yet-another-react-lightbox": "^3.21.7",
101 "zod": "^3.24.1"
102 },
103 "devDependencies": {
104 "@eslint/js": "^9.17.0",
105 "@types/node": "^22.10.2",
106 "@types/react": "^18.3.17",
107 "@types/react-dom": "^18.3.5",
108 "@types/uri-templates": "^0.1.34",
109 "@vitejs/plugin-react": "^4.3.4",
110 "@vitest/coverage-v8": "^4.0.16",
111 "autoprefixer": "^10.4.20",
112 "eslint": "^9.17.0",
113 "eslint-plugin-react-hooks": "^5.0.0",
114 "eslint-plugin-react-refresh": "^0.4.16",
115 "globals": "^15.13.0",
116 "postcss": "^8.4.49",
117 "prettier": "3.4.2",
118 "tailwindcss": "^3.4.17",
119 "typescript": "~5.6.2",
120 "typescript-eslint": "^8.18.1",
121 "vite": "^6.0.3",
122 "vite-plugin-pwa": "^0.21.1",
123 "vitest": "^4.0.16"
124 }
125 }
126