@apollo/client 3.10.4 → 3.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/apollo-client.cjs +61 -36
  3. package/apollo-client.cjs.map +1 -1
  4. package/apollo-client.min.cjs +1 -1
  5. package/core/core.cjs +1 -1
  6. package/core/core.cjs.map +1 -1
  7. package/core/core.cjs.native.js +1 -1
  8. package/dev/dev.cjs +1 -1
  9. package/dev/dev.cjs.map +1 -1
  10. package/dev/dev.cjs.native.js +1 -1
  11. package/link/batch-http/batch-http.cjs +6 -5
  12. package/link/batch-http/batch-http.cjs.map +1 -1
  13. package/link/batch-http/batch-http.cjs.native.js +6 -5
  14. package/link/batch-http/batchHttpLink.js +15 -10
  15. package/link/batch-http/batchHttpLink.js.map +1 -1
  16. package/link/error/error.cjs +3 -2
  17. package/link/error/error.cjs.map +1 -1
  18. package/link/error/error.cjs.native.js +3 -2
  19. package/link/error/index.js +3 -2
  20. package/link/error/index.js.map +1 -1
  21. package/package.json +10 -6
  22. package/react/hooks/hooks.cjs +59 -34
  23. package/react/hooks/hooks.cjs.map +1 -1
  24. package/react/hooks/hooks.cjs.native.js +59 -34
  25. package/react/hooks/internal/useRenderGuard.js +37 -12
  26. package/react/hooks/internal/useRenderGuard.js.map +1 -1
  27. package/react/hooks/useLazyQuery.js +7 -8
  28. package/react/hooks/useLazyQuery.js.map +1 -1
  29. package/react/hooks/useLoadableQuery.d.ts +1 -1
  30. package/react/hooks/useLoadableQuery.js +9 -2
  31. package/react/hooks/useLoadableQuery.js.map +1 -1
  32. package/react/hooks/useMutation.js +10 -7
  33. package/react/hooks/useMutation.js.map +1 -1
  34. package/react/hooks/useQuery.d.ts +2 -2
  35. package/react/hooks/useQuery.js +26 -12
  36. package/react/hooks/useQuery.js.map +1 -1
  37. package/react/hooks/useQueryRefHandlers.js +4 -0
  38. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  39. package/react/hooks/useReadQuery.js +5 -1
  40. package/react/hooks/useReadQuery.js.map +1 -1
  41. package/react/hooks/useSubscription.js +4 -0
  42. package/react/hooks/useSubscription.js.map +1 -1
  43. package/react/hooks/useSuspenseQuery.js +2 -2
  44. package/react/hooks/useSuspenseQuery.js.map +1 -1
  45. package/react/hooks/useSyncExternalStore.js +4 -0
  46. package/react/hooks/useSyncExternalStore.js.map +1 -1
  47. package/react/internal/internal.cjs +1 -1
  48. package/react/internal/internal.cjs.map +1 -1
  49. package/react/internal/internal.cjs.native.js +1 -1
  50. package/testing/core/mocking/mockLink.d.ts +8 -3
  51. package/testing/core/mocking/mockLink.js.map +1 -1
  52. package/testing/internal/profile/profile.js +6 -2
  53. package/testing/internal/profile/profile.js.map +1 -1
  54. package/utilities/globals/globals.cjs +1 -1
  55. package/utilities/globals/globals.cjs.map +1 -1
  56. package/utilities/globals/globals.cjs.native.js +1 -1
  57. package/version.js +1 -1
@@ -33,9 +33,10 @@ export function onError(errorHandler) {
33
33
  operation: operation,
34
34
  networkError: networkError,
35
35
  //Network errors can return GraphQL errors on for example a 403
36
- graphQLErrors: networkError &&
36
+ graphQLErrors: (networkError &&
37
37
  networkError.result &&
38
- networkError.result.errors,
38
+ networkError.result.errors) ||
39
+ void 0,
39
40
  forward: forward,
40
41
  });
41
42
  if (retriedResult) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/link/error/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExecutionResult } from \"graphql\";\n\nimport type { NetworkError, GraphQLErrors } from \"../../errors/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport type { Operation, FetchResult, NextLink } from \"../core/index.js\";\nimport { ApolloLink } from \"../core/index.js\";\n\nexport interface ErrorResponse {\n graphQLErrors?: GraphQLErrors;\n networkError?: NetworkError;\n response?: ExecutionResult;\n operation: Operation;\n forward: NextLink;\n}\n\nexport namespace ErrorLink {\n /**\n * Callback to be triggered when an error occurs within the link stack.\n */\n export interface ErrorHandler {\n (error: ErrorResponse): Observable<FetchResult> | void;\n }\n}\n\n// For backwards compatibility.\nexport import ErrorHandler = ErrorLink.ErrorHandler;\n\nexport function onError(errorHandler: ErrorHandler): ApolloLink {\n return new ApolloLink((operation, forward) => {\n return new Observable((observer) => {\n let sub: any;\n let retriedSub: any;\n let retriedResult: any;\n\n try {\n sub = forward(operation).subscribe({\n next: (result) => {\n if (result.errors) {\n retriedResult = errorHandler({\n graphQLErrors: result.errors,\n response: result,\n operation,\n forward,\n });\n\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return;\n }\n }\n observer.next(result);\n },\n error: (networkError) => {\n retriedResult = errorHandler({\n operation,\n networkError,\n //Network errors can return GraphQL errors on for example a 403\n graphQLErrors:\n networkError &&\n networkError.result &&\n networkError.result.errors,\n forward,\n });\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return;\n }\n observer.error(networkError);\n },\n complete: () => {\n // disable the previous sub from calling complete on observable\n // if retry is in flight.\n if (!retriedResult) {\n observer.complete.bind(observer)();\n }\n },\n });\n } catch (e) {\n errorHandler({ networkError: e as Error, operation, forward });\n observer.error(e);\n }\n\n return () => {\n if (sub) sub.unsubscribe();\n if (retriedSub) sub.unsubscribe();\n };\n });\n });\n}\n\nexport class ErrorLink extends ApolloLink {\n private link: ApolloLink;\n constructor(errorHandler: ErrorLink.ErrorHandler) {\n super();\n this.link = onError(errorHandler);\n }\n\n public request(\n operation: Operation,\n forward: NextLink\n ): Observable<FetchResult> | null {\n return this.link.request(operation, forward);\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/link/error/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExecutionResult } from \"graphql\";\n\nimport type { NetworkError, GraphQLErrors } from \"../../errors/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport type { Operation, FetchResult, NextLink } from \"../core/index.js\";\nimport { ApolloLink } from \"../core/index.js\";\n\nexport interface ErrorResponse {\n graphQLErrors?: GraphQLErrors;\n networkError?: NetworkError;\n response?: ExecutionResult;\n operation: Operation;\n forward: NextLink;\n}\n\nexport namespace ErrorLink {\n /**\n * Callback to be triggered when an error occurs within the link stack.\n */\n export interface ErrorHandler {\n (error: ErrorResponse): Observable<FetchResult> | void;\n }\n}\n\n// For backwards compatibility.\nexport import ErrorHandler = ErrorLink.ErrorHandler;\n\nexport function onError(errorHandler: ErrorHandler): ApolloLink {\n return new ApolloLink((operation, forward) => {\n return new Observable((observer) => {\n let sub: any;\n let retriedSub: any;\n let retriedResult: any;\n\n try {\n sub = forward(operation).subscribe({\n next: (result) => {\n if (result.errors) {\n retriedResult = errorHandler({\n graphQLErrors: result.errors,\n response: result,\n operation,\n forward,\n });\n\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return;\n }\n }\n observer.next(result);\n },\n error: (networkError) => {\n retriedResult = errorHandler({\n operation,\n networkError,\n //Network errors can return GraphQL errors on for example a 403\n graphQLErrors:\n (networkError &&\n networkError.result &&\n networkError.result.errors) ||\n void 0,\n forward,\n });\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return;\n }\n observer.error(networkError);\n },\n complete: () => {\n // disable the previous sub from calling complete on observable\n // if retry is in flight.\n if (!retriedResult) {\n observer.complete.bind(observer)();\n }\n },\n });\n } catch (e) {\n errorHandler({ networkError: e as Error, operation, forward });\n observer.error(e);\n }\n\n return () => {\n if (sub) sub.unsubscribe();\n if (retriedSub) sub.unsubscribe();\n };\n });\n });\n}\n\nexport class ErrorLink extends ApolloLink {\n private link: ApolloLink;\n constructor(errorHandler: ErrorLink.ErrorHandler) {\n super();\n this.link = onError(errorHandler);\n }\n\n public request(\n operation: Operation,\n forward: NextLink\n ): Observable<FetchResult> | null {\n return this.link.request(operation, forward);\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apollo/client",
3
- "version": "3.10.4",
3
+ "version": "3.10.5",
4
4
  "description": "A fully-featured caching GraphQL client.",
5
5
  "private": false,
6
6
  "keywords": [
@@ -95,11 +95,11 @@
95
95
  "@types/react-dom": "18.3.0",
96
96
  "@types/relay-runtime": "14.1.23",
97
97
  "@types/use-sync-external-store": "0.0.6",
98
- "@typescript-eslint/eslint-plugin": "7.8.0",
99
- "@typescript-eslint/parser": "7.8.0",
100
- "@typescript-eslint/rule-tester": "7.8.0",
101
- "@typescript-eslint/types": "7.8.0",
102
- "@typescript-eslint/utils": "7.8.0",
98
+ "@typescript-eslint/eslint-plugin": "7.9.0",
99
+ "@typescript-eslint/parser": "7.9.0",
100
+ "@typescript-eslint/rule-tester": "7.9.0",
101
+ "@typescript-eslint/types": "7.9.0",
102
+ "@typescript-eslint/utils": "7.9.0",
103
103
  "acorn": "8.11.3",
104
104
  "blob-polyfill": "7.0.20220408",
105
105
  "bytes": "3.1.2",
@@ -108,6 +108,8 @@
108
108
  "eslint-import-resolver-typescript": "3.6.1",
109
109
  "eslint-plugin-import": "npm:@phryneas/eslint-plugin-import@2.27.5-pr.2813.2817.199971c",
110
110
  "eslint-plugin-local-rules": "2.0.1",
111
+ "eslint-plugin-react-compiler": "0.0.0-experimental-c8b3f72-20240517",
112
+ "eslint-plugin-react-hooks": "4.6.2",
111
113
  "eslint-plugin-testing-library": "6.2.2",
112
114
  "expect-type": "0.19.0",
113
115
  "fetch-mock": "9.11.0",
@@ -122,8 +124,10 @@
122
124
  "prettier": "3.1.1",
123
125
  "react": "18.3.1",
124
126
  "react-17": "npm:react@^17",
127
+ "react-19": "npm:react@19.0.0-rc-cc1ec60d0d-20240607",
125
128
  "react-dom": "18.3.1",
126
129
  "react-dom-17": "npm:react-dom@^17",
130
+ "react-dom-19": "npm:react-dom@19.0.0-rc-cc1ec60d0d-20240607",
127
131
  "react-error-boundary": "4.0.13",
128
132
  "recast": "0.23.6",
129
133
  "resolve": "1.22.8",
@@ -95,15 +95,26 @@ function useDeepMemo(memoFn, deps) {
95
95
  return ref.current.value;
96
96
  }
97
97
 
98
- function getRenderDispatcher() {
99
- var _a, _b;
100
- return (_b = (_a = React__namespace.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _a === void 0 ? void 0 : _a.ReactCurrentDispatcher) === null || _b === void 0 ? void 0 : _b.current;
101
- }
102
- var RenderDispatcher = null;
98
+ var Ctx;
99
+ function noop() { }
103
100
  function useRenderGuard() {
104
- RenderDispatcher = getRenderDispatcher();
105
- return React__namespace.useCallback(function () {
106
- return (RenderDispatcher != null && RenderDispatcher === getRenderDispatcher());
101
+ if (!Ctx) {
102
+ Ctx = React__namespace.createContext(null);
103
+ }
104
+ return React__namespace.useCallback(
105
+ function () {
106
+ var orig = console.error;
107
+ try {
108
+ console.error = noop;
109
+ React__namespace["useContext" ](Ctx);
110
+ return true;
111
+ }
112
+ catch (e) {
113
+ return false;
114
+ }
115
+ finally {
116
+ console.error = orig;
117
+ }
107
118
  }, []);
108
119
  }
109
120
 
@@ -148,14 +159,16 @@ function _useQuery(query, options) {
148
159
  return useInternalState(useApolloClient(options.client), query).useQuery(options);
149
160
  }
150
161
  function useInternalState(client, query) {
151
- var stateRef = React__namespace.useRef();
152
- if (!stateRef.current ||
153
- client !== stateRef.current.client ||
154
- query !== stateRef.current.query) {
155
- stateRef.current = new InternalState(client, query, stateRef.current);
162
+ var forceUpdateState = React__namespace.useReducer(function (tick) { return tick + 1; }, 0)[1];
163
+ function createInternalState(previous) {
164
+ return Object.assign(new InternalState(client, query, previous), {
165
+ forceUpdateState: forceUpdateState,
166
+ });
167
+ }
168
+ var _a = React__namespace.useState(createInternalState), state = _a[0], updateState = _a[1];
169
+ if (client !== state.client || query !== state.query) {
170
+ updateState((state = createInternalState(state)));
156
171
  }
157
- var state = stateRef.current;
158
- state.forceUpdateState = React__namespace.useReducer(function (tick) { return tick + 1; }, 0)[1];
159
172
  return state;
160
173
  }
161
174
  var InternalState = (function () {
@@ -218,7 +231,8 @@ var InternalState = (function () {
218
231
  this.renderPromises = React__namespace.useContext(context.getApolloContext()).renderPromises;
219
232
  this.useOptions(options);
220
233
  var obsQuery = this.useObservableQuery();
221
- var result = useSyncExternalStore(React__namespace.useCallback(function (handleStoreChange) {
234
+ var result = useSyncExternalStore(
235
+ React__namespace.useCallback(function (handleStoreChange) {
222
236
  if (_this.renderPromises) {
223
237
  return function () { };
224
238
  }
@@ -453,17 +467,15 @@ function useLazyQuery(query, options) {
453
467
  var useQueryResult = internalState.useQuery(tslib.__assign(tslib.__assign({}, merged), { skip: !execOptionsRef.current }));
454
468
  var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy ||
455
469
  internalState.getDefaultFetchPolicy();
456
- var result = Object.assign(useQueryResult, {
457
- called: !!execOptionsRef.current,
458
- });
470
+ var forceUpdateState = internalState.forceUpdateState, obsQueryFields = internalState.obsQueryFields;
459
471
  var eagerMethods = React__namespace.useMemo(function () {
460
472
  var eagerMethods = {};
461
473
  var _loop_1 = function (key) {
462
- var method = result[key];
474
+ var method = obsQueryFields[key];
463
475
  eagerMethods[key] = function () {
464
476
  if (!execOptionsRef.current) {
465
477
  execOptionsRef.current = Object.create(null);
466
- internalState.forceUpdateState();
478
+ forceUpdateState();
467
479
  }
468
480
  return method.apply(this, arguments);
469
481
  };
@@ -473,8 +485,9 @@ function useLazyQuery(query, options) {
473
485
  _loop_1(key);
474
486
  }
475
487
  return eagerMethods;
476
- }, []);
477
- Object.assign(result, eagerMethods);
488
+ }, [forceUpdateState, obsQueryFields]);
489
+ var called = !!execOptionsRef.current;
490
+ var result = React__namespace.useMemo(function () { return (tslib.__assign(tslib.__assign(tslib.__assign({}, useQueryResult), eagerMethods), { called: called })); }, [useQueryResult, eagerMethods, called]);
478
491
  var execute = React__namespace.useCallback(function (executeOptions) {
479
492
  execOptionsRef.current =
480
493
  executeOptions ? tslib.__assign(tslib.__assign({}, executeOptions), { fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy }) : {
@@ -486,7 +499,7 @@ function useLazyQuery(query, options) {
486
499
  .then(function (queryResult) { return Object.assign(queryResult, eagerMethods); });
487
500
  promise.catch(function () { });
488
501
  return promise;
489
- }, []);
502
+ }, [eagerMethods, initialFetchPolicy, internalState]);
490
503
  return [execute, result];
491
504
  }
492
505
 
@@ -506,9 +519,9 @@ function useMutation(mutation, options) {
506
519
  mutation: mutation,
507
520
  options: options,
508
521
  });
509
- {
522
+ React__namespace.useLayoutEffect(function () {
510
523
  Object.assign(ref.current, { client: client, options: options, mutation: mutation });
511
- }
524
+ });
512
525
  var execute = React__namespace.useCallback(function (executeOptions) {
513
526
  if (executeOptions === void 0) { executeOptions = {}; }
514
527
  var _a = ref.current, options = _a.options, mutation = _a.mutation;
@@ -582,15 +595,20 @@ function useMutation(mutation, options) {
582
595
  }, []);
583
596
  var reset = React__namespace.useCallback(function () {
584
597
  if (ref.current.isMounted) {
585
- var result_3 = { called: false, loading: false, client: client };
598
+ var result_3 = {
599
+ called: false,
600
+ loading: false,
601
+ client: ref.current.client,
602
+ };
586
603
  Object.assign(ref.current, { mutationId: 0, result: result_3 });
587
604
  setResult(result_3);
588
605
  }
589
606
  }, []);
590
607
  React__namespace.useEffect(function () {
591
- ref.current.isMounted = true;
608
+ var current = ref.current;
609
+ current.isMounted = true;
592
610
  return function () {
593
- ref.current.isMounted = false;
611
+ current.isMounted = false;
594
612
  };
595
613
  }, []);
596
614
  return [execute, tslib.__assign({ reset: reset }, result)];
@@ -846,11 +864,11 @@ function _useSuspenseQuery(query, options) {
846
864
  };
847
865
  }, [queryRef.result]);
848
866
  var result = fetchPolicy === "standby" ? skipResult : __use(promise);
849
- var fetchMore = React__namespace.useCallback((function (options) {
867
+ var fetchMore = React__namespace.useCallback(function (options) {
850
868
  var promise = queryRef.fetchMore(options);
851
869
  setPromise([queryRef.key, queryRef.promise]);
852
870
  return promise;
853
- }), [queryRef]);
871
+ }, [queryRef]);
854
872
  var refetch = React__namespace.useCallback(function (variables) {
855
873
  var promise = queryRef.refetch(variables);
856
874
  setPromise([queryRef.key, queryRef.promise]);
@@ -1013,10 +1031,17 @@ function useLoadableQuery(query, options) {
1013
1031
  return client.watchQuery(tslib.__assign(tslib.__assign({}, watchQueryOptions), { variables: variables }));
1014
1032
  });
1015
1033
  setQueryRef(internal.wrapQueryRef(queryRef));
1016
- }, [query, queryKey, suspenseCache, watchQueryOptions, calledDuringRender]);
1034
+ }, [
1035
+ query,
1036
+ queryKey,
1037
+ suspenseCache,
1038
+ watchQueryOptions,
1039
+ calledDuringRender,
1040
+ client,
1041
+ ]);
1017
1042
  var reset = React__namespace.useCallback(function () {
1018
1043
  setQueryRef(null);
1019
- }, [queryRef]);
1044
+ }, []);
1020
1045
  return [loadQuery, queryRef, { fetchMore: fetchMore, refetch: refetch, reset: reset }];
1021
1046
  }
1022
1047
 
@@ -1071,7 +1096,7 @@ function _useReadQuery(queryRef) {
1071
1096
  internal.updateWrappedQueryRef(queryRef, promise);
1072
1097
  forceUpdate();
1073
1098
  });
1074
- }, [internalQueryRef]), getPromise, getPromise);
1099
+ }, [internalQueryRef, queryRef]), getPromise, getPromise);
1075
1100
  var result = __use(promise);
1076
1101
  return React__namespace.useMemo(function () {
1077
1102
  return {