@apollo/client 3.11.10 → 3.11.11-rc.0
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.
- package/.changeset/early-bobcats-eat.md +5 -0
- package/.changeset/flat-beans-knock.md +15 -0
- package/.changeset/kind-toys-tie.md +5 -0
- package/.changeset/nasty-camels-pay.md +36 -0
- package/.changeset/nervous-owls-hear.md +5 -0
- package/.changeset/pre.json +14 -0
- package/CHANGELOG.md +59 -0
- package/apollo-client.cjs +500 -118
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/cache/cache.cjs +237 -31
- package/cache/cache.cjs.map +1 -1
- package/cache/cache.cjs.native.js +237 -31
- package/cache/core/cache.d.ts +13 -10
- package/cache/core/cache.js +32 -14
- package/cache/core/cache.js.map +1 -1
- package/cache/core/types/Cache.d.ts +2 -1
- package/cache/core/types/Cache.js.map +1 -1
- package/cache/core/types/DataProxy.d.ts +4 -3
- package/cache/core/types/DataProxy.js.map +1 -1
- package/cache/inmemory/entityStore.js +3 -3
- package/cache/inmemory/inMemoryCache.d.ts +3 -1
- package/cache/inmemory/inMemoryCache.js +7 -0
- package/cache/inmemory/inMemoryCache.js.map +1 -1
- package/cache/inmemory/key-extractor.js +1 -1
- package/cache/inmemory/policies.js +16 -13
- package/cache/inmemory/policies.js.map +1 -1
- package/cache/inmemory/readFromStore.js +2 -2
- package/cache/inmemory/writeToStore.js +4 -4
- package/core/ApolloClient.d.ts +14 -6
- package/core/ApolloClient.js +17 -6
- package/core/ApolloClient.js.map +1 -1
- package/core/LocalState.js +2 -2
- package/core/ObservableQuery.d.ts +17 -14
- package/core/ObservableQuery.js +31 -16
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryInfo.js.map +1 -1
- package/core/QueryManager.d.ts +22 -4
- package/core/QueryManager.js +63 -14
- package/core/QueryManager.js.map +1 -1
- package/core/core.cjs +321 -37
- package/core/core.cjs.map +1 -1
- package/core/core.cjs.native.js +321 -37
- package/core/index.d.ts +1 -0
- package/core/index.js.map +1 -1
- package/core/masking.d.ts +10 -0
- package/core/masking.js +230 -0
- package/core/masking.js.map +1 -0
- package/core/types.d.ts +3 -2
- package/core/types.js.map +1 -1
- package/core/watchQueryOptions.d.ts +8 -6
- package/core/watchQueryOptions.js.map +1 -1
- package/dev/dev.cjs +136 -88
- package/dev/dev.cjs.map +1 -1
- package/dev/dev.cjs.native.js +136 -88
- package/invariantErrorCodes.js +146 -87
- package/link/core/ApolloLink.js +2 -2
- package/link/core/core.cjs +2 -2
- package/link/core/core.cjs.map +1 -1
- package/link/core/core.cjs.native.js +2 -2
- package/link/http/checkFetcher.js +1 -1
- package/link/http/createHttpLink.js +1 -1
- package/link/http/http.cjs +3 -3
- package/link/http/http.cjs.map +1 -1
- package/link/http/http.cjs.native.js +3 -3
- package/link/http/serializeFetchParameter.js +1 -1
- package/link/persisted-queries/index.js +2 -2
- package/link/persisted-queries/persisted-queries.cjs +2 -2
- package/link/persisted-queries/persisted-queries.cjs.map +1 -1
- package/link/persisted-queries/persisted-queries.cjs.native.js +2 -2
- package/link/utils/toPromise.js +1 -1
- package/link/utils/utils.cjs +2 -2
- package/link/utils/utils.cjs.map +1 -1
- package/link/utils/utils.cjs.native.js +2 -2
- package/link/utils/validateOperation.js +1 -1
- package/masking/index.d.ts +2 -0
- package/masking/index.js +2 -0
- package/masking/index.js.map +1 -0
- package/masking/internal/types.d.ts +15 -0
- package/masking/internal/types.js +2 -0
- package/masking/internal/types.js.map +1 -0
- package/masking/masking.cjs +3 -0
- package/masking/masking.cjs.map +1 -0
- package/masking/masking.cjs.native.js +3 -0
- package/masking/masking.d.cts +1 -0
- package/masking/package.json +8 -0
- package/masking/types.d.ts +44 -0
- package/masking/types.js +2 -0
- package/masking/types.js.map +1 -0
- package/package.json +1 -1
- package/react/context/ApolloConsumer.js +1 -1
- package/react/context/ApolloContext.js +1 -1
- package/react/context/ApolloProvider.js +1 -1
- package/react/context/context.cjs +3 -3
- package/react/context/context.cjs.map +1 -1
- package/react/context/context.cjs.native.js +3 -3
- package/react/hoc/hoc-utils.js +1 -1
- package/react/hoc/hoc.cjs +2 -2
- package/react/hoc/hoc.cjs.map +1 -1
- package/react/hoc/hoc.cjs.native.js +2 -2
- package/react/hoc/withApollo.js +1 -1
- package/react/hooks/hooks.cjs +24 -16
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/hooks.cjs.native.js +24 -16
- package/react/hooks/useApolloClient.js +1 -1
- package/react/hooks/useFragment.d.ts +4 -3
- package/react/hooks/useFragment.js +12 -5
- package/react/hooks/useFragment.js.map +1 -1
- package/react/hooks/useLazyQuery.js +1 -1
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useLoadableQuery.js +2 -2
- package/react/hooks/useQuery.d.ts +4 -3
- package/react/hooks/useQuery.js +2 -1
- package/react/hooks/useQuery.js.map +1 -1
- package/react/hooks/useReadQuery.d.ts +2 -1
- package/react/hooks/useReadQuery.js.map +1 -1
- package/react/hooks/useSubscription.d.ts +2 -1
- package/react/hooks/useSubscription.js +3 -3
- package/react/hooks/useSubscription.js.map +1 -1
- package/react/hooks/useSuspenseQuery.d.ts +6 -5
- package/react/hooks/useSuspenseQuery.js +2 -2
- package/react/hooks/useSuspenseQuery.js.map +1 -1
- package/react/hooks/useSyncExternalStore.js +1 -1
- package/react/internal/cache/QueryReference.d.ts +5 -4
- package/react/internal/cache/QueryReference.js +1 -1
- package/react/internal/cache/QueryReference.js.map +1 -1
- package/react/internal/internal.cjs +2 -2
- package/react/internal/internal.cjs.map +1 -1
- package/react/internal/internal.cjs.native.js +2 -2
- package/react/parser/index.js +5 -5
- package/react/parser/parser.cjs +5 -5
- package/react/parser/parser.cjs.map +1 -1
- package/react/parser/parser.cjs.native.js +5 -5
- package/react/types/types.d.ts +18 -42
- package/react/types/types.js.map +1 -1
- package/testing/core/core.cjs +3 -3
- package/testing/core/core.cjs.map +1 -1
- package/testing/core/core.cjs.native.js +3 -3
- package/testing/core/mocking/mockLink.d.ts +3 -2
- package/testing/core/mocking/mockLink.js +3 -3
- package/testing/core/mocking/mockLink.js.map +1 -1
- package/testing/core/mocking/mockQueryManager.d.ts +1 -0
- package/testing/core/mocking/mockQueryManager.js +1 -1
- package/testing/core/mocking/mockQueryManager.js.map +1 -1
- package/testing/internal/disposables/index.d.ts +1 -0
- package/testing/internal/disposables/index.js +1 -0
- package/testing/internal/disposables/index.js.map +1 -1
- package/testing/internal/disposables/withProdMode.d.ts +4 -0
- package/testing/internal/disposables/withProdMode.js +10 -0
- package/testing/internal/disposables/withProdMode.js.map +1 -0
- package/testing/internal/scenarios/index.d.ts +28 -0
- package/testing/internal/scenarios/index.js +18 -2
- package/testing/internal/scenarios/index.js.map +1 -1
- package/utilities/common/maybeDeepFreeze.d.ts +1 -0
- package/utilities/common/maybeDeepFreeze.js +1 -1
- package/utilities/common/maybeDeepFreeze.js.map +1 -1
- package/utilities/globals/globals.cjs +1 -1
- package/utilities/globals/globals.cjs.map +1 -1
- package/utilities/globals/globals.cjs.native.js +1 -1
- package/utilities/graphql/DocumentTransform.js +1 -1
- package/utilities/graphql/directives.d.ts +3 -1
- package/utilities/graphql/directives.js +39 -5
- package/utilities/graphql/directives.js.map +1 -1
- package/utilities/graphql/fragments.d.ts +1 -0
- package/utilities/graphql/fragments.js +18 -3
- package/utilities/graphql/fragments.js.map +1 -1
- package/utilities/graphql/getFromAST.js +8 -8
- package/utilities/graphql/storeUtils.js +1 -1
- package/utilities/graphql/transform.d.ts +1 -0
- package/utilities/graphql/transform.js +21 -2
- package/utilities/graphql/transform.js.map +1 -1
- package/utilities/index.d.ts +8 -4
- package/utilities/index.js +5 -4
- package/utilities/index.js.map +1 -1
- package/utilities/promises/preventUnhandledRejection.d.ts +2 -0
- package/utilities/promises/preventUnhandledRejection.js +5 -0
- package/utilities/promises/preventUnhandledRejection.js.map +1 -0
- package/utilities/types/NoInfer.d.ts +27 -0
- package/utilities/types/NoInfer.js +2 -0
- package/utilities/types/NoInfer.js.map +1 -0
- package/utilities/types/Prettify.d.ts +4 -0
- package/utilities/types/Prettify.js +2 -0
- package/utilities/types/Prettify.js.map +1 -0
- package/utilities/types/UnionToIntersection.d.ts +2 -0
- package/utilities/types/UnionToIntersection.js +2 -0
- package/utilities/types/UnionToIntersection.js.map +1 -0
- package/utilities/utilities.cjs +92 -19
- package/utilities/utilities.cjs.map +1 -1
- package/utilities/utilities.cjs.native.js +92 -19
- package/version.js +1 -1
package/core/core.cjs.native.js
CHANGED
|
@@ -12,6 +12,7 @@ var cache = require('../cache');
|
|
|
12
12
|
var errors = require('../errors');
|
|
13
13
|
var trie = require('@wry/trie');
|
|
14
14
|
var graphql = require('graphql');
|
|
15
|
+
var optimism = require('optimism');
|
|
15
16
|
var utils = require('../link/utils');
|
|
16
17
|
var tsInvariant = require('ts-invariant');
|
|
17
18
|
var graphqlTag = require('graphql-tag');
|
|
@@ -20,7 +21,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
20
21
|
|
|
21
22
|
var equal__default = /*#__PURE__*/_interopDefaultLegacy(equal);
|
|
22
23
|
|
|
23
|
-
var version = "3.11.
|
|
24
|
+
var version = "3.11.11-rc.0";
|
|
24
25
|
|
|
25
26
|
function isNonNullObject(obj) {
|
|
26
27
|
return obj !== null && typeof obj === "object";
|
|
@@ -213,7 +214,7 @@ var ObservableQuery = (function (_super) {
|
|
|
213
214
|
observer.error && observer.error(last.error);
|
|
214
215
|
}
|
|
215
216
|
else if (last && last.result) {
|
|
216
|
-
observer.next && observer.next(last.result);
|
|
217
|
+
observer.next && observer.next(_this.maskResult(last.result));
|
|
217
218
|
}
|
|
218
219
|
if (first) {
|
|
219
220
|
_this.reobserve().catch(function () { });
|
|
@@ -231,6 +232,7 @@ var ObservableQuery = (function (_super) {
|
|
|
231
232
|
_this.waitForOwnResult = skipCacheDataFor(options.fetchPolicy);
|
|
232
233
|
_this.isTornDown = false;
|
|
233
234
|
_this.subscribeToMore = _this.subscribeToMore.bind(_this);
|
|
235
|
+
_this.maskResult = _this.maskResult.bind(_this);
|
|
234
236
|
var _b = queryManager.defaultOptions.watchQuery, _c = _b === void 0 ? {} : _b, _d = _c.fetchPolicy, defaultFetchPolicy = _d === void 0 ? "cache-first" : _d;
|
|
235
237
|
var _e = options.fetchPolicy, fetchPolicy = _e === void 0 ? defaultFetchPolicy : _e,
|
|
236
238
|
_f = options.initialFetchPolicy,
|
|
@@ -279,7 +281,7 @@ var ObservableQuery = (function (_super) {
|
|
|
279
281
|
ObservableQuery.prototype.resetDiff = function () {
|
|
280
282
|
this.queryInfo.resetDiff();
|
|
281
283
|
};
|
|
282
|
-
ObservableQuery.prototype.
|
|
284
|
+
ObservableQuery.prototype.getCurrentFullResult = function (saveAsLastResult) {
|
|
283
285
|
if (saveAsLastResult === void 0) { saveAsLastResult = true; }
|
|
284
286
|
var lastResult = this.getLastResult(true);
|
|
285
287
|
var networkStatus = this.queryInfo.networkStatus ||
|
|
@@ -327,12 +329,19 @@ var ObservableQuery = (function (_super) {
|
|
|
327
329
|
}
|
|
328
330
|
return result;
|
|
329
331
|
};
|
|
332
|
+
ObservableQuery.prototype.getCurrentResult = function (saveAsLastResult) {
|
|
333
|
+
if (saveAsLastResult === void 0) { saveAsLastResult = true; }
|
|
334
|
+
return this.maskResult(this.getCurrentFullResult(saveAsLastResult));
|
|
335
|
+
};
|
|
330
336
|
ObservableQuery.prototype.isDifferentFromLastResult = function (newResult, variables) {
|
|
331
337
|
if (!this.last) {
|
|
332
338
|
return true;
|
|
333
339
|
}
|
|
334
|
-
var
|
|
335
|
-
|
|
340
|
+
var documentInfo = this.queryManager.getDocumentInfo(this.query);
|
|
341
|
+
var dataMasking = this.queryManager.dataMasking;
|
|
342
|
+
var query = dataMasking ? documentInfo.nonReactiveQuery : this.query;
|
|
343
|
+
var resultIsDifferent = dataMasking || documentInfo.hasNonreactiveDirective ?
|
|
344
|
+
!equalByQuery(query, this.last.result, newResult, this.variables)
|
|
336
345
|
: !equal.equal(this.last.result, newResult);
|
|
337
346
|
return (resultIsDifferent || (variables && !equal.equal(this.last.variables, variables)));
|
|
338
347
|
};
|
|
@@ -377,7 +386,7 @@ var ObservableQuery = (function (_super) {
|
|
|
377
386
|
var vars = queryDef.variableDefinitions;
|
|
378
387
|
if (!vars || !vars.some(function (v) { return v.variable.name.value === "variables"; })) {
|
|
379
388
|
globalThis.__DEV__ !== false && globals.invariant.warn(
|
|
380
|
-
|
|
389
|
+
21,
|
|
381
390
|
variables,
|
|
382
391
|
((_a = queryDef.name) === null || _a === void 0 ? void 0 : _a.value) || queryDef
|
|
383
392
|
);
|
|
@@ -409,7 +418,7 @@ var ObservableQuery = (function (_super) {
|
|
|
409
418
|
var updateQuery = fetchMoreOptions === null || fetchMoreOptions === void 0 ? void 0 : fetchMoreOptions.updateQuery;
|
|
410
419
|
var isCached = this.options.fetchPolicy !== "no-cache";
|
|
411
420
|
if (!isCached) {
|
|
412
|
-
globals.invariant(updateQuery,
|
|
421
|
+
globals.invariant(updateQuery, 22);
|
|
413
422
|
}
|
|
414
423
|
return this.queryManager
|
|
415
424
|
.fetchQuery(qid, combinedOptions, exports.NetworkStatus.fetchMore)
|
|
@@ -456,7 +465,7 @@ var ObservableQuery = (function (_super) {
|
|
|
456
465
|
});
|
|
457
466
|
_this.reportResult(tslib.__assign(tslib.__assign({}, lastResult), { data: data }), _this.variables);
|
|
458
467
|
}
|
|
459
|
-
return fetchMoreResult;
|
|
468
|
+
return _this.maskResult(fetchMoreResult);
|
|
460
469
|
})
|
|
461
470
|
.finally(function () {
|
|
462
471
|
if (isCached && !updatedQuerySet.has(_this.query)) {
|
|
@@ -490,7 +499,7 @@ var ObservableQuery = (function (_super) {
|
|
|
490
499
|
options.onError(err);
|
|
491
500
|
return;
|
|
492
501
|
}
|
|
493
|
-
globalThis.__DEV__ !== false && globals.invariant.error(
|
|
502
|
+
globalThis.__DEV__ !== false && globals.invariant.error(23, err);
|
|
494
503
|
},
|
|
495
504
|
});
|
|
496
505
|
this.subscriptions.add(subscription);
|
|
@@ -590,7 +599,7 @@ var ObservableQuery = (function (_super) {
|
|
|
590
599
|
if (pollingInfo && pollingInfo.interval === pollInterval) {
|
|
591
600
|
return;
|
|
592
601
|
}
|
|
593
|
-
globals.invariant(pollInterval,
|
|
602
|
+
globals.invariant(pollInterval, 24);
|
|
594
603
|
var info = pollingInfo || (this.pollingInfo = {});
|
|
595
604
|
info.interval = pollInterval;
|
|
596
605
|
var maybeFetch = function () {
|
|
@@ -693,8 +702,7 @@ var ObservableQuery = (function (_super) {
|
|
|
693
702
|
return concast;
|
|
694
703
|
};
|
|
695
704
|
ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {
|
|
696
|
-
return this.reobserveAsConcast(newOptions, newNetworkStatus)
|
|
697
|
-
.promise;
|
|
705
|
+
return utilities.preventUnhandledRejection(this.reobserveAsConcast(newOptions, newNetworkStatus).promise.then(this.maskResult));
|
|
698
706
|
};
|
|
699
707
|
ObservableQuery.prototype.resubscribeAfterError = function () {
|
|
700
708
|
var args = [];
|
|
@@ -709,7 +717,7 @@ var ObservableQuery = (function (_super) {
|
|
|
709
717
|
};
|
|
710
718
|
ObservableQuery.prototype.observe = function () {
|
|
711
719
|
this.reportResult(
|
|
712
|
-
this.
|
|
720
|
+
this.getCurrentFullResult(false), this.variables);
|
|
713
721
|
};
|
|
714
722
|
ObservableQuery.prototype.reportResult = function (result, variables) {
|
|
715
723
|
var lastError = this.getLastError();
|
|
@@ -718,7 +726,7 @@ var ObservableQuery = (function (_super) {
|
|
|
718
726
|
this.updateLastResult(result, variables);
|
|
719
727
|
}
|
|
720
728
|
if (lastError || isDifferent) {
|
|
721
|
-
utilities.iterateObserversSafely(this.observers, "next", result);
|
|
729
|
+
utilities.iterateObserversSafely(this.observers, "next", this.maskResult(result));
|
|
722
730
|
}
|
|
723
731
|
};
|
|
724
732
|
ObservableQuery.prototype.reportError = function (error, variables) {
|
|
@@ -747,6 +755,14 @@ var ObservableQuery = (function (_super) {
|
|
|
747
755
|
ObservableQuery.prototype.transformDocument = function (document) {
|
|
748
756
|
return this.queryManager.transform(document);
|
|
749
757
|
};
|
|
758
|
+
ObservableQuery.prototype.maskResult = function (result) {
|
|
759
|
+
return result && "data" in result ? tslib.__assign(tslib.__assign({}, result), { data: this.queryManager.maskOperation({
|
|
760
|
+
document: this.query,
|
|
761
|
+
data: result.data,
|
|
762
|
+
fetchPolicy: this.options.fetchPolicy,
|
|
763
|
+
id: this.queryId,
|
|
764
|
+
}) }) : result;
|
|
765
|
+
};
|
|
750
766
|
return ObservableQuery;
|
|
751
767
|
}(utilities.Observable));
|
|
752
768
|
utilities.fixObservableSubclass(ObservableQuery);
|
|
@@ -767,11 +783,11 @@ function reobserveCacheFirst(obsQuery) {
|
|
|
767
783
|
return obsQuery.reobserve();
|
|
768
784
|
}
|
|
769
785
|
function defaultSubscriptionObserverErrorCallback(error) {
|
|
770
|
-
globalThis.__DEV__ !== false && globals.invariant.error(
|
|
786
|
+
globalThis.__DEV__ !== false && globals.invariant.error(25, error.message, error.stack);
|
|
771
787
|
}
|
|
772
788
|
function logMissingFieldErrors(missing) {
|
|
773
789
|
if (globalThis.__DEV__ !== false && missing) {
|
|
774
|
-
globalThis.__DEV__ !== false && globals.invariant.debug(
|
|
790
|
+
globalThis.__DEV__ !== false && globals.invariant.debug(26, missing);
|
|
775
791
|
}
|
|
776
792
|
}
|
|
777
793
|
function skipCacheDataFor(fetchPolicy ) {
|
|
@@ -1058,6 +1074,215 @@ function shouldWriteResult(result, errorPolicy) {
|
|
|
1058
1074
|
return writeWithErrors;
|
|
1059
1075
|
}
|
|
1060
1076
|
|
|
1077
|
+
var disableWarningsSlot = new optimism.Slot();
|
|
1078
|
+
function maskOperation(data, document, cache) {
|
|
1079
|
+
var _a;
|
|
1080
|
+
if (!cache.fragmentMatches) {
|
|
1081
|
+
if (globalThis.__DEV__ !== false) {
|
|
1082
|
+
warnOnImproperCacheImplementation();
|
|
1083
|
+
}
|
|
1084
|
+
return data;
|
|
1085
|
+
}
|
|
1086
|
+
var definition = utilities.getOperationDefinition(document);
|
|
1087
|
+
globals.invariant(definition, 38);
|
|
1088
|
+
if (data == null) {
|
|
1089
|
+
return data;
|
|
1090
|
+
}
|
|
1091
|
+
var context = {
|
|
1092
|
+
operationType: definition.operation,
|
|
1093
|
+
operationName: (_a = definition.name) === null || _a === void 0 ? void 0 : _a.value,
|
|
1094
|
+
fragmentMap: utilities.createFragmentMap(utilities.getFragmentDefinitions(document)),
|
|
1095
|
+
cache: cache,
|
|
1096
|
+
};
|
|
1097
|
+
var _b = maskSelectionSet(data, definition.selectionSet, context), masked = _b[0], changed = _b[1];
|
|
1098
|
+
if (Object.isFrozen(data)) {
|
|
1099
|
+
disableWarningsSlot.withValue(true, utilities.maybeDeepFreeze, [masked]);
|
|
1100
|
+
}
|
|
1101
|
+
return changed ? masked : data;
|
|
1102
|
+
}
|
|
1103
|
+
function maskFragment(data, document, cache, fragmentName) {
|
|
1104
|
+
if (!cache.fragmentMatches) {
|
|
1105
|
+
if (globalThis.__DEV__ !== false) {
|
|
1106
|
+
warnOnImproperCacheImplementation();
|
|
1107
|
+
}
|
|
1108
|
+
return data;
|
|
1109
|
+
}
|
|
1110
|
+
var fragments = document.definitions.filter(function (node) {
|
|
1111
|
+
return node.kind === graphql.Kind.FRAGMENT_DEFINITION;
|
|
1112
|
+
});
|
|
1113
|
+
if (typeof fragmentName === "undefined") {
|
|
1114
|
+
globals.invariant(fragments.length === 1, 39, fragments.length);
|
|
1115
|
+
fragmentName = fragments[0].name.value;
|
|
1116
|
+
}
|
|
1117
|
+
var fragment = fragments.find(function (fragment) { return fragment.name.value === fragmentName; });
|
|
1118
|
+
globals.invariant(!!fragment, 40, fragmentName);
|
|
1119
|
+
if (data == null) {
|
|
1120
|
+
return data;
|
|
1121
|
+
}
|
|
1122
|
+
if (equal.equal(data, {})) {
|
|
1123
|
+
return data;
|
|
1124
|
+
}
|
|
1125
|
+
var context = {
|
|
1126
|
+
operationType: "fragment",
|
|
1127
|
+
operationName: fragment.name.value,
|
|
1128
|
+
fragmentMap: utilities.createFragmentMap(utilities.getFragmentDefinitions(document)),
|
|
1129
|
+
cache: cache,
|
|
1130
|
+
};
|
|
1131
|
+
var _a = maskSelectionSet(data, fragment.selectionSet, context), masked = _a[0], changed = _a[1];
|
|
1132
|
+
if (Object.isFrozen(data)) {
|
|
1133
|
+
disableWarningsSlot.withValue(true, utilities.maybeDeepFreeze, [masked]);
|
|
1134
|
+
}
|
|
1135
|
+
return changed ? masked : data;
|
|
1136
|
+
}
|
|
1137
|
+
function maskSelectionSet(data, selectionSet, context, path) {
|
|
1138
|
+
if (Array.isArray(data)) {
|
|
1139
|
+
var changed_1 = false;
|
|
1140
|
+
var masked = data.map(function (item, index) {
|
|
1141
|
+
if (item === null) {
|
|
1142
|
+
return null;
|
|
1143
|
+
}
|
|
1144
|
+
var _a = maskSelectionSet(item, selectionSet, context, globalThis.__DEV__ !== false ? "".concat(path || "", "[").concat(index, "]") : void 0), masked = _a[0], itemChanged = _a[1];
|
|
1145
|
+
changed_1 || (changed_1 = itemChanged);
|
|
1146
|
+
return itemChanged ? masked : item;
|
|
1147
|
+
});
|
|
1148
|
+
return [changed_1 ? masked : data, changed_1];
|
|
1149
|
+
}
|
|
1150
|
+
var result = selectionSet.selections.reduce(function (_a, selection) {
|
|
1151
|
+
var memo = _a[0], changed = _a[1];
|
|
1152
|
+
switch (selection.kind) {
|
|
1153
|
+
case graphql.Kind.FIELD: {
|
|
1154
|
+
var keyName = utilities.resultKeyNameFromField(selection);
|
|
1155
|
+
var childSelectionSet = selection.selectionSet;
|
|
1156
|
+
memo[keyName] = data[keyName];
|
|
1157
|
+
if (memo[keyName] === void 0) {
|
|
1158
|
+
delete memo[keyName];
|
|
1159
|
+
}
|
|
1160
|
+
if (keyName in memo && childSelectionSet && data[keyName] !== null) {
|
|
1161
|
+
var _b = maskSelectionSet(data[keyName], childSelectionSet, context, globalThis.__DEV__ !== false ? "".concat(path || "", ".").concat(keyName) : void 0), masked = _b[0], childChanged = _b[1];
|
|
1162
|
+
if (childChanged ||
|
|
1163
|
+
Object.keys(masked).length !== Object.keys(data[keyName]).length) {
|
|
1164
|
+
memo[keyName] = masked;
|
|
1165
|
+
changed = true;
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
return [memo, changed];
|
|
1169
|
+
}
|
|
1170
|
+
case graphql.Kind.INLINE_FRAGMENT: {
|
|
1171
|
+
if (selection.typeCondition &&
|
|
1172
|
+
!context.cache.fragmentMatches(selection, data.__typename)) {
|
|
1173
|
+
return [memo, changed];
|
|
1174
|
+
}
|
|
1175
|
+
var _c = maskSelectionSet(data, selection.selectionSet, context, path), fragmentData = _c[0], childChanged = _c[1];
|
|
1176
|
+
return [
|
|
1177
|
+
tslib.__assign(tslib.__assign({}, memo), fragmentData),
|
|
1178
|
+
changed || childChanged,
|
|
1179
|
+
];
|
|
1180
|
+
}
|
|
1181
|
+
case graphql.Kind.FRAGMENT_SPREAD: {
|
|
1182
|
+
var fragmentName = selection.name.value;
|
|
1183
|
+
var fragment = context.fragmentMap[fragmentName] ||
|
|
1184
|
+
(context.fragmentMap[fragmentName] =
|
|
1185
|
+
context.cache.lookupFragment(fragmentName));
|
|
1186
|
+
globals.invariant(fragment, 41, fragmentName);
|
|
1187
|
+
var mode = utilities.getFragmentMaskMode(selection);
|
|
1188
|
+
if (mode === "mask") {
|
|
1189
|
+
return [memo, true];
|
|
1190
|
+
}
|
|
1191
|
+
if (globalThis.__DEV__ !== false) {
|
|
1192
|
+
if (mode === "migrate") {
|
|
1193
|
+
return [
|
|
1194
|
+
addFieldAccessorWarnings(memo, data, fragment.selectionSet, path || "", context),
|
|
1195
|
+
true,
|
|
1196
|
+
];
|
|
1197
|
+
}
|
|
1198
|
+
}
|
|
1199
|
+
var _d = maskSelectionSet(data, fragment.selectionSet, context, path), fragmentData = _d[0], changed_2 = _d[1];
|
|
1200
|
+
return [tslib.__assign(tslib.__assign({}, memo), fragmentData), changed_2];
|
|
1201
|
+
}
|
|
1202
|
+
}
|
|
1203
|
+
}, [Object.create(null), false]);
|
|
1204
|
+
if (data && "__typename" in data && !("__typename" in result[0])) {
|
|
1205
|
+
result[0].__typename = data.__typename;
|
|
1206
|
+
}
|
|
1207
|
+
return result;
|
|
1208
|
+
}
|
|
1209
|
+
function addFieldAccessorWarnings(memo, data, selectionSetNode, path, context) {
|
|
1210
|
+
if (Array.isArray(data)) {
|
|
1211
|
+
return data.map(function (item, index) {
|
|
1212
|
+
return addFieldAccessorWarnings(memo[index] || Object.create(null), item, selectionSetNode, "".concat(path, "[").concat(index, "]"), context);
|
|
1213
|
+
});
|
|
1214
|
+
}
|
|
1215
|
+
return selectionSetNode.selections.reduce(function (memo, selection) {
|
|
1216
|
+
switch (selection.kind) {
|
|
1217
|
+
case graphql.Kind.FIELD: {
|
|
1218
|
+
var keyName = utilities.resultKeyNameFromField(selection);
|
|
1219
|
+
var childSelectionSet = selection.selectionSet;
|
|
1220
|
+
if (keyName in memo) {
|
|
1221
|
+
return memo;
|
|
1222
|
+
}
|
|
1223
|
+
var value = data[keyName];
|
|
1224
|
+
if (childSelectionSet) {
|
|
1225
|
+
value = addFieldAccessorWarnings(memo[keyName] || Object.create(null), data[keyName], childSelectionSet, "".concat(path, ".").concat(keyName), context);
|
|
1226
|
+
}
|
|
1227
|
+
if (globalThis.__DEV__ !== false) {
|
|
1228
|
+
addAccessorWarning(memo, value, keyName, path, context);
|
|
1229
|
+
}
|
|
1230
|
+
if (!(globalThis.__DEV__ !== false)) {
|
|
1231
|
+
memo[keyName] = data[keyName];
|
|
1232
|
+
}
|
|
1233
|
+
return memo;
|
|
1234
|
+
}
|
|
1235
|
+
case graphql.Kind.INLINE_FRAGMENT: {
|
|
1236
|
+
return addFieldAccessorWarnings(memo, data, selection.selectionSet, path, context);
|
|
1237
|
+
}
|
|
1238
|
+
case graphql.Kind.FRAGMENT_SPREAD: {
|
|
1239
|
+
var fragment = context.fragmentMap[selection.name.value];
|
|
1240
|
+
var mode = utilities.getFragmentMaskMode(selection);
|
|
1241
|
+
if (mode === "mask") {
|
|
1242
|
+
return memo;
|
|
1243
|
+
}
|
|
1244
|
+
if (mode === "unmask") {
|
|
1245
|
+
var fragmentData = maskSelectionSet(data, fragment.selectionSet, context, path)[0];
|
|
1246
|
+
return Object.assign(memo, fragmentData);
|
|
1247
|
+
}
|
|
1248
|
+
return addFieldAccessorWarnings(memo, data, fragment.selectionSet, path, context);
|
|
1249
|
+
}
|
|
1250
|
+
}
|
|
1251
|
+
}, memo);
|
|
1252
|
+
}
|
|
1253
|
+
function addAccessorWarning(data, value, fieldName, path, context) {
|
|
1254
|
+
if (value === void 0) {
|
|
1255
|
+
return;
|
|
1256
|
+
}
|
|
1257
|
+
var getValue = function () {
|
|
1258
|
+
if (disableWarningsSlot.getValue()) {
|
|
1259
|
+
return value;
|
|
1260
|
+
}
|
|
1261
|
+
globalThis.__DEV__ !== false && globals.invariant.warn(42, context.operationName ?
|
|
1262
|
+
"".concat(context.operationType, " '").concat(context.operationName, "'")
|
|
1263
|
+
: "anonymous ".concat(context.operationType), "".concat(path, ".").concat(fieldName).replace(/^\./, ""));
|
|
1264
|
+
getValue = function () { return value; };
|
|
1265
|
+
return value;
|
|
1266
|
+
};
|
|
1267
|
+
Object.defineProperty(data, fieldName, {
|
|
1268
|
+
get: function () {
|
|
1269
|
+
return getValue();
|
|
1270
|
+
},
|
|
1271
|
+
set: function (value) {
|
|
1272
|
+
getValue = function () { return value; };
|
|
1273
|
+
},
|
|
1274
|
+
enumerable: true,
|
|
1275
|
+
configurable: true,
|
|
1276
|
+
});
|
|
1277
|
+
}
|
|
1278
|
+
var issuedWarning = false;
|
|
1279
|
+
function warnOnImproperCacheImplementation() {
|
|
1280
|
+
if (!issuedWarning) {
|
|
1281
|
+
issuedWarning = true;
|
|
1282
|
+
globalThis.__DEV__ !== false && globals.invariant.warn(43);
|
|
1283
|
+
}
|
|
1284
|
+
}
|
|
1285
|
+
|
|
1061
1286
|
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
1062
1287
|
var IGNORE = Object.create(null);
|
|
1063
1288
|
var QueryManager = (function () {
|
|
@@ -1072,6 +1297,7 @@ var QueryManager = (function () {
|
|
|
1072
1297
|
this.requestIdCounter = 1;
|
|
1073
1298
|
this.mutationIdCounter = 1;
|
|
1074
1299
|
this.inFlightLinkObservables = new trie.Trie(false);
|
|
1300
|
+
this.noCacheWarningsByQueryId = new Set();
|
|
1075
1301
|
var defaultDocumentTransform = new utilities.DocumentTransform(function (document) { return _this.cache.transformDocument(document); },
|
|
1076
1302
|
{ cache: false });
|
|
1077
1303
|
this.cache = options.cache;
|
|
@@ -1082,6 +1308,7 @@ var QueryManager = (function () {
|
|
|
1082
1308
|
this.localState = options.localState;
|
|
1083
1309
|
this.ssrMode = options.ssrMode;
|
|
1084
1310
|
this.assumeImmutableResults = options.assumeImmutableResults;
|
|
1311
|
+
this.dataMasking = options.dataMasking;
|
|
1085
1312
|
var documentTransform = options.documentTransform;
|
|
1086
1313
|
this.documentTransform =
|
|
1087
1314
|
documentTransform ?
|
|
@@ -1099,7 +1326,7 @@ var QueryManager = (function () {
|
|
|
1099
1326
|
this.queries.forEach(function (_info, queryId) {
|
|
1100
1327
|
_this.stopQueryNoBroadcast(queryId);
|
|
1101
1328
|
});
|
|
1102
|
-
this.cancelPendingFetches(globals.newInvariantError(
|
|
1329
|
+
this.cancelPendingFetches(globals.newInvariantError(27));
|
|
1103
1330
|
};
|
|
1104
1331
|
QueryManager.prototype.cancelPendingFetches = function (error) {
|
|
1105
1332
|
this.fetchCancelFns.forEach(function (cancel) { return cancel(error); });
|
|
@@ -1113,8 +1340,8 @@ var QueryManager = (function () {
|
|
|
1113
1340
|
return tslib.__generator(this, function (_j) {
|
|
1114
1341
|
switch (_j.label) {
|
|
1115
1342
|
case 0:
|
|
1116
|
-
globals.invariant(mutation,
|
|
1117
|
-
globals.invariant(fetchPolicy === "network-only" || fetchPolicy === "no-cache",
|
|
1343
|
+
globals.invariant(mutation, 28);
|
|
1344
|
+
globals.invariant(fetchPolicy === "network-only" || fetchPolicy === "no-cache", 29);
|
|
1118
1345
|
mutationId = this.generateMutationId();
|
|
1119
1346
|
mutation = this.cache.transformForLink(this.transform(mutation));
|
|
1120
1347
|
hasClientExports = this.getDocumentInfo(mutation).hasClientExports;
|
|
@@ -1184,7 +1411,12 @@ var QueryManager = (function () {
|
|
|
1184
1411
|
next: function (storeResult) {
|
|
1185
1412
|
self.broadcastQueries();
|
|
1186
1413
|
if (!("hasNext" in storeResult) || storeResult.hasNext === false) {
|
|
1187
|
-
resolve(storeResult)
|
|
1414
|
+
resolve(tslib.__assign(tslib.__assign({}, storeResult), { data: self.maskOperation({
|
|
1415
|
+
document: mutation,
|
|
1416
|
+
data: storeResult.data,
|
|
1417
|
+
fetchPolicy: fetchPolicy,
|
|
1418
|
+
id: mutationId,
|
|
1419
|
+
}) }));
|
|
1188
1420
|
}
|
|
1189
1421
|
},
|
|
1190
1422
|
error: function (err) {
|
|
@@ -1390,11 +1622,13 @@ var QueryManager = (function () {
|
|
|
1390
1622
|
hasClientExports: utilities.hasClientExports(document),
|
|
1391
1623
|
hasForcedResolvers: this.localState.shouldForceResolvers(document),
|
|
1392
1624
|
hasNonreactiveDirective: utilities.hasDirectives(["nonreactive"], document),
|
|
1625
|
+
nonReactiveQuery: utilities.addNonReactiveToNamedFragments(document),
|
|
1393
1626
|
clientQuery: this.localState.clientQuery(document),
|
|
1394
1627
|
serverQuery: utilities.removeDirectivesFromDocument([
|
|
1395
1628
|
{ name: "client", remove: true },
|
|
1396
1629
|
{ name: "connection" },
|
|
1397
1630
|
{ name: "nonreactive" },
|
|
1631
|
+
{ name: "unmask" },
|
|
1398
1632
|
], document),
|
|
1399
1633
|
defaultVars: utilities.getDefaultValues(utilities.getOperationDefinition(document)),
|
|
1400
1634
|
asQuery: tslib.__assign(tslib.__assign({}, document), { definitions: document.definitions.map(function (def) {
|
|
@@ -1436,11 +1670,21 @@ var QueryManager = (function () {
|
|
|
1436
1670
|
QueryManager.prototype.query = function (options, queryId) {
|
|
1437
1671
|
var _this = this;
|
|
1438
1672
|
if (queryId === void 0) { queryId = this.generateQueryId(); }
|
|
1439
|
-
globals.invariant(options.query,
|
|
1440
|
-
globals.invariant(options.query.kind === "Document",
|
|
1441
|
-
globals.invariant(!options.returnPartialData,
|
|
1442
|
-
globals.invariant(!options.pollInterval,
|
|
1443
|
-
|
|
1673
|
+
globals.invariant(options.query, 30);
|
|
1674
|
+
globals.invariant(options.query.kind === "Document", 31);
|
|
1675
|
+
globals.invariant(!options.returnPartialData, 32);
|
|
1676
|
+
globals.invariant(!options.pollInterval, 33);
|
|
1677
|
+
var query = this.transform(options.query);
|
|
1678
|
+
return this.fetchQuery(queryId, tslib.__assign(tslib.__assign({}, options), { query: query }))
|
|
1679
|
+
.then(function (result) {
|
|
1680
|
+
return result && tslib.__assign(tslib.__assign({}, result), { data: _this.maskOperation({
|
|
1681
|
+
document: query,
|
|
1682
|
+
data: result.data,
|
|
1683
|
+
fetchPolicy: options.fetchPolicy,
|
|
1684
|
+
id: queryId,
|
|
1685
|
+
}) });
|
|
1686
|
+
})
|
|
1687
|
+
.finally(function () { return _this.stopQuery(queryId); });
|
|
1444
1688
|
};
|
|
1445
1689
|
QueryManager.prototype.generateQueryId = function () {
|
|
1446
1690
|
return String(this.queryIdCounter++);
|
|
@@ -1464,7 +1708,7 @@ var QueryManager = (function () {
|
|
|
1464
1708
|
if (options === void 0) { options = {
|
|
1465
1709
|
discardWatches: true,
|
|
1466
1710
|
}; }
|
|
1467
|
-
this.cancelPendingFetches(globals.newInvariantError(
|
|
1711
|
+
this.cancelPendingFetches(globals.newInvariantError(34));
|
|
1468
1712
|
this.queries.forEach(function (queryInfo) {
|
|
1469
1713
|
if (queryInfo.observableQuery) {
|
|
1470
1714
|
queryInfo.networkStatus = exports.NetworkStatus.loading;
|
|
@@ -1540,7 +1784,7 @@ var QueryManager = (function () {
|
|
|
1540
1784
|
if (globalThis.__DEV__ !== false && queryNamesAndDocs.size) {
|
|
1541
1785
|
queryNamesAndDocs.forEach(function (included, nameOrDoc) {
|
|
1542
1786
|
if (!included) {
|
|
1543
|
-
globalThis.__DEV__ !== false && globals.invariant.warn(typeof nameOrDoc === "string" ?
|
|
1787
|
+
globalThis.__DEV__ !== false && globals.invariant.warn(typeof nameOrDoc === "string" ? 35 : 36, nameOrDoc);
|
|
1544
1788
|
}
|
|
1545
1789
|
});
|
|
1546
1790
|
}
|
|
@@ -1565,9 +1809,10 @@ var QueryManager = (function () {
|
|
|
1565
1809
|
QueryManager.prototype.setObservableQuery = function (observableQuery) {
|
|
1566
1810
|
this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);
|
|
1567
1811
|
};
|
|
1568
|
-
QueryManager.prototype.startGraphQLSubscription = function (
|
|
1812
|
+
QueryManager.prototype.startGraphQLSubscription = function (options) {
|
|
1569
1813
|
var _this = this;
|
|
1570
|
-
var query =
|
|
1814
|
+
var query = options.query, variables = options.variables;
|
|
1815
|
+
var fetchPolicy = options.fetchPolicy, _a = options.errorPolicy, errorPolicy = _a === void 0 ? "none" : _a, _b = options.context, context = _b === void 0 ? {} : _b, _c = options.extensions, extensions = _c === void 0 ? {} : _c;
|
|
1571
1816
|
query = this.transform(query);
|
|
1572
1817
|
variables = this.getVariables(query, variables);
|
|
1573
1818
|
var makeObservable = function (variables) {
|
|
@@ -1849,6 +2094,34 @@ var QueryManager = (function () {
|
|
|
1849
2094
|
}
|
|
1850
2095
|
return results;
|
|
1851
2096
|
};
|
|
2097
|
+
QueryManager.prototype.maskOperation = function (options) {
|
|
2098
|
+
var _a, _b, _c;
|
|
2099
|
+
var document = options.document, data = options.data;
|
|
2100
|
+
if (globalThis.__DEV__ !== false) {
|
|
2101
|
+
var fetchPolicy = options.fetchPolicy, id = options.id;
|
|
2102
|
+
var operationType = (_a = utilities.getOperationDefinition(document)) === null || _a === void 0 ? void 0 : _a.operation;
|
|
2103
|
+
var operationId = ((_b = operationType === null || operationType === void 0 ? void 0 : operationType[0]) !== null && _b !== void 0 ? _b : "o") + id;
|
|
2104
|
+
if (this.dataMasking &&
|
|
2105
|
+
fetchPolicy === "no-cache" &&
|
|
2106
|
+
!utilities.isFullyUnmaskedOperation(document) &&
|
|
2107
|
+
!this.noCacheWarningsByQueryId.has(operationId)) {
|
|
2108
|
+
this.noCacheWarningsByQueryId.add(operationId);
|
|
2109
|
+
globalThis.__DEV__ !== false && globals.invariant.warn(
|
|
2110
|
+
37,
|
|
2111
|
+
(_c = utilities.getOperationName(document)) !== null && _c !== void 0 ? _c : "Unnamed ".concat(operationType !== null && operationType !== void 0 ? operationType : "operation")
|
|
2112
|
+
);
|
|
2113
|
+
}
|
|
2114
|
+
}
|
|
2115
|
+
return (this.dataMasking ?
|
|
2116
|
+
maskOperation(data, document, this.cache)
|
|
2117
|
+
: data);
|
|
2118
|
+
};
|
|
2119
|
+
QueryManager.prototype.maskFragment = function (options) {
|
|
2120
|
+
var data = options.data, fragment = options.fragment, fragmentName = options.fragmentName;
|
|
2121
|
+
return this.dataMasking ?
|
|
2122
|
+
maskFragment(data, fragment, this.cache, fragmentName)
|
|
2123
|
+
: data;
|
|
2124
|
+
};
|
|
1852
2125
|
QueryManager.prototype.fetchQueryByPolicy = function (queryInfo, _a,
|
|
1853
2126
|
networkStatus) {
|
|
1854
2127
|
var _this = this;
|
|
@@ -2149,7 +2422,7 @@ var LocalState = (function () {
|
|
|
2149
2422
|
}
|
|
2150
2423
|
else {
|
|
2151
2424
|
fragment = fragmentMap[selection.name.value];
|
|
2152
|
-
globals.invariant(fragment,
|
|
2425
|
+
globals.invariant(fragment, 19, selection.name.value);
|
|
2153
2426
|
}
|
|
2154
2427
|
if (fragment && fragment.typeCondition) {
|
|
2155
2428
|
typeCondition = fragment.typeCondition.name.value;
|
|
@@ -2263,7 +2536,7 @@ var LocalState = (function () {
|
|
|
2263
2536
|
},
|
|
2264
2537
|
FragmentSpread: function (spread, _, __, ___, ancestors) {
|
|
2265
2538
|
var fragment = fragmentMap[spread.name.value];
|
|
2266
|
-
globals.invariant(fragment,
|
|
2539
|
+
globals.invariant(fragment, 20, spread.name.value);
|
|
2267
2540
|
var fragmentSelections = collectByDefinition(fragment);
|
|
2268
2541
|
if (fragmentSelections.size > 0) {
|
|
2269
2542
|
ancestors.forEach(function (node) {
|
|
@@ -2366,10 +2639,10 @@ var ApolloClient = (function () {
|
|
|
2366
2639
|
this.resetStoreCallbacks = [];
|
|
2367
2640
|
this.clearStoreCallbacks = [];
|
|
2368
2641
|
if (!options.cache) {
|
|
2369
|
-
throw globals.newInvariantError(
|
|
2642
|
+
throw globals.newInvariantError(16);
|
|
2370
2643
|
}
|
|
2371
2644
|
var uri = options.uri, credentials = options.credentials, headers = options.headers, cache = options.cache, documentTransform = options.documentTransform, _b = options.ssrMode, ssrMode = _b === void 0 ? false : _b, _c = options.ssrForceFetchDelay, ssrForceFetchDelay = _c === void 0 ? 0 : _c,
|
|
2372
|
-
connectToDevTools = options.connectToDevTools, _d = options.queryDeduplication, queryDeduplication = _d === void 0 ? true : _d, defaultOptions = options.defaultOptions, defaultContext = options.defaultContext, _e = options.assumeImmutableResults, assumeImmutableResults = _e === void 0 ? cache.assumeImmutableResults : _e, resolvers = options.resolvers, typeDefs = options.typeDefs, fragmentMatcher = options.fragmentMatcher, clientAwarenessName = options.name, clientAwarenessVersion = options.version, devtools = options.devtools;
|
|
2645
|
+
connectToDevTools = options.connectToDevTools, _d = options.queryDeduplication, queryDeduplication = _d === void 0 ? true : _d, defaultOptions = options.defaultOptions, defaultContext = options.defaultContext, _e = options.assumeImmutableResults, assumeImmutableResults = _e === void 0 ? cache.assumeImmutableResults : _e, resolvers = options.resolvers, typeDefs = options.typeDefs, fragmentMatcher = options.fragmentMatcher, clientAwarenessName = options.name, clientAwarenessVersion = options.version, devtools = options.devtools, dataMasking = options.dataMasking;
|
|
2373
2646
|
var link = options.link;
|
|
2374
2647
|
if (!link) {
|
|
2375
2648
|
link =
|
|
@@ -2409,6 +2682,7 @@ var ApolloClient = (function () {
|
|
|
2409
2682
|
documentTransform: documentTransform,
|
|
2410
2683
|
queryDeduplication: queryDeduplication,
|
|
2411
2684
|
ssrMode: ssrMode,
|
|
2685
|
+
dataMasking: !!dataMasking,
|
|
2412
2686
|
clientAwareness: {
|
|
2413
2687
|
name: clientAwarenessName,
|
|
2414
2688
|
version: clientAwarenessVersion,
|
|
@@ -2497,7 +2771,7 @@ var ApolloClient = (function () {
|
|
|
2497
2771
|
if (this.defaultOptions.query) {
|
|
2498
2772
|
options = utilities.mergeOptions(this.defaultOptions.query, options);
|
|
2499
2773
|
}
|
|
2500
|
-
globals.invariant(options.fetchPolicy !== "cache-and-network",
|
|
2774
|
+
globals.invariant(options.fetchPolicy !== "cache-and-network", 17);
|
|
2501
2775
|
if (this.disableNetworkFetches && options.fetchPolicy === "network-only") {
|
|
2502
2776
|
options = tslib.__assign(tslib.__assign({}, options), { fetchPolicy: "cache-first" });
|
|
2503
2777
|
}
|
|
@@ -2510,14 +2784,24 @@ var ApolloClient = (function () {
|
|
|
2510
2784
|
return this.queryManager.mutate(options);
|
|
2511
2785
|
};
|
|
2512
2786
|
ApolloClient.prototype.subscribe = function (options) {
|
|
2513
|
-
|
|
2787
|
+
var _this = this;
|
|
2788
|
+
var id = this.queryManager.generateQueryId();
|
|
2789
|
+
return this.queryManager
|
|
2790
|
+
.startGraphQLSubscription(options)
|
|
2791
|
+
.map(function (result) { return (tslib.__assign(tslib.__assign({}, result), { data: _this.queryManager.maskOperation({
|
|
2792
|
+
document: options.query,
|
|
2793
|
+
data: result.data,
|
|
2794
|
+
fetchPolicy: options.fetchPolicy,
|
|
2795
|
+
id: id,
|
|
2796
|
+
}) })); });
|
|
2514
2797
|
};
|
|
2515
2798
|
ApolloClient.prototype.readQuery = function (options, optimistic) {
|
|
2516
2799
|
if (optimistic === void 0) { optimistic = false; }
|
|
2517
2800
|
return this.cache.readQuery(options, optimistic);
|
|
2518
2801
|
};
|
|
2519
2802
|
ApolloClient.prototype.watchFragment = function (options) {
|
|
2520
|
-
|
|
2803
|
+
var _a;
|
|
2804
|
+
return this.cache.watchFragment(tslib.__assign(tslib.__assign({}, options), (_a = {}, _a[Symbol.for("apollo.dataMasking")] = this.queryManager.dataMasking, _a)));
|
|
2521
2805
|
};
|
|
2522
2806
|
ApolloClient.prototype.readFragment = function (options, optimistic) {
|
|
2523
2807
|
if (optimistic === void 0) { optimistic = false; }
|
|
@@ -2593,7 +2877,7 @@ var ApolloClient = (function () {
|
|
|
2593
2877
|
result.queries = queries;
|
|
2594
2878
|
result.results = results;
|
|
2595
2879
|
result.catch(function (error) {
|
|
2596
|
-
globalThis.__DEV__ !== false && globals.invariant.debug(
|
|
2880
|
+
globalThis.__DEV__ !== false && globals.invariant.debug(18, error);
|
|
2597
2881
|
});
|
|
2598
2882
|
return result;
|
|
2599
2883
|
};
|
package/core/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from "../link/core/index.js";
|
|
|
14
14
|
export * from "../link/http/index.js";
|
|
15
15
|
export type { ServerError } from "../link/utils/index.js";
|
|
16
16
|
export { fromError, toPromise, fromPromise, throwServerError, } from "../link/utils/index.js";
|
|
17
|
+
export type { DataMasking, FragmentType, Masked, MaskedDocumentNode, MaybeMasked, Unmasked, } from "../masking/index.js";
|
|
17
18
|
export type { DocumentTransformCacheKey, Observer, ObservableSubscription, Reference, StoreObject, } from "../utilities/index.js";
|
|
18
19
|
export { DocumentTransform, Observable, isReference, makeReference, } from "../utilities/index.js";
|
|
19
20
|
import { setVerbosity } from "ts-invariant";
|
package/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,UAAU;AAGV,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAK/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAcvD,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAoBhE,OAAO,EACL,KAAK,EACL,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,OAAO,GACR,MAAM,mBAAmB,CAAC;AAE3B,cAAc,4BAA4B,CAAC;AAE3C,UAAU;AAEV,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,UAAU;AAGV,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAK/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAcvD,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAoBhE,OAAO,EACL,KAAK,EACL,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,OAAO,GACR,MAAM,mBAAmB,CAAC;AAE3B,cAAc,4BAA4B,CAAC;AAE3C,UAAU;AAEV,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAqBhC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,gBAAgB;AAEhB,yEAAyE;AACzE,qEAAqE;AACrE,uEAAuE;AACvE,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,CAAC;AAC3C,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEzC,0DAA0D;AAC1D,qEAAqE;AACrE,sEAAsE;AACtE,yEAAyE;AACzE,yCAAyC;AACzC,wEAAwE;AACxE,6EAA6E;AAC7E,8EAA8E;AAC9E,sEAAsE;AACtE,qEAAqE;AACrE,4EAA4E;AAC5E,6BAA6B;AAC7B,OAAO,EACL,GAAG,EACH,WAAW,EACX,uBAAuB,EACvB,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,aAAa,CAAC","sourcesContent":["/* Core */\n\nexport type { ApolloClientOptions, DefaultOptions } from \"./ApolloClient.js\";\nexport { ApolloClient, mergeOptions } from \"./ApolloClient.js\";\nexport type {\n FetchMoreOptions,\n UpdateQueryOptions,\n} from \"./ObservableQuery.js\";\nexport { ObservableQuery } from \"./ObservableQuery.js\";\nexport type {\n QueryOptions,\n WatchQueryOptions,\n MutationOptions,\n SubscriptionOptions,\n FetchPolicy,\n WatchQueryFetchPolicy,\n MutationFetchPolicy,\n RefetchWritePolicy,\n ErrorPolicy,\n FetchMoreQueryOptions,\n SubscribeToMoreOptions,\n} from \"./watchQueryOptions.js\";\nexport { NetworkStatus, isNetworkRequestSettled } from \"./networkStatus.js\";\nexport * from \"./types.js\";\nexport type { Resolver, FragmentMatcher } from \"./LocalState.js\";\nexport { isApolloError, ApolloError } from \"../errors/index.js\";\n/* Cache */\n\nexport type {\n // All the exports (types) from ../cache, minus cacheSlot,\n // which we want to keep semi-private.\n Transaction,\n DataProxy,\n InMemoryCacheConfig,\n ReactiveVar,\n TypePolicies,\n TypePolicy,\n FieldPolicy,\n FieldReadFunction,\n FieldMergeFunction,\n FieldFunctionOptions,\n PossibleTypesMap,\n WatchFragmentOptions,\n WatchFragmentResult,\n} from \"../cache/index.js\";\nexport {\n Cache,\n ApolloCache,\n InMemoryCache,\n MissingFieldError,\n defaultDataIdFromObject,\n makeVar,\n} from \"../cache/index.js\";\n\nexport * from \"../cache/inmemory/types.js\";\n\n/* Link */\n\nexport * from \"../link/core/index.js\";\nexport * from \"../link/http/index.js\";\nexport type { ServerError } from \"../link/utils/index.js\";\nexport {\n fromError,\n toPromise,\n fromPromise,\n throwServerError,\n} from \"../link/utils/index.js\";\n\n/* Masking */\nexport type {\n DataMasking,\n FragmentType,\n Masked,\n MaskedDocumentNode,\n MaybeMasked,\n Unmasked,\n} from \"../masking/index.js\";\n\n/* Utilities */\n\nexport type {\n DocumentTransformCacheKey,\n Observer,\n ObservableSubscription,\n Reference,\n StoreObject,\n} from \"../utilities/index.js\";\nexport {\n DocumentTransform,\n Observable,\n isReference,\n makeReference,\n} from \"../utilities/index.js\";\n\n/* Supporting */\n\n// The verbosity of invariant.{log,warn,error} can be controlled globally\n// (for anyone using the same ts-invariant package) by passing \"log\",\n// \"warn\", \"error\", or \"silent\" to setVerbosity (\"log\" is the default).\n// Note that all invariant.* logging is hidden in production.\nimport { setVerbosity } from \"ts-invariant\";\nexport { setVerbosity as setLogVerbosity };\nsetVerbosity(__DEV__ ? \"log\" : \"silent\");\n\n// Note that importing `gql` by itself, then destructuring\n// additional properties separately before exporting, is intentional.\n// Due to the way the `graphql-tag` library is setup, certain bundlers\n// can't find the properties added to the exported `gql` function without\n// additional guidance (e.g. Rollup - see\n// https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module).\n// Instead of having people that are using bundlers with `@apollo/client` add\n// extra bundler config to help `graphql-tag` exports be found (which would be\n// awkward since they aren't importing `graphql-tag` themselves), this\n// workaround of pulling the extra properties off the `gql` function,\n// then re-exporting them separately, helps keeps bundlers happy without any\n// additional config changes.\nexport {\n gql,\n resetCaches,\n disableFragmentWarnings,\n enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables,\n} from \"graphql-tag\";\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ApolloCache, DocumentNode, TypedDocumentNode } from "./index.js";
|
|
2
|
+
export declare const disableWarningsSlot: {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
hasValue(): boolean;
|
|
5
|
+
getValue(): boolean | undefined;
|
|
6
|
+
withValue<TResult, TArgs extends any[], TThis = any>(value: boolean, callback: (this: TThis, ...args: TArgs) => TResult, args?: TArgs | undefined, thisArg?: TThis | undefined): TResult;
|
|
7
|
+
};
|
|
8
|
+
export declare function maskOperation<TData = unknown>(data: TData, document: DocumentNode | TypedDocumentNode<TData>, cache: ApolloCache<unknown>): TData;
|
|
9
|
+
export declare function maskFragment<TData = unknown>(data: TData, document: TypedDocumentNode<TData> | DocumentNode, cache: ApolloCache<unknown>, fragmentName?: string): TData;
|
|
10
|
+
//# sourceMappingURL=masking.d.ts.map
|