{ "name": "feedline", "private": true, "version": "0.0.1", "scripts": { "dev": "pnpm run start:dev", "lint": "wireit", "types": "wireit", "docs": "wireit", "build": "wireit", "test": "wireit", "start:tests": "wireit", "start:dev": "wireit", "start:prod": "wireit" }, "type": "module", "imports": { "#app/*": "./src/app/*", "#lib/*": "./src/lib/*", "#realm/*": "./src/realm/*", "#feedline/*": "./src/feedline/*", "#spec/*": "./src/spec/*" }, "dependencies": { "@kobalte/core": "^0.13.11", "@mozilla/readability": "^0.6.0", "@solid-primitives/date": "^2.1.4", "@solid-primitives/event-dispatcher": "^0.1.1", "@solid-primitives/event-listener": "^2.4.3", "@solid-primitives/refs": "^1.1.2", "@solid-primitives/transition-group": "^1.1.2", "@solid-primitives/virtual": "^0.2.2", "@solidjs/router": "^0.15.4", "@tailwindcss/vite": "^4.1.18", "@use-gesture/vanilla": "^10.3.1", "bloom-filters": "^3.0.4", "buffer": "^6.0.3", "clsx": "^2.1.1", "dexie": "^4.2.1", "express": "^5.2.1", "feedsmith": "^2.8.0", "hash-wasm": "^4.12.0", "idb": "^8.0.3", "isomorphic-ws": "^5.0.0", "jose": "^6.1.3", "level": "^10.0.0", "linkedom": "^0.18.12", "motion": "^12.23.26", "nanoid": "^5.1.6", "postcss-preset-env": "^10.5.0", "solid-js": "^1.9.10", "solid-motionone": "^1.0.4", "solid-transition-group": "^0.3.0", "tailwind-merge": "^3.4.0", "tailwindcss": "^4.1.18", "ts-pattern": "^5.9.0", "tsx": "^4.21.0", "typedarray-to-buffer": "^4.0.0", "webtorrent": "^2.8.5", "workbox-cacheable-response": "^7.4.0", "workbox-expiration": "^7.4.0", "workbox-range-requests": "^7.4.0", "workbox-routing": "^7.4.0", "workbox-strategies": "^7.4.0", "workbox-window": "^7.4.0", "ws": "^8.18.3", "zod": "^4.2.1" }, "devDependencies": { "@csstools/postcss-global-data": "^3.1.0", "@eslint/compat": "^2.0.0", "@eslint/css": "^0.14.1", "@eslint/js": "^9.39.2", "@eslint/json": "^0.14.0", "@eslint/markdown": "^7.5.1", "@faker-js/faker": "^10.1.0", "@testing-library/jest-dom": "^6.9.1", "@types/confusing-browser-globals": "^1.0.3", "@types/express": "^5.0.6", "@types/level": "^6.0.3", "@types/node": "^24.10.4", "@types/ws": "^8.18.1", "@vitejs/plugin-basic-ssl": "^2.1.0", "@vitest/coverage-v8": "^4.0.16", "confusing-browser-globals": "^1.0.11", "eslint": "^9.39.2", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import-x": "^4.16.1", "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-solid": "^0.14.5", "eslint-plugin-tsdoc": "^0.5.0", "globals": "^16.5.0", "identity-obj-proxy": "^3.0.0", "indexeddbshim": "^16.1.0", "jsdom": "^27.3.0", "memfs": "^4.51.1", "prettier": "^3.7.4", "prettier-plugin-organize-imports": "^4.3.0", "solid-devtools": "^0.34.4", "tw-animate-css": "^1.4.0", "typedoc": "^0.28.15", "typedoc-plugin-markdown": "^4.9.0", "typedoc-plugin-mdn-links": "^5.0.10", "typedoc-plugin-zod": "^1.4.3", "typescript": "^5.9.3", "typescript-eslint": "^8.50.0", "typescript-eslint-language-service": "^5.0.5", "typescript-language-server": "^5.1.3", "vite": "^7.3.0", "vite-bundle-analyzer": "^1.3.2", "vite-plugin-checker": "^0.11.0", "vite-plugin-node-polyfills": "^0.24.0", "vite-plugin-pwa": "^1.2.0", "vite-plugin-solid": "^2.11.10", "vitest": "^4.0.16", "wireit": "^0.14.12", "workbox-core": "^7.4.0", "workbox-precaching": "^7.4.0", "workbox-sw": "^7.4.0", "zod-schema-faker": "^2.0.2" }, "wireit": { "build": { "command": "vite build", "files": [ "src/**/*.{js,jsx,ts,tsx}", "!src/**/*.spec.{js,jsx,ts,tsx}", "vite.config.js", "tsconfig.json" ], "output": [ "./dist/**" ] }, "docs": { "command": "npx typedoc", "files": [ "src/**/*.{js,jsx,ts,tsx}", "typedoc.json" ], "output": [ "./doc/**" ] }, "lint": { "command": "eslint --color --cache --cache-location .eslintcache .", "files": [ "src/**/*.{ts,tsx}", "eslint.config.js", ".eslintignore" ], "output": [] }, "test": { "command": "vitest run --coverage", "files": [ "src/**/*.{ts,tsx}", "vitest.config.ts", "vitest.setup.ts" ], "output": [ "coverage/**" ] }, "types": { "command": "tsc --build --pretty --noEmit", "files": [ "src/**/*.{ts,tsx}", "tsconfig.json" ], "output": [ ".tsbuildinfo" ] }, "run:client": { "service": true, "command": "vite" }, "run:tests": { "service": true, "command": "vitest" }, "run:backend": { "service": true, "command": "tsx --watch src/feedline/main.ts" }, "start:tests": { "service": true, "command": "echo 'starting test services' && sleep 100d", "dependencies": [ "run:tests" ] }, "start:dev": { "service": true, "command": "echo 'starting dev services' && sleep 100d", "dependencies": [ "run:client", "run:backend" ] }, "start:prod": { "service": true, "dependencies": [ "build" ], "command": "tsx src/feedline/main.ts" } } }