From 7b330ec9970cc896a343009c64a06996423df9c3 Mon Sep 17 00:00:00 2001 From: Arda TANRIKULU Date: Mon, 11 Nov 2024 09:56:30 -0500 Subject: [PATCH] Revert "Bump whatwg node" (#3478) --- ...n-apollo-inline-trace-3474-dependencies.md | 7 - ...n-apollo-usage-report-3474-dependencies.md | 7 - .changeset/graphql-yoga-3474-dependencies.md | 10 - examples/apollo-federation/package.json | 2 +- examples/bun-yoga-ws/package.json | 2 +- examples/bun/package.json | 2 +- examples/cloudflare-modules/package.json | 2 +- examples/error-handling/package.json | 2 +- examples/fastify/package.json | 2 +- .../file-upload-nextjs-pothos/package.json | 2 +- examples/file-upload-nexus/package.json | 2 +- examples/file-upload/package.json | 2 +- examples/generic-auth/package.json | 2 +- examples/hapi/package.json | 2 +- examples/nextjs-app/package.json | 2 +- examples/request-cancelation/package.json | 2 +- examples/response-cache/package.json | 2 +- examples/service-worker/package.json | 2 +- examples/uwebsockets/package.json | 2 +- packages/graphql-yoga/package.json | 4 +- .../src/plugins/result-processor/multipart.ts | 71 ++-- .../src/plugins/result-processor/regular.ts | 19 +- .../src/plugins/result-processor/sse.ts | 52 +-- packages/nestjs/package.json | 2 +- .../plugins/apollo-inline-trace/package.json | 4 +- .../apollo-managed-federation/package.json | 2 +- .../plugins/apollo-usage-report/package.json | 4 +- packages/plugins/defer-stream/package.json | 2 +- pnpm-lock.yaml | 384 ++++++++++-------- .../docs/features/persisted-operations.mdx | 2 +- 30 files changed, 297 insertions(+), 305 deletions(-) delete mode 100644 .changeset/@graphql-yoga_plugin-apollo-inline-trace-3474-dependencies.md delete mode 100644 .changeset/@graphql-yoga_plugin-apollo-usage-report-3474-dependencies.md delete mode 100644 .changeset/graphql-yoga-3474-dependencies.md diff --git a/.changeset/@graphql-yoga_plugin-apollo-inline-trace-3474-dependencies.md b/.changeset/@graphql-yoga_plugin-apollo-inline-trace-3474-dependencies.md deleted file mode 100644 index 8e422339ba..0000000000 --- a/.changeset/@graphql-yoga_plugin-apollo-inline-trace-3474-dependencies.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@graphql-yoga/plugin-apollo-inline-trace': patch ---- -dependencies updates: - - Updated dependency [`@whatwg-node/fetch@^0.10.1` - ↗︎](https://www.npmjs.com/package/@whatwg-node/fetch/v/0.10.1) (from `^0.9.22`, in - `peerDependencies`) diff --git a/.changeset/@graphql-yoga_plugin-apollo-usage-report-3474-dependencies.md b/.changeset/@graphql-yoga_plugin-apollo-usage-report-3474-dependencies.md deleted file mode 100644 index 256c0824a0..0000000000 --- a/.changeset/@graphql-yoga_plugin-apollo-usage-report-3474-dependencies.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@graphql-yoga/plugin-apollo-usage-report': patch ---- -dependencies updates: - - Updated dependency [`@whatwg-node/fetch@^0.10.1` - ↗︎](https://www.npmjs.com/package/@whatwg-node/fetch/v/0.10.1) (from `^0.9.22`, in - `peerDependencies`) diff --git a/.changeset/graphql-yoga-3474-dependencies.md b/.changeset/graphql-yoga-3474-dependencies.md deleted file mode 100644 index 74457b9199..0000000000 --- a/.changeset/graphql-yoga-3474-dependencies.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'graphql-yoga': patch ---- -dependencies updates: - - Updated dependency [`@whatwg-node/fetch@^0.10.1` - ↗︎](https://www.npmjs.com/package/@whatwg-node/fetch/v/0.10.1) (from `^0.9.22`, in - `dependencies`) - - Updated dependency [`@whatwg-node/server@^0.9.54` - ↗︎](https://www.npmjs.com/package/@whatwg-node/server/v/0.9.54) (from `^0.9.50`, in - `dependencies`) diff --git a/examples/apollo-federation/package.json b/examples/apollo-federation/package.json index cd896843ec..ca110545a4 100644 --- a/examples/apollo-federation/package.json +++ b/examples/apollo-federation/package.json @@ -17,6 +17,6 @@ }, "devDependencies": { "@apollo/gateway": "2.4.7", - "@whatwg-node/fetch": "^0.10.1" + "@whatwg-node/fetch": "^0.9.22" } } diff --git a/examples/bun-yoga-ws/package.json b/examples/bun-yoga-ws/package.json index 327a17f925..186d8301b4 100644 --- a/examples/bun-yoga-ws/package.json +++ b/examples/bun-yoga-ws/package.json @@ -13,7 +13,7 @@ "graphql-yoga": "^5.3.1" }, "devDependencies": { - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "typescript": "^5.4.5" } } diff --git a/examples/bun/package.json b/examples/bun/package.json index 87eab68bf4..2ceabb3d9f 100644 --- a/examples/bun/package.json +++ b/examples/bun/package.json @@ -12,7 +12,7 @@ "graphql-yoga": "5.3.1" }, "devDependencies": { - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "typescript": "^5.4.5" } } diff --git a/examples/cloudflare-modules/package.json b/examples/cloudflare-modules/package.json index 5b4e957b61..2ab49a39c1 100644 --- a/examples/cloudflare-modules/package.json +++ b/examples/cloudflare-modules/package.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@cloudflare/workers-types": "4.20230518.0", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "typescript": "5.5.4", "wrangler": "3.57.1" } diff --git a/examples/error-handling/package.json b/examples/error-handling/package.json index 442ff5f0ec..d09c075a8a 100644 --- a/examples/error-handling/package.json +++ b/examples/error-handling/package.json @@ -7,7 +7,7 @@ "start": "ts-node src/index.ts" }, "dependencies": { - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "graphql": "^16.1.0", "graphql-yoga": "workspace:*" }, diff --git a/examples/fastify/package.json b/examples/fastify/package.json index b3d32c6e2d..03c05982f9 100644 --- a/examples/fastify/package.json +++ b/examples/fastify/package.json @@ -7,7 +7,7 @@ "start": "ts-node src/index.ts" }, "dependencies": { - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "fastify": "4.17.0", "graphql-yoga": "workspace:*", "pino-pretty": "11.2.1" diff --git a/examples/file-upload-nextjs-pothos/package.json b/examples/file-upload-nextjs-pothos/package.json index b1587057b2..d693d67bba 100644 --- a/examples/file-upload-nextjs-pothos/package.json +++ b/examples/file-upload-nextjs-pothos/package.json @@ -19,7 +19,7 @@ }, "devDependencies": { "@types/react": "^18.0.17", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "eslint": "8.42.0", "eslint-config-next": "13.4.12", "typescript": "5.5.4" diff --git a/examples/file-upload-nexus/package.json b/examples/file-upload-nexus/package.json index 785428dd48..2ba5432d1b 100644 --- a/examples/file-upload-nexus/package.json +++ b/examples/file-upload-nexus/package.json @@ -12,7 +12,7 @@ "nexus": "^1.3.0" }, "devDependencies": { - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "ts-node": "10.9.1", "typescript": "5.5.4" } diff --git a/examples/file-upload/package.json b/examples/file-upload/package.json index 186838592c..0d7d970994 100644 --- a/examples/file-upload/package.json +++ b/examples/file-upload/package.json @@ -12,6 +12,6 @@ "ts-node": "10.9.1" }, "devDependencies": { - "@whatwg-node/fetch": "^0.10.1" + "@whatwg-node/fetch": "^0.9.22" } } diff --git a/examples/generic-auth/package.json b/examples/generic-auth/package.json index a7bbc64344..cc89888b29 100644 --- a/examples/generic-auth/package.json +++ b/examples/generic-auth/package.json @@ -18,7 +18,7 @@ }, "devDependencies": { "@types/node": "20.14.12", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "cross-env": "7.0.3", "ts-node": "10.9.1", "ts-node-dev": "2.0.0", diff --git a/examples/hapi/package.json b/examples/hapi/package.json index 76380c21f6..18696c5a33 100644 --- a/examples/hapi/package.json +++ b/examples/hapi/package.json @@ -12,7 +12,7 @@ "graphql-yoga": "workspace:*" }, "devDependencies": { - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "ts-node": "10.9.1", "typescript": "5.5.4" } diff --git a/examples/nextjs-app/package.json b/examples/nextjs-app/package.json index c423d3d431..0e87dba887 100644 --- a/examples/nextjs-app/package.json +++ b/examples/nextjs-app/package.json @@ -25,6 +25,6 @@ "typescript": "5.5.4" }, "devDependencies": { - "@whatwg-node/fetch": "^0.10.1" + "@whatwg-node/fetch": "^0.9.22" } } diff --git a/examples/request-cancelation/package.json b/examples/request-cancelation/package.json index fb7b5b686f..6280d0e760 100644 --- a/examples/request-cancelation/package.json +++ b/examples/request-cancelation/package.json @@ -18,7 +18,7 @@ }, "devDependencies": { "@types/node": "20.14.12", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "cross-env": "7.0.3", "ts-node": "10.9.1", "ts-node-dev": "2.0.0", diff --git a/examples/response-cache/package.json b/examples/response-cache/package.json index b98dd45a7f..3e57540423 100644 --- a/examples/response-cache/package.json +++ b/examples/response-cache/package.json @@ -19,7 +19,7 @@ }, "devDependencies": { "@types/node": "20.14.12", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "cross-env": "7.0.3", "ts-node": "10.9.1", "ts-node-dev": "2.0.0", diff --git a/examples/service-worker/package.json b/examples/service-worker/package.json index 1cd6fd4357..74fab48e93 100644 --- a/examples/service-worker/package.json +++ b/examples/service-worker/package.json @@ -13,7 +13,7 @@ "graphql-yoga": "workspace:*" }, "devDependencies": { - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "typescript": "5.5.4", "wrangler": "3.57.1" } diff --git a/examples/uwebsockets/package.json b/examples/uwebsockets/package.json index 2d02868faf..90c3eea0ca 100644 --- a/examples/uwebsockets/package.json +++ b/examples/uwebsockets/package.json @@ -17,7 +17,7 @@ }, "devDependencies": { "@types/ws": "8.5.4", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "ws": "8.13.0" } } diff --git a/packages/graphql-yoga/package.json b/packages/graphql-yoga/package.json index 072c0a9ca4..c9f0e0783b 100644 --- a/packages/graphql-yoga/package.json +++ b/packages/graphql-yoga/package.json @@ -56,8 +56,8 @@ "@graphql-tools/utils": "^10.3.2", "@graphql-yoga/logger": "workspace:^", "@graphql-yoga/subscription": "workspace:^", - "@whatwg-node/fetch": "^0.10.1", - "@whatwg-node/server": "^0.9.54", + "@whatwg-node/fetch": "^0.9.22", + "@whatwg-node/server": "^0.9.50", "dset": "^3.1.1", "lru-cache": "^10.0.0", "tslib": "^2.5.2" diff --git a/packages/graphql-yoga/src/plugins/result-processor/multipart.ts b/packages/graphql-yoga/src/plugins/result-processor/multipart.ts index a5ae10166b..8f72648531 100644 --- a/packages/graphql-yoga/src/plugins/result-processor/multipart.ts +++ b/packages/graphql-yoga/src/plugins/result-processor/multipart.ts @@ -1,6 +1,5 @@ import { ExecutionResult } from 'graphql'; import { isAsyncIterable } from '@envelop/core'; -import { fakePromise } from '@whatwg-node/server'; import { getResponseInitByRespectingErrors } from '../../error.js'; import { FetchAPI, MaybeArray } from '../../types.js'; import { ResultProcessorInput } from '../types.js'; @@ -16,7 +15,8 @@ export function processMultipartResult(result: ResultProcessorInput, fetchAPI: F const responseInit = getResponseInitByRespectingErrors(result, headersInit); let iterator: AsyncIterator>; - const textEncoderStream = new fetchAPI.TextEncoderStream(); + + const textEncoder = new fetchAPI.TextEncoder(); const readableStream = new fetchAPI.ReadableStream({ start(controller) { @@ -27,65 +27,50 @@ export function processMultipartResult(result: ResultProcessorInput, fetchAPI: F iterator = { next: () => { if (finished) { - return fakePromise({ done: true, value: null }); + return Promise.resolve({ done: true, value: null }); } finished = true; - return fakePromise({ done: false, value: result }); + return Promise.resolve({ done: false, value: result }); }, }; } - controller.enqueue('\r\n'); - controller.enqueue(`---`); + controller.enqueue(textEncoder.encode('\r\n')); + controller.enqueue(textEncoder.encode(`---`)); }, - pull(controller): void | Promise { + async pull(controller) { try { - return iterator.next().then( - ({ value, done }) => { - if (value != null) { - controller.enqueue('\r\n'); + const { done, value } = await iterator.next(); + if (value != null) { + controller.enqueue(textEncoder.encode('\r\n')); - controller.enqueue('Content-Type: application/json; charset=utf-8'); - controller.enqueue('\r\n'); + controller.enqueue(textEncoder.encode('Content-Type: application/json; charset=utf-8')); + controller.enqueue(textEncoder.encode('\r\n')); - const chunk = jsonStringifyResultWithoutInternals(value); + const chunk = jsonStringifyResultWithoutInternals(value); + const encodedChunk = textEncoder.encode(chunk); - controller.enqueue('Content-Length: ' + chunk.length); - controller.enqueue('\r\n'); + controller.enqueue(textEncoder.encode('Content-Length: ' + encodedChunk.byteLength)); + controller.enqueue(textEncoder.encode('\r\n')); - controller.enqueue('\r\n'); - controller.enqueue(chunk); - controller.enqueue('\r\n'); + controller.enqueue(textEncoder.encode('\r\n')); + controller.enqueue(encodedChunk); + controller.enqueue(textEncoder.encode('\r\n')); - controller.enqueue('---'); - } + controller.enqueue(textEncoder.encode('---')); + } - if (done) { - controller.enqueue('--\r\n'); - controller.close(); - } - }, - err => controller.error(err), - ); + if (done) { + controller.enqueue(textEncoder.encode('--\r\n')); + controller.close(); + } } catch (err) { controller.error(err); } }, - cancel(e) { - return iterator - ?.return?.(e) - ?.finally?.(() => - Promise.all([textEncoderStream.writable.abort(e), textEncoderStream.readable.cancel(e)]), - ) - ?.then?.( - () => { - // ignore - }, - () => { - // ignore - }, - ); + async cancel(e) { + await iterator.return?.(e); }, }); - return new fetchAPI.Response(readableStream.pipeThrough(textEncoderStream), responseInit); + return new fetchAPI.Response(readableStream, responseInit); } diff --git a/packages/graphql-yoga/src/plugins/result-processor/regular.ts b/packages/graphql-yoga/src/plugins/result-processor/regular.ts index 4bde7be9d6..872f7c8bc8 100644 --- a/packages/graphql-yoga/src/plugins/result-processor/regular.ts +++ b/packages/graphql-yoga/src/plugins/result-processor/regular.ts @@ -6,7 +6,7 @@ import { } from '../../error.js'; import { FetchAPI } from '../../types.js'; import { ResultProcessorInput } from '../types.js'; -import { jsonStringifyResultWithoutInternals, omitInternalsFromResultErrors } from './stringify.js'; +import { jsonStringifyResultWithoutInternals } from './stringify.js'; export function processRegularResult( executionResult: ResultProcessorInput, @@ -39,20 +39,7 @@ export function processRegularResult( ), ); - const isArrayResult = Array.isArray(executionResult); - const hasCustomSerializer = isArrayResult - ? executionResult.some(r => r.stringify) - : executionResult.stringify; + const responseBody = jsonStringifyResultWithoutInternals(executionResult); - if (hasCustomSerializer) { - const responseBody = jsonStringifyResultWithoutInternals(executionResult); - return new fetchAPI.Response(responseBody, responseInit); - } - - return fetchAPI.Response.json( - isArrayResult - ? executionResult.map(omitInternalsFromResultErrors) - : omitInternalsFromResultErrors(executionResult), - responseInit, - ); + return new fetchAPI.Response(responseBody, responseInit); } diff --git a/packages/graphql-yoga/src/plugins/result-processor/sse.ts b/packages/graphql-yoga/src/plugins/result-processor/sse.ts index 42a4043083..b19ba3be02 100644 --- a/packages/graphql-yoga/src/plugins/result-processor/sse.ts +++ b/packages/graphql-yoga/src/plugins/result-processor/sse.ts @@ -1,6 +1,5 @@ import { ExecutionResult } from 'graphql'; import { isAsyncIterable } from '@envelop/core'; -import { fakePromise } from '@whatwg-node/server'; import { getResponseInitByRespectingErrors } from '../../error.js'; import { FetchAPI, MaybeArray } from '../../types.js'; import { ResultProcessor, ResultProcessorInput } from '../types.js'; @@ -27,11 +26,12 @@ export function getSSEProcessor(): ResultProcessor { let iterator: AsyncIterator>; let pingInterval: number; + const textEncoder = new fetchAPI.TextEncoder(); const readableStream = new fetchAPI.ReadableStream({ start(controller) { // always start with a ping because some browsers dont accept a header flush // causing the fetch to stall until something is streamed through the response - controller.enqueue(':\n\n'); + controller.enqueue(textEncoder.encode(':\n\n')); // ping client every 12 seconds to keep the connection alive pingInterval = setInterval(() => { @@ -39,7 +39,7 @@ export function getSSEProcessor(): ResultProcessor { clearInterval(pingInterval); return; } - controller.enqueue(':\n\n'); + controller.enqueue(textEncoder.encode(':\n\n')); }, pingIntervalMs) as unknown as number; if (isAsyncIterable(result)) { @@ -49,46 +49,36 @@ export function getSSEProcessor(): ResultProcessor { iterator = { next: () => { if (finished) { - return fakePromise({ done: true, value: null }); + return Promise.resolve({ done: true, value: null }); } finished = true; - return fakePromise({ done: false, value: result }); + return Promise.resolve({ done: false, value: result }); }, }; } }, - pull(controller): void | Promise { + async pull(controller) { try { - return iterator.next().then( - result => { - if (result.value != null) { - controller.enqueue(`event: next\n`); - const chunk = jsonStringifyResultWithoutInternals(result.value); - controller.enqueue(`data: ${chunk}\n\n`); - } - if (result.done) { - controller.enqueue(`event: complete\n`); - controller.enqueue(`data:\n\n`); - clearInterval(pingInterval); - controller.close(); - } - }, - err => controller.error(err), - ); + const result = await iterator.next(); + + if (result.value != null) { + controller.enqueue(textEncoder.encode(`event: next\n`)); + const chunk = jsonStringifyResultWithoutInternals(result.value); + controller.enqueue(textEncoder.encode(`data: ${chunk}\n\n`)); + } + if (result.done) { + controller.enqueue(textEncoder.encode(`event: complete\n`)); + controller.enqueue(textEncoder.encode(`data:\n\n`)); + clearInterval(pingInterval); + controller.close(); + } } catch (err) { controller.error(err); } }, - cancel(e) { + async cancel(e) { clearInterval(pingInterval); - return iterator?.return?.(e)?.then?.( - () => { - // ignore - }, - () => { - // ignore - }, - ); + await iterator.return?.(e); }, }); return new fetchAPI.Response(readableStream, responseInit); diff --git a/packages/nestjs/package.json b/packages/nestjs/package.json index d4b5733a8f..c81eee9edd 100644 --- a/packages/nestjs/package.json +++ b/packages/nestjs/package.json @@ -62,7 +62,7 @@ "@types/express": "^5.0.0", "@types/glob": "^8.0.1", "@types/ws": "^8.5.4", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "express": "^4.18.2", "fastify": "^4.13.0", "glob": "^11.0.0", diff --git a/packages/plugins/apollo-inline-trace/package.json b/packages/plugins/apollo-inline-trace/package.json index 740931e196..c54b25cc1d 100644 --- a/packages/plugins/apollo-inline-trace/package.json +++ b/packages/plugins/apollo-inline-trace/package.json @@ -38,7 +38,7 @@ }, "peerDependencies": { "@graphql-tools/utils": "^10.0.0", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "graphql": "^15.2.0 || ^16.0.0", "graphql-yoga": "workspace:^" }, @@ -53,7 +53,7 @@ "@envelop/core": "^5.0.2", "@graphql-tools/delegate": "^10.1.1", "@graphql-tools/federation": "^2.2.24", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "graphql": "^16.6.0", "graphql-yoga": "workspace:*" }, diff --git a/packages/plugins/apollo-managed-federation/package.json b/packages/plugins/apollo-managed-federation/package.json index 7f8382cdfc..2fb3ae5994 100644 --- a/packages/plugins/apollo-managed-federation/package.json +++ b/packages/plugins/apollo-managed-federation/package.json @@ -55,7 +55,7 @@ "tslib": "^2.5.0" }, "devDependencies": { - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "graphql": "16.8.1", "graphql-yoga": "workspace:^", "typescript": "5.5.4" diff --git a/packages/plugins/apollo-usage-report/package.json b/packages/plugins/apollo-usage-report/package.json index 0bc01c741f..df1703d1c5 100644 --- a/packages/plugins/apollo-usage-report/package.json +++ b/packages/plugins/apollo-usage-report/package.json @@ -38,7 +38,7 @@ }, "peerDependencies": { "@graphql-tools/utils": "^10.0.0", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "graphql": "^15.2.0 || ^16.0.0", "graphql-yoga": "workspace:^" }, @@ -49,7 +49,7 @@ }, "devDependencies": { "@envelop/on-resolve": "^4.0.0", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "graphql": "^16.6.0", "graphql-yoga": "workspace:*" }, diff --git a/packages/plugins/defer-stream/package.json b/packages/plugins/defer-stream/package.json index cd6f003f3e..10a9d8ee6e 100644 --- a/packages/plugins/defer-stream/package.json +++ b/packages/plugins/defer-stream/package.json @@ -45,7 +45,7 @@ }, "devDependencies": { "@graphql-tools/executor-http": "^1.0.4", - "@whatwg-node/fetch": "^0.10.1", + "@whatwg-node/fetch": "^0.9.22", "fetch-multipart-graphql": "3.2.1", "graphql": "^16.6.0", "graphql-yoga": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e0b93bb80..c1b216fe04 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,10 +63,10 @@ importers: version: 2.0.16 '@typescript-eslint/eslint-plugin': specifier: ^8.0.0 - version: 8.5.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) + version: 8.1.0(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.5.0(eslint@8.57.0)(typescript@5.5.4) + version: 8.1.0(eslint@8.57.0)(typescript@5.5.4) babel-jest: specifier: ^29.0.0 version: 29.7.0(@babel/core@7.22.1) @@ -193,8 +193,8 @@ importers: specifier: 2.4.7 version: 2.4.7(encoding@0.1.13)(graphql@16.8.1) '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 examples/apollo-federation-compatibility: dependencies: @@ -316,24 +316,6 @@ importers: specifier: 5.5.4 version: 5.5.4 - examples/aws-lambda/cdk.out/asset.4e743d32e797e1726a8a5b2cccc1100c2d990cda9aa3328a6b8a8d9bf73d8e4a: - dependencies: - graphql: - specifier: 16.8.1 - version: 16.8.1 - graphql-yoga: - specifier: workspace:* - version: link:../../../../packages/graphql-yoga/dist - - examples/aws-lambda/cdk.out/asset.a6226aca2b6d31da755644e1584438f9c844f2c3e4ca718261534aae0ffda65c: - dependencies: - graphql: - specifier: 16.8.1 - version: 16.8.1 - graphql-yoga: - specifier: workspace:* - version: link:../../../../packages/graphql-yoga/dist - examples/aws-lambda/lambda: dependencies: graphql: @@ -400,8 +382,8 @@ importers: specifier: 4.20230518.0 version: 4.20230518.0 '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 typescript: specifier: 5.5.4 version: 5.5.4 @@ -413,7 +395,7 @@ importers: dependencies: '@whatwg-node/server-plugin-cookies': specifier: ^1.0.2 - version: 1.0.2(@whatwg-node/server@0.9.54) + version: 1.0.2(@whatwg-node/server@0.9.50) graphql: specifier: 16.8.1 version: 16.8.1 @@ -459,8 +441,8 @@ importers: examples/error-handling: dependencies: '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 graphql: specifier: 16.8.1 version: 16.8.1 @@ -519,8 +501,8 @@ importers: examples/fastify: dependencies: '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 fastify: specifier: 4.17.0 version: 4.17.0 @@ -579,8 +561,8 @@ importers: version: 10.9.1(@swc/core@1.7.11)(@types/node@20.14.12)(typescript@5.5.4) devDependencies: '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 examples/file-upload-nextjs-pothos: dependencies: @@ -607,8 +589,8 @@ importers: specifier: 18.2.55 version: 18.2.55 '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 eslint: specifier: 8.42.0 version: 8.42.0 @@ -632,8 +614,8 @@ importers: version: 1.3.0(graphql@16.8.1) devDependencies: '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 ts-node: specifier: 10.9.1 version: 10.9.1(@swc/core@1.7.11)(@types/node@20.14.12)(typescript@5.5.4) @@ -657,8 +639,8 @@ importers: specifier: 20.14.12 version: 20.14.12 '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 cross-env: specifier: 7.0.3 version: 7.0.3 @@ -797,8 +779,8 @@ importers: version: link:../../packages/graphql-yoga/dist devDependencies: '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 ts-node: specifier: 10.9.1 version: 10.9.1(@swc/core@1.7.11)(@types/node@20.14.12)(typescript@5.5.4) @@ -1030,8 +1012,8 @@ importers: version: 5.5.4 devDependencies: '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 examples/nextjs-auth: dependencies: @@ -1247,8 +1229,8 @@ importers: specifier: 20.14.12 version: 20.14.12 '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 cross-env: specifier: 7.0.3 version: 7.0.3 @@ -1278,8 +1260,8 @@ importers: specifier: 20.14.12 version: 20.14.12 '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 cross-env: specifier: 7.0.3 version: 7.0.3 @@ -1303,8 +1285,8 @@ importers: version: link:../../packages/graphql-yoga/dist devDependencies: '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 typescript: specifier: 5.5.4 version: 5.5.4 @@ -1453,8 +1435,8 @@ importers: specifier: 8.5.4 version: 8.5.4 '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 ws: specifier: 8.13.0 version: 8.13.0 @@ -1605,11 +1587,11 @@ importers: specifier: workspace:^ version: link:../subscription/dist '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 '@whatwg-node/server': - specifier: ^0.9.54 - version: 0.9.54 + specifier: ^0.9.50 + version: 0.9.50 dset: specifier: ^3.1.1 version: 3.1.3 @@ -1713,8 +1695,8 @@ importers: specifier: ^8.5.4 version: 8.5.4 '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 express: specifier: ^4.18.2 version: 4.19.2 @@ -1823,8 +1805,8 @@ importers: specifier: ^2.2.24 version: 2.2.24(@types/node@20.14.12)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(subscriptions-transport-ws@0.11.0(graphql@16.8.1)) '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 graphql: specifier: 16.8.1 version: 16.8.1 @@ -1843,8 +1825,8 @@ importers: version: 2.6.3 devDependencies: '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 graphql: specifier: 16.8.1 version: 16.8.1 @@ -1875,8 +1857,8 @@ importers: specifier: ^4.0.0 version: 4.1.0(@envelop/core@5.0.2)(graphql@16.8.1) '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 graphql: specifier: 16.8.1 version: 16.8.1 @@ -1922,8 +1904,8 @@ importers: specifier: ^1.0.4 version: 1.1.5(@types/node@20.14.12)(graphql@16.8.1) '@whatwg-node/fetch': - specifier: ^0.10.1 - version: 0.10.1 + specifier: ^0.9.22 + version: 0.9.22 fetch-multipart-graphql: specifier: 3.2.1 version: 3.2.1 @@ -1969,7 +1951,7 @@ importers: dependencies: '@whatwg-node/server-plugin-cookies': specifier: 1.0.2 - version: 1.0.2(@whatwg-node/server@0.9.54) + version: 1.0.2(@whatwg-node/server@0.9.50) jsonwebtoken: specifier: ^9.0.0 version: 9.0.2 @@ -8014,6 +7996,17 @@ packages: typescript: optional: true + '@typescript-eslint/eslint-plugin@8.1.0': + resolution: {integrity: sha512-LlNBaHFCEBPHyD4pZXb35mzjGkuGKXU5eeCA1SxvHfiRES0E82dOounfVpL4DCqYvJEKab0bZIA0gCRpdLKkCw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/eslint-plugin@8.5.0': resolution: {integrity: sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -8035,6 +8028,16 @@ packages: typescript: optional: true + '@typescript-eslint/parser@8.1.0': + resolution: {integrity: sha512-U7iTAtGgJk6DPX9wIWPPOlt1gO57097G06gIcl0N0EEnNw8RGD62c+2/DiP/zL7KrkqnnqF7gtFGR7YgzPllTA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/parser@8.5.0': resolution: {integrity: sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -8049,6 +8052,10 @@ packages: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/scope-manager@8.1.0': + resolution: {integrity: sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.5.0': resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -8063,6 +8070,15 @@ packages: typescript: optional: true + '@typescript-eslint/type-utils@8.1.0': + resolution: {integrity: sha512-oLYvTxljVvsMnldfl6jIKxTaU7ok7km0KDrwOt1RHYu6nxlhN3TIx8k5Q52L6wR33nOwDgM7VwW1fT1qMNfFIA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/type-utils@8.5.0': resolution: {integrity: sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -8076,6 +8092,10 @@ packages: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/types@8.1.0': + resolution: {integrity: sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.5.0': resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -8089,6 +8109,15 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@8.1.0': + resolution: {integrity: sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/typescript-estree@8.5.0': resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -8104,6 +8133,12 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/utils@8.1.0': + resolution: {integrity: sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/utils@8.5.0': resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -8114,6 +8149,10 @@ packages: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/visitor-keys@8.1.0': + resolution: {integrity: sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.5.0': resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -8204,10 +8243,6 @@ packages: resolution: {integrity: sha512-ApcWxkrs1WmEMS2CaLLFUEem/49erT3sxIVjpzU5f6zmVcnijtDSrhoK2zVobOIikZJdH63jdAXOrvjf6eOUNQ==} engines: {node: '>=18.0.0'} - '@whatwg-node/fetch@0.10.1': - resolution: {integrity: sha512-gmPOLrsjSZWEZlr9Oe5+wWFBq3CG6fN13rGlM91Jsj/vZ95G9CCvrORGBAxMXy0AJGiC83aYiHXn3JzTzXQmbA==} - engines: {node: '>=18.0.0'} - '@whatwg-node/fetch@0.8.8': resolution: {integrity: sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==} @@ -8222,18 +8257,14 @@ packages: resolution: {integrity: sha512-0OaMj5W4fzWimRSFq07qFiWfquaUMNB+695GwE76LYKVuah+jwCdzSgsIOtwPkiyJ35w0XGhXmJPiIJCdLwopg==} engines: {node: '>=18.0.0'} - '@whatwg-node/node-fetch@0.7.2': - resolution: {integrity: sha512-OAAEIbyspvQwkcRGutYN3D0a+hzQogvcZ7I3hf6vg742ZEq52yMJTGtkwjl3KZRmzzUltd/oEMxEGsXFLjnuLQ==} - engines: {node: '>=18.0.0'} - '@whatwg-node/server-plugin-cookies@1.0.2': resolution: {integrity: sha512-l5ramNKf3aGCybZcN+bVNrTtUJwuB3PRQSjvvn9oh1CnBEMcrucatELRrSAWL/wZcXcJNF8NHB8G0UPEXkDzkw==} engines: {node: '>=16.0.0'} peerDependencies: '@whatwg-node/server': ^0.9.0 - '@whatwg-node/server@0.9.54': - resolution: {integrity: sha512-AFwts1RNnnPwpGnbCqyb7fwaE3ROBgkIstpmtXqb2YklFIlQ97Y1rabzeoyKoQqQxX89nMRmfsLAwPzfCpV9pw==} + '@whatwg-node/server@0.9.50': + resolution: {integrity: sha512-7Vd8k6iu+ps8bkZT+Y/wPm42EDh8KojAL+APKa79mntgkyPtdq0r1//CO+0eYqQBz6HGrDxHRT4KChSOy4jGIw==} engines: {node: '>=18.0.0'} '@wry/context@0.7.4': @@ -10579,6 +10610,7 @@ packages: eslint@8.42.0: resolution: {integrity: sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true eslint@8.57.0: @@ -14854,6 +14886,9 @@ packages: punycode@1.3.2: resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -21083,7 +21118,7 @@ snapshots: '@graphql-tools/schema@10.0.4(graphql@16.8.1)': dependencies: - '@graphql-tools/merge': 9.0.6(graphql@16.8.1) + '@graphql-tools/merge': 9.0.4(graphql@16.8.1) '@graphql-tools/utils': 10.5.5(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.3 @@ -21746,7 +21781,7 @@ snapshots: detect-libc: 2.0.3 https-proxy-agent: 5.0.1(supports-color@9.4.0) make-dir: 3.1.0 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.6.12(encoding@0.1.13) nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 @@ -22122,7 +22157,7 @@ snapshots: find-up: 6.3.0 minimatch: 9.0.5 read-pkg: 7.1.0 - semver: 7.6.3 + semver: 7.5.4 toml: 3.0.0 yaml: 2.5.0 yargs: 17.7.2 @@ -22175,14 +22210,14 @@ snapshots: resolve: 2.0.0-next.5 rfdc: 1.4.1 safe-json-stringify: 1.2.0 - semver: 7.6.3 + semver: 7.5.4 string-width: 5.1.2 strip-ansi: 7.1.0 supports-color: 9.4.0 terminal-link: 3.0.0 ts-node: 10.9.1(@swc/core@1.7.11)(@types/node@20.14.12)(typescript@5.5.4) typescript: 5.5.4 - uuid: 9.0.1 + uuid: 9.0.0 yargs: 17.7.2 transitivePeerDependencies: - '@swc/core' @@ -22255,7 +22290,7 @@ snapshots: semver: 7.6.3 tmp-promise: 3.0.3 urlpattern-polyfill: 8.0.2 - uuid: 9.0.1 + uuid: 9.0.0 transitivePeerDependencies: - encoding - supports-color @@ -22282,10 +22317,10 @@ snapshots: p-wait-for: 4.1.0 path-key: 4.0.0 regexp-tree: 0.1.27 - semver: 7.6.3 + semver: 7.5.4 tmp-promise: 3.0.3 urlpattern-polyfill: 8.0.2 - uuid: 9.0.1 + uuid: 9.0.0 transitivePeerDependencies: - encoding - supports-color @@ -22414,7 +22449,7 @@ snapshots: precinct: 11.0.5(supports-color@9.4.0) require-package-name: 2.0.1 resolve: 2.0.0-next.5 - semver: 7.6.3 + semver: 7.5.4 tmp-promise: 3.0.3 toml: 3.0.0 unixify: 1.0.0 @@ -22753,7 +22788,7 @@ snapshots: '@octokit/request-error': 3.0.3 '@octokit/types': 9.3.2 is-plain-object: 5.0.0 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.6.12(encoding@0.1.13) universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding @@ -24235,7 +24270,7 @@ snapshots: eslint: 8.57.0 eslint-config-prettier: 8.10.0(eslint@8.57.0) eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) eslint-plugin-jsonc: 2.16.0(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) eslint-plugin-mdx: 2.3.4(eslint@8.57.0) @@ -24716,15 +24751,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@8.42.0)(typescript@5.5.4))(eslint@8.42.0)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.1.0(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.5.0(eslint@8.42.0)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/type-utils': 8.5.0(eslint@8.42.0)(typescript@5.5.4) - '@typescript-eslint/utils': 8.5.0(eslint@8.42.0)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.5.0 - eslint: 8.42.0 + '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.1.0 + '@typescript-eslint/type-utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.1.0 + eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -24734,15 +24769,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@8.42.0)(typescript@5.5.4))(eslint@8.42.0)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.5.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.5.0(eslint@8.42.0)(typescript@5.5.4) '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/type-utils': 8.5.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/utils': 8.5.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/type-utils': 8.5.0(eslint@8.42.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.5.0(eslint@8.42.0)(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.5.0 - eslint: 8.57.0 + eslint: 8.42.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -24776,27 +24811,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.5.0(eslint@8.42.0)(typescript@5.5.4)': + '@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/scope-manager': 8.1.0 + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.1.0 debug: 4.3.6(supports-color@9.4.0) - eslint: 8.42.0 + eslint: 8.57.0 optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/parser@8.5.0(eslint@8.42.0)(typescript@5.5.4)': dependencies: '@typescript-eslint/scope-manager': 8.5.0 '@typescript-eslint/types': 8.5.0 '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.5.0 debug: 4.3.6(supports-color@9.4.0) - eslint: 8.57.0 + eslint: 8.42.0 optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -24807,6 +24842,11 @@ snapshots: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/scope-manager@8.1.0': + dependencies: + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/visitor-keys': 8.1.0 + '@typescript-eslint/scope-manager@8.5.0': dependencies: '@typescript-eslint/types': 8.5.0 @@ -24824,10 +24864,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.5.0(eslint@8.42.0)(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.1.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.5.0(eslint@8.42.0)(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4) debug: 4.3.6(supports-color@9.4.0) ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -24836,10 +24876,10 @@ snapshots: - eslint - supports-color - '@typescript-eslint/type-utils@8.5.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.5.0(eslint@8.42.0)(typescript@5.5.4)': dependencies: '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.5.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.5.0(eslint@8.42.0)(typescript@5.5.4) debug: 4.3.6(supports-color@9.4.0) ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -24850,6 +24890,8 @@ snapshots: '@typescript-eslint/types@5.62.0': {} + '@typescript-eslint/types@8.1.0': {} + '@typescript-eslint/types@8.5.0': {} '@typescript-eslint/typescript-estree@5.62.0(supports-color@9.4.0)(typescript@5.5.4)': @@ -24866,6 +24908,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.1.0(typescript@5.5.4)': + dependencies: + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/visitor-keys': 8.1.0 + debug: 4.3.6(supports-color@9.4.0) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/typescript-estree@8.5.0(typescript@5.5.4)': dependencies: '@typescript-eslint/types': 8.5.0 @@ -24896,24 +24953,24 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.5.0(eslint@8.42.0)(typescript@5.5.4)': + '@typescript-eslint/utils@8.1.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0) - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) - eslint: 8.42.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 8.1.0 + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4) + eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.5.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/utils@8.5.0(eslint@8.42.0)(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0) '@typescript-eslint/scope-manager': 8.5.0 '@typescript-eslint/types': 8.5.0 '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) - eslint: 8.57.0 + eslint: 8.42.0 transitivePeerDependencies: - supports-color - typescript @@ -24923,6 +24980,11 @@ snapshots: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.1.0': + dependencies: + '@typescript-eslint/types': 8.1.0 + eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.5.0': dependencies: '@typescript-eslint/types': 8.5.0 @@ -25092,11 +25154,6 @@ snapshots: dependencies: tslib: 2.6.3 - '@whatwg-node/fetch@0.10.1': - dependencies: - '@whatwg-node/node-fetch': 0.7.2 - urlpattern-polyfill: 10.0.0 - '@whatwg-node/fetch@0.8.8': dependencies: '@peculiar/webcrypto': 1.5.0 @@ -25125,22 +25182,15 @@ snapshots: fast-querystring: 1.1.2 tslib: 2.6.3 - '@whatwg-node/node-fetch@0.7.2': - dependencies: - '@kamilkisiela/fast-url-parser': 1.1.4 - busboy: 1.6.0 - fast-querystring: 1.1.2 - tslib: 2.6.3 - - '@whatwg-node/server-plugin-cookies@1.0.2(@whatwg-node/server@0.9.54)': + '@whatwg-node/server-plugin-cookies@1.0.2(@whatwg-node/server@0.9.50)': dependencies: '@whatwg-node/cookie-store': 0.2.2 - '@whatwg-node/server': 0.9.54 + '@whatwg-node/server': 0.9.50 tslib: 2.6.3 - '@whatwg-node/server@0.9.54': + '@whatwg-node/server@0.9.50': dependencies: - '@whatwg-node/fetch': 0.10.1 + '@whatwg-node/fetch': 0.9.22 tslib: 2.6.3 '@wry/context@0.7.4': @@ -26035,7 +26085,7 @@ snapshots: buffer@4.9.2: dependencies: base64-js: 1.5.1 - ieee754: 1.2.1 + ieee754: 1.1.13 isarray: 1.0.0 buffer@5.7.1: @@ -26596,7 +26646,7 @@ snapshots: js-string-escape: 1.0.1 lodash: 4.17.21 md5-hex: 3.0.1 - semver: 7.6.3 + semver: 7.5.4 well-known-symbols: 2.0.0 concurrently@9.1.0: @@ -27129,9 +27179,11 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.4: + debug@4.3.4(supports-color@9.4.0): dependencies: ms: 2.1.2 + optionalDependencies: + supports-color: 9.4.0 debug@4.3.6(supports-color@9.4.0): dependencies: @@ -27797,7 +27849,7 @@ snapshots: eslint: 8.42.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.42.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.42.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.42.0) eslint-plugin-jsx-a11y: 6.9.0(eslint@8.42.0) eslint-plugin-react: 7.35.0(eslint@8.42.0) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.42.0) @@ -27829,7 +27881,7 @@ snapshots: enhanced-resolve: 5.17.1 eslint: 8.42.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.42.0))(eslint@8.42.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.42.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.42.0) fast-glob: 3.3.2 get-tsconfig: 4.7.6 is-core-module: 2.15.0 @@ -27846,7 +27898,7 @@ snapshots: enhanced-resolve: 5.17.1 eslint: 8.57.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.6 is-core-module: 2.15.0 @@ -27899,21 +27951,21 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.42.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.42.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.5.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.42.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.5.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: @@ -27926,7 +27978,7 @@ snapshots: eslint: 8.57.0 eslint-compat-utils: 0.5.1(eslint@8.57.0) - eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.42.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.42.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -27936,7 +27988,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.42.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.42.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.42.0) hasown: 2.0.2 is-core-module: 2.15.0 is-glob: 4.0.3 @@ -27947,13 +27999,13 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.5.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -27963,7 +28015,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.15.0 is-glob: 4.0.3 @@ -27974,7 +28026,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.5.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -28562,7 +28614,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.6(supports-color@9.4.0) + debug: 4.3.4(supports-color@9.4.0) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -28625,7 +28677,7 @@ snapshots: fast-url-parser@1.1.3: dependencies: - punycode: 1.3.2 + punycode: 1.4.1 fast-xml-parser@4.2.4: dependencies: @@ -28747,7 +28799,7 @@ snapshots: '@sinclair/typebox': 0.33.7 '@whatwg-node/cookie-store': 0.2.2 '@whatwg-node/fetch': 0.9.22 - '@whatwg-node/server': 0.9.54 + '@whatwg-node/server': 0.9.50 hotscript: 1.0.13 json-schema-to-ts: 3.1.0 qs: 6.13.0 @@ -28886,7 +28938,7 @@ snapshots: follow-redirects@1.15.6(debug@4.3.4): optionalDependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@9.4.0) for-each@0.3.3: dependencies: @@ -29126,7 +29178,7 @@ snapshots: dependencies: '@xhmikosr/downloader': 13.0.1 node-fetch: 3.3.2 - semver: 7.6.3 + semver: 7.5.4 giscus@1.5.0: dependencies: @@ -29730,7 +29782,7 @@ snapshots: https-proxy-agent@5.0.1(supports-color@9.4.0): dependencies: agent-base: 6.0.2(supports-color@9.4.0) - debug: 4.3.6(supports-color@9.4.0) + debug: 4.3.4(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -30756,7 +30808,7 @@ snapshots: jws: 3.2.2 lodash: 4.17.21 ms: 2.1.3 - semver: 7.6.3 + semver: 7.5.4 jsonwebtoken@9.0.2: dependencies: @@ -32482,7 +32534,7 @@ snapshots: cookie: 0.5.0 copy-template-dir: 1.4.0 cron-parser: 4.8.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@9.4.0) decache: 4.6.2 dot-prop: 7.2.0 dotenv: 16.0.3 @@ -32837,7 +32889,7 @@ snapshots: is-plain-obj: 4.1.0 normalize-node-version: 12.4.0 path-exists: 5.0.0 - semver: 7.6.3 + semver: 7.5.4 non-layered-tidy-tree-layout@2.0.2: {} @@ -33918,6 +33970,8 @@ snapshots: punycode@1.3.2: {} + punycode@1.4.1: {} + punycode@2.3.1: {} pupa@3.1.0: @@ -33927,7 +33981,7 @@ snapshots: puppeteer-core@19.6.0(encoding@0.1.13): dependencies: cross-fetch: 3.1.5(encoding@0.1.13) - debug: 4.3.4 + debug: 4.3.4(supports-color@9.4.0) devtools-protocol: 0.0.1082910 extract-zip: 2.0.1 https-proxy-agent: 5.0.1(supports-color@9.4.0) @@ -35104,7 +35158,7 @@ snapshots: arg: 5.0.2 bluebird: 3.7.2 check-more-types: 2.24.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@9.4.0) execa: 5.1.1 lazy-ass: 1.6.0 ps-tree: 1.2.0 @@ -35504,7 +35558,7 @@ snapshots: tabtab@3.0.2: dependencies: - debug: 4.3.6(supports-color@9.4.0) + debug: 4.3.4(supports-color@9.4.0) es6-promisify: 6.1.1 inquirer: 6.5.2 minimist: 1.2.8 @@ -36319,7 +36373,7 @@ snapshots: is-yarn-global: 0.4.1 latest-version: 7.0.0 pupa: 3.1.0 - semver: 7.6.3 + semver: 7.5.4 semver-diff: 4.0.0 xdg-basedir: 5.1.0 @@ -36515,7 +36569,7 @@ snapshots: dependencies: chalk: 4.1.2 commander: 9.5.0 - debug: 4.3.6(supports-color@9.4.0) + debug: 4.3.4(supports-color@9.4.0) transitivePeerDependencies: - supports-color diff --git a/website/src/pages/docs/features/persisted-operations.mdx b/website/src/pages/docs/features/persisted-operations.mdx index 2aa6852c71..eedcb74c54 100644 --- a/website/src/pages/docs/features/persisted-operations.mdx +++ b/website/src/pages/docs/features/persisted-operations.mdx @@ -164,7 +164,7 @@ straight-forward using the `@urql/exchange-persisted` package. import { cacheExchange, createClient } from '@urql/core' import { persistedExchange } from '@urql/exchange-persisted' -const client = createClient({ +const client = new createClient({ url: 'YOUR_GRAPHQL_ENDPOINT', exchanges: [ cacheExchange,