Skip to content
This repository was archived by the owner on May 11, 2026. It is now read-only.

Commit 80d2608

Browse files
Tonyclaude
authored andcommitted
chore(deps): document why ajv is a direct dep
Add a //ajv field explaining that the explicit ajv dependency exists purely to force bun to hoist a single ajv 8.x copy at the root, since bun won't dedupe ajv across snapshot.js / ajv-formats / ajv-errors when eslint's transitive ajv@^6.x is also in the tree. Without it, each 8.x consumer gets its own nested copy (same version, different module identities) and ajv-errors's vocabulary registration breaks. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 08c838b commit 80d2608

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "snapshot-sequencer",
33
"version": "0.1.3",
44
"license": "MIT",
5+
"//ajv": "ajv 8.11.0 is a transitive dep of @snapshot-labs/snapshot.js (also used by ajv-formats and ajv-errors). Pinned at this level to force a single hoisted copy at node_modules/ajv. Without it, bun puts eslint's ajv@^6.x in the root slot and gives snapshot.js / ajv-formats / ajv-errors each their own nested 8.x copy — same version, different module identities, which breaks ajv-errors's vocabulary registration ('SyntaxError: Unexpected token :'). Drop this dep when bun supports nested overrides (oven-sh/bun#6608) or ajv-errors is replaced upstream.",
56
"scripts": {
67
"lint": "eslint src/ test/ --ext .ts",
78
"lint:fix": "bun run lint --fix",

0 commit comments

Comments
 (0)