144 lines
4.5 KiB
JSON
144 lines
4.5 KiB
JSON
{
|
|
"name": "@monkeytype/frontend",
|
|
"private": true,
|
|
"license": "GPL-3.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"lint": "oxlint . --type-aware --type-check",
|
|
"lint-fast": "oxlint .",
|
|
"lint-json": "eslint static/**/*.json",
|
|
"check-assets": "tsx ./scripts/check-assets.ts",
|
|
"audit": "vite-bundle-visualizer",
|
|
"dep-graph": "madge -c -i \"dep-graph.png\" ./src/ts",
|
|
"ts-check": "tsc --noEmit",
|
|
"build": "npm run madge && vite build",
|
|
"madge": " madge --circular --extensions ts ./src",
|
|
"start": "vite preview --port 3000",
|
|
"dev": "vite dev",
|
|
"test": "vitest run",
|
|
"test-coverage": "vitest run --coverage",
|
|
"dev-test": "concurrently --kill-others \"vite dev\" \"vitest\"",
|
|
"tsc": "tsc",
|
|
"docker": "docker compose -f docker/compose.dev.yml up",
|
|
"storybook": "cd storybook && pnpm run storybook",
|
|
"import-tree": "tsx ./scripts/import-tree.ts"
|
|
},
|
|
"dependencies": {
|
|
"@date-fns/utc": "1.2.0",
|
|
"@leonabcd123/modern-caps-lock": "3.0.4",
|
|
"@monkeytype/contracts": "workspace:*",
|
|
"@monkeytype/funbox": "workspace:*",
|
|
"@monkeytype/schemas": "workspace:*",
|
|
"@monkeytype/util": "workspace:*",
|
|
"@sentry/browser": "10.44.0",
|
|
"@sentry/vite-plugin": "5.2.0",
|
|
"@solid-devtools/overlay": "0.33.5",
|
|
"@solid-primitives/refs": "1.1.2",
|
|
"@solid-primitives/transition-group": "1.1.2",
|
|
"@solidjs/meta": "0.29.4",
|
|
"@tanstack/pacer-lite": "0.2.1",
|
|
"@tanstack/query-db-collection": "1.0.27",
|
|
"@tanstack/solid-db": "0.2.10",
|
|
"@tanstack/solid-devtools": "0.8.0",
|
|
"@tanstack/solid-form": "1.28.4",
|
|
"@tanstack/solid-hotkeys": "0.4.2",
|
|
"@tanstack/solid-hotkeys-devtools": "0.4.3",
|
|
"@tanstack/solid-query": "5.90.23",
|
|
"@tanstack/solid-query-devtools": "5.91.3",
|
|
"@tanstack/solid-table": "8.21.3",
|
|
"@ts-rest/core": "3.52.1",
|
|
"animejs": "4.2.2",
|
|
"balloon-css": "1.2.0",
|
|
"canvas-confetti": "1.5.1",
|
|
"chart.js": "3.7.1",
|
|
"chartjs-adapter-date-fns": "3.0.0",
|
|
"chartjs-plugin-annotation": "2.2.1",
|
|
"chartjs-plugin-trendline": "3.2.0",
|
|
"clsx": "2.1.1",
|
|
"color-blend": "4.0.0",
|
|
"damerau-levenshtein": "1.0.8",
|
|
"date-fns": "3.6.0",
|
|
"disposable-email-domains-js": "^1.0.35",
|
|
"firebase": "12.0.0",
|
|
"hangul-js": "0.2.6",
|
|
"howler": "2.2.3",
|
|
"idb": "8.0.3",
|
|
"lz-ts": "1.1.2",
|
|
"modern-screenshot": "4.6.8",
|
|
"object-hash": "3.0.0",
|
|
"slim-select": "2.9.2",
|
|
"stemmer": "2.0.1",
|
|
"tailwind-merge": "3.4.0",
|
|
"throttle-debounce": "5.0.2",
|
|
"zod": "3.23.8",
|
|
"zod-urlsearchparams": "0.0.16"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/json": "1.0.1",
|
|
"@fortawesome/fontawesome-free": "5.15.4",
|
|
"@monkeytype/oxlint-config": "workspace:*",
|
|
"@monkeytype/typescript-config": "workspace:*",
|
|
"@solidjs/testing-library": "0.8.10",
|
|
"@tailwindcss/vite": "4.2.1",
|
|
"@tanstack/eslint-plugin-query": "5.91.4",
|
|
"@testing-library/dom": "10.4.1",
|
|
"@testing-library/jest-dom": "6.9.1",
|
|
"@testing-library/user-event": "14.6.1",
|
|
"@types/canvas-confetti": "1.4.3",
|
|
"@types/chartjs-plugin-trendline": "1.0.1",
|
|
"@types/damerau-levenshtein": "1.0.0",
|
|
"@types/howler": "2.2.7",
|
|
"@types/node": "24.9.1",
|
|
"@types/object-hash": "3.0.6",
|
|
"@types/subset-font": "1.4.3",
|
|
"@types/throttle-debounce": "5.0.2",
|
|
"@vitest/coverage-v8": "4.0.15",
|
|
"autoprefixer": "10.4.27",
|
|
"caniuse-lite": "1.0.30001778",
|
|
"concurrently": "8.2.2",
|
|
"eslint": "9.39.1",
|
|
"eslint-plugin-compat": "7.0.0",
|
|
"eslint-plugin-solid": "0.14.5",
|
|
"firebase-tools": "13.15.1",
|
|
"fontawesome-subset": "4.4.0",
|
|
"happy-dom": "20.8.9",
|
|
"jsdom": "27.4.0",
|
|
"madge": "8.0.0",
|
|
"magic-string": "0.30.17",
|
|
"normalize.css": "8.0.1",
|
|
"oxlint": "1.60.0",
|
|
"oxlint-tsgolint": "0.21.0",
|
|
"postcss": "8.5.8",
|
|
"sass": "1.70.0",
|
|
"solid-devtools": "0.34.5",
|
|
"solid-js": "1.9.10",
|
|
"subset-font": "2.3.0",
|
|
"tailwindcss": "4.1.18",
|
|
"tsx": "4.21.0",
|
|
"typescript": "6.0.2",
|
|
"unplugin-inject-preload": "3.0.0",
|
|
"vite": "8.0.5",
|
|
"vite-bundle-visualizer": "1.2.1",
|
|
"vite-plugin-html-inject": "1.1.2",
|
|
"vite-plugin-inspect": "11.3.3",
|
|
"vite-plugin-minify": "2.1.0",
|
|
"vite-plugin-pwa": "1.1.0",
|
|
"vite-plugin-solid": "2.11.11",
|
|
"vitest": "4.1.0"
|
|
},
|
|
"lint-staged": {
|
|
"*": [
|
|
"oxfmt --no-error-on-unmatched-pattern -c ../.oxfmtrc.json"
|
|
],
|
|
"*.{ts,js,tsx}": [
|
|
"oxlint --type-aware --type-check"
|
|
]
|
|
},
|
|
"browserslist": [
|
|
"baseline widely available and > 0.002%"
|
|
],
|
|
"engines": {
|
|
"node": ">=24.0.0 <25"
|
|
}
|
|
}
|