chore(deps): drop 10 dead dependencies#369
Conversation
Audit found these declared but unreachable, with their replacements: - lodash, @types/lodash — no import anywhere in the repo - date-fns — no import anywhere - mystjs — no import anywhere - node-fetch — no import anywhere (global fetch is built in) - handlebars, @types/handlebars — only a commented-out usage - crypto (npm shim) — `import * as crypto from "crypto"` resolves to the node:crypto built-in (core modules win over node_modules); the shim never loaded - swagger-jsdoc — its `apis` glob pointed at ./src/api/v1/** (a dir that does not exist; routes live under src/app/api/v1), so it only emitted the static skeleton. Replaced swaggerJSDoc(options) with that object literal; schemas still come from zod-to-openapi. - uuid — v4() in 4 server-side files replaced with the native crypto.randomUUID() type-check clean, 334 tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @alukach's task in 56s —— View job ✅ No blocking issues — safe to merge.
|
Drops dependencies that an over-engineering audit found declared in
package.jsonbut unreachable. Each line is verified by grepping the whole repo (src, scripts, cdk, deploy).Removed (with replacement)
lodash,@types/lodashimportanywhere in the repodate-fnsmystjsnode-fetchfetchis built inhandlebars,@types/handlebarscrypto(npm shim)import * as crypto from "crypto"resolves to thenode:cryptobuilt-in (core modules win overnode_modules); the npm shim never loadedswagger-jsdocapisglob pointed at./src/api/v1/**— a directory that does not exist (routes live undersrc/app/api/v1), so it only emitted the static skeletonuuidv4()replaced with the nativecrypto.randomUUID()Code changes that go with the removals
src/app/api/openapi/route.ts— replacedswaggerJSDoc(options)with the static object literal it was already producing. Schemas still come fromzod-to-openapi; output is unchanged (pathswas always{}because the glob matched nothing).@openapiroute annotations were ever intended to populatepaths, they never did. Flagging for a separate look — out of scope here.import { v4 as uuidv4 } from "uuid"→import { randomUUID } from "crypto";uuidv4()→randomUUID()(all server-side:account.ts,memberships.ts, twomembers/route.ts). Both produce RFC 4122 v4 UUIDs.// import Handlebars from "handlebars"comment.lodashremains in the lockfile as a transitive dep of other packages — it's just no longer a direct dependency.Verification
npm run type-check— cleannpm test— 334 passed / 39 suites🤖 Generated with Claude Code