Skip to content

Commit 40065fb

Browse files
committed
chore(webapp): remove unused dependencies and add a knip check
Removes 27 unused production dependencies from the webapp, plus 6 orphaned @types packages and two dead files whose only importers were those packages (SimpleSelect.tsx and ulid.server.ts). seedrandom and semver are among them: they were only used by the v3 code this PR removes. Adds knip as a dev dependency with a knip:deps script and a knip.json config so unused dependencies can be found the same way from now on. knip catches deps reachable only through otherwise-dead code, which a plain grep cannot. non.geist is ignored: it is a font imported for its side effects via tailwind.css.
1 parent a065849 commit 40065fb

6 files changed

Lines changed: 698 additions & 3053 deletions

File tree

apps/webapp/app/components/primitives/SimpleSelect.tsx

Lines changed: 0 additions & 143 deletions
This file was deleted.

apps/webapp/app/services/ulid.server.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

apps/webapp/package.json

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,12 @@
3030
"@ariakit/react-core": "^0.4.6",
3131
"@aws-sdk/client-ecr": "^3.931.0",
3232
"@aws-sdk/client-s3": "^3.936.0",
33-
"@aws-sdk/client-sqs": "^3.445.0",
3433
"@aws-sdk/client-sts": "^3.840.0",
35-
"@aws-sdk/credential-provider-node": "^3.936.0",
3634
"@aws-sdk/s3-presigned-post": "^3.936.0",
3735
"@aws-sdk/s3-request-presigner": "^3.936.0",
3836
"@better-auth/utils": "^0.2.6",
3937
"@codemirror/autocomplete": "6.4.0",
4038
"@codemirror/commands": "6.1.3",
41-
"@codemirror/lang-javascript": "6.1.2",
4239
"@codemirror/lang-json": "6.0.1",
4340
"@codemirror/lang-sql": "6.5.5",
4441
"@codemirror/language": "6.3.2",
@@ -50,7 +47,6 @@
5047
"@conform-to/zod": "^1.2.2",
5148
"@depot/cli": "0.0.1-cli.2.80.0",
5249
"@depot/sdk-node": "^1.0.0",
53-
"@electric-sql/react": "^0.3.5",
5450
"@headlessui/react": "^1.7.8",
5551
"@heroicons/react": "^2.0.12",
5652
"@internal/cache": "workspace:*",
@@ -84,7 +80,6 @@
8480
"@opentelemetry/resources": "2.7.1",
8581
"@opentelemetry/sdk-logs": "0.218.0",
8682
"@opentelemetry/sdk-metrics": "2.7.1",
87-
"@opentelemetry/sdk-node": "0.218.0",
8883
"@opentelemetry/sdk-trace-base": "2.7.1",
8984
"@opentelemetry/sdk-trace-node": "2.7.1",
9085
"@opentelemetry/semantic-conventions": "1.41.1",
@@ -93,11 +88,8 @@
9388
"@radix-ui/react-accordion": "^1.2.11",
9489
"@radix-ui/react-alert-dialog": "^1.0.4",
9590
"@radix-ui/react-dialog": "^1.0.3",
96-
"@radix-ui/react-label": "^2.0.1",
9791
"@radix-ui/react-popover": "^1.0.5",
98-
"@radix-ui/react-portal": "^1.1.9",
9992
"@radix-ui/react-radio-group": "^1.1.3",
100-
"@radix-ui/react-select": "^1.2.1",
10193
"@radix-ui/react-slider": "^1.1.2",
10294
"@radix-ui/react-switch": "^1.0.3",
10395
"@radix-ui/react-tabs": "^1.0.3",
@@ -109,9 +101,7 @@
109101
"@remix-run/node": "2.17.5",
110102
"@remix-run/react": "2.17.5",
111103
"@remix-run/router": "^1.23.3",
112-
"@remix-run/serve": "2.17.5",
113104
"@remix-run/server-runtime": "2.17.5",
114-
"@remix-run/v1-meta": "^0.1.3",
115105
"@s2-dev/streamstore": "^0.22.10",
116106
"@sentry/remix": "9.46.0",
117107
"@slack/web-api": "7.16.0",
@@ -132,13 +122,11 @@
132122
"@trigger.dev/redis-worker": "workspace:*",
133123
"@trigger.dev/sdk": "workspace:*",
134124
"@trigger.dev/sso": "workspace:*",
135-
"@types/pg": "8.6.6",
136125
"@uiw/react-codemirror": "^4.19.5",
137126
"@unkey/cache": "^1.5.0",
138127
"@unkey/error": "^0.2.0",
139128
"@upstash/ratelimit": "^1.1.3",
140129
"@vercel/sdk": "^1.19.1",
141-
"@whatwg-node/fetch": "^0.9.14",
142130
"@window-splitter/react": "1.1.3",
143131
"ai": "^6.0.116",
144132
"assert-never": "^1.2.1",
@@ -156,19 +144,15 @@
156144
"dotenv": "^16.4.5",
157145
"effect": "^3.21.2",
158146
"emails": "workspace:*",
159-
"eventsource": "^4.0.0",
160147
"evt": "^2.4.13",
161148
"express": "4.20.0",
162149
"framer-motion": "^10.12.11",
163-
"humanize-duration": "^3.27.3",
164150
"input-otp": "^1.4.2",
165151
"intl-parse-accept-language": "^1.0.0",
166152
"ioredis": "~5.6.0",
167153
"isbot": "^3.6.5",
168154
"jose": "^5.4.0",
169155
"json-stable-stringify": "^1.3.0",
170-
"jsonpointer": "^5.0.1",
171-
"lodash.omit": "^4.5.0",
172156
"lucide-react": "^0.229.0",
173157
"marked": "^4.0.18",
174158
"match-sorter": "^6.3.4",
@@ -177,7 +161,6 @@
177161
"neverthrow": "^8.2.0",
178162
"non.geist": "^1.0.2",
179163
"octokit": "^3.2.1",
180-
"ohash": "^1.1.3",
181164
"openai": "^4.33.1",
182165
"p-limit": "^6.2.0",
183166
"p-map": "^6.0.0",
@@ -191,17 +174,13 @@
191174
"qrcode.react": "^4.2.0",
192175
"random-words": "^2.0.0",
193176
"react": "^18.2.0",
194-
"react-aria": "^3.31.1",
195-
"react-collapse": "^5.1.1",
196177
"react-day-picker": "^9.13.0",
197178
"react-dom": "^18.2.0",
198179
"react-grid-layout": "^2.2.2",
199180
"react-hotkeys-hook": "^4.4.1",
200181
"react-markdown": "^10.1.0",
201182
"react-popper": "^2.3.0",
202183
"react-resizable": "^3.1.3",
203-
"react-resizable-panels": "^2.0.9",
204-
"react-stately": "^3.29.1",
205184
"react-use": "17.5.1",
206185
"recharts": "^2.15.2",
207186
"regression": "^2.0.1",
@@ -211,24 +190,18 @@
211190
"remix-auth-google": "^2.0.0",
212191
"remix-typedjson": "0.3.1",
213192
"remix-utils": "^7.7.0",
214-
"seedrandom": "^3.0.5",
215-
"semver": "^7.5.0",
216-
"simple-oauth2": "^5.0.0",
217193
"simplur": "^3.0.1",
218194
"slug": "^6.0.0",
219195
"socket.io": "4.7.4",
220196
"socket.io-adapter": "^2.5.4",
221197
"sonner": "^1.0.3",
222198
"sql-formatter": "^15.4.10",
223-
"sqs-consumer": "^7.4.0",
224199
"streamdown": "^2.5.0",
225200
"superjson": "^2.2.1",
226201
"tailwind-merge": "^3.6.0",
227202
"tailwind-scrollbar-hide": "^4.0.0",
228203
"tw-animate-css": "^1.4.0",
229204
"tiny-invariant": "^1.2.0",
230-
"ulid": "^2.3.0",
231-
"ulidx": "^2.2.1",
232205
"uuid": "^14.0.0",
233206
"ws": "^8.11.0",
234207
"zod": "3.25.76",
@@ -253,21 +226,15 @@
253226
"@types/compression": "^1.7.2",
254227
"@types/cookie": "^0.6.0",
255228
"@types/express": "^4.17.13",
256-
"@types/humanize-duration": "^3.27.1",
257229
"@types/json-query": "^2.2.3",
258-
"@types/lodash.omit": "^4.5.7",
259230
"@types/marked": "^4.0.3",
260231
"@types/morgan": "^1.9.3",
261232
"@types/node-fetch": "^2.6.2",
262233
"@types/prismjs": "^1.26.0",
263234
"@types/qs": "^6.9.7",
264235
"@types/react": "18.2.69",
265-
"@types/react-collapse": "^5.0.4",
266236
"@types/react-dom": "18.2.7",
267237
"@types/regression": "^2.0.6",
268-
"@types/seedrandom": "^3.0.8",
269-
"@types/semver": "^7.5.0",
270-
"@types/simple-oauth2": "^5.0.4",
271238
"@types/slug": "^5.0.3",
272239
"@types/supertest": "^6.0.2",
273240
"@types/tar": "^6.1.4",

knip.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"$schema": "https://unpkg.com/knip@6/schema.json",
3+
"ignoreDependencies": ["non.geist"]
4+
}

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"format:prisma": "pnpm --filter @trigger.dev/database run format:prisma && pnpm --filter @internal/run-ops-database run format:prisma",
2323
"lint": "oxlint",
2424
"lint:fix": "oxlint --fix",
25+
"knip:deps": "knip --production --dependencies",
2526
"docker": "node scripts/docker.mjs -f docker/docker-compose.yml up -d --build --remove-orphans",
2627
"docker:stop": "node scripts/docker.mjs -f docker/docker-compose.yml stop",
2728
"docker:full": "node scripts/docker.mjs -f docker/docker-compose.yml -f docker/docker-compose.extras.yml up -d --build --remove-orphans",
@@ -60,6 +61,7 @@
6061
"@types/node": "22.20.0",
6162
"@vitest/coverage-v8": "4.1.7",
6263
"autoprefixer": "^10.4.12",
64+
"knip": "6.25.0",
6365
"oxfmt": "^0.54.0",
6466
"oxlint": "^1.69.0",
6567
"pkg-pr-new": "0.0.75",

0 commit comments

Comments
 (0)