diff --git a/.changeset/two-hounds-yell.md b/.changeset/two-hounds-yell.md new file mode 100644 index 0000000000..df10f2d249 --- /dev/null +++ b/.changeset/two-hounds-yell.md @@ -0,0 +1,18 @@ +--- +'@urql/exchange-request-policy': minor +'@urql/introspection': minor +'@urql/exchange-graphcache': minor +'@urql/preact': minor +'@urql/svelte': minor +'@urql/exchange-persisted': minor +'urql': minor +'@urql/exchange-populate': minor +'@urql/exchange-context': minor +'@urql/exchange-execute': minor +'@urql/exchange-refocus': minor +'@urql/vue': minor +'@urql/exchange-retry': minor +'@urql/exchange-auth': minor +--- + +Mark `@urql/core` as a peer dependency as well as a regular dependency. diff --git a/exchanges/auth/package.json b/exchanges/auth/package.json index fdd68f7f80..519b6477a6 100644 --- a/exchanges/auth/package.json +++ b/exchanges/auth/package.json @@ -48,8 +48,11 @@ "prepare": "node ../../scripts/prepare/index.js", "prepublishOnly": "run-s clean build" }, + "peerDependencies": { + "@urql/core": "^5.0.0" + }, "dependencies": { - "@urql/core": ">=5.0.0", + "@urql/core": "^5.0.0", "wonka": "^6.3.2" }, "devDependencies": { diff --git a/exchanges/context/package.json b/exchanges/context/package.json index 6f1b007f3a..8752210618 100644 --- a/exchanges/context/package.json +++ b/exchanges/context/package.json @@ -47,8 +47,11 @@ "prepare": "node ../../scripts/prepare/index.js", "prepublishOnly": "run-s clean build" }, + "peerDependencies": { + "@urql/core": "^5.0.0" + }, "dependencies": { - "@urql/core": ">=5.0.0", + "@urql/core": "^5.0.0", "wonka": "^6.3.2" }, "devDependencies": { diff --git a/exchanges/execute/package.json b/exchanges/execute/package.json index 5ae982cff6..8734ce41e6 100644 --- a/exchanges/execute/package.json +++ b/exchanges/execute/package.json @@ -49,11 +49,12 @@ "prepublishOnly": "run-s clean build" }, "dependencies": { - "@urql/core": ">=5.0.0", + "@urql/core": "^5.0.0", "wonka": "^6.3.2" }, "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "@urql/core": "^5.0.0", + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "devDependencies": { "@urql/core": "workspace:*", diff --git a/exchanges/graphcache/package.json b/exchanges/graphcache/package.json index d667b71daf..458fa4108b 100644 --- a/exchanges/graphcache/package.json +++ b/exchanges/graphcache/package.json @@ -62,9 +62,12 @@ "prepare": "node ../../scripts/prepare/index.js", "prepublishOnly": "run-s clean build" }, + "peerDependencies": { + "@urql/core": "^5.0.0" + }, "dependencies": { "@0no-co/graphql.web": "^1.0.5", - "@urql/core": ">=5.0.0", + "@urql/core": "^5.0.0", "wonka": "^6.3.2" }, "devDependencies": { diff --git a/exchanges/persisted/package.json b/exchanges/persisted/package.json index 97574ceaf1..4ba2052dfa 100644 --- a/exchanges/persisted/package.json +++ b/exchanges/persisted/package.json @@ -46,8 +46,11 @@ "prepare": "node ../../scripts/prepare/index.js", "prepublishOnly": "run-s clean build" }, + "peerDependencies": { + "@urql/core": "^5.0.0" + }, "dependencies": { - "@urql/core": ">=5.0.0", + "@urql/core": "^5.0.0", "wonka": "^6.3.2" }, "devDependencies": { diff --git a/exchanges/populate/package.json b/exchanges/populate/package.json index 6bbddaed8a..234831b475 100644 --- a/exchanges/populate/package.json +++ b/exchanges/populate/package.json @@ -47,11 +47,12 @@ "prepublishOnly": "run-s clean build" }, "dependencies": { - "@urql/core": ">=5.0.0", + "@urql/core": "^5.0.0", "wonka": "^6.3.2" }, "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "@urql/core": "^5.0.0", + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "devDependencies": { "@urql/core": "workspace:*", diff --git a/exchanges/refocus/package.json b/exchanges/refocus/package.json index 7582af61b9..2c01c39129 100644 --- a/exchanges/refocus/package.json +++ b/exchanges/refocus/package.json @@ -53,8 +53,11 @@ "@types/react": "^17.0.4", "graphql": "^16.0.0" }, + "peerDependencies": { + "@urql/core": "^5.0.0" + }, "dependencies": { - "@urql/core": ">=5.0.0", + "@urql/core": "^5.0.0", "wonka": "^6.3.2" }, "publishConfig": { diff --git a/exchanges/request-policy/package.json b/exchanges/request-policy/package.json index 4420eeaec2..5958318dc3 100644 --- a/exchanges/request-policy/package.json +++ b/exchanges/request-policy/package.json @@ -51,8 +51,11 @@ "@urql/core": "workspace:*", "graphql": "^16.0.0" }, + "peerDependencies": { + "@urql/core": "^5.0.0" + }, "dependencies": { - "@urql/core": ">=5.0.0", + "@urql/core": "^5.0.0", "wonka": "^6.3.2" }, "publishConfig": { diff --git a/exchanges/retry/package.json b/exchanges/retry/package.json index 0cb1624884..93c6bc5ccc 100644 --- a/exchanges/retry/package.json +++ b/exchanges/retry/package.json @@ -51,8 +51,11 @@ "@urql/core": "workspace:*", "graphql": "^16.0.0" }, + "peerDependencies": { + "@urql/core": "^5.0.0" + }, "dependencies": { - "@urql/core": ">=5.0.0", + "@urql/core": "^5.0.0", "wonka": "^6.3.2" }, "publishConfig": { diff --git a/packages/introspection/package.json b/packages/introspection/package.json index 92e9d3002c..167ef4d9d6 100644 --- a/packages/introspection/package.json +++ b/packages/introspection/package.json @@ -49,7 +49,7 @@ "graphql": "^16.0.0" }, "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": {}, "publishConfig": { diff --git a/packages/preact-urql/package.json b/packages/preact-urql/package.json index f9bd6bb7a9..d137f713b8 100644 --- a/packages/preact-urql/package.json +++ b/packages/preact-urql/package.json @@ -55,6 +55,7 @@ "preact": "^10.13.0" }, "peerDependencies": { + "@urql/core": "^5.0.0", "preact": ">= 10.0.0" }, "dependencies": { diff --git a/packages/react-urql/package.json b/packages/react-urql/package.json index eca86da39b..cbdefbc9c4 100644 --- a/packages/react-urql/package.json +++ b/packages/react-urql/package.json @@ -58,6 +58,7 @@ "vite": "^3.2.4" }, "peerDependencies": { + "@urql/core": "^5.0.0", "react": ">= 16.8.0" }, "dependencies": { diff --git a/packages/svelte-urql/package.json b/packages/svelte-urql/package.json index a0037bd096..7f9079e7f4 100644 --- a/packages/svelte-urql/package.json +++ b/packages/svelte-urql/package.json @@ -49,6 +49,7 @@ "prepublishOnly": "run-s clean build" }, "peerDependencies": { + "@urql/core": "^5.0.0", "svelte": "^3.0.0 || ^4.0.0" }, "dependencies": { diff --git a/packages/vue-urql/package.json b/packages/vue-urql/package.json index d6d45540f4..3f659d8673 100644 --- a/packages/vue-urql/package.json +++ b/packages/vue-urql/package.json @@ -55,6 +55,7 @@ "vue": "^3.2.47" }, "peerDependencies": { + "@urql/core": "^5.0.0", "vue": "^2.7.0 || ^3.0.0" }, "dependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 90b429c637..a8886f61b0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -182,7 +182,7 @@ importers: exchanges/auth: dependencies: '@urql/core': - specifier: '>=5.0.0' + specifier: ^5.0.0 version: link:../../packages/core wonka: specifier: ^6.3.2 @@ -195,7 +195,7 @@ importers: exchanges/context: dependencies: '@urql/core': - specifier: '>=5.0.0' + specifier: ^5.0.0 version: link:../../packages/core wonka: specifier: ^6.3.2 @@ -208,7 +208,7 @@ importers: exchanges/execute: dependencies: '@urql/core': - specifier: '>=5.0.0' + specifier: ^5.0.0 version: link:../../packages/core wonka: specifier: ^6.3.2 @@ -224,7 +224,7 @@ importers: specifier: ^1.0.5 version: 1.0.5(graphql@16.6.0) '@urql/core': - specifier: '>=5.0.0' + specifier: ^5.0.0 version: link:../../packages/core wonka: specifier: ^6.3.2 @@ -258,7 +258,7 @@ importers: exchanges/persisted: dependencies: '@urql/core': - specifier: '>=5.0.0' + specifier: ^5.0.0 version: link:../../packages/core wonka: specifier: ^6.3.2 @@ -271,7 +271,7 @@ importers: exchanges/populate: dependencies: '@urql/core': - specifier: '>=5.0.0' + specifier: ^5.0.0 version: link:../../packages/core wonka: specifier: ^6.3.2 @@ -284,7 +284,7 @@ importers: exchanges/refocus: dependencies: '@urql/core': - specifier: '>=5.0.0' + specifier: ^5.0.0 version: link:../../packages/core wonka: specifier: ^6.3.2 @@ -300,7 +300,7 @@ importers: exchanges/request-policy: dependencies: '@urql/core': - specifier: '>=5.0.0' + specifier: ^5.0.0 version: link:../../packages/core wonka: specifier: ^6.3.2 @@ -313,7 +313,7 @@ importers: exchanges/retry: dependencies: '@urql/core': - specifier: '>=5.0.0' + specifier: ^5.0.0 version: link:../../packages/core wonka: specifier: ^6.3.2 diff --git a/scripts/prepare/index.js b/scripts/prepare/index.js index ff0839d849..1987f0527a 100755 --- a/scripts/prepare/index.js +++ b/scripts/prepare/index.js @@ -97,6 +97,28 @@ invariant( 'package.json:files must include "dist" and "LICENSE"' ); +if (pkg.dependencies && pkg.dependencies['@urql/core']) { + invariant( + !!pkg.peerDependencies && !!pkg.peerDependencies['@urql/core'], + 'package.json:peerDependencies must contain @urql/core.' + ); +} + +if (pkg.peerDependencies && pkg.peerDependencies['@urql/core']) { + invariant( + !!pkg.dependencies && !!pkg.dependencies['@urql/core'], + 'package.json:dependencies must contain @urql/core.' + ); +} + +for (const key in pkg.peerDependencies || {}) { + const dependency = pkg.peerDependencies[key]; + invariant( + key !== 'react' || key !== 'preact' || !dependency.includes('>='), + `Peer Dependency "${key}" must not contain ">=" (greater than) range` + ); +} + if (hasReact && !hasNext) { invariant( !pkg.exports,