Skip to content

Commit 91c3085

Browse files
fix(core): stop bundling @cfworker/json-schema into the main barrel
CfWorkerJsonSchemaValidator was re-exported from the core internal barrel, pulling the optional-peer @cfworker/json-schema static import into every Node consumer's bundle. Move it to a dedicated core/validators/cfWorker subpath; the workerd/browser _shims and the public /validators/cf-worker subpath import from there instead. Main index.mjs no longer references the package.
1 parent 9ed62fe commit 91c3085

File tree

14 files changed

+38
-12
lines changed

14 files changed

+38
-12
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@modelcontextprotocol/server': patch
3+
'@modelcontextprotocol/client': patch
4+
---
5+
6+
Stop bundling `@cfworker/json-schema` into the main package barrel. Previously `CfWorkerJsonSchemaValidator` was re-exported from the core internal barrel, so tsdown inlined the `@cfworker/json-schema` dev dependency into every consumer's bundle even when it was never used. The validator is now reachable only via the `_shims` conditional (workerd/browser) and the explicit `@modelcontextprotocol/{server,client}/validators/cf-worker` subpath, so consumers that don't opt into it no longer ship that code. No public API change.

packages/client/src/shimsBrowser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* This file is selected via package.json export conditions when running in a browser.
55
*/
6-
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core';
6+
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core/validators/cfWorker';
77

88
/**
99
* Whether `fetch()` may throw `TypeError` due to CORS. Only true in browser contexts

packages/client/src/shimsWorkerd.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* This file is selected via package.json export conditions when running in workerd.
55
*/
6-
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core';
6+
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core/validators/cfWorker';
77

88
/**
99
* Whether `fetch()` may throw `TypeError` due to CORS. CORS is a browser-only concept —

packages/client/src/validators/cfWorker.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
* import { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/client/validators/cf-worker';
77
* ```
88
*/
9-
export { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/core';
10-
export type { CfWorkerSchemaDraft } from '@modelcontextprotocol/core';
9+
export type { CfWorkerSchemaDraft } from '@modelcontextprotocol/core/validators/cfWorker';
10+
export { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/core/validators/cfWorker';

packages/client/tsconfig.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
"*": ["./*"],
88
"@modelcontextprotocol/core": ["./node_modules/@modelcontextprotocol/core/src/index.ts"],
99
"@modelcontextprotocol/core/public": ["./node_modules/@modelcontextprotocol/core/src/exports/public/index.ts"],
10+
"@modelcontextprotocol/core/validators/cfWorker": [
11+
"./node_modules/@modelcontextprotocol/core/src/validators/cfWorkerProvider.ts"
12+
],
1013
"@modelcontextprotocol/test-helpers": ["./node_modules/@modelcontextprotocol/test-helpers/src/index.ts"],
1114
"@modelcontextprotocol/client/_shims": ["./src/shimsNode.ts"]
1215
}

packages/client/tsdown.config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ export default defineConfig({
2626
baseUrl: '.',
2727
paths: {
2828
'@modelcontextprotocol/core': ['../core/src/index.ts'],
29-
'@modelcontextprotocol/core/public': ['../core/src/exports/public/index.ts']
29+
'@modelcontextprotocol/core/public': ['../core/src/exports/public/index.ts'],
30+
'@modelcontextprotocol/core/validators/cfWorker': ['../core/src/validators/cfWorkerProvider.ts']
3031
}
3132
}
3233
},

packages/core/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
"./public": {
3333
"types": "./src/exports/public/index.ts",
3434
"import": "./src/exports/public/index.ts"
35+
},
36+
"./validators/cfWorker": {
37+
"types": "./src/validators/cfWorkerProvider.ts",
38+
"import": "./src/validators/cfWorkerProvider.ts"
3539
}
3640
},
3741
"scripts": {

packages/core/src/index.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ export * from './util/standardSchema.js';
1919
// experimental exports
2020
export * from './experimental/index.js';
2121
export * from './validators/ajvProvider.js';
22-
export * from './validators/cfWorkerProvider.js';
22+
// cfWorkerProvider is intentionally NOT re-exported here: it statically imports
23+
// `@cfworker/json-schema` (an optional peer), and bundling it into the main barrel
24+
// would force that import on all Node consumers. Import via `@modelcontextprotocol/core/validators/cfWorker`
25+
// (used by the workerd/browser `_shims` and the public `/validators/cf-worker` subpaths).
26+
export type { CfWorkerSchemaDraft } from './validators/cfWorkerProvider.js';
2327
export * from './validators/fromJsonSchema.js';
2428
/**
2529
* JSON Schema validation
@@ -30,7 +34,7 @@ export * from './validators/fromJsonSchema.js';
3034
* - {@linkcode AjvJsonSchemaValidator}: Best for Node.js (default, fastest)
3135
* Bundled — no additional dependencies required.
3236
*
33-
* - {@linkcode CfWorkerJsonSchemaValidator}: Best for edge runtimes
37+
* - `CfWorkerJsonSchemaValidator`: Best for edge runtimes
3438
* Import from: `@modelcontextprotocol/server/validators/cf-worker` or `@modelcontextprotocol/client/validators/cf-worker`
3539
* Bundled — no additional dependencies required.
3640
*

packages/server/src/shimsWorkerd.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* This file is selected via package.json export conditions when running in workerd.
55
*/
6-
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core';
6+
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core/validators/cfWorker';
77

88
/**
99
* Stub process object for non-Node.js environments.

packages/server/src/validators/cfWorker.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
* import { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/server/validators/cf-worker';
77
* ```
88
*/
9-
export { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/core';
10-
export type { CfWorkerSchemaDraft } from '@modelcontextprotocol/core';
9+
export type { CfWorkerSchemaDraft } from '@modelcontextprotocol/core/validators/cfWorker';
10+
export { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/core/validators/cfWorker';

0 commit comments

Comments
 (0)