offline-first, p2p synced, atproto enabled, feed reader
at main 5.6 kB view raw
1{ 2 "name": "feedline", 3 "private": true, 4 "version": "0.0.1", 5 "scripts": { 6 "dev": "pnpm run start:dev", 7 "lint": "wireit", 8 "types": "wireit", 9 "docs": "wireit", 10 "build": "wireit", 11 "test": "wireit", 12 "start:tests": "wireit", 13 "start:dev": "wireit", 14 "start:prod": "wireit" 15 }, 16 "type": "module", 17 "imports": { 18 "#app/*": "./src/app/*", 19 "#lib/*": "./src/lib/*", 20 "#realm/*": "./src/realm/*", 21 "#feedline/*": "./src/feedline/*", 22 "#spec/*": "./src/spec/*" 23 }, 24 "dependencies": { 25 "@kobalte/core": "^0.13.11", 26 "@mozilla/readability": "^0.6.0", 27 "@solid-primitives/date": "^2.1.4", 28 "@solid-primitives/event-dispatcher": "^0.1.1", 29 "@solid-primitives/event-listener": "^2.4.3", 30 "@solid-primitives/refs": "^1.1.2", 31 "@solid-primitives/transition-group": "^1.1.2", 32 "@solid-primitives/virtual": "^0.2.2", 33 "@solidjs/router": "^0.15.4", 34 "@tailwindcss/vite": "^4.1.18", 35 "@use-gesture/vanilla": "^10.3.1", 36 "bloom-filters": "^3.0.4", 37 "buffer": "^6.0.3", 38 "clsx": "^2.1.1", 39 "dexie": "^4.2.1", 40 "express": "^5.2.1", 41 "feedsmith": "^2.8.0", 42 "hash-wasm": "^4.12.0", 43 "idb": "^8.0.3", 44 "isomorphic-ws": "^5.0.0", 45 "jose": "^6.1.3", 46 "level": "^10.0.0", 47 "linkedom": "^0.18.12", 48 "motion": "^12.23.26", 49 "nanoid": "^5.1.6", 50 "postcss-preset-env": "^10.5.0", 51 "solid-js": "^1.9.10", 52 "solid-motionone": "^1.0.4", 53 "solid-transition-group": "^0.3.0", 54 "tailwind-merge": "^3.4.0", 55 "tailwindcss": "^4.1.18", 56 "ts-pattern": "^5.9.0", 57 "tsx": "^4.21.0", 58 "typedarray-to-buffer": "^4.0.0", 59 "webtorrent": "^2.8.5", 60 "workbox-cacheable-response": "^7.4.0", 61 "workbox-expiration": "^7.4.0", 62 "workbox-range-requests": "^7.4.0", 63 "workbox-routing": "^7.4.0", 64 "workbox-strategies": "^7.4.0", 65 "workbox-window": "^7.4.0", 66 "ws": "^8.18.3", 67 "zod": "^4.2.1" 68 }, 69 "devDependencies": { 70 "@csstools/postcss-global-data": "^3.1.0", 71 "@eslint/compat": "^2.0.0", 72 "@eslint/css": "^0.14.1", 73 "@eslint/js": "^9.39.2", 74 "@eslint/json": "^0.14.0", 75 "@eslint/markdown": "^7.5.1", 76 "@faker-js/faker": "^10.1.0", 77 "@testing-library/jest-dom": "^6.9.1", 78 "@types/confusing-browser-globals": "^1.0.3", 79 "@types/express": "^5.0.6", 80 "@types/level": "^6.0.3", 81 "@types/node": "^24.10.4", 82 "@types/ws": "^8.18.1", 83 "@vitejs/plugin-basic-ssl": "^2.1.0", 84 "@vitest/coverage-v8": "^4.0.16", 85 "confusing-browser-globals": "^1.0.11", 86 "eslint": "^9.39.2", 87 "eslint-config-prettier": "^10.1.8", 88 "eslint-plugin-import-x": "^4.16.1", 89 "eslint-plugin-prettier": "^5.5.4", 90 "eslint-plugin-solid": "^0.14.5", 91 "eslint-plugin-tsdoc": "^0.5.0", 92 "globals": "^16.5.0", 93 "identity-obj-proxy": "^3.0.0", 94 "indexeddbshim": "^16.1.0", 95 "jsdom": "^27.3.0", 96 "memfs": "^4.51.1", 97 "prettier": "^3.7.4", 98 "prettier-plugin-organize-imports": "^4.3.0", 99 "solid-devtools": "^0.34.4", 100 "tw-animate-css": "^1.4.0", 101 "typedoc": "^0.28.15", 102 "typedoc-plugin-markdown": "^4.9.0", 103 "typedoc-plugin-mdn-links": "^5.0.10", 104 "typedoc-plugin-zod": "^1.4.3", 105 "typescript": "^5.9.3", 106 "typescript-eslint": "^8.50.0", 107 "typescript-eslint-language-service": "^5.0.5", 108 "typescript-language-server": "^5.1.3", 109 "vite": "^7.3.0", 110 "vite-bundle-analyzer": "^1.3.2", 111 "vite-plugin-checker": "^0.11.0", 112 "vite-plugin-node-polyfills": "^0.24.0", 113 "vite-plugin-pwa": "^1.2.0", 114 "vite-plugin-solid": "^2.11.10", 115 "vitest": "^4.0.16", 116 "wireit": "^0.14.12", 117 "workbox-core": "^7.4.0", 118 "workbox-precaching": "^7.4.0", 119 "workbox-sw": "^7.4.0", 120 "zod-schema-faker": "^2.0.2" 121 }, 122 "wireit": { 123 "build": { 124 "command": "vite build", 125 "files": [ 126 "src/**/*.{js,jsx,ts,tsx}", 127 "!src/**/*.spec.{js,jsx,ts,tsx}", 128 "vite.config.js", 129 "tsconfig.json" 130 ], 131 "output": [ 132 "./dist/**" 133 ] 134 }, 135 "docs": { 136 "command": "npx typedoc", 137 "files": [ 138 "src/**/*.{js,jsx,ts,tsx}", 139 "typedoc.json" 140 ], 141 "output": [ 142 "./doc/**" 143 ] 144 }, 145 "lint": { 146 "command": "eslint --color --cache --cache-location .eslintcache .", 147 "files": [ 148 "src/**/*.{ts,tsx}", 149 "eslint.config.js", 150 ".eslintignore" 151 ], 152 "output": [] 153 }, 154 "test": { 155 "command": "vitest run --coverage", 156 "files": [ 157 "src/**/*.{ts,tsx}", 158 "vitest.config.ts", 159 "vitest.setup.ts" 160 ], 161 "output": [ 162 "coverage/**" 163 ] 164 }, 165 "types": { 166 "command": "tsc --build --pretty --noEmit", 167 "files": [ 168 "src/**/*.{ts,tsx}", 169 "tsconfig.json" 170 ], 171 "output": [ 172 ".tsbuildinfo" 173 ] 174 }, 175 "run:client": { 176 "service": true, 177 "command": "vite" 178 }, 179 "run:tests": { 180 "service": true, 181 "command": "vitest" 182 }, 183 "run:backend": { 184 "service": true, 185 "command": "tsx --watch src/feedline/main.ts" 186 }, 187 "start:tests": { 188 "service": true, 189 "command": "echo 'starting test services' && sleep 100d", 190 "dependencies": [ 191 "run:tests" 192 ] 193 }, 194 "start:dev": { 195 "service": true, 196 "command": "echo 'starting dev services' && sleep 100d", 197 "dependencies": [ 198 "run:client", 199 "run:backend" 200 ] 201 }, 202 "start:prod": { 203 "service": true, 204 "dependencies": [ 205 "build" 206 ], 207 "command": "tsx src/feedline/main.ts" 208 } 209 } 210}