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
|
{
"name": "@monkeytype/frontend",
"license": "GPL-3.0",
"private": true,
"type": "module",
"scripts": {
"lint": "eslint \"./**/*.ts\"",
"validate-json": "npx gulp validate-json-schema",
"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",
"deploy-live": "npm run validate-json && npm run build && firebase deploy -P live --only hosting",
"deploy-preview": "npm run validate-json && npm run build && firebase hosting:channel:deploy preview -P live --expires 2h",
"test": "vitest run",
"test-coverage": "vitest run --coverage",
"dev-test": "concurrently --kill-others \"vite dev\" \"vitest\"",
"tsc": "tsc",
"knip": "knip",
"docker": "docker compose -f docker/compose.dev.yml up"
},
"engines": {
"node": "20.16.0"
},
"browserslist": [
"defaults"
],
"devDependencies": {
"@fortawesome/fontawesome-free": "5.15.4",
"@monkeytype/eslint-config": "workspace:*",
"@monkeytype/typescript-config": "workspace:*",
"@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/jquery": "3.5.14",
"@types/node": "20.14.11",
"@types/object-hash": "3.0.6",
"@types/subset-font": "1.4.3",
"@types/throttle-debounce": "2.1.0",
"@vitest/coverage-v8": "2.0.5",
"ajv": "8.12.0",
"autoprefixer": "10.4.20",
"concurrently": "8.2.2",
"dotenv": "16.4.5",
"eslint": "8.57.0",
"firebase-tools": "13.15.1",
"fontawesome-subset": "4.4.0",
"gulp": "4.0.2",
"gulp-eslint-new": "1.9.1",
"happy-dom": "15.10.2",
"madge": "8.0.0",
"normalize.css": "8.0.1",
"postcss": "8.4.31",
"sass": "1.70.0",
"subset-font": "2.3.0",
"typescript": "5.5.4",
"vite": "5.2.14",
"vite-bundle-visualizer": "1.0.1",
"vite-plugin-checker": "0.7.2",
"vite-plugin-filter-replace": "0.1.13",
"vite-plugin-html-inject": "1.1.2",
"vite-plugin-inspect": "0.8.3",
"vite-plugin-pwa": "0.20.0",
"vitest": "2.0.5"
},
"dependencies": {
"@date-fns/utc": "1.2.0",
"@monkeytype/contracts": "workspace:*",
"@monkeytype/util": "workspace:*",
"@ts-rest/core": "3.51.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": "1.0.2",
"color-blend": "4.0.0",
"damerau-levenshtein": "1.0.8",
"date-fns": "3.6.0",
"firebase": "10.12.4",
"hangul-js": "0.2.6",
"howler": "2.2.3",
"html2canvas": "1.4.1",
"jquery": "3.7.1",
"jquery-color": "2.2.0",
"jquery.easing": "1.4.1",
"konami": "1.6.3",
"lz-ts": "1.1.2",
"object-hash": "3.0.0",
"slim-select": "2.9.2",
"stemmer": "2.0.1",
"throttle-debounce": "5.0.2",
"zod": "3.23.8"
}
}
|