Uh oh!
There was an error while loading. Please reload this page.
fix(packaging): expose Ajv from CJS validator subpaths - #2431
Conversation
🦋 Changeset detectedLatest commit: c269c39 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
@modelcontextprotocol/client@modelcontextprotocol/codemod@modelcontextprotocol/core@modelcontextprotocol/server@modelcontextprotocol/server-legacy@modelcontextprotocol/express@modelcontextprotocol/fastify@modelcontextprotocol/hono@modelcontextprotocol/nodecommit: |
Verified this locally against the reported CJS failure path. On current On this PR head, the same focused build plus CJS probe succeeds for both packages: I also ran the focused package tests that include the new CJS AJV coverage: So this matches the published/fresh-main reproduction from #2430 and fixes the runtime access path for both server and client. |
Uh oh!
There was an error while loading. Please reload this page.
Summary
Fixes the CommonJS
validators/ajvsubpath export for both@modelcontextprotocol/serverand@modelcontextprotocol/client. In CommonJS consumers, readingAjvfrom either AJV validator subpath currently throwsReferenceError: import_ajv is not defined.The CJS build was preserving
Ajvas a live getter but leaving it pointed at an ESM-only local alias (import_ajv). ExportingAjvas a concrete local value from the provider makes the generated CJS subpath re-exportrequire_ajvProvider.Ajv, matching the actual CJS provider module.Adds regression coverage through the existing dist/barrel tests by requiring the built CJS validator subpath and constructing
Ajv,addFormats, andAjvJsonSchemaValidator.Fixes#2430.
Verification
pnpm --filter @modelcontextprotocol/server --filter @modelcontextprotocol/client buildnode -e "const m = require('./packages/server/dist/validators/ajv.cjs'); new m.Ajv({ strict: false })"node -e "const m = require('./packages/client/dist/validators/ajv.cjs'); new m.Ajv({ strict: false })"pnpm --filter @modelcontextprotocol/server test -- test/server/barrelClean.test.tspnpm --filter @modelcontextprotocol/client test -- test/client/barrelClean.test.tspnpm --filter @modelcontextprotocol/core-internal test -- test/validators/validators.test.tsnode scripts/smoke-dist-types.mjsgit diff --check