@apollo/client 3.7.10 → 3.7.12

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 (66) hide show
  1. package/apollo-client.cjs +182 -145
  2. package/apollo-client.cjs.map +1 -1
  3. package/apollo-client.min.cjs +1 -1
  4. package/core/ApolloClient.d.ts.map +1 -1
  5. package/core/ApolloClient.js.map +1 -1
  6. package/core/ObservableQuery.d.ts +2 -1
  7. package/core/ObservableQuery.d.ts.map +1 -1
  8. package/core/ObservableQuery.js +8 -5
  9. package/core/ObservableQuery.js.map +1 -1
  10. package/core/QueryManager.d.ts +1 -0
  11. package/core/QueryManager.d.ts.map +1 -1
  12. package/core/QueryManager.js +52 -43
  13. package/core/QueryManager.js.map +1 -1
  14. package/core/core.cjs +63 -52
  15. package/core/core.cjs.map +1 -1
  16. package/core/core.cjs.native.js +63 -52
  17. package/errors/errors.cjs +17 -17
  18. package/errors/errors.cjs.map +1 -1
  19. package/errors/errors.cjs.native.js +17 -17
  20. package/errors/index.d.ts +24 -8
  21. package/errors/index.d.ts.map +1 -1
  22. package/errors/index.js +17 -19
  23. package/errors/index.js.map +1 -1
  24. package/invariantErrorCodes.js +1 -1
  25. package/link/core/types.d.ts +4 -0
  26. package/link/core/types.d.ts.map +1 -1
  27. package/link/core/types.js.map +1 -1
  28. package/link/http/createHttpLink.d.ts.map +1 -1
  29. package/link/http/createHttpLink.js +19 -3
  30. package/link/http/createHttpLink.js.map +1 -1
  31. package/link/http/http.cjs +57 -15
  32. package/link/http/http.cjs.map +1 -1
  33. package/link/http/http.cjs.native.js +57 -15
  34. package/link/http/parseAndCheckHttpResponse.d.ts.map +1 -1
  35. package/link/http/parseAndCheckHttpResponse.js +34 -14
  36. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  37. package/link/subscriptions/index.d.ts.map +1 -1
  38. package/link/subscriptions/index.js +8 -3
  39. package/link/subscriptions/index.js.map +1 -1
  40. package/link/subscriptions/subscriptions.cjs +8 -3
  41. package/link/subscriptions/subscriptions.cjs.map +1 -1
  42. package/link/subscriptions/subscriptions.cjs.native.js +8 -3
  43. package/package.json +22 -23
  44. package/react/hooks/hooks.cjs +36 -44
  45. package/react/hooks/hooks.cjs.map +1 -1
  46. package/react/hooks/hooks.cjs.native.js +36 -44
  47. package/react/hooks/useLazyQuery.d.ts.map +1 -1
  48. package/react/hooks/useLazyQuery.js +11 -20
  49. package/react/hooks/useLazyQuery.js.map +1 -1
  50. package/react/hooks/useQuery.d.ts +1 -3
  51. package/react/hooks/useQuery.d.ts.map +1 -1
  52. package/react/hooks/useQuery.js +27 -26
  53. package/react/hooks/useQuery.js.map +1 -1
  54. package/testing/core/itAsync.js.map +1 -1
  55. package/testing/core/mocking/mockSubscriptionLink.d.ts +1 -1
  56. package/testing/react/MockedProvider.js +5 -4
  57. package/testing/react/MockedProvider.js.map +1 -1
  58. package/testing/testing.cjs +4 -2
  59. package/testing/testing.cjs.map +1 -1
  60. package/testing/testing.cjs.native.js +4 -2
  61. package/utilities/common/incrementalResult.d.ts +2 -1
  62. package/utilities/common/incrementalResult.d.ts.map +1 -1
  63. package/utilities/common/incrementalResult.js +4 -0
  64. package/utilities/common/incrementalResult.js.map +1 -1
  65. package/utilities/utilities.cjs.map +1 -1
  66. package/version.js +1 -1
@@ -15,16 +15,16 @@ var utils = require('../link/utils');
15
15
  var tsInvariant = require('ts-invariant');
16
16
  var graphqlTag = require('graphql-tag');
17
17
 
18
- var version = '3.7.10';
19
-
20
- function isNonEmptyArray(value) {
21
- return Array.isArray(value) && value.length > 0;
22
- }
18
+ var version = '3.7.12';
23
19
 
24
20
  function isNonNullObject(obj) {
25
21
  return obj !== null && typeof obj === 'object';
26
22
  }
27
23
 
24
+ function isNonEmptyArray(value) {
25
+ return Array.isArray(value) && value.length > 0;
26
+ }
27
+
28
28
  var hasOwnProperty$2 = Object.prototype.hasOwnProperty;
29
29
  var defaultReconciler = function (target, source, property) {
30
30
  return this.merge(target[property], source[property]);
@@ -456,7 +456,7 @@ var ObservableQuery = (function (_super) {
456
456
  };
457
457
  ObservableQuery.prototype.fetch = function (options, newNetworkStatus) {
458
458
  this.queryManager.setObservableQuery(this);
459
- return this.queryManager.fetchQueryObservable(this.queryId, options, newNetworkStatus);
459
+ return this.queryManager['fetchConcastWithInfo'](this.queryId, options, newNetworkStatus);
460
460
  };
461
461
  ObservableQuery.prototype.updatePolling = function () {
462
462
  var _this = this;
@@ -509,7 +509,7 @@ var ObservableQuery = (function (_super) {
509
509
  }
510
510
  return this.last;
511
511
  };
512
- ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {
512
+ ObservableQuery.prototype.reobserveAsConcast = function (newOptions, newNetworkStatus) {
513
513
  var _this = this;
514
514
  this.isTornDown = false;
515
515
  var useDisposableConcast = newNetworkStatus === exports.NetworkStatus.refetch ||
@@ -535,7 +535,7 @@ var ObservableQuery = (function (_super) {
535
535
  }
536
536
  }
537
537
  var variables = options.variables && tslib.__assign({}, options.variables);
538
- var concast = this.fetch(options, newNetworkStatus);
538
+ var _a = this.fetch(options, newNetworkStatus), concast = _a.concast, fromLink = _a.fromLink;
539
539
  var observer = {
540
540
  next: function (result) {
541
541
  _this.reportResult(result, variables);
@@ -544,7 +544,7 @@ var ObservableQuery = (function (_super) {
544
544
  _this.reportError(error, variables);
545
545
  },
546
546
  };
547
- if (!useDisposableConcast) {
547
+ if (!useDisposableConcast && fromLink) {
548
548
  if (this.concast && this.observer) {
549
549
  this.concast.removeObserver(this.observer);
550
550
  }
@@ -552,7 +552,10 @@ var ObservableQuery = (function (_super) {
552
552
  this.observer = observer;
553
553
  }
554
554
  concast.addObserver(observer);
555
- return concast.promise;
555
+ return concast;
556
+ };
557
+ ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {
558
+ return this.reobserveAsConcast(newOptions, newNetworkStatus).promise;
556
559
  };
557
560
  ObservableQuery.prototype.observe = function () {
558
561
  this.reportResult(this.getCurrentResult(false), this.variables);
@@ -1723,10 +1726,17 @@ var QueryManager = (function () {
1723
1726
  }
1724
1727
  _this.broadcastQueries();
1725
1728
  }
1726
- if (utilities.graphQLResultHasError(result)) {
1727
- throw new errors.ApolloError({
1728
- graphQLErrors: result.errors,
1729
- });
1729
+ var hasErrors = utilities.graphQLResultHasError(result);
1730
+ var hasProtocolErrors = errors.graphQLResultHasProtocolErrors(result);
1731
+ if (hasErrors || hasProtocolErrors) {
1732
+ var errors$1 = {};
1733
+ if (hasErrors) {
1734
+ errors$1.graphQLErrors = result.errors;
1735
+ }
1736
+ if (hasProtocolErrors) {
1737
+ errors$1.protocolErrors = result.extensions[errors.PROTOCOL_ERRORS_SYMBOL];
1738
+ }
1739
+ throw new errors.ApolloError(errors$1);
1730
1740
  }
1731
1741
  return result;
1732
1742
  });
@@ -1858,6 +1868,9 @@ var QueryManager = (function () {
1858
1868
  });
1859
1869
  };
1860
1870
  QueryManager.prototype.fetchQueryObservable = function (queryId, options, networkStatus) {
1871
+ return this.fetchConcastWithInfo(queryId, options, networkStatus).concast;
1872
+ };
1873
+ QueryManager.prototype.fetchConcastWithInfo = function (queryId, options, networkStatus) {
1861
1874
  var _this = this;
1862
1875
  if (networkStatus === void 0) { networkStatus = exports.NetworkStatus.loading; }
1863
1876
  var query = this.transform(options.query).document;
@@ -1876,24 +1889,36 @@ var QueryManager = (function () {
1876
1889
  });
1877
1890
  var fromVariables = function (variables) {
1878
1891
  normalized.variables = variables;
1879
- var concastSources = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);
1892
+ var sourcesWithInfo = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);
1880
1893
  if (normalized.fetchPolicy !== "standby" &&
1881
- concastSources.length > 0 &&
1894
+ sourcesWithInfo.sources.length > 0 &&
1882
1895
  queryInfo.observableQuery) {
1883
1896
  queryInfo.observableQuery["applyNextFetchPolicy"]("after-fetch", options);
1884
1897
  }
1885
- return concastSources;
1898
+ return sourcesWithInfo;
1886
1899
  };
1887
1900
  var cleanupCancelFn = function () { return _this.fetchCancelFns.delete(queryId); };
1888
1901
  this.fetchCancelFns.set(queryId, function (reason) {
1889
1902
  cleanupCancelFn();
1890
1903
  setTimeout(function () { return concast.cancel(reason); });
1891
1904
  });
1892
- var concast = new utilities.Concast(this.transform(normalized.query).hasClientExports
1893
- ? this.localState.addExportedVariables(normalized.query, normalized.variables, normalized.context).then(fromVariables)
1894
- : fromVariables(normalized.variables));
1905
+ var concast, containsDataFromLink;
1906
+ if (this.transform(normalized.query).hasClientExports) {
1907
+ concast = new utilities.Concast(this.localState
1908
+ .addExportedVariables(normalized.query, normalized.variables, normalized.context)
1909
+ .then(fromVariables).then(function (sourcesWithInfo) { return sourcesWithInfo.sources; }));
1910
+ containsDataFromLink = true;
1911
+ }
1912
+ else {
1913
+ var sourcesWithInfo = fromVariables(normalized.variables);
1914
+ containsDataFromLink = sourcesWithInfo.fromLink;
1915
+ concast = new utilities.Concast(sourcesWithInfo.sources);
1916
+ }
1895
1917
  concast.promise.then(cleanupCancelFn, cleanupCancelFn);
1896
- return concast;
1918
+ return {
1919
+ concast: concast,
1920
+ fromLink: containsDataFromLink,
1921
+ };
1897
1922
  };
1898
1923
  QueryManager.prototype.refetchQueries = function (_a) {
1899
1924
  var _this = this;
@@ -2017,54 +2042,40 @@ var QueryManager = (function () {
2017
2042
  case "cache-first": {
2018
2043
  var diff = readCache();
2019
2044
  if (diff.complete) {
2020
- return [
2021
- resultsFromCache(diff, queryInfo.markReady()),
2022
- ];
2045
+ return { fromLink: false, sources: [resultsFromCache(diff, queryInfo.markReady())] };
2023
2046
  }
2024
2047
  if (returnPartialData || shouldNotify) {
2025
- return [
2026
- resultsFromCache(diff),
2027
- resultsFromLink(),
2028
- ];
2048
+ return { fromLink: true, sources: [resultsFromCache(diff), resultsFromLink()] };
2029
2049
  }
2030
- return [
2031
- resultsFromLink(),
2032
- ];
2050
+ return { fromLink: true, sources: [resultsFromLink()] };
2033
2051
  }
2034
2052
  case "cache-and-network": {
2035
2053
  var diff = readCache();
2036
2054
  if (diff.complete || returnPartialData || shouldNotify) {
2037
- return [
2038
- resultsFromCache(diff),
2039
- resultsFromLink(),
2040
- ];
2055
+ return { fromLink: true, sources: [resultsFromCache(diff), resultsFromLink()] };
2041
2056
  }
2042
- return [
2043
- resultsFromLink(),
2044
- ];
2057
+ return { fromLink: true, sources: [resultsFromLink()] };
2045
2058
  }
2046
2059
  case "cache-only":
2047
- return [
2048
- resultsFromCache(readCache(), queryInfo.markReady()),
2049
- ];
2060
+ return { fromLink: false, sources: [resultsFromCache(readCache(), queryInfo.markReady())] };
2050
2061
  case "network-only":
2051
2062
  if (shouldNotify) {
2052
- return [
2053
- resultsFromCache(readCache()),
2054
- resultsFromLink(),
2055
- ];
2063
+ return { fromLink: true, sources: [resultsFromCache(readCache()), resultsFromLink()] };
2056
2064
  }
2057
- return [resultsFromLink()];
2065
+ return { fromLink: true, sources: [resultsFromLink()] };
2058
2066
  case "no-cache":
2059
2067
  if (shouldNotify) {
2060
- return [
2061
- resultsFromCache(queryInfo.getDiff()),
2062
- resultsFromLink(),
2063
- ];
2068
+ return {
2069
+ fromLink: true,
2070
+ sources: [
2071
+ resultsFromCache(queryInfo.getDiff()),
2072
+ resultsFromLink(),
2073
+ ],
2074
+ };
2064
2075
  }
2065
- return [resultsFromLink()];
2076
+ return { fromLink: true, sources: [resultsFromLink()] };
2066
2077
  case "standby":
2067
- return [];
2078
+ return { fromLink: false, sources: [] };
2068
2079
  }
2069
2080
  };
2070
2081
  QueryManager.prototype.getQuery = function (queryId) {
package/errors/errors.cjs CHANGED
@@ -6,34 +6,32 @@ var tslib = require('tslib');
6
6
  require('../utilities/globals');
7
7
  var utilities = require('../utilities');
8
8
 
9
+ var PROTOCOL_ERRORS_SYMBOL = Symbol();
10
+ function graphQLResultHasProtocolErrors(result) {
11
+ if (result.extensions) {
12
+ return Array.isArray(result.extensions[PROTOCOL_ERRORS_SYMBOL]);
13
+ }
14
+ return false;
15
+ }
9
16
  function isApolloError(err) {
10
17
  return err.hasOwnProperty('graphQLErrors');
11
18
  }
12
19
  var generateErrorMessage = function (err) {
13
- var message = '';
14
- if (utilities.isNonEmptyArray(err.graphQLErrors) || utilities.isNonEmptyArray(err.clientErrors)) {
15
- var errors = (err.graphQLErrors || [])
16
- .concat(err.clientErrors || []);
17
- errors.forEach(function (error) {
18
- var errorMessage = error
19
- ? error.message
20
- : 'Error message not found.';
21
- message += "".concat(errorMessage, "\n");
22
- });
23
- }
24
- if (err.networkError) {
25
- message += "".concat(err.networkError.message, "\n");
26
- }
27
- message = message.replace(/\n$/, '');
28
- return message;
20
+ var errors = tslib.__spreadArray(tslib.__spreadArray(tslib.__spreadArray([], err.graphQLErrors, true), err.clientErrors, true), err.protocolErrors, true);
21
+ if (err.networkError)
22
+ errors.push(err.networkError);
23
+ return errors
24
+ .map(function (err) { return utilities.isNonNullObject(err) && err.message || 'Error message not found.'; })
25
+ .join('\n');
29
26
  };
30
27
  var ApolloError = (function (_super) {
31
28
  tslib.__extends(ApolloError, _super);
32
29
  function ApolloError(_a) {
33
- var graphQLErrors = _a.graphQLErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;
30
+ var graphQLErrors = _a.graphQLErrors, protocolErrors = _a.protocolErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;
34
31
  var _this = _super.call(this, errorMessage) || this;
35
32
  _this.name = 'ApolloError';
36
33
  _this.graphQLErrors = graphQLErrors || [];
34
+ _this.protocolErrors = protocolErrors || [];
37
35
  _this.clientErrors = clientErrors || [];
38
36
  _this.networkError = networkError || null;
39
37
  _this.message = errorMessage || generateErrorMessage(_this);
@@ -45,5 +43,7 @@ var ApolloError = (function (_super) {
45
43
  }(Error));
46
44
 
47
45
  exports.ApolloError = ApolloError;
46
+ exports.PROTOCOL_ERRORS_SYMBOL = PROTOCOL_ERRORS_SYMBOL;
47
+ exports.graphQLResultHasProtocolErrors = graphQLResultHasProtocolErrors;
48
48
  exports.isApolloError = isApolloError;
49
49
  //# sourceMappingURL=errors.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.cjs","sources":["index.js"],"sourcesContent":["import { __extends } from \"tslib\";\nimport '../utilities/globals';\nimport { isNonEmptyArray } from '../utilities';\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var message = '';\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n var errors = (err.graphQLErrors || [])\n .concat(err.clientErrors || []);\n errors.forEach(function (error) {\n var errorMessage = error\n ? error.message\n : 'Error message not found.';\n message += \"\".concat(errorMessage, \"\\n\");\n });\n }\n if (err.networkError) {\n message += \"\".concat(err.networkError.message, \"\\n\");\n }\n message = message.replace(/\\n$/, '');\n return message;\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.name = 'ApolloError';\n _this.graphQLErrors = graphQLErrors || [];\n _this.clientErrors = clientErrors || [];\n _this.networkError = networkError || null;\n _this.message = errorMessage || generateErrorMessage(_this);\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n return ApolloError;\n}(Error));\nexport { ApolloError };\n//# sourceMappingURL=index.js.map"],"names":["isNonEmptyArray","__extends"],"mappings":";;;;;;;;AAGO,SAAS,aAAa,CAAC,GAAG,EAAE;AACnC,IAAI,OAAO,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;AAC/C,CAAC;AACD,IAAI,oBAAoB,GAAG,UAAU,GAAG,EAAE;AAC1C,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,IAAIA,yBAAe,CAAC,GAAG,CAAC,aAAa,CAAC,IAAIA,yBAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACjF,QAAQ,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;AAC7C,aAAa,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;AAC5C,QAAQ,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACxC,YAAY,IAAI,YAAY,GAAG,KAAK;AACpC,kBAAkB,KAAK,CAAC,OAAO;AAC/B,kBAAkB,0BAA0B,CAAC;AAC7C,YAAY,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACrD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,GAAG,CAAC,YAAY,EAAE;AAC1B,QAAQ,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzC,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AACC,IAAC,WAAW,IAAI,UAAU,MAAM,EAAE;AACrC,IAAIC,eAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnC,IAAI,SAAS,WAAW,CAAC,EAAE,EAAE;AAC7B,QAAQ,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;AACvK,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC;AAC5D,QAAQ,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC;AACnC,QAAQ,KAAK,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAC;AAClD,QAAQ,KAAK,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;AAChD,QAAQ,KAAK,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;AAClD,QAAQ,KAAK,CAAC,OAAO,GAAG,YAAY,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACpE,QAAQ,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,QAAQ,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;AAChD,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC,KAAK,CAAC;;;;;"}
1
+ {"version":3,"file":"errors.cjs","sources":["index.js"],"sourcesContent":["import { __extends, __spreadArray } from \"tslib\";\nimport '../utilities/globals';\nimport { isNonNullObject } from '../utilities';\nexport var PROTOCOL_ERRORS_SYMBOL = Symbol();\nexport function graphQLResultHasProtocolErrors(result) {\n if (result.extensions) {\n return Array.isArray(result.extensions[PROTOCOL_ERRORS_SYMBOL]);\n }\n return false;\n}\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var errors = __spreadArray(__spreadArray(__spreadArray([], err.graphQLErrors, true), err.clientErrors, true), err.protocolErrors, true);\n if (err.networkError)\n errors.push(err.networkError);\n return errors\n .map(function (err) { return isNonNullObject(err) && err.message || 'Error message not found.'; })\n .join('\\n');\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, protocolErrors = _a.protocolErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.name = 'ApolloError';\n _this.graphQLErrors = graphQLErrors || [];\n _this.protocolErrors = protocolErrors || [];\n _this.clientErrors = clientErrors || [];\n _this.networkError = networkError || null;\n _this.message = errorMessage || generateErrorMessage(_this);\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n return ApolloError;\n}(Error));\nexport { ApolloError };\n//# sourceMappingURL=index.js.map"],"names":["__spreadArray","isNonNullObject","__extends"],"mappings":";;;;;;;;AAGU,IAAC,sBAAsB,GAAG,MAAM,GAAG;AACtC,SAAS,8BAA8B,CAAC,MAAM,EAAE;AACvD,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE;AAC3B,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACM,SAAS,aAAa,CAAC,GAAG,EAAE;AACnC,IAAI,OAAO,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;AAC/C,CAAC;AACD,IAAI,oBAAoB,GAAG,UAAU,GAAG,EAAE;AAC1C,IAAI,IAAI,MAAM,GAAGA,mBAAa,CAACA,mBAAa,CAACA,mBAAa,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAC5I,IAAI,IAAI,GAAG,CAAC,YAAY;AACxB,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACtC,IAAI,OAAO,MAAM;AACjB,SAAS,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,OAAOC,yBAAe,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,0BAA0B,CAAC,EAAE,CAAC;AAC1G,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC,CAAC;AACC,IAAC,WAAW,IAAI,UAAU,MAAM,EAAE;AACrC,IAAIC,eAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnC,IAAI,SAAS,WAAW,CAAC,EAAE,EAAE;AAC7B,QAAQ,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,EAAE,cAAc,GAAG,EAAE,CAAC,cAAc,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;AAC3M,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC;AAC5D,QAAQ,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC;AACnC,QAAQ,KAAK,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAC;AAClD,QAAQ,KAAK,CAAC,cAAc,GAAG,cAAc,IAAI,EAAE,CAAC;AACpD,QAAQ,KAAK,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;AAChD,QAAQ,KAAK,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;AAClD,QAAQ,KAAK,CAAC,OAAO,GAAG,YAAY,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACpE,QAAQ,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,QAAQ,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;AAChD,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC,KAAK,CAAC;;;;;;;"}
@@ -6,34 +6,32 @@ var tslib = require('tslib');
6
6
  require('../utilities/globals');
7
7
  var utilities = require('../utilities');
8
8
 
9
+ var PROTOCOL_ERRORS_SYMBOL = Symbol();
10
+ function graphQLResultHasProtocolErrors(result) {
11
+ if (result.extensions) {
12
+ return Array.isArray(result.extensions[PROTOCOL_ERRORS_SYMBOL]);
13
+ }
14
+ return false;
15
+ }
9
16
  function isApolloError(err) {
10
17
  return err.hasOwnProperty('graphQLErrors');
11
18
  }
12
19
  var generateErrorMessage = function (err) {
13
- var message = '';
14
- if (utilities.isNonEmptyArray(err.graphQLErrors) || utilities.isNonEmptyArray(err.clientErrors)) {
15
- var errors = (err.graphQLErrors || [])
16
- .concat(err.clientErrors || []);
17
- errors.forEach(function (error) {
18
- var errorMessage = error
19
- ? error.message
20
- : 'Error message not found.';
21
- message += "".concat(errorMessage, "\n");
22
- });
23
- }
24
- if (err.networkError) {
25
- message += "".concat(err.networkError.message, "\n");
26
- }
27
- message = message.replace(/\n$/, '');
28
- return message;
20
+ var errors = tslib.__spreadArray(tslib.__spreadArray(tslib.__spreadArray([], err.graphQLErrors, true), err.clientErrors, true), err.protocolErrors, true);
21
+ if (err.networkError)
22
+ errors.push(err.networkError);
23
+ return errors
24
+ .map(function (err) { return utilities.isNonNullObject(err) && err.message || 'Error message not found.'; })
25
+ .join('\n');
29
26
  };
30
27
  var ApolloError = (function (_super) {
31
28
  tslib.__extends(ApolloError, _super);
32
29
  function ApolloError(_a) {
33
- var graphQLErrors = _a.graphQLErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;
30
+ var graphQLErrors = _a.graphQLErrors, protocolErrors = _a.protocolErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;
34
31
  var _this = _super.call(this, errorMessage) || this;
35
32
  _this.name = 'ApolloError';
36
33
  _this.graphQLErrors = graphQLErrors || [];
34
+ _this.protocolErrors = protocolErrors || [];
37
35
  _this.clientErrors = clientErrors || [];
38
36
  _this.networkError = networkError || null;
39
37
  _this.message = errorMessage || generateErrorMessage(_this);
@@ -45,5 +43,7 @@ var ApolloError = (function (_super) {
45
43
  }(Error));
46
44
 
47
45
  exports.ApolloError = ApolloError;
46
+ exports.PROTOCOL_ERRORS_SYMBOL = PROTOCOL_ERRORS_SYMBOL;
47
+ exports.graphQLResultHasProtocolErrors = graphQLResultHasProtocolErrors;
48
48
  exports.isApolloError = isApolloError;
49
49
  //# sourceMappingURL=errors.cjs.map
package/errors/index.d.ts CHANGED
@@ -1,7 +1,24 @@
1
1
  import '../utilities/globals';
2
- import { GraphQLError } from 'graphql';
2
+ import { GraphQLError, GraphQLErrorExtensions } from 'graphql';
3
3
  import { ServerParseError } from '../link/http';
4
4
  import { ServerError } from '../link/utils';
5
+ import { FetchResult } from "../link/core";
6
+ export declare const PROTOCOL_ERRORS_SYMBOL: unique symbol;
7
+ type FetchResultWithSymbolExtensions<T> = FetchResult<T> & {
8
+ extensions: Record<string | symbol, any>;
9
+ };
10
+ export interface ApolloErrorOptions {
11
+ graphQLErrors?: ReadonlyArray<GraphQLError>;
12
+ protocolErrors?: ReadonlyArray<{
13
+ message: string;
14
+ extensions?: GraphQLErrorExtensions[];
15
+ }>;
16
+ clientErrors?: ReadonlyArray<Error>;
17
+ networkError?: Error | ServerParseError | ServerError | null;
18
+ errorMessage?: string;
19
+ extraInfo?: any;
20
+ }
21
+ export declare function graphQLResultHasProtocolErrors<T>(result: FetchResult<T>): result is FetchResultWithSymbolExtensions<T>;
5
22
  export declare function isApolloError(err: Error): err is ApolloError;
6
23
  export type GraphQLErrors = ReadonlyArray<GraphQLError>;
7
24
  export type NetworkError = Error | ServerParseError | ServerError | null;
@@ -9,15 +26,14 @@ export declare class ApolloError extends Error {
9
26
  name: string;
10
27
  message: string;
11
28
  graphQLErrors: GraphQLErrors;
29
+ protocolErrors: ReadonlyArray<{
30
+ message: string;
31
+ extensions?: GraphQLErrorExtensions[];
32
+ }>;
12
33
  clientErrors: ReadonlyArray<Error>;
13
34
  networkError: Error | ServerParseError | ServerError | null;
14
35
  extraInfo: any;
15
- constructor({ graphQLErrors, clientErrors, networkError, errorMessage, extraInfo, }: {
16
- graphQLErrors?: ReadonlyArray<GraphQLError>;
17
- clientErrors?: ReadonlyArray<Error>;
18
- networkError?: Error | ServerParseError | ServerError | null;
19
- errorMessage?: string;
20
- extraInfo?: any;
21
- });
36
+ constructor({ graphQLErrors, protocolErrors, clientErrors, networkError, errorMessage, extraInfo, }: ApolloErrorOptions);
22
37
  }
38
+ export {};
23
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,wBAAgB,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,WAAW,CAE5D;AA6BD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAAC;AAEzE,qBAAa,WAAY,SAAQ,KAAK;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,YAAY,EAAE,KAAK,GAAG,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAAC;IAK5D,SAAS,EAAE,GAAG,CAAC;gBAKV,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,EAAE;QACD,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5C,YAAY,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,YAAY,CAAC,EAAE,KAAK,GAAG,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAAC;QAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,GAAG,CAAC;KACjB;CAaF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAK3C,eAAO,MAAM,sBAAsB,EAAE,OAAO,MAAiB,CAAC;AAE9D,KAAK,+BAA+B,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG;IACzD,UAAU,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAA;CACzC,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C,cAAc,CAAC,EAAE,aAAa,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;KACvC,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,YAAY,CAAC,EAAE,KAAK,GAAG,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB;AAED,wBAAgB,8BAA8B,CAAC,CAAC,EAC9C,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,MAAM,IAAI,+BAA+B,CAAC,CAAC,CAAC,CAS9C;AAGD,wBAAgB,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,WAAW,CAE5D;AAmBD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAAC;AAEzE,qBAAa,WAAY,SAAQ,KAAK;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,aAAa,CAAC;QACnC,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;KACvC,CAAC,CAAC;IACI,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,YAAY,EAAE,KAAK,GAAG,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAAC;IAK5D,SAAS,EAAE,GAAG,CAAC;gBAKV,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,EAAE,kBAAkB;CActB"}
package/errors/index.js CHANGED
@@ -1,34 +1,32 @@
1
- import { __extends } from "tslib";
1
+ import { __extends, __spreadArray } from "tslib";
2
2
  import "../utilities/globals/index.js";
3
- import { isNonEmptyArray } from "../utilities/index.js";
3
+ import { isNonNullObject } from "../utilities/index.js";
4
+ export var PROTOCOL_ERRORS_SYMBOL = Symbol();
5
+ export function graphQLResultHasProtocolErrors(result) {
6
+ if (result.extensions) {
7
+ return Array.isArray(result.extensions[PROTOCOL_ERRORS_SYMBOL]);
8
+ }
9
+ return false;
10
+ }
4
11
  export function isApolloError(err) {
5
12
  return err.hasOwnProperty('graphQLErrors');
6
13
  }
7
14
  var generateErrorMessage = function (err) {
8
- var message = '';
9
- if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {
10
- var errors = (err.graphQLErrors || [])
11
- .concat(err.clientErrors || []);
12
- errors.forEach(function (error) {
13
- var errorMessage = error
14
- ? error.message
15
- : 'Error message not found.';
16
- message += "".concat(errorMessage, "\n");
17
- });
18
- }
19
- if (err.networkError) {
20
- message += "".concat(err.networkError.message, "\n");
21
- }
22
- message = message.replace(/\n$/, '');
23
- return message;
15
+ var errors = __spreadArray(__spreadArray(__spreadArray([], err.graphQLErrors, true), err.clientErrors, true), err.protocolErrors, true);
16
+ if (err.networkError)
17
+ errors.push(err.networkError);
18
+ return errors
19
+ .map(function (err) { return isNonNullObject(err) && err.message || 'Error message not found.'; })
20
+ .join('\n');
24
21
  };
25
22
  var ApolloError = (function (_super) {
26
23
  __extends(ApolloError, _super);
27
24
  function ApolloError(_a) {
28
- var graphQLErrors = _a.graphQLErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;
25
+ var graphQLErrors = _a.graphQLErrors, protocolErrors = _a.protocolErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;
29
26
  var _this = _super.call(this, errorMessage) || this;
30
27
  _this.name = 'ApolloError';
31
28
  _this.graphQLErrors = graphQLErrors || [];
29
+ _this.protocolErrors = protocolErrors || [];
32
30
  _this.clientErrors = clientErrors || [];
33
31
  _this.networkError = networkError || null;
34
32
  _this.message = errorMessage || generateErrorMessage(_this);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";AAAA,OAAO,sBAAsB,CAAC;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI/C,MAAM,UAAU,aAAa,CAAC,GAAU;IACtC,OAAO,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;AAC7C,CAAC;AAMD,IAAM,oBAAoB,GAAG,UAAC,GAAgB;IAC5C,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;QAC3E,IAAM,MAAM,GAAI,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAsB;aAC3D,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,UAAC,KAAY;YAC1B,IAAM,YAAY,GAAG,KAAK;gBACxB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,0BAA0B,CAAC;YAC/B,OAAO,IAAI,UAAG,YAAY,OAAI,CAAC;QACjC,CAAC,CAAC,CAAC;KACJ;IAED,IAAI,GAAG,CAAC,YAAY,EAAE;QACpB,OAAO,IAAI,UAAG,GAAG,CAAC,YAAY,CAAC,OAAO,OAAI,CAAC;KAC5C;IAGD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAMF;IAAiC,+BAAK;IAepC,qBAAY,EAYX;YAXC,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,SAAS,eAAA;QALX,YAaE,kBAAM,YAAY,CAAC,SAWpB;QAVC,KAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,KAAI,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAC;QACzC,KAAI,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QACvC,KAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;QACzC,KAAI,CAAC,OAAO,GAAG,YAAY,IAAI,oBAAoB,CAAC,KAAI,CAAC,CAAC;QAC1D,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAI1B,KAAY,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;;IAClD,CAAC;IACH,kBAAC;AAAD,CAAC,AAxCD,CAAiC,KAAK,GAwCrC","sourcesContent":["import '../utilities/globals';\n\nimport { GraphQLError } from 'graphql';\n\nimport { isNonEmptyArray } from '../utilities';\nimport { ServerParseError } from '../link/http';\nimport { ServerError } from '../link/utils';\n\nexport function isApolloError(err: Error): err is ApolloError {\n return err.hasOwnProperty('graphQLErrors');\n}\n\n// Sets the error message on this error according to the\n// the GraphQL and network errors that are present.\n// If the error message has already been set through the\n// constructor or otherwise, this function is a nop.\nconst generateErrorMessage = (err: ApolloError) => {\n let message = '';\n // If we have GraphQL errors present, add that to the error message.\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n const errors = ((err.graphQLErrors || []) as readonly Error[])\n .concat(err.clientErrors || []);\n errors.forEach((error: Error) => {\n const errorMessage = error\n ? error.message\n : 'Error message not found.';\n message += `${errorMessage}\\n`;\n });\n }\n\n if (err.networkError) {\n message += `${err.networkError.message}\\n`;\n }\n\n // strip newline from the end of the message\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nexport type GraphQLErrors = ReadonlyArray<GraphQLError>;\n\nexport type NetworkError = Error | ServerParseError | ServerError | null;\n\nexport class ApolloError extends Error {\n public name: string;\n public message: string;\n public graphQLErrors: GraphQLErrors;\n public clientErrors: ReadonlyArray<Error>;\n public networkError: Error | ServerParseError | ServerError | null;\n\n // An object that can be used to provide some additional information\n // about an error, e.g. specifying the type of error this is. Used\n // internally within Apollo Client.\n public extraInfo: any;\n\n // Constructs an instance of ApolloError given a GraphQLError\n // or a network error. Note that one of these has to be a valid\n // value or the constructed error will be meaningless.\n constructor({\n graphQLErrors,\n clientErrors,\n networkError,\n errorMessage,\n extraInfo,\n }: {\n graphQLErrors?: ReadonlyArray<GraphQLError>;\n clientErrors?: ReadonlyArray<Error>;\n networkError?: Error | ServerParseError | ServerError | null;\n errorMessage?: string;\n extraInfo?: any;\n }) {\n super(errorMessage);\n this.name = 'ApolloError';\n this.graphQLErrors = graphQLErrors || [];\n this.clientErrors = clientErrors || [];\n this.networkError = networkError || null;\n this.message = errorMessage || generateErrorMessage(this);\n this.extraInfo = extraInfo;\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully\n // supported on Android (see issue #3236).\n (this as any).__proto__ = ApolloError.prototype;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";AAAA,OAAO,sBAAsB,CAAC;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAQ/C,MAAM,CAAC,IAAM,sBAAsB,GAAkB,MAAM,EAAE,CAAC;AAkB9D,MAAM,UAAU,8BAA8B,CAC5C,MAAsB;IAEtB,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,OAAO,KAAK,CAAC,OAAO,CACjB,MAA6C,CAAC,UAAU,CACvD,sBAAsB,CACvB,CACF,CAAC;KACH;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,MAAM,UAAU,aAAa,CAAC,GAAU;IACtC,OAAO,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;AAC7C,CAAC;AAMD,IAAM,oBAAoB,GAAG,UAAC,GAAgB;IAC5C,IAAM,MAAM,iDACP,GAAG,CAAC,aAAa,SACjB,GAAG,CAAC,YAAY,SAChB,GAAG,CAAC,cAAc,OACtB,CAAC;IACF,IAAI,GAAG,CAAC,YAAY;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpD,OAAO,MAAM;SAEV,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,0BAA0B,EAAjE,CAAiE,CAAC;SAC7E,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC,CAAC;AAMF;IAAiC,+BAAK;IAmBpC,qBAAY,EAOS;YANnB,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,SAAS,eAAA;QANX,YAQE,kBAAM,YAAY,CAAC,SAYpB;QAXC,KAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,KAAI,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAC;QACzC,KAAI,CAAC,cAAc,GAAG,cAAc,IAAI,EAAE,CAAC;QAC3C,KAAI,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QACvC,KAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;QACzC,KAAI,CAAC,OAAO,GAAG,YAAY,IAAI,oBAAoB,CAAC,KAAI,CAAC,CAAC;QAC1D,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAI1B,KAAY,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;;IAClD,CAAC;IACH,kBAAC;AAAD,CAAC,AAxCD,CAAiC,KAAK,GAwCrC","sourcesContent":["import '../utilities/globals';\n\nimport { GraphQLError, GraphQLErrorExtensions } from 'graphql';\n\nimport { isNonNullObject } from '../utilities';\nimport { ServerParseError } from '../link/http';\nimport { ServerError } from '../link/utils';\nimport { FetchResult } from \"../link/core\";\n\n// This Symbol allows us to pass transport-specific errors from the link chain\n// into QueryManager/client internals without risking a naming collision within\n// extensions (which implementers can use as they see fit).\nexport const PROTOCOL_ERRORS_SYMBOL: unique symbol = Symbol();\n\ntype FetchResultWithSymbolExtensions<T> = FetchResult<T> & {\n extensions: Record<string | symbol, any>\n};\n\nexport interface ApolloErrorOptions {\n graphQLErrors?: ReadonlyArray<GraphQLError>;\n protocolErrors?: ReadonlyArray<{\n message: string;\n extensions?: GraphQLErrorExtensions[];\n }>;\n clientErrors?: ReadonlyArray<Error>;\n networkError?: Error | ServerParseError | ServerError | null;\n errorMessage?: string;\n extraInfo?: any;\n}\n\nexport function graphQLResultHasProtocolErrors<T>(\n result: FetchResult<T>\n): result is FetchResultWithSymbolExtensions<T> {\n if (result.extensions) {\n return Array.isArray(\n (result as FetchResultWithSymbolExtensions<T>).extensions[\n PROTOCOL_ERRORS_SYMBOL\n ]\n );\n }\n return false;\n}\n\n\nexport function isApolloError(err: Error): err is ApolloError {\n return err.hasOwnProperty('graphQLErrors');\n}\n\n// Sets the error message on this error according to the\n// the GraphQL and network errors that are present.\n// If the error message has already been set through the\n// constructor or otherwise, this function is a nop.\nconst generateErrorMessage = (err: ApolloError) => {\n const errors = [\n ...err.graphQLErrors,\n ...err.clientErrors,\n ...err.protocolErrors\n ];\n if (err.networkError) errors.push(err.networkError);\n return errors\n // The rest of the code sometimes unsafely types non-Error objects as GraphQLErrors\n .map(err => isNonNullObject(err) && err.message || 'Error message not found.')\n .join('\\n');\n};\n\nexport type GraphQLErrors = ReadonlyArray<GraphQLError>;\n\nexport type NetworkError = Error | ServerParseError | ServerError | null;\n\nexport class ApolloError extends Error {\n public name: string;\n public message: string;\n public graphQLErrors: GraphQLErrors;\n public protocolErrors: ReadonlyArray<{\n message: string;\n extensions?: GraphQLErrorExtensions[];\n }>;\n public clientErrors: ReadonlyArray<Error>;\n public networkError: Error | ServerParseError | ServerError | null;\n\n // An object that can be used to provide some additional information\n // about an error, e.g. specifying the type of error this is. Used\n // internally within Apollo Client.\n public extraInfo: any;\n\n // Constructs an instance of ApolloError given a GraphQLError\n // or a network error. Note that one of these has to be a valid\n // value or the constructed error will be meaningless.\n constructor({\n graphQLErrors,\n protocolErrors,\n clientErrors,\n networkError,\n errorMessage,\n extraInfo,\n }: ApolloErrorOptions) {\n super(errorMessage);\n this.name = 'ApolloError';\n this.graphQLErrors = graphQLErrors || [];\n this.protocolErrors = protocolErrors || [];\n this.clientErrors = clientErrors || [];\n this.networkError = networkError || null;\n this.message = errorMessage || generateErrorMessage(this);\n this.extraInfo = extraInfo;\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully\n // supported on Android (see issue #3236).\n (this as any).__proto__ = ApolloError.prototype;\n }\n}\n"]}
@@ -5,7 +5,7 @@
5
5
  // consult the @apollo/client/invariantErrorCodes.js file specific to
6
6
  // your @apollo/client version. This file is not meant to be imported.
7
7
  {
8
- "@apollo/client version": "3.7.10",
8
+ "@apollo/client version": "3.7.12",
9
9
 
10
10
  1: {
11
11
  file: "@apollo/client/cache/inmemory/entityStore.js",
@@ -25,6 +25,10 @@ export interface ExecutionPatchIncrementalResult<TData = Record<string, any>, TE
25
25
  errors?: never;
26
26
  extensions?: never;
27
27
  }
28
+ export interface ApolloPayloadResult<TData = Record<string, any>, TExtensions = Record<string, any>> {
29
+ payload: SingleExecutionResult | ExecutionPatchResult | null;
30
+ errors?: ReadonlyArray<Error | string>;
31
+ }
28
32
  export type ExecutionPatchResult<TData = Record<string, any>, TExtensions = Record<string, any>> = ExecutionPatchInitialResult<TData, TExtensions> | ExecutionPatchIncrementalResult<TData, TExtensions>;
29
33
  export interface GraphQLRequest<TVariables = Record<string, any>> {
30
34
  query: DocumentNode;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/link/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/link/core/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/link/core/types.ts"],"names":[],"mappings":"","sourcesContent":["import { DocumentNode, ExecutionResult, GraphQLError } from \"graphql\";\nimport { DefaultContext } from \"../../core\";\nexport { DocumentNode };\n\nimport { Observable } from \"../../utilities\";\n\nexport type Path = ReadonlyArray<string | number>;\n\ninterface ExecutionPatchResultBase {\n hasNext?: boolean;\n}\n\nexport interface ExecutionPatchInitialResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> extends ExecutionPatchResultBase {\n // if data is present, incremental is not\n data: TData | null | undefined;\n incremental?: never;\n errors?: ReadonlyArray<GraphQLError>;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalPayload<\n TData,\n TExtensions,\n> {\n // data and path must both be present\n // https://github.com/graphql/graphql-spec/pull/742/files#diff-98d0cd153b72b63c417ad4238e8cc0d3385691ccbde7f7674bc0d2a718b896ecR288-R293\n data: TData | null;\n label?: string;\n path: Path;\n errors?: ReadonlyArray<GraphQLError>;\n extensions?: TExtensions;\n}\n\nexport interface ExecutionPatchIncrementalResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> extends ExecutionPatchResultBase {\n // the reverse is also true: if incremental is present,\n // data (and errors and extensions) are not\n incremental?: IncrementalPayload<TData, TExtensions>[];\n data?: never;\n // Errors only exist for chunks, not at the top level\n // https://github.com/robrichard/defer-stream-wg/discussions/50#discussioncomment-3466739\n errors?: never;\n extensions?: never;\n}\n\nexport type ExecutionPatchResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> =\n | ExecutionPatchInitialResult<TData, TExtensions>\n | ExecutionPatchIncrementalResult<TData, TExtensions>;\n\nexport interface GraphQLRequest<TVariables = Record<string, any>> {\n query: DocumentNode;\n variables?: TVariables;\n operationName?: string;\n context?: DefaultContext;\n extensions?: Record<string, any>;\n}\n\nexport interface Operation {\n query: DocumentNode;\n variables: Record<string, any>;\n operationName: string;\n extensions: Record<string, any>;\n setContext: (context: DefaultContext) => DefaultContext;\n getContext: () => DefaultContext;\n}\n\nexport interface SingleExecutionResult<\n TData = Record<string, any>,\n TContext = DefaultContext,\n TExtensions = Record<string, any>\n> extends ExecutionResult<TData, TExtensions> {\n data?: TData | null;\n context?: TContext;\n}\n\nexport type FetchResult<\n TData = Record<string, any>,\n TContext = Record<string, any>,\n TExtensions = Record<string, any>\n> =\n | SingleExecutionResult<TData, TContext, TExtensions>\n | ExecutionPatchResult<TData, TExtensions>;\n\nexport type NextLink = (operation: Operation) => Observable<FetchResult>;\n\nexport type RequestHandler = (\n operation: Operation,\n forward: NextLink\n) => Observable<FetchResult> | null;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/link/core/types.ts"],"names":[],"mappings":"","sourcesContent":["import { DocumentNode, ExecutionResult, GraphQLError } from \"graphql\";\nimport { DefaultContext } from \"../../core\";\nexport { DocumentNode };\n\nimport { Observable } from \"../../utilities\";\n\nexport type Path = ReadonlyArray<string | number>;\n\ninterface ExecutionPatchResultBase {\n hasNext?: boolean;\n}\n\nexport interface ExecutionPatchInitialResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> extends ExecutionPatchResultBase {\n // if data is present, incremental is not\n data: TData | null | undefined;\n incremental?: never;\n errors?: ReadonlyArray<GraphQLError>;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalPayload<TData, TExtensions> {\n // data and path must both be present\n // https://github.com/graphql/graphql-spec/pull/742/files#diff-98d0cd153b72b63c417ad4238e8cc0d3385691ccbde7f7674bc0d2a718b896ecR288-R293\n data: TData | null;\n label?: string;\n path: Path;\n errors?: ReadonlyArray<GraphQLError>;\n extensions?: TExtensions;\n}\n\nexport interface ExecutionPatchIncrementalResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> extends ExecutionPatchResultBase {\n // the reverse is also true: if incremental is present,\n // data (and errors and extensions) are not\n incremental?: IncrementalPayload<TData, TExtensions>[];\n data?: never;\n // Errors only exist for chunks, not at the top level\n // https://github.com/robrichard/defer-stream-wg/discussions/50#discussioncomment-3466739\n errors?: never;\n extensions?: never;\n}\n\nexport interface ApolloPayloadResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> {\n payload: SingleExecutionResult | ExecutionPatchResult | null;\n // Transport layer errors (as distinct from GraphQL or NetworkErrors),\n // these are fatal errors that will include done: true.\n errors?: ReadonlyArray<Error | string>;\n}\n\nexport type ExecutionPatchResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> =\n | ExecutionPatchInitialResult<TData, TExtensions>\n | ExecutionPatchIncrementalResult<TData, TExtensions>;\n\nexport interface GraphQLRequest<TVariables = Record<string, any>> {\n query: DocumentNode;\n variables?: TVariables;\n operationName?: string;\n context?: DefaultContext;\n extensions?: Record<string, any>;\n}\n\nexport interface Operation {\n query: DocumentNode;\n variables: Record<string, any>;\n operationName: string;\n extensions: Record<string, any>;\n setContext: (context: DefaultContext) => DefaultContext;\n getContext: () => DefaultContext;\n}\n\nexport interface SingleExecutionResult<\n TData = Record<string, any>,\n TContext = DefaultContext,\n TExtensions = Record<string, any>\n> extends ExecutionResult<TData, TExtensions> {\n data?: TData | null;\n context?: TContext;\n}\n\nexport type FetchResult<\n TData = Record<string, any>,\n TContext = Record<string, any>,\n TExtensions = Record<string, any>\n> =\n | SingleExecutionResult<TData, TContext, TExtensions>\n | ExecutionPatchResult<TData, TExtensions>;\n\nexport type NextLink = (operation: Operation) => Observable<FetchResult>;\n\nexport type RequestHandler = (\n operation: Operation,\n forward: NextLink\n) => Observable<FetchResult> | null;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"createHttpLink.d.ts","sourceRoot":"","sources":["../../../src/link/http/createHttpLink.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAIjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAUrC,OAAO,EAIL,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAQpC,eAAO,MAAM,cAAc,iBAAiB,WAAW,eA+JtD,CAAC"}
1
+ {"version":3,"file":"createHttpLink.d.ts","sourceRoot":"","sources":["../../../src/link/http/createHttpLink.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAKjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAUrC,OAAO,EAIL,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAQpC,eAAO,MAAM,cAAc,iBAAiB,WAAW,eAgLtD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { __assign, __rest } from "tslib";
2
2
  import "../../utilities/globals/index.js";
3
+ import { invariant } from "../../utilities/globals/index.js";
3
4
  import { visit } from 'graphql';
4
5
  import { ApolloLink } from "../core/index.js";
5
6
  import { Observable, hasDirectives } from "../../utilities/index.js";
@@ -11,7 +12,7 @@ import { selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig }
11
12
  import { createSignalIfSupported } from "./createSignalIfSupported.js";
12
13
  import { rewriteURIForGET } from "./rewriteURIForGET.js";
13
14
  import { fromError } from "../utils/index.js";
14
- import { maybe } from "../../utilities/index.js";
15
+ import { maybe, getMainDefinition } from "../../utilities/index.js";
15
16
  var backupFetch = maybe(function () { return fetch; });
16
17
  export var createHttpLink = function (linkOptions) {
17
18
  if (linkOptions === void 0) { linkOptions = {}; }
@@ -72,13 +73,28 @@ export var createHttpLink = function (linkOptions) {
72
73
  var definitionIsMutation = function (d) {
73
74
  return d.kind === 'OperationDefinition' && d.operation === 'mutation';
74
75
  };
76
+ var definitionIsSubscription = function (d) {
77
+ return d.kind === 'OperationDefinition' && d.operation === 'subscription';
78
+ };
79
+ var isSubscription = definitionIsSubscription(getMainDefinition(operation.query));
80
+ var hasDefer = hasDirectives(['defer'], operation.query);
75
81
  if (useGETForQueries &&
76
82
  !operation.query.definitions.some(definitionIsMutation)) {
77
83
  options.method = 'GET';
78
84
  }
79
- if (hasDirectives(['defer'], operation.query)) {
85
+ if (hasDefer || isSubscription) {
80
86
  options.headers = options.headers || {};
81
- options.headers.accept = "multipart/mixed; deferSpec=20220824, application/json";
87
+ var acceptHeader = "multipart/mixed;";
88
+ if (isSubscription && hasDefer) {
89
+ __DEV__ && invariant.warn("Multipart-subscriptions do not support @defer");
90
+ }
91
+ if (isSubscription) {
92
+ acceptHeader += 'boundary=graphql;subscriptionSpec=1.0,application/json';
93
+ }
94
+ else if (hasDefer) {
95
+ acceptHeader += 'deferSpec=20220824,application/json';
96
+ }
97
+ options.headers.accept = acceptHeader;
82
98
  }
83
99
  if (options.method === 'GET') {
84
100
  var _d = rewriteURIForGET(chosenURI, body), newURI = _d.newURI, parseError = _d.parseError;