Skip to content

Commit ddc9190

Browse files
committed
fix(deps): pin tsx to 4.21.0 — 4.22.x breaks CJS extensionless resolution
tsx 4.22.x regressed its runtime resolver: extensionless require()s inside dependencies get a `.jsx` extension appended, so ajv's require("./compile/index") resolves to a non-existent index.jsx and throws MODULE_NOT_FOUND. This crash-loops every tsx-run service (apps/api, data-manager) at boot — fastify pulls @fastify/ajv-compiler → ajv on startup. Not caught by check-types/tests/web build: only the tsx runtime CJS resolver hits this path. Surfaced on deploy when app-api + data-manager restart-looped. Pin via override to 4.21.0 (known-good, what prod ran before the dep sweep) until fixed upstream.
1 parent f7b6a07 commit ddc9190

2 files changed

Lines changed: 50 additions & 42 deletions

File tree

pnpm-lock.yaml

Lines changed: 44 additions & 42 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,9 @@ overrides:
5757
# publisher) satisfies commitlint's `^1.0.0` range, so pin to it until
5858
# tinyexec regains trusted-publisher evidence on a newer release.
5959
"tinyexec": "1.1.2"
60+
# tsx 4.22.x regressed CJS extensionless resolution: its loader appends `.jsx`
61+
# to extensionless `require()`s inside deps (e.g. ajv's `require("./compile/index")`
62+
# resolves to a non-existent `index.jsx`), crash-looping the tsx-run services
63+
# (apps/api, data-manager) at boot. 4.21.0 is the known-good version. Pin until
64+
# the regression is fixed upstream (https://github.com/privatenumber/tsx).
65+
"tsx": "4.21.0"

0 commit comments

Comments
 (0)