@apollo/client 3.6.3 → 3.6.6

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 (76) hide show
  1. package/apollo-client.cjs +123 -48
  2. package/apollo-client.cjs.map +1 -1
  3. package/apollo-client.min.cjs +1 -1
  4. package/cache/cache.cjs +9 -10
  5. package/cache/cache.cjs.map +1 -1
  6. package/cache/cache.cjs.native.js +2288 -0
  7. package/cache/inmemory/readFromStore.d.ts.map +1 -1
  8. package/cache/inmemory/readFromStore.js +10 -11
  9. package/cache/inmemory/readFromStore.js.map +1 -1
  10. package/core/ObservableQuery.d.ts.map +1 -1
  11. package/core/ObservableQuery.js +2 -2
  12. package/core/ObservableQuery.js.map +1 -1
  13. package/core/core.cjs +2 -2
  14. package/core/core.cjs.map +1 -1
  15. package/core/core.cjs.native.js +2141 -0
  16. package/errors/errors.cjs.native.js +48 -0
  17. package/invariantErrorCodes.js +1 -1
  18. package/link/batch/batch.cjs.native.js +161 -0
  19. package/link/batch-http/batch-http.cjs.native.js +127 -0
  20. package/link/context/context.cjs.native.js +38 -0
  21. package/link/core/core.cjs.native.js +121 -0
  22. package/link/error/error.cjs.native.js +90 -0
  23. package/link/http/http.cjs.native.js +320 -0
  24. package/link/persisted-queries/persisted-queries.cjs.native.js +174 -0
  25. package/link/retry/retry.cjs.native.js +170 -0
  26. package/link/schema/schema.cjs.native.js +56 -0
  27. package/link/subscriptions/subscriptions.cjs.native.js +45 -0
  28. package/link/utils/utils.cjs.native.js +115 -0
  29. package/link/ws/ws.cjs.native.js +28 -0
  30. package/main.cjs.native.js +16 -0
  31. package/package.json +16 -17
  32. package/react/components/components.cjs.native.js +79 -0
  33. package/react/context/context.cjs.native.js +67 -0
  34. package/react/hoc/hoc.cjs.native.js +325 -0
  35. package/react/hooks/hooks.cjs +130 -43
  36. package/react/hooks/hooks.cjs.map +1 -1
  37. package/react/hooks/hooks.cjs.native.js +623 -0
  38. package/react/hooks/useLazyQuery.d.ts.map +1 -1
  39. package/react/hooks/useLazyQuery.js +5 -1
  40. package/react/hooks/useLazyQuery.js.map +1 -1
  41. package/react/hooks/useMutation.js +7 -7
  42. package/react/hooks/useMutation.js.map +1 -1
  43. package/react/hooks/useQuery.d.ts +2 -1
  44. package/react/hooks/useQuery.d.ts.map +1 -1
  45. package/react/hooks/useQuery.js +22 -6
  46. package/react/hooks/useQuery.js.map +1 -1
  47. package/react/hooks/useSubscription.d.ts.map +1 -1
  48. package/react/hooks/useSubscription.js +17 -7
  49. package/react/hooks/useSubscription.js.map +1 -1
  50. package/react/hooks/useSyncExternalStore.d.ts +4 -0
  51. package/react/hooks/useSyncExternalStore.d.ts.map +1 -0
  52. package/react/hooks/useSyncExternalStore.js +48 -0
  53. package/react/hooks/useSyncExternalStore.js.map +1 -0
  54. package/react/parser/parser.cjs.native.js +103 -0
  55. package/react/react.cjs.native.js +22 -0
  56. package/react/ssr/ssr.cjs.native.js +150 -0
  57. package/testing/core/core.cjs.native.js +288 -0
  58. package/testing/testing.cjs.native.js +58 -0
  59. package/utilities/common/canUse.d.ts +2 -0
  60. package/utilities/common/canUse.d.ts.map +1 -1
  61. package/utilities/common/canUse.js +6 -2
  62. package/utilities/common/canUse.js.map +1 -1
  63. package/utilities/common/mergeDeep.d.ts.map +1 -1
  64. package/utilities/common/mergeDeep.js +8 -11
  65. package/utilities/common/mergeDeep.js.map +1 -1
  66. package/utilities/globals/globals.cjs.native.js +56 -0
  67. package/utilities/observables/Concast.d.ts.map +1 -1
  68. package/utilities/observables/Concast.js +5 -2
  69. package/utilities/observables/Concast.js.map +1 -1
  70. package/utilities/policies/pagination.d.ts.map +1 -1
  71. package/utilities/policies/pagination.js +9 -7
  72. package/utilities/policies/pagination.js.map +1 -1
  73. package/utilities/utilities.cjs +29 -22
  74. package/utilities/utilities.cjs.map +1 -1
  75. package/utilities/utilities.cjs.native.js +1281 -0
  76. package/version.js +1 -1
@@ -0,0 +1,103 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var globals = require('../../utilities/globals');
6
+
7
+ exports.DocumentType = void 0;
8
+ (function (DocumentType) {
9
+ DocumentType[DocumentType["Query"] = 0] = "Query";
10
+ DocumentType[DocumentType["Mutation"] = 1] = "Mutation";
11
+ DocumentType[DocumentType["Subscription"] = 2] = "Subscription";
12
+ })(exports.DocumentType || (exports.DocumentType = {}));
13
+ var cache = new Map();
14
+ function operationName(type) {
15
+ var name;
16
+ switch (type) {
17
+ case exports.DocumentType.Query:
18
+ name = 'Query';
19
+ break;
20
+ case exports.DocumentType.Mutation:
21
+ name = 'Mutation';
22
+ break;
23
+ case exports.DocumentType.Subscription:
24
+ name = 'Subscription';
25
+ break;
26
+ }
27
+ return name;
28
+ }
29
+ function parser(document) {
30
+ var cached = cache.get(document);
31
+ if (cached)
32
+ return cached;
33
+ var variables, type, name;
34
+ __DEV__ ? globals.invariant(!!document && !!document.kind, "Argument of ".concat(document, " passed to parser was not a valid GraphQL ") +
35
+ "DocumentNode. You may need to use 'graphql-tag' or another method " +
36
+ "to convert your operation into a document") : globals.invariant(!!document && !!document.kind, 30);
37
+ var fragments = [];
38
+ var queries = [];
39
+ var mutations = [];
40
+ var subscriptions = [];
41
+ for (var _i = 0, _a = document.definitions; _i < _a.length; _i++) {
42
+ var x = _a[_i];
43
+ if (x.kind === 'FragmentDefinition') {
44
+ fragments.push(x);
45
+ continue;
46
+ }
47
+ if (x.kind === 'OperationDefinition') {
48
+ switch (x.operation) {
49
+ case 'query':
50
+ queries.push(x);
51
+ break;
52
+ case 'mutation':
53
+ mutations.push(x);
54
+ break;
55
+ case 'subscription':
56
+ subscriptions.push(x);
57
+ break;
58
+ }
59
+ }
60
+ }
61
+ __DEV__ ? globals.invariant(!fragments.length ||
62
+ (queries.length || mutations.length || subscriptions.length), "Passing only a fragment to 'graphql' is not yet supported. " +
63
+ "You must include a query, subscription or mutation as well") : globals.invariant(!fragments.length ||
64
+ (queries.length || mutations.length || subscriptions.length), 31);
65
+ __DEV__ ? globals.invariant(queries.length + mutations.length + subscriptions.length <= 1, "react-apollo only supports a query, subscription, or a mutation per HOC. " +
66
+ "".concat(document, " had ").concat(queries.length, " queries, ").concat(subscriptions.length, " ") +
67
+ "subscriptions and ".concat(mutations.length, " mutations. ") +
68
+ "You can use 'compose' to join multiple operation types to a component") : globals.invariant(queries.length + mutations.length + subscriptions.length <= 1, 32);
69
+ type = queries.length ? exports.DocumentType.Query : exports.DocumentType.Mutation;
70
+ if (!queries.length && !mutations.length)
71
+ type = exports.DocumentType.Subscription;
72
+ var definitions = queries.length
73
+ ? queries
74
+ : mutations.length
75
+ ? mutations
76
+ : subscriptions;
77
+ __DEV__ ? globals.invariant(definitions.length === 1, "react-apollo only supports one definition per HOC. ".concat(document, " had ") +
78
+ "".concat(definitions.length, " definitions. ") +
79
+ "You can use 'compose' to join multiple operation types to a component") : globals.invariant(definitions.length === 1, 33);
80
+ var definition = definitions[0];
81
+ variables = definition.variableDefinitions || [];
82
+ if (definition.name && definition.name.kind === 'Name') {
83
+ name = definition.name.value;
84
+ }
85
+ else {
86
+ name = 'data';
87
+ }
88
+ var payload = { name: name, type: type, variables: variables };
89
+ cache.set(document, payload);
90
+ return payload;
91
+ }
92
+ function verifyDocumentType(document, type) {
93
+ var operation = parser(document);
94
+ var requiredOperationName = operationName(type);
95
+ var usedOperationName = operationName(operation.type);
96
+ __DEV__ ? globals.invariant(operation.type === type, "Running a ".concat(requiredOperationName, " requires a graphql ") +
97
+ "".concat(requiredOperationName, ", but a ").concat(usedOperationName, " was used instead.")) : globals.invariant(operation.type === type, 34);
98
+ }
99
+
100
+ exports.operationName = operationName;
101
+ exports.parser = parser;
102
+ exports.verifyDocumentType = verifyDocumentType;
103
+ //# sourceMappingURL=parser.cjs.map
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('../utilities/globals');
6
+ var context = require('./context');
7
+ var hooks = require('./hooks');
8
+ var parser = require('./parser');
9
+
10
+
11
+
12
+ exports.ApolloConsumer = context.ApolloConsumer;
13
+ exports.ApolloProvider = context.ApolloProvider;
14
+ exports.getApolloContext = context.getApolloContext;
15
+ exports.resetApolloContext = context.resetApolloContext;
16
+ exports.DocumentType = parser.DocumentType;
17
+ exports.operationName = parser.operationName;
18
+ exports.parser = parser.parser;
19
+ for (var k in hooks) {
20
+ if (k !== 'default' && !exports.hasOwnProperty(k)) exports[k] = hooks[k];
21
+ }
22
+ //# sourceMappingURL=react.cjs.map
@@ -0,0 +1,150 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var context = require('../context');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ for (var k in e) {
14
+ n[k] = e[k];
15
+ }
16
+ }
17
+ n["default"] = e;
18
+ return Object.freeze(n);
19
+ }
20
+
21
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
22
+
23
+ function makeDefaultQueryInfo() {
24
+ return {
25
+ seen: false,
26
+ observable: null
27
+ };
28
+ }
29
+ var RenderPromises = (function () {
30
+ function RenderPromises() {
31
+ this.queryPromises = new Map();
32
+ this.queryInfoTrie = new Map();
33
+ this.stopped = false;
34
+ }
35
+ RenderPromises.prototype.stop = function () {
36
+ if (!this.stopped) {
37
+ this.queryPromises.clear();
38
+ this.queryInfoTrie.clear();
39
+ this.stopped = true;
40
+ }
41
+ };
42
+ RenderPromises.prototype.registerSSRObservable = function (observable) {
43
+ if (this.stopped)
44
+ return;
45
+ this.lookupQueryInfo(observable.options).observable = observable;
46
+ };
47
+ RenderPromises.prototype.getSSRObservable = function (props) {
48
+ return this.lookupQueryInfo(props).observable;
49
+ };
50
+ RenderPromises.prototype.addQueryPromise = function (queryInstance, finish) {
51
+ if (!this.stopped) {
52
+ var info = this.lookupQueryInfo(queryInstance.getOptions());
53
+ if (!info.seen) {
54
+ this.queryPromises.set(queryInstance.getOptions(), new Promise(function (resolve) {
55
+ resolve(queryInstance.fetchData());
56
+ }));
57
+ return null;
58
+ }
59
+ }
60
+ return finish ? finish() : null;
61
+ };
62
+ RenderPromises.prototype.addObservableQueryPromise = function (obsQuery) {
63
+ return this.addQueryPromise({
64
+ getOptions: function () { return obsQuery.options; },
65
+ fetchData: function () { return new Promise(function (resolve) {
66
+ var sub = obsQuery.subscribe({
67
+ next: function (result) {
68
+ if (!result.loading) {
69
+ resolve();
70
+ sub.unsubscribe();
71
+ }
72
+ },
73
+ error: function () {
74
+ resolve();
75
+ sub.unsubscribe();
76
+ },
77
+ complete: function () {
78
+ resolve();
79
+ },
80
+ });
81
+ }); },
82
+ });
83
+ };
84
+ RenderPromises.prototype.hasPromises = function () {
85
+ return this.queryPromises.size > 0;
86
+ };
87
+ RenderPromises.prototype.consumeAndAwaitPromises = function () {
88
+ var _this = this;
89
+ var promises = [];
90
+ this.queryPromises.forEach(function (promise, queryInstance) {
91
+ _this.lookupQueryInfo(queryInstance).seen = true;
92
+ promises.push(promise);
93
+ });
94
+ this.queryPromises.clear();
95
+ return Promise.all(promises);
96
+ };
97
+ RenderPromises.prototype.lookupQueryInfo = function (props) {
98
+ var queryInfoTrie = this.queryInfoTrie;
99
+ var query = props.query, variables = props.variables;
100
+ var varMap = queryInfoTrie.get(query) || new Map();
101
+ if (!queryInfoTrie.has(query))
102
+ queryInfoTrie.set(query, varMap);
103
+ var variablesString = JSON.stringify(variables);
104
+ var info = varMap.get(variablesString) || makeDefaultQueryInfo();
105
+ if (!varMap.has(variablesString))
106
+ varMap.set(variablesString, info);
107
+ return info;
108
+ };
109
+ return RenderPromises;
110
+ }());
111
+
112
+ function getDataFromTree(tree, context) {
113
+ if (context === void 0) { context = {}; }
114
+ return getMarkupFromTree({
115
+ tree: tree,
116
+ context: context,
117
+ renderFunction: require('react-dom/server').renderToStaticMarkup
118
+ });
119
+ }
120
+ function getMarkupFromTree(_a) {
121
+ var tree = _a.tree, _b = _a.context, context$1 = _b === void 0 ? {} : _b, _c = _a.renderFunction, renderFunction = _c === void 0 ? require('react-dom/server').renderToStaticMarkup : _c;
122
+ var renderPromises = new RenderPromises();
123
+ function process() {
124
+ var ApolloContext = context.getApolloContext();
125
+ return new Promise(function (resolve) {
126
+ var element = React__namespace.createElement(ApolloContext.Provider, { value: tslib.__assign(tslib.__assign({}, context$1), { renderPromises: renderPromises }) }, tree);
127
+ resolve(renderFunction(element));
128
+ }).then(function (html) {
129
+ return renderPromises.hasPromises()
130
+ ? renderPromises.consumeAndAwaitPromises().then(process)
131
+ : html;
132
+ }).finally(function () {
133
+ renderPromises.stop();
134
+ });
135
+ }
136
+ return Promise.resolve().then(process);
137
+ }
138
+
139
+ function renderToStringWithData(component) {
140
+ return getMarkupFromTree({
141
+ tree: component,
142
+ renderFunction: require('react-dom/server').renderToString
143
+ });
144
+ }
145
+
146
+ exports.RenderPromises = RenderPromises;
147
+ exports.getDataFromTree = getDataFromTree;
148
+ exports.getMarkupFromTree = getMarkupFromTree;
149
+ exports.renderToStringWithData = renderToStringWithData;
150
+ //# sourceMappingURL=ssr.cjs.map
@@ -0,0 +1,288 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var globals = require('../../utilities/globals');
7
+ var graphql = require('graphql');
8
+ var equality = require('@wry/equality');
9
+ var core = require('../../link/core');
10
+ var utilities = require('../../utilities');
11
+ var core$1 = require('../../core');
12
+ var cache = require('../../cache');
13
+
14
+ function requestToKey(request, addTypename) {
15
+ var queryString = request.query &&
16
+ graphql.print(addTypename ? utilities.addTypenameToDocument(request.query) : request.query);
17
+ var requestKey = { query: queryString };
18
+ return JSON.stringify(requestKey);
19
+ }
20
+ var MockLink = (function (_super) {
21
+ tslib.__extends(MockLink, _super);
22
+ function MockLink(mockedResponses, addTypename) {
23
+ if (addTypename === void 0) { addTypename = true; }
24
+ var _this = _super.call(this) || this;
25
+ _this.addTypename = true;
26
+ _this.mockedResponsesByKey = {};
27
+ _this.addTypename = addTypename;
28
+ if (mockedResponses) {
29
+ mockedResponses.forEach(function (mockedResponse) {
30
+ _this.addMockedResponse(mockedResponse);
31
+ });
32
+ }
33
+ return _this;
34
+ }
35
+ MockLink.prototype.addMockedResponse = function (mockedResponse) {
36
+ var normalizedMockedResponse = this.normalizeMockedResponse(mockedResponse);
37
+ var key = requestToKey(normalizedMockedResponse.request, this.addTypename);
38
+ var mockedResponses = this.mockedResponsesByKey[key];
39
+ if (!mockedResponses) {
40
+ mockedResponses = [];
41
+ this.mockedResponsesByKey[key] = mockedResponses;
42
+ }
43
+ mockedResponses.push(normalizedMockedResponse);
44
+ };
45
+ MockLink.prototype.request = function (operation) {
46
+ var _this = this;
47
+ this.operation = operation;
48
+ var key = requestToKey(operation, this.addTypename);
49
+ var unmatchedVars = [];
50
+ var requestVariables = operation.variables || {};
51
+ var mockedResponses = this.mockedResponsesByKey[key];
52
+ var responseIndex = mockedResponses ? mockedResponses.findIndex(function (res, index) {
53
+ var mockedResponseVars = res.request.variables || {};
54
+ if (equality.equal(requestVariables, mockedResponseVars)) {
55
+ return true;
56
+ }
57
+ unmatchedVars.push(mockedResponseVars);
58
+ return false;
59
+ }) : -1;
60
+ var response = responseIndex >= 0
61
+ ? mockedResponses[responseIndex]
62
+ : void 0;
63
+ var configError;
64
+ if (!response) {
65
+ configError = new Error("No more mocked responses for the query: ".concat(graphql.print(operation.query), "\nExpected variables: ").concat(utilities.stringifyForDisplay(operation.variables), "\n").concat(unmatchedVars.length > 0 ? "\nFailed to match ".concat(unmatchedVars.length, " mock").concat(unmatchedVars.length === 1 ? "" : "s", " for this query, which had the following variables:\n").concat(unmatchedVars.map(function (d) { return " ".concat(utilities.stringifyForDisplay(d)); }).join('\n'), "\n") : ""));
66
+ }
67
+ else {
68
+ mockedResponses.splice(responseIndex, 1);
69
+ var newData = response.newData;
70
+ if (newData) {
71
+ response.result = newData();
72
+ mockedResponses.push(response);
73
+ }
74
+ if (!response.result && !response.error) {
75
+ configError = new Error("Mocked response should contain either result or error: ".concat(key));
76
+ }
77
+ }
78
+ return new utilities.Observable(function (observer) {
79
+ var timer = setTimeout(function () {
80
+ if (configError) {
81
+ try {
82
+ if (_this.onError(configError, observer) !== false) {
83
+ throw configError;
84
+ }
85
+ }
86
+ catch (error) {
87
+ observer.error(error);
88
+ }
89
+ }
90
+ else if (response) {
91
+ if (response.error) {
92
+ observer.error(response.error);
93
+ }
94
+ else {
95
+ if (response.result) {
96
+ observer.next(typeof response.result === 'function'
97
+ ? response.result()
98
+ : response.result);
99
+ }
100
+ observer.complete();
101
+ }
102
+ }
103
+ }, response && response.delay || 0);
104
+ return function () {
105
+ clearTimeout(timer);
106
+ };
107
+ });
108
+ };
109
+ MockLink.prototype.normalizeMockedResponse = function (mockedResponse) {
110
+ var newMockedResponse = utilities.cloneDeep(mockedResponse);
111
+ var queryWithoutConnection = utilities.removeConnectionDirectiveFromDocument(newMockedResponse.request.query);
112
+ __DEV__ ? globals.invariant(queryWithoutConnection, "query is required") : globals.invariant(queryWithoutConnection, 35);
113
+ newMockedResponse.request.query = queryWithoutConnection;
114
+ var query = utilities.removeClientSetsFromDocument(newMockedResponse.request.query);
115
+ if (query) {
116
+ newMockedResponse.request.query = query;
117
+ }
118
+ return newMockedResponse;
119
+ };
120
+ return MockLink;
121
+ }(core.ApolloLink));
122
+ function mockSingleLink() {
123
+ var mockedResponses = [];
124
+ for (var _i = 0; _i < arguments.length; _i++) {
125
+ mockedResponses[_i] = arguments[_i];
126
+ }
127
+ var maybeTypename = mockedResponses[mockedResponses.length - 1];
128
+ var mocks = mockedResponses.slice(0, mockedResponses.length - 1);
129
+ if (typeof maybeTypename !== 'boolean') {
130
+ mocks = mockedResponses;
131
+ maybeTypename = true;
132
+ }
133
+ return new MockLink(mocks, maybeTypename);
134
+ }
135
+
136
+ var MockSubscriptionLink = (function (_super) {
137
+ tslib.__extends(MockSubscriptionLink, _super);
138
+ function MockSubscriptionLink() {
139
+ var _this = _super.call(this) || this;
140
+ _this.unsubscribers = [];
141
+ _this.setups = [];
142
+ _this.observers = [];
143
+ return _this;
144
+ }
145
+ MockSubscriptionLink.prototype.request = function (operation) {
146
+ var _this = this;
147
+ this.operation = operation;
148
+ return new utilities.Observable(function (observer) {
149
+ _this.setups.forEach(function (x) { return x(); });
150
+ _this.observers.push(observer);
151
+ return function () {
152
+ _this.unsubscribers.forEach(function (x) { return x(); });
153
+ };
154
+ });
155
+ };
156
+ MockSubscriptionLink.prototype.simulateResult = function (result, complete) {
157
+ var _this = this;
158
+ if (complete === void 0) { complete = false; }
159
+ setTimeout(function () {
160
+ var observers = _this.observers;
161
+ if (!observers.length)
162
+ throw new Error('subscription torn down');
163
+ observers.forEach(function (observer) {
164
+ if (result.result && observer.next)
165
+ observer.next(result.result);
166
+ if (result.error && observer.error)
167
+ observer.error(result.error);
168
+ if (complete && observer.complete)
169
+ observer.complete();
170
+ });
171
+ }, result.delay || 0);
172
+ };
173
+ MockSubscriptionLink.prototype.simulateComplete = function () {
174
+ var observers = this.observers;
175
+ if (!observers.length)
176
+ throw new Error('subscription torn down');
177
+ observers.forEach(function (observer) {
178
+ if (observer.complete)
179
+ observer.complete();
180
+ });
181
+ };
182
+ MockSubscriptionLink.prototype.onSetup = function (listener) {
183
+ this.setups = this.setups.concat([listener]);
184
+ };
185
+ MockSubscriptionLink.prototype.onUnsubscribe = function (listener) {
186
+ this.unsubscribers = this.unsubscribers.concat([listener]);
187
+ };
188
+ return MockSubscriptionLink;
189
+ }(core.ApolloLink));
190
+ function mockObservableLink() {
191
+ return new MockSubscriptionLink();
192
+ }
193
+
194
+ function createMockClient(data, query, variables) {
195
+ if (variables === void 0) { variables = {}; }
196
+ return new core$1.ApolloClient({
197
+ link: mockSingleLink({
198
+ request: { query: query, variables: variables },
199
+ result: { data: data },
200
+ }).setOnError(function (error) { throw error; }),
201
+ cache: new cache.InMemoryCache({ addTypename: false }),
202
+ });
203
+ }
204
+
205
+ function subscribeAndCount(reject, observable, cb) {
206
+ var queue = Promise.resolve();
207
+ var handleCount = 0;
208
+ var subscription = utilities.asyncMap(observable, function (result) {
209
+ return queue = queue.then(function () {
210
+ return cb(++handleCount, result);
211
+ }).catch(error);
212
+ }).subscribe({ error: error });
213
+ function error(e) {
214
+ subscription.unsubscribe();
215
+ reject(e);
216
+ }
217
+ return subscription;
218
+ }
219
+
220
+ function wrap(key) {
221
+ return function (message, callback, timeout) { return (key ? it[key] : it)(message, function () {
222
+ var _this = this;
223
+ return new Promise(function (resolve, reject) { return callback.call(_this, resolve, reject); });
224
+ }, timeout); };
225
+ }
226
+ var wrappedIt = wrap();
227
+ var itAsync = Object.assign(function () {
228
+ var args = [];
229
+ for (var _i = 0; _i < arguments.length; _i++) {
230
+ args[_i] = arguments[_i];
231
+ }
232
+ return wrappedIt.apply(this, args);
233
+ }, {
234
+ only: wrap("only"),
235
+ skip: wrap("skip"),
236
+ todo: wrap("todo"),
237
+ });
238
+
239
+ function wrapTestFunction(fn, consoleMethodName) {
240
+ return function () {
241
+ var _this = this;
242
+ var args = arguments;
243
+ var spy = jest.spyOn(console, consoleMethodName);
244
+ spy.mockImplementation(function () { });
245
+ return new Promise(function (resolve) {
246
+ resolve(fn === null || fn === void 0 ? void 0 : fn.apply(_this, args));
247
+ }).finally(function () {
248
+ expect(spy).toMatchSnapshot();
249
+ spy.mockReset();
250
+ });
251
+ };
252
+ }
253
+ function withErrorSpy(it) {
254
+ var args = [];
255
+ for (var _i = 1; _i < arguments.length; _i++) {
256
+ args[_i - 1] = arguments[_i];
257
+ }
258
+ args[1] = wrapTestFunction(args[1], "error");
259
+ return it.apply(void 0, args);
260
+ }
261
+ function withWarningSpy(it) {
262
+ var args = [];
263
+ for (var _i = 1; _i < arguments.length; _i++) {
264
+ args[_i - 1] = arguments[_i];
265
+ }
266
+ args[1] = wrapTestFunction(args[1], "warn");
267
+ return it.apply(void 0, args);
268
+ }
269
+ function withLogSpy(it) {
270
+ var args = [];
271
+ for (var _i = 1; _i < arguments.length; _i++) {
272
+ args[_i - 1] = arguments[_i];
273
+ }
274
+ args[1] = wrapTestFunction(args[1], "log");
275
+ return it.apply(void 0, args);
276
+ }
277
+
278
+ exports.MockLink = MockLink;
279
+ exports.MockSubscriptionLink = MockSubscriptionLink;
280
+ exports.createMockClient = createMockClient;
281
+ exports.itAsync = itAsync;
282
+ exports.mockObservableLink = mockObservableLink;
283
+ exports.mockSingleLink = mockSingleLink;
284
+ exports.subscribeAndCount = subscribeAndCount;
285
+ exports.withErrorSpy = withErrorSpy;
286
+ exports.withLogSpy = withLogSpy;
287
+ exports.withWarningSpy = withWarningSpy;
288
+ //# sourceMappingURL=core.cjs.map
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('../utilities/globals');
6
+ var tslib = require('tslib');
7
+ var React = require('react');
8
+ var core$1 = require('../core');
9
+ var cache = require('../cache');
10
+ var context = require('../react/context');
11
+ var core = require('./core');
12
+
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ for (var k in e) {
18
+ n[k] = e[k];
19
+ }
20
+ }
21
+ n["default"] = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
+
27
+ var MockedProvider = (function (_super) {
28
+ tslib.__extends(MockedProvider, _super);
29
+ function MockedProvider(props) {
30
+ var _this = _super.call(this, props) || this;
31
+ var _a = _this.props, mocks = _a.mocks, addTypename = _a.addTypename, defaultOptions = _a.defaultOptions, cache$1 = _a.cache, resolvers = _a.resolvers, link = _a.link;
32
+ var client = new core$1.ApolloClient({
33
+ cache: cache$1 || new cache.InMemoryCache({ addTypename: addTypename }),
34
+ defaultOptions: defaultOptions,
35
+ link: link || new core.MockLink(mocks || [], addTypename),
36
+ resolvers: resolvers,
37
+ });
38
+ _this.state = { client: client };
39
+ return _this;
40
+ }
41
+ MockedProvider.prototype.render = function () {
42
+ var _a = this.props, children = _a.children, childProps = _a.childProps;
43
+ return React__namespace.isValidElement(children) ? (React__namespace.createElement(context.ApolloProvider, { client: this.state.client }, React__namespace.cloneElement(React__namespace.Children.only(children), tslib.__assign({}, childProps)))) : null;
44
+ };
45
+ MockedProvider.prototype.componentWillUnmount = function () {
46
+ this.state.client.stop();
47
+ };
48
+ MockedProvider.defaultProps = {
49
+ addTypename: true
50
+ };
51
+ return MockedProvider;
52
+ }(React__namespace.Component));
53
+
54
+ exports.MockedProvider = MockedProvider;
55
+ for (var k in core) {
56
+ if (k !== 'default' && !exports.hasOwnProperty(k)) exports[k] = core[k];
57
+ }
58
+ //# sourceMappingURL=testing.cjs.map
@@ -1,4 +1,6 @@
1
1
  export declare const canUseWeakMap: boolean;
2
2
  export declare const canUseWeakSet: boolean;
3
3
  export declare const canUseSymbol: boolean;
4
+ export declare const canUseDOM: boolean;
5
+ export declare const canUseLayoutEffect: boolean;
4
6
  //# sourceMappingURL=canUse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canUse.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/canUse.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,SAGzB,CAAC;AAEF,eAAO,MAAM,aAAa,SAAgC,CAAC;AAE3D,eAAO,MAAM,YAAY,SAES,CAAC"}
1
+ {"version":3,"file":"canUse.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/canUse.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,SAEwB,CAAC;AAEnD,eAAO,MAAM,aAAa,SAAgC,CAAC;AAE3D,eAAO,MAAM,YAAY,SAES,CAAC;AAEnC,eAAO,MAAM,SAAS,SAC4C,CAAC;AAmBnE,eAAO,MAAM,kBAAkB,SAA2B,CAAC"}
@@ -1,6 +1,10 @@
1
- export var canUseWeakMap = typeof WeakMap === 'function' && !(typeof navigator === 'object' &&
2
- navigator.product === 'ReactNative');
1
+ import { maybe } from "../globals/index.js";
2
+ export var canUseWeakMap = typeof WeakMap === 'function' &&
3
+ maybe(function () { return navigator.product; }) !== 'ReactNative';
3
4
  export var canUseWeakSet = typeof WeakSet === 'function';
4
5
  export var canUseSymbol = typeof Symbol === 'function' &&
5
6
  typeof Symbol.for === 'function';
7
+ export var canUseDOM = typeof maybe(function () { return window.document.createElement; }) === "function";
8
+ var usingJSDOM = maybe(function () { return navigator.userAgent.indexOf("jsdom") >= 0; }) || false;
9
+ export var canUseLayoutEffect = canUseDOM && !usingJSDOM;
6
10
  //# sourceMappingURL=canUse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"canUse.js","sourceRoot":"","sources":["../../../src/utilities/common/canUse.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,aAAa,GAAG,OAAO,OAAO,KAAK,UAAU,IAAI,CAAC,CAC7D,OAAO,SAAS,KAAK,QAAQ;IAC7B,SAAS,CAAC,OAAO,KAAK,aAAa,CACpC,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC;AAE3D,MAAM,CAAC,IAAM,YAAY,GACvB,OAAO,MAAM,KAAK,UAAU;IAC5B,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC","sourcesContent":["export const canUseWeakMap = typeof WeakMap === 'function' && !(\n typeof navigator === 'object' &&\n navigator.product === 'ReactNative'\n);\n\nexport const canUseWeakSet = typeof WeakSet === 'function';\n\nexport const canUseSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\n"]}
1
+ {"version":3,"file":"canUse.js","sourceRoot":"","sources":["../../../src/utilities/common/canUse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,IAAM,aAAa,GACxB,OAAO,OAAO,KAAK,UAAU;IAC7B,KAAK,CAAC,cAAM,OAAA,SAAS,CAAC,OAAO,EAAjB,CAAiB,CAAC,KAAK,aAAa,CAAC;AAEnD,MAAM,CAAC,IAAM,aAAa,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC;AAE3D,MAAM,CAAC,IAAM,YAAY,GACvB,OAAO,MAAM,KAAK,UAAU;IAC5B,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC;AAEnC,MAAM,CAAC,IAAM,SAAS,GACpB,OAAO,KAAK,CAAC,cAAM,OAAA,MAAM,CAAC,QAAQ,CAAC,aAAa,EAA7B,CAA6B,CAAC,KAAK,UAAU,CAAC;AAEnE,IAAM,UAAU,GASd,KAAK,CAAC,cAAM,OAAA,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC,IAAI,KAAK,CAAC;AAQlE,MAAM,CAAC,IAAM,kBAAkB,GAAG,SAAS,IAAI,CAAC,UAAU,CAAC","sourcesContent":["import { maybe } from \"../globals\";\n\nexport const canUseWeakMap =\n typeof WeakMap === 'function' &&\n maybe(() => navigator.product) !== 'ReactNative';\n\nexport const canUseWeakSet = typeof WeakSet === 'function';\n\nexport const canUseSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\n\nexport const canUseDOM =\n typeof maybe(() => window.document.createElement) === \"function\";\n\nconst usingJSDOM: boolean =\n // Following advice found in this comment from @domenic (maintainer of jsdom):\n // https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\n //\n // Since we control the version of Jest and jsdom used when running Apollo\n // Client tests, and that version is recent enought to include \" jsdom/x.y.z\"\n // at the end of the user agent string, I believe this case is all we need to\n // check. Testing for \"Node.js\" was recommended for backwards compatibility\n // with older version of jsdom, but we don't have that problem.\n maybe(() => navigator.userAgent.indexOf(\"jsdom\") >= 0) || false;\n\n// Our tests should all continue to pass if we remove this !usingJSDOM\n// condition, thereby allowing useLayoutEffect when using jsdom. Unfortunately,\n// if we allow useLayoutEffect, then useSyncExternalStore generates many\n// warnings about useLayoutEffect doing nothing on the server. While these\n// warnings are harmless, this !usingJSDOM condition seems to be the best way to\n// prevent them (i.e. skipping useLayoutEffect when using jsdom).\nexport const canUseLayoutEffect = canUseDOM && !usingJSDOM;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mergeDeep.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/mergeDeep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAkB5C,oBAAY,mBAAmB,CAAC,CAAC,SAAS,GAAG,EAAE,IAC7C,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GACvB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GACpC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GACjD,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAC9D,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAC3E,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AAElC,wBAAgB,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE,EACvC,GAAG,OAAO,EAAE,CAAC,GACZ,mBAAmB,CAAC,CAAC,CAAC,CAExB;AAQD,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAUjD;AAED,oBAAY,kBAAkB,CAAC,YAAY,SAAS,GAAG,EAAE,IAAI,CAC3D,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EACpC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EACpC,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,GAAG,OAAO,EAAE,YAAY,KACrB,GAAG,CAAC;AAOT,qBAAa,UAAU,CAAC,YAAY,SAAS,GAAG,EAAE;IAE9C,OAAO,CAAC,UAAU;gBAAV,UAAU,GAAE,kBAAkB,CAAC,YAAY,CAAqB;IAGnE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,YAAY,GAAG,GAAG;IA6B9D,QAAQ,yBAAmB;IAElC,OAAO,CAAC,UAAU,CAAkB;IAE7B,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;CAoB3C"}
1
+ {"version":3,"file":"mergeDeep.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/mergeDeep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAkB5C,oBAAY,mBAAmB,CAAC,CAAC,SAAS,GAAG,EAAE,IAC7C,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GACvB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GACpC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GACjD,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAC9D,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAC3E,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AAElC,wBAAgB,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE,EACvC,GAAG,OAAO,EAAE,CAAC,GACZ,mBAAmB,CAAC,CAAC,CAAC,CAExB;AAQD,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAUjD;AAED,oBAAY,kBAAkB,CAAC,YAAY,SAAS,GAAG,EAAE,IAAI,CAC3D,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EACpC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EACpC,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,GAAG,OAAO,EAAE,YAAY,KACrB,GAAG,CAAC;AAOT,qBAAa,UAAU,CAAC,YAAY,SAAS,GAAG,EAAE;IAE9C,OAAO,CAAC,UAAU;gBAAV,UAAU,GAAE,kBAAkB,CAAC,YAAY,CAAqB;IAGnE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,YAAY,GAAG,GAAG;IA6B9D,QAAQ,yBAAmB;IAElC,OAAO,CAAC,UAAU,CAAkB;IAE7B,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;CAgB3C"}