Socket
Socket
Sign inDemoInstall

@apollo/client

Package Overview
Dependencies
Maintainers
4
Versions
574
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@apollo/client - npm Package Compare versions

Comparing version 3.7.10 to 3.7.15

2

cache/inmemory/policies.js

@@ -62,3 +62,3 @@ import { __assign, __rest } from "tslib";

while (keyFn) {
var specifierOrId = keyFn(object, context);
var specifierOrId = keyFn(__assign(__assign({}, object), storeObject), context);
if (isArray(specifierOrId)) {

@@ -65,0 +65,0 @@ keyFn = keyFieldsFnFromSpecifier(specifierOrId);

import { NetworkStatus } from './networkStatus';
import { Observable } from '../utilities';
import { Concast, Observable } from '../utilities';
import { ApolloError } from '../errors';

@@ -64,2 +64,3 @@ import { QueryManager } from './QueryManager';

private updateLastResult;
reobserveAsConcast(newOptions?: Partial<WatchQueryOptions<TVariables, TData>>, newNetworkStatus?: NetworkStatus): Concast<ApolloQueryResult<TData>>;
reobserve(newOptions?: Partial<WatchQueryOptions<TVariables, TData>>, newNetworkStatus?: NetworkStatus): Promise<ApolloQueryResult<TData>>;

@@ -66,0 +67,0 @@ private observe;

@@ -340,3 +340,3 @@ import { __assign, __extends } from "tslib";

this.queryManager.setObservableQuery(this);
return this.queryManager.fetchQueryObservable(this.queryId, options, newNetworkStatus);
return this.queryManager['fetchConcastWithInfo'](this.queryId, options, newNetworkStatus);
};

@@ -395,3 +395,3 @@ ObservableQuery.prototype.updatePolling = function () {

};
ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {
ObservableQuery.prototype.reobserveAsConcast = function (newOptions, newNetworkStatus) {
var _this = this;

@@ -422,3 +422,3 @@ this.isTornDown = false;

var variables = options.variables && __assign({}, options.variables);
var concast = this.fetch(options, newNetworkStatus);
var _a = this.fetch(options, newNetworkStatus), concast = _a.concast, fromLink = _a.fromLink;
var observer = {

@@ -432,3 +432,3 @@ next: function (result) {

};
if (!useDisposableConcast) {
if (!useDisposableConcast && fromLink) {
if (this.concast && this.observer) {

@@ -441,4 +441,7 @@ this.concast.removeObserver(this.observer);

concast.addObserver(observer);
return concast.promise;
return concast;
};
ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {
return this.reobserveAsConcast(newOptions, newNetworkStatus).promise;
};
ObservableQuery.prototype.observe = function () {

@@ -445,0 +448,0 @@ this.reportResult(this.getCurrentResult(false), this.variables);

@@ -114,2 +114,3 @@ import { DocumentNode } from 'graphql';

fetchQueryObservable<TData, TVars extends OperationVariables>(queryId: string, options: WatchQueryOptions<TVars, TData>, networkStatus?: NetworkStatus): Concast<ApolloQueryResult<TData>>;
private fetchConcastWithInfo;
refetchQueries<TResult>({ updateCache, include, optimistic, removeOptimistic, onQueryUpdated, }: InternalRefetchQueriesOptions<ApolloCache<TStore>, TResult>): InternalRefetchQueriesMap<TResult>;

@@ -116,0 +117,0 @@ private fetchQueryByPolicy;

@@ -9,3 +9,3 @@ import { __assign, __awaiter, __generator } from "tslib";

import { mergeIncrementalData } from "../utilities/common/incrementalResult.js";
import { ApolloError, isApolloError } from "../errors/index.js";
import { ApolloError, isApolloError, graphQLResultHasProtocolErrors } from "../errors/index.js";
import { ObservableQuery, logMissingFieldErrors } from "./ObservableQuery.js";

@@ -15,2 +15,3 @@ import { NetworkStatus, isNetworkRequestInFlight } from "./networkStatus.js";

import { QueryInfo, shouldWriteResult, } from "./QueryInfo.js";
import { PROTOCOL_ERRORS_SYMBOL } from "../errors/index.js";
var hasOwnProperty = Object.prototype.hasOwnProperty;

@@ -532,6 +533,13 @@ var QueryManager = (function () {

}
if (graphQLResultHasError(result)) {
throw new ApolloError({
graphQLErrors: result.errors,
});
var hasErrors = graphQLResultHasError(result);
var hasProtocolErrors = graphQLResultHasProtocolErrors(result);
if (hasErrors || hasProtocolErrors) {
var errors = {};
if (hasErrors) {
errors.graphQLErrors = result.errors;
}
if (hasProtocolErrors) {
errors.protocolErrors = result.extensions[PROTOCOL_ERRORS_SYMBOL];
}
throw new ApolloError(errors);
}

@@ -668,2 +676,5 @@ return result;

QueryManager.prototype.fetchQueryObservable = function (queryId, options, networkStatus) {
return this.fetchConcastWithInfo(queryId, options, networkStatus).concast;
};
QueryManager.prototype.fetchConcastWithInfo = function (queryId, options, networkStatus) {
var _this = this;

@@ -687,9 +698,9 @@ if (networkStatus === void 0) { networkStatus = NetworkStatus.loading; }

normalized.variables = variables;
var concastSources = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);
var sourcesWithInfo = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);
if (normalized.fetchPolicy !== "standby" &&
concastSources.length > 0 &&
sourcesWithInfo.sources.length > 0 &&
queryInfo.observableQuery) {
queryInfo.observableQuery["applyNextFetchPolicy"]("after-fetch", options);
}
return concastSources;
return sourcesWithInfo;
};

@@ -701,7 +712,19 @@ var cleanupCancelFn = function () { return _this.fetchCancelFns.delete(queryId); };

});
var concast = new Concast(this.transform(normalized.query).hasClientExports
? this.localState.addExportedVariables(normalized.query, normalized.variables, normalized.context).then(fromVariables)
: fromVariables(normalized.variables));
var concast, containsDataFromLink;
if (this.transform(normalized.query).hasClientExports) {
concast = new Concast(this.localState
.addExportedVariables(normalized.query, normalized.variables, normalized.context)
.then(fromVariables).then(function (sourcesWithInfo) { return sourcesWithInfo.sources; }));
containsDataFromLink = true;
}
else {
var sourcesWithInfo = fromVariables(normalized.variables);
containsDataFromLink = sourcesWithInfo.fromLink;
concast = new Concast(sourcesWithInfo.sources);
}
concast.promise.then(cleanupCancelFn, cleanupCancelFn);
return concast;
return {
concast: concast,
fromLink: containsDataFromLink,
};
};

@@ -830,15 +853,8 @@ QueryManager.prototype.refetchQueries = function (_a) {

if (diff.complete) {
return [
resultsFromCache(diff, queryInfo.markReady()),
];
return { fromLink: false, sources: [resultsFromCache(diff, queryInfo.markReady())] };
}
if (returnPartialData || shouldNotify) {
return [
resultsFromCache(diff),
resultsFromLink(),
];
return { fromLink: true, sources: [resultsFromCache(diff), resultsFromLink()] };
}
return [
resultsFromLink(),
];
return { fromLink: true, sources: [resultsFromLink()] };
}

@@ -848,33 +864,26 @@ case "cache-and-network": {

if (diff.complete || returnPartialData || shouldNotify) {
return [
resultsFromCache(diff),
resultsFromLink(),
];
return { fromLink: true, sources: [resultsFromCache(diff), resultsFromLink()] };
}
return [
resultsFromLink(),
];
return { fromLink: true, sources: [resultsFromLink()] };
}
case "cache-only":
return [
resultsFromCache(readCache(), queryInfo.markReady()),
];
return { fromLink: false, sources: [resultsFromCache(readCache(), queryInfo.markReady())] };
case "network-only":
if (shouldNotify) {
return [
resultsFromCache(readCache()),
resultsFromLink(),
];
return { fromLink: true, sources: [resultsFromCache(readCache()), resultsFromLink()] };
}
return [resultsFromLink()];
return { fromLink: true, sources: [resultsFromLink()] };
case "no-cache":
if (shouldNotify) {
return [
resultsFromCache(queryInfo.getDiff()),
resultsFromLink(),
];
return {
fromLink: true,
sources: [
resultsFromCache(queryInfo.getDiff()),
resultsFromLink(),
],
};
}
return [resultsFromLink()];
return { fromLink: true, sources: [resultsFromLink()] };
case "standby":
return [];
return { fromLink: false, sources: [] };
}

@@ -881,0 +890,0 @@ };

@@ -9,2 +9,9 @@ 'use strict';

var PROTOCOL_ERRORS_SYMBOL = Symbol();
function graphQLResultHasProtocolErrors(result) {
if (result.extensions) {
return Array.isArray(result.extensions[PROTOCOL_ERRORS_SYMBOL]);
}
return false;
}
function isApolloError(err) {

@@ -14,18 +21,8 @@ return err.hasOwnProperty('graphQLErrors');

var generateErrorMessage = function (err) {
var message = '';
if (utilities.isNonEmptyArray(err.graphQLErrors) || utilities.isNonEmptyArray(err.clientErrors)) {
var errors = (err.graphQLErrors || [])
.concat(err.clientErrors || []);
errors.forEach(function (error) {
var errorMessage = error
? error.message
: 'Error message not found.';
message += "".concat(errorMessage, "\n");
});
}
if (err.networkError) {
message += "".concat(err.networkError.message, "\n");
}
message = message.replace(/\n$/, '');
return message;
var errors = tslib.__spreadArray(tslib.__spreadArray(tslib.__spreadArray([], err.graphQLErrors, true), err.clientErrors, true), err.protocolErrors, true);
if (err.networkError)
errors.push(err.networkError);
return errors
.map(function (err) { return utilities.isNonNullObject(err) && err.message || 'Error message not found.'; })
.join('\n');
};

@@ -35,6 +32,7 @@ var ApolloError = (function (_super) {

function ApolloError(_a) {
var graphQLErrors = _a.graphQLErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;
var graphQLErrors = _a.graphQLErrors, protocolErrors = _a.protocolErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;
var _this = _super.call(this, errorMessage) || this;
_this.name = 'ApolloError';
_this.graphQLErrors = graphQLErrors || [];
_this.protocolErrors = protocolErrors || [];
_this.clientErrors = clientErrors || [];

@@ -51,3 +49,5 @@ _this.networkError = networkError || null;

exports.ApolloError = ApolloError;
exports.PROTOCOL_ERRORS_SYMBOL = PROTOCOL_ERRORS_SYMBOL;
exports.graphQLResultHasProtocolErrors = graphQLResultHasProtocolErrors;
exports.isApolloError = isApolloError;
//# sourceMappingURL=errors.cjs.map
import '../utilities/globals';
import { GraphQLError } from 'graphql';
import { GraphQLError, GraphQLErrorExtensions } from 'graphql';
import { ServerParseError } from '../link/http';
import { ServerError } from '../link/utils';
import { FetchResult } from "../link/core";
export declare const PROTOCOL_ERRORS_SYMBOL: unique symbol;
type FetchResultWithSymbolExtensions<T> = FetchResult<T> & {
extensions: Record<string | symbol, any>;
};
export interface ApolloErrorOptions {
graphQLErrors?: ReadonlyArray<GraphQLError>;
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
clientErrors?: ReadonlyArray<Error>;
networkError?: Error | ServerParseError | ServerError | null;
errorMessage?: string;
extraInfo?: any;
}
export declare function graphQLResultHasProtocolErrors<T>(result: FetchResult<T>): result is FetchResultWithSymbolExtensions<T>;
export declare function isApolloError(err: Error): err is ApolloError;

@@ -12,13 +29,12 @@ export type GraphQLErrors = ReadonlyArray<GraphQLError>;

graphQLErrors: GraphQLErrors;
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
clientErrors: ReadonlyArray<Error>;
networkError: Error | ServerParseError | ServerError | null;
extraInfo: any;
constructor({ graphQLErrors, clientErrors, networkError, errorMessage, extraInfo, }: {
graphQLErrors?: ReadonlyArray<GraphQLError>;
clientErrors?: ReadonlyArray<Error>;
networkError?: Error | ServerParseError | ServerError | null;
errorMessage?: string;
extraInfo?: any;
});
constructor({ graphQLErrors, protocolErrors, clientErrors, networkError, errorMessage, extraInfo, }: ApolloErrorOptions);
}
export {};
//# sourceMappingURL=index.d.ts.map

@@ -1,4 +0,11 @@

import { __extends } from "tslib";
import { __extends, __spreadArray } from "tslib";
import "../utilities/globals/index.js";
import { isNonEmptyArray } from "../utilities/index.js";
import { isNonNullObject } from "../utilities/index.js";
export var PROTOCOL_ERRORS_SYMBOL = Symbol();
export function graphQLResultHasProtocolErrors(result) {
if (result.extensions) {
return Array.isArray(result.extensions[PROTOCOL_ERRORS_SYMBOL]);
}
return false;
}
export function isApolloError(err) {

@@ -8,18 +15,8 @@ return err.hasOwnProperty('graphQLErrors');

var generateErrorMessage = function (err) {
var message = '';
if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {
var errors = (err.graphQLErrors || [])
.concat(err.clientErrors || []);
errors.forEach(function (error) {
var errorMessage = error
? error.message
: 'Error message not found.';
message += "".concat(errorMessage, "\n");
});
}
if (err.networkError) {
message += "".concat(err.networkError.message, "\n");
}
message = message.replace(/\n$/, '');
return message;
var errors = __spreadArray(__spreadArray(__spreadArray([], err.graphQLErrors, true), err.clientErrors, true), err.protocolErrors, true);
if (err.networkError)
errors.push(err.networkError);
return errors
.map(function (err) { return isNonNullObject(err) && err.message || 'Error message not found.'; })
.join('\n');
};

@@ -29,6 +26,7 @@ var ApolloError = (function (_super) {

function ApolloError(_a) {
var graphQLErrors = _a.graphQLErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;
var graphQLErrors = _a.graphQLErrors, protocolErrors = _a.protocolErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;
var _this = _super.call(this, errorMessage) || this;
_this.name = 'ApolloError';
_this.graphQLErrors = graphQLErrors || [];
_this.protocolErrors = protocolErrors || [];
_this.clientErrors = clientErrors || [];

@@ -35,0 +33,0 @@ _this.networkError = networkError || null;

@@ -8,3 +8,3 @@ // This file is meant to help with looking up the source of errors like

{
"@apollo/client version": "3.7.10",
"@apollo/client version": "3.7.15",

@@ -11,0 +11,0 @@ 1: {

@@ -28,2 +28,6 @@ import { DocumentNode, ExecutionResult, GraphQLError } from "graphql";

}
export interface ApolloPayloadResult<TData = Record<string, any>, TExtensions = Record<string, any>> {
payload: SingleExecutionResult | ExecutionPatchResult | null;
errors?: ReadonlyArray<Error | string>;
}
export type ExecutionPatchResult<TData = Record<string, any>, TExtensions = Record<string, any>> = ExecutionPatchInitialResult<TData, TExtensions> | ExecutionPatchIncrementalResult<TData, TExtensions>;

@@ -30,0 +34,0 @@ export interface GraphQLRequest<TVariables = Record<string, any>> {

import { __assign, __rest } from "tslib";
import "../../utilities/globals/index.js";
import { invariant } from "../../utilities/globals/index.js";
import { visit } from 'graphql';

@@ -14,3 +15,3 @@ import { ApolloLink } from "../core/index.js";

import { fromError } from "../utils/index.js";
import { maybe } from "../../utilities/index.js";
import { maybe, getMainDefinition } from "../../utilities/index.js";
var backupFetch = maybe(function () { return fetch; });

@@ -76,2 +77,7 @@ export var createHttpLink = function (linkOptions) {

};
var definitionIsSubscription = function (d) {
return d.kind === 'OperationDefinition' && d.operation === 'subscription';
};
var isSubscription = definitionIsSubscription(getMainDefinition(operation.query));
var hasDefer = hasDirectives(['defer'], operation.query);
if (useGETForQueries &&

@@ -81,5 +87,15 @@ !operation.query.definitions.some(definitionIsMutation)) {

}
if (hasDirectives(['defer'], operation.query)) {
if (hasDefer || isSubscription) {
options.headers = options.headers || {};
options.headers.accept = "multipart/mixed; deferSpec=20220824, application/json";
var acceptHeader = "multipart/mixed;";
if (isSubscription && hasDefer) {
__DEV__ && invariant.warn("Multipart-subscriptions do not support @defer");
}
if (isSubscription) {
acceptHeader += 'boundary=graphql;subscriptionSpec=1.0,application/json';
}
else if (hasDefer) {
acceptHeader += 'deferSpec=20220824,application/json';
}
options.headers.accept = acceptHeader;
}

@@ -86,0 +102,0 @@ if (options.method === 'GET') {

@@ -9,2 +9,3 @@ 'use strict';

var utils = require('../utils');
var errors = require('../../errors');
var graphql = require('graphql');

@@ -184,10 +185,18 @@ var core = require('../core');

function isNonNullObject(obj) {
return obj !== null && typeof obj === 'object';
}
function isApolloPayloadResult(value) {
return isNonNullObject(value) && "payload" in value;
}
var hasOwnProperty = Object.prototype.hasOwnProperty;
function readMultipartBody(response, observer) {
var _a, _b, _c;
var _a, _b, _c, _d, _e;
return tslib.__awaiter(this, void 0, void 0, function () {
var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _d, value, done, chunk, bi, message, i, headers, contentType_1, body, result;
var _e;
return tslib.__generator(this, function (_f) {
switch (_f.label) {
var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _f, value, done, chunk, searchFrom, bi, message, i, headers, contentType_1, body, result, next;
var _g, _h;
return tslib.__generator(this, function (_j) {
switch (_j.label) {
case 0:

@@ -198,3 +207,3 @@ if (TextDecoder === undefined) {

decoder = new TextDecoder("utf-8");
contentType = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get('content-type');
contentType = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get("content-type");
delimiter = "boundary=";

@@ -204,7 +213,7 @@ boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter))

: "-";
boundary = "--".concat(boundaryVal);
boundary = "\r\n--".concat(boundaryVal);
buffer = "";
iterator = responseIterator(response);
running = true;
_f.label = 1;
_j.label = 1;
case 1:

@@ -214,30 +223,49 @@ if (!running) return [3, 3];

case 2:
_d = _f.sent(), value = _d.value, done = _d.done;
_f = _j.sent(), value = _f.value, done = _f.done;
chunk = typeof value === "string" ? value : decoder.decode(value);
searchFrom = buffer.length - boundary.length + 1;
running = !done;
buffer += chunk;
bi = buffer.indexOf(boundary);
bi = buffer.indexOf(boundary, searchFrom);
while (bi > -1) {
message = void 0;
_e = [
_g = [
buffer.slice(0, bi),
buffer.slice(bi + boundary.length),
], message = _e[0], buffer = _e[1];
if (message.trim()) {
i = message.indexOf("\r\n\r\n");
headers = parseHeaders(message.slice(0, i));
contentType_1 = headers["content-type"];
if (contentType_1 &&
contentType_1.toLowerCase().indexOf("application/json") === -1) {
throw new Error("Unsupported patch content type: application/json is required.");
}
body = message.slice(i);
], message = _g[0], buffer = _g[1];
i = message.indexOf("\r\n\r\n");
headers = parseHeaders(message.slice(0, i));
contentType_1 = headers["content-type"];
if (contentType_1 &&
contentType_1.toLowerCase().indexOf("application/json") === -1) {
throw new Error("Unsupported patch content type: application/json is required.");
}
body = message.slice(i);
if (body) {
try {
result = parseJsonBody(response, body.replace("\r\n", ""));
result = parseJsonBody(response, body);
if (Object.keys(result).length > 1 ||
"data" in result ||
"incremental" in result ||
"errors" in result) {
(_b = observer.next) === null || _b === void 0 ? void 0 : _b.call(observer, result);
"errors" in result ||
"payload" in result) {
if (isApolloPayloadResult(result)) {
next = {};
if ("payload" in result) {
next = tslib.__assign({}, result.payload);
}
if ("errors" in result) {
next = tslib.__assign(tslib.__assign({}, next), { extensions: tslib.__assign(tslib.__assign({}, ("extensions" in next ? next.extensions : null)), (_h = {}, _h[errors.PROTOCOL_ERRORS_SYMBOL] = result.errors, _h)) });
}
(_b = observer.next) === null || _b === void 0 ? void 0 : _b.call(observer, next);
}
else {
(_c = observer.next) === null || _c === void 0 ? void 0 : _c.call(observer, result);
}
}
else if (Object.keys(result).length === 1 &&
"hasNext" in result &&
!result.hasNext) {
(_d = observer.complete) === null || _d === void 0 ? void 0 : _d.call(observer);
}
}

@@ -252,3 +280,3 @@ catch (err) {

case 3:
(_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer);
(_e = observer.complete) === null || _e === void 0 ? void 0 : _e.call(observer);
return [2];

@@ -551,2 +579,7 @@ }

};
var definitionIsSubscription = function (d) {
return d.kind === 'OperationDefinition' && d.operation === 'subscription';
};
var isSubscription = definitionIsSubscription(utilities.getMainDefinition(operation.query));
var hasDefer = utilities.hasDirectives(['defer'], operation.query);
if (useGETForQueries &&

@@ -556,5 +589,15 @@ !operation.query.definitions.some(definitionIsMutation)) {

}
if (utilities.hasDirectives(['defer'], operation.query)) {
if (hasDefer || isSubscription) {
options.headers = options.headers || {};
options.headers.accept = "multipart/mixed; deferSpec=20220824, application/json";
var acceptHeader = "multipart/mixed;";
if (isSubscription && hasDefer) {
__DEV__ && globals.invariant.warn("Multipart-subscriptions do not support @defer");
}
if (isSubscription) {
acceptHeader += 'boundary=graphql;subscriptionSpec=1.0,application/json';
}
else if (hasDefer) {
acceptHeader += 'deferSpec=20220824,application/json';
}
options.headers.accept = acceptHeader;
}

@@ -561,0 +604,0 @@ if (options.method === 'GET') {

@@ -1,12 +0,14 @@

import { __awaiter, __generator } from "tslib";
import { __assign, __awaiter, __generator } from "tslib";
import { responseIterator } from "./responseIterator.js";
import { throwServerError } from "../utils/index.js";
import { PROTOCOL_ERRORS_SYMBOL } from "../../errors/index.js";
import { isApolloPayloadResult } from "../../utilities/common/incrementalResult.js";
var hasOwnProperty = Object.prototype.hasOwnProperty;
export function readMultipartBody(response, observer) {
var _a, _b, _c;
var _a, _b, _c, _d, _e;
return __awaiter(this, void 0, void 0, function () {
var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _d, value, done, chunk, bi, message, i, headers, contentType_1, body, result;
var _e;
return __generator(this, function (_f) {
switch (_f.label) {
var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _f, value, done, chunk, searchFrom, bi, message, i, headers, contentType_1, body, result, next;
var _g, _h;
return __generator(this, function (_j) {
switch (_j.label) {
case 0:

@@ -17,3 +19,3 @@ if (TextDecoder === undefined) {

decoder = new TextDecoder("utf-8");
contentType = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get('content-type');
contentType = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get("content-type");
delimiter = "boundary=";

@@ -23,7 +25,7 @@ boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter))

: "-";
boundary = "--".concat(boundaryVal);
boundary = "\r\n--".concat(boundaryVal);
buffer = "";
iterator = responseIterator(response);
running = true;
_f.label = 1;
_j.label = 1;
case 1:

@@ -33,30 +35,49 @@ if (!running) return [3, 3];

case 2:
_d = _f.sent(), value = _d.value, done = _d.done;
_f = _j.sent(), value = _f.value, done = _f.done;
chunk = typeof value === "string" ? value : decoder.decode(value);
searchFrom = buffer.length - boundary.length + 1;
running = !done;
buffer += chunk;
bi = buffer.indexOf(boundary);
bi = buffer.indexOf(boundary, searchFrom);
while (bi > -1) {
message = void 0;
_e = [
_g = [
buffer.slice(0, bi),
buffer.slice(bi + boundary.length),
], message = _e[0], buffer = _e[1];
if (message.trim()) {
i = message.indexOf("\r\n\r\n");
headers = parseHeaders(message.slice(0, i));
contentType_1 = headers["content-type"];
if (contentType_1 &&
contentType_1.toLowerCase().indexOf("application/json") === -1) {
throw new Error("Unsupported patch content type: application/json is required.");
}
body = message.slice(i);
], message = _g[0], buffer = _g[1];
i = message.indexOf("\r\n\r\n");
headers = parseHeaders(message.slice(0, i));
contentType_1 = headers["content-type"];
if (contentType_1 &&
contentType_1.toLowerCase().indexOf("application/json") === -1) {
throw new Error("Unsupported patch content type: application/json is required.");
}
body = message.slice(i);
if (body) {
try {
result = parseJsonBody(response, body.replace("\r\n", ""));
result = parseJsonBody(response, body);
if (Object.keys(result).length > 1 ||
"data" in result ||
"incremental" in result ||
"errors" in result) {
(_b = observer.next) === null || _b === void 0 ? void 0 : _b.call(observer, result);
"errors" in result ||
"payload" in result) {
if (isApolloPayloadResult(result)) {
next = {};
if ("payload" in result) {
next = __assign({}, result.payload);
}
if ("errors" in result) {
next = __assign(__assign({}, next), { extensions: __assign(__assign({}, ("extensions" in next ? next.extensions : null)), (_h = {}, _h[PROTOCOL_ERRORS_SYMBOL] = result.errors, _h)) });
}
(_b = observer.next) === null || _b === void 0 ? void 0 : _b.call(observer, next);
}
else {
(_c = observer.next) === null || _c === void 0 ? void 0 : _c.call(observer, result);
}
}
else if (Object.keys(result).length === 1 &&
"hasNext" in result &&
!result.hasNext) {
(_d = observer.complete) === null || _d === void 0 ? void 0 : _d.call(observer);
}
}

@@ -71,3 +92,3 @@ catch (err) {

case 3:
(_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer);
(_e = observer.complete) === null || _e === void 0 ? void 0 : _e.call(observer);
return [2];

@@ -74,0 +95,0 @@ }

@@ -43,6 +43,4 @@ import { __assign } from "tslib";

}
var hasOwnProperty = Object.prototype.hasOwnProperty;
var hashesByQuery = new WeakMap();
var nextHashesChildKey = 0;
export var createPersistedQueryLink = function (options) {
var hashesByQuery = new WeakMap();
__DEV__ ? invariant(options && (typeof options.sha256 === 'function' ||

@@ -57,3 +55,2 @@ typeof options.generateHash === 'function'), 'Missing/invalid "sha256" or "generateHash" function. Please ' +

var supportsPersistedQueries = true;
var hashesChildKey = 'forLink' + nextHashesChildKey++;
var getHashPromise = function (query) {

@@ -66,8 +63,6 @@ return new Promise(function (resolve) { return resolve(generateHash(query)); });

}
var hashes = hashesByQuery.get(query);
if (!hashes)
hashesByQuery.set(query, hashes = Object.create(null));
return hasOwnProperty.call(hashes, hashesChildKey)
? hashes[hashesChildKey]
: hashes[hashesChildKey] = getHashPromise(query);
var hash = hashesByQuery.get(query);
if (!hash)
hashesByQuery.set(query, hash = getHashPromise(query));
return hash;
}

@@ -91,5 +86,9 @@ return new ApolloLink(function (operation, forward) {

}
var networkErrors = networkError &&
networkError.result &&
networkError.result.errors;
var networkErrors = void 0;
if (typeof (networkError === null || networkError === void 0 ? void 0 : networkError.result) !== 'string') {
networkErrors =
networkError &&
networkError.result &&
networkError.result.errors;
}
if (isNonEmptyArray(networkErrors)) {

@@ -96,0 +95,0 @@ graphQLErrors.push.apply(graphQLErrors, networkErrors);

@@ -45,6 +45,4 @@ 'use strict';

}
var hasOwnProperty = Object.prototype.hasOwnProperty;
var hashesByQuery = new WeakMap();
var nextHashesChildKey = 0;
var createPersistedQueryLink = function (options) {
var hashesByQuery = new WeakMap();
__DEV__ ? globals.invariant(options && (typeof options.sha256 === 'function' ||

@@ -59,3 +57,2 @@ typeof options.generateHash === 'function'), 'Missing/invalid "sha256" or "generateHash" function. Please ' +

var supportsPersistedQueries = true;
var hashesChildKey = 'forLink' + nextHashesChildKey++;
var getHashPromise = function (query) {

@@ -68,8 +65,6 @@ return new Promise(function (resolve) { return resolve(generateHash(query)); });

}
var hashes = hashesByQuery.get(query);
if (!hashes)
hashesByQuery.set(query, hashes = Object.create(null));
return hasOwnProperty.call(hashes, hashesChildKey)
? hashes[hashesChildKey]
: hashes[hashesChildKey] = getHashPromise(query);
var hash = hashesByQuery.get(query);
if (!hash)
hashesByQuery.set(query, hash = getHashPromise(query));
return hash;
}

@@ -93,5 +88,9 @@ return new core.ApolloLink(function (operation, forward) {

}
var networkErrors = networkError &&
networkError.result &&
networkError.result.errors;
var networkErrors = void 0;
if (typeof (networkError === null || networkError === void 0 ? void 0 : networkError.result) !== 'string') {
networkErrors =
networkError &&
networkError.result &&
networkError.result.errors;
}
if (utilities.isNonEmptyArray(networkErrors)) {

@@ -98,0 +97,0 @@ graphQLErrors.push.apply(graphQLErrors, networkErrors);

@@ -7,4 +7,8 @@ import { __assign, __extends } from "tslib";

function isLikeCloseEvent(val) {
return isNonNullObject(val) && 'code' in val && 'reason' in val;
return isNonNullObject(val) && "code" in val && "reason" in val;
}
function isLikeErrorEvent(err) {
var _a;
return isNonNullObject(err) && ((_a = err.target) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.CLOSED;
}
var GraphQLWsLink = (function (_super) {

@@ -27,4 +31,5 @@ __extends(GraphQLWsLink, _super);

}
if (isLikeCloseEvent(err)) {
return observer.error(new Error("Socket closed with event ".concat(err.code, " ").concat(err.reason || "")));
var likeClose = isLikeCloseEvent(err);
if (likeClose || isLikeErrorEvent(err)) {
return observer.error(new Error("Socket closed".concat(likeClose ? " with event ".concat(err.code) : "").concat(likeClose ? " ".concat(err.reason) : "")));
}

@@ -31,0 +36,0 @@ return observer.error(new ApolloError({

@@ -12,4 +12,8 @@ 'use strict';

function isLikeCloseEvent(val) {
return utilities.isNonNullObject(val) && 'code' in val && 'reason' in val;
return utilities.isNonNullObject(val) && "code" in val && "reason" in val;
}
function isLikeErrorEvent(err) {
var _a;
return utilities.isNonNullObject(err) && ((_a = err.target) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.CLOSED;
}
var GraphQLWsLink = (function (_super) {

@@ -32,4 +36,5 @@ tslib.__extends(GraphQLWsLink, _super);

}
if (isLikeCloseEvent(err)) {
return observer.error(new Error("Socket closed with event ".concat(err.code, " ").concat(err.reason || "")));
var likeClose = isLikeCloseEvent(err);
if (likeClose || isLikeErrorEvent(err)) {
return observer.error(new Error("Socket closed".concat(likeClose ? " with event ".concat(err.code) : "").concat(likeClose ? " ".concat(err.reason) : "")));
}

@@ -36,0 +41,0 @@ return observer.error(new errors.ApolloError({

export type ServerError = Error & {
response: Response;
result: Record<string, any>;
result: Record<string, any> | string;
statusCode: number;

@@ -5,0 +5,0 @@ };

{
"name": "@apollo/client",
"version": "3.7.10",
"version": "3.7.15",
"description": "A fully-featured caching GraphQL client.",

@@ -57,6 +57,6 @@ "private": false,

"@wry/equality": "^0.5.0",
"@wry/trie": "^0.3.0",
"@wry/trie": "^0.4.0",
"graphql-tag": "^2.12.6",
"hoist-non-react-statics": "^3.3.2",
"optimism": "^0.16.1",
"optimism": "^0.16.2",
"prop-types": "^15.7.2",

@@ -70,7 +70,9 @@ "response-iterator": "^0.2.6",

"devDependencies": {
"@babel/parser": "7.20.15",
"@babel/parser": "7.21.8",
"@changesets/changelog-github": "0.4.8",
"@changesets/cli": "2.26.0",
"@graphql-tools/schema": "9.0.16",
"@changesets/cli": "2.26.1",
"@graphql-tools/schema": "9.0.19",
"@rollup/plugin-node-resolve": "11.2.1",
"@size-limit/esbuild-why": "8.2.4",
"@size-limit/preset-small-lib": "8.2.4",
"@testing-library/react": "14.0.0",

@@ -80,30 +82,29 @@ "@testing-library/react-12": "npm:@testing-library/react@^12",

"@types/bytes": "3.1.1",
"@types/fast-json-stable-stringify": "2.0.0",
"@types/fetch-mock": "7.3.5",
"@types/glob": "8.0.1",
"@types/glob": "8.1.0",
"@types/hoist-non-react-statics": "3.3.1",
"@types/jest": "29.2.6",
"@types/lodash": "4.14.191",
"@types/node": "18.14.0",
"@types/node-fetch": "2.6.2",
"@types/react": "18.0.28",
"@types/react-dom": "18.0.11",
"@types/jest": "29.5.1",
"@types/lodash": "4.14.194",
"@types/node": "20.2.3",
"@types/node-fetch": "2.6.4",
"@types/react": "18.2.6",
"@types/react-dom": "18.2.4",
"@types/use-sync-external-store": "0.0.3",
"@typescript-eslint/eslint-plugin": "5.52.0",
"@typescript-eslint/parser": "5.52.0",
"@typescript-eslint/eslint-plugin": "5.59.6",
"@typescript-eslint/parser": "5.59.7",
"acorn": "8.8.2",
"blob-polyfill": "7.0.20220408",
"bytes": "3.1.2",
"cross-fetch": "3.1.5",
"eslint": "8.34.0",
"eslint-plugin-testing-library": "5.10.2",
"cross-fetch": "3.1.6",
"eslint": "8.41.0",
"eslint-plugin-testing-library": "5.11.0",
"fetch-mock": "9.11.0",
"glob": "8.1.0",
"graphql": "16.6.0",
"graphql-ws": "5.11.3",
"jest": "29.3.1",
"jest-environment-jsdom": "29.3.1",
"jest-junit": "15.0.0",
"graphql-ws": "5.13.1",
"jest": "29.5.0",
"jest-environment-jsdom": "29.5.0",
"jest-junit": "16.0.0",
"lodash": "4.17.21",
"patch-package": "6.5.1",
"patch-package": "7.0.0",
"react": "18.2.0",

@@ -113,14 +114,15 @@ "react-17": "npm:react@^17",

"react-dom-17": "npm:react-dom@^17",
"recast": "0.22.0",
"resolve": "1.22.1",
"rimraf": "4.1.2",
"recast": "0.23.2",
"resolve": "1.22.3",
"rimraf": "5.0.1",
"rollup": "2.79.1",
"rollup-plugin-terser": "7.0.2",
"rxjs": "7.8.0",
"rxjs": "7.8.1",
"size-limit": "8.2.4",
"subscriptions-transport-ws": "0.11.0",
"terser": "5.16.4",
"ts-jest": "29.0.5",
"terser": "5.17.4",
"ts-jest": "29.1.0",
"ts-node": "10.9.1",
"typedoc": "0.22.18",
"typescript": "4.9.5",
"typedoc": "0.24.7",
"typescript": "5.0.4",
"wait-for-observables": "1.0.3",

@@ -127,0 +129,0 @@ "web-streams-polyfill": "3.2.1",

@@ -106,4 +106,2 @@ 'use strict';

this.query = query;
this.asyncResolveFns = new Set();
this.optionsToIgnoreOnce = new (utilities.canUseWeakSet ? WeakSet : Set)();
this.ssrDisabledResult = utilities.maybeDeepFreeze({

@@ -132,16 +130,26 @@ loading: true,

};
InternalState.prototype.asyncUpdate = function (signal) {
InternalState.prototype.executeQuery = function (options) {
var _this = this;
return new Promise(function (resolve, reject) {
var watchQueryOptions = _this.watchQueryOptions;
var handleAborted = function () {
_this.asyncResolveFns.delete(resolve);
_this.optionsToIgnoreOnce.delete(watchQueryOptions);
signal.removeEventListener('abort', handleAborted);
reject(signal.reason);
};
_this.asyncResolveFns.add(resolve);
_this.optionsToIgnoreOnce.add(watchQueryOptions);
signal.addEventListener('abort', handleAborted);
_this.forceUpdate();
var _a;
if (options.query) {
Object.assign(this, { query: options.query });
}
this.watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);
var concast = this.observable.reobserveAsConcast(this.getObsQueryOptions());
this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;
this.result = void 0;
this.forceUpdate();
return new Promise(function (resolve) {
var result;
concast.subscribe({
next: function (value) {
result = value;
},
error: function () {
resolve(_this.toQueryResult(_this.observable.getCurrentResult()));
},
complete: function () {
resolve(_this.toQueryResult(result));
}
});
});

@@ -195,3 +203,3 @@ };

var subscription = obsQuery.subscribe(onNext, onError);
return function () { return subscription.unsubscribe(); };
return function () { return setTimeout(function () { return subscription.unsubscribe(); }); };
}, [

@@ -203,8 +211,3 @@ obsQuery,

this.unsafeHandlePartialRefetch(result);
var queryResult = this.toQueryResult(result);
if (!queryResult.loading && this.asyncResolveFns.size) {
this.asyncResolveFns.forEach(function (resolve) { return resolve(queryResult); });
this.asyncResolveFns.clear();
}
return queryResult;
return this.toQueryResult(result);
};

@@ -215,7 +218,5 @@ InternalState.prototype.useOptions = function (options) {

var currentWatchQueryOptions = this.watchQueryOptions;
if (this.optionsToIgnoreOnce.has(currentWatchQueryOptions) ||
!equality.equal(watchQueryOptions, currentWatchQueryOptions)) {
if (!equality.equal(watchQueryOptions, currentWatchQueryOptions)) {
this.watchQueryOptions = watchQueryOptions;
if (currentWatchQueryOptions && this.observable) {
this.optionsToIgnoreOnce.delete(currentWatchQueryOptions);
this.observable.reobserve(this.getObsQueryOptions());

@@ -386,6 +387,10 @@ this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;

var _a;
var abortControllersRef = React.useRef(new Set());
var execOptionsRef = React.useRef();
var optionsRef = React.useRef();
var queryRef = React.useRef();
var merged = execOptionsRef.current ? utilities.mergeOptions(options, execOptionsRef.current) : options;
var internalState = useInternalState(useApolloClient(options && options.client), (_a = merged === null || merged === void 0 ? void 0 : merged.query) !== null && _a !== void 0 ? _a : query);
var document = (_a = merged === null || merged === void 0 ? void 0 : merged.query) !== null && _a !== void 0 ? _a : query;
optionsRef.current = merged;
queryRef.current = document;
var internalState = useInternalState(useApolloClient(options && options.client), document);
var useQueryResult = internalState.useQuery(tslib.__assign(tslib.__assign({}, merged), { skip: !execOptionsRef.current }));

@@ -416,24 +421,11 @@ var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy ||

Object.assign(result, eagerMethods);
React.useEffect(function () {
return function () {
abortControllersRef.current.forEach(function (controller) {
controller.abort();
});
};
}, []);
var execute = React.useCallback(function (executeOptions) {
var controller = new AbortController();
abortControllersRef.current.add(controller);
execOptionsRef.current = executeOptions ? tslib.__assign(tslib.__assign({}, executeOptions), { fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy }) : {
fetchPolicy: initialFetchPolicy,
};
var options = utilities.mergeOptions(optionsRef.current, tslib.__assign({ query: queryRef.current }, execOptionsRef.current));
var promise = internalState
.asyncUpdate(controller.signal)
.then(function (queryResult) {
abortControllersRef.current.delete(controller);
return Object.assign(queryResult, eagerMethods);
});
promise.catch(function () {
abortControllersRef.current.delete(controller);
});
.executeQuery(tslib.__assign(tslib.__assign({}, options), { skip: false }))
.then(function (queryResult) { return Object.assign(queryResult, eagerMethods); });
promise.catch(function () { });
return promise;

@@ -624,5 +616,9 @@ }, []);

}
var subscriptionStopped = false;
var subscription = observable.subscribe({
next: function (fetchResult) {
var _a, _b;
if (subscriptionStopped) {
return;
}
var result = {

@@ -650,22 +646,29 @@ loading: false,

var _a, _b;
setResult({
loading: false,
data: void 0,
error: error,
variables: options === null || options === void 0 ? void 0 : options.variables,
});
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, error);
if (!subscriptionStopped) {
setResult({
loading: false,
data: void 0,
error: error,
variables: options === null || options === void 0 ? void 0 : options.variables,
});
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, error);
}
},
complete: function () {
var _a, _b;
if ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onComplete) {
ref.current.options.onComplete();
if (!subscriptionStopped) {
if ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onComplete) {
ref.current.options.onComplete();
}
else if ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onSubscriptionComplete) {
ref.current.options.onSubscriptionComplete();
}
}
else if ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onSubscriptionComplete) {
ref.current.options.onSubscriptionComplete();
}
},
});
return function () {
subscription.unsubscribe();
subscriptionStopped = true;
setTimeout(function () {
subscription.unsubscribe();
});
};

@@ -672,0 +675,0 @@ }, [observable]);

import { Cache, Reference, StoreObject, MissingTree } from "../../cache";
import { OperationVariables } from "../../core";
export interface UseFragmentOptions<TData, TVars> extends Omit<Cache.DiffOptions<TData, TVars>, "id" | "query" | "optimistic" | "previousResult">, Omit<Cache.ReadFragmentOptions<TData, TVars>, "id"> {
export interface UseFragmentOptions<TData, TVars> extends Omit<Cache.DiffOptions<TData, TVars>, "id" | "query" | "optimistic" | "previousResult" | "returnPartialData">, Omit<Cache.ReadFragmentOptions<TData, TVars>, "id" | "returnPartialData"> {
from: StoreObject | Reference | string;
optimistic?: boolean;
returnPartialData?: boolean;
}

@@ -7,0 +8,0 @@ export interface UseFragmentResult<TData> {

import { __assign } from "tslib";
import { useCallback, useEffect, useMemo, useRef } from 'react';
import { useCallback, useMemo, useRef } from 'react';
import { mergeOptions } from "../../utilities/index.js";

@@ -16,6 +16,10 @@ import { useInternalState } from "./useQuery.js";

var _a;
var abortControllersRef = useRef(new Set());
var execOptionsRef = useRef();
var optionsRef = useRef();
var queryRef = useRef();
var merged = execOptionsRef.current ? mergeOptions(options, execOptionsRef.current) : options;
var internalState = useInternalState(useApolloClient(options && options.client), (_a = merged === null || merged === void 0 ? void 0 : merged.query) !== null && _a !== void 0 ? _a : query);
var document = (_a = merged === null || merged === void 0 ? void 0 : merged.query) !== null && _a !== void 0 ? _a : query;
optionsRef.current = merged;
queryRef.current = document;
var internalState = useInternalState(useApolloClient(options && options.client), document);
var useQueryResult = internalState.useQuery(__assign(__assign({}, merged), { skip: !execOptionsRef.current }));

@@ -46,24 +50,11 @@ var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy ||

Object.assign(result, eagerMethods);
useEffect(function () {
return function () {
abortControllersRef.current.forEach(function (controller) {
controller.abort();
});
};
}, []);
var execute = useCallback(function (executeOptions) {
var controller = new AbortController();
abortControllersRef.current.add(controller);
execOptionsRef.current = executeOptions ? __assign(__assign({}, executeOptions), { fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy }) : {
fetchPolicy: initialFetchPolicy,
};
var options = mergeOptions(optionsRef.current, __assign({ query: queryRef.current }, execOptionsRef.current));
var promise = internalState
.asyncUpdate(controller.signal)
.then(function (queryResult) {
abortControllersRef.current.delete(controller);
return Object.assign(queryResult, eagerMethods);
});
promise.catch(function () {
abortControllersRef.current.delete(controller);
});
.executeQuery(__assign(__assign({}, options), { skip: false }))
.then(function (queryResult) { return Object.assign(queryResult, eagerMethods); });
promise.catch(function () { });
return promise;

@@ -70,0 +61,0 @@ }, []);

@@ -12,5 +12,3 @@ import { OperationVariables, WatchQueryFetchPolicy } from '../../core';

forceUpdate(): void;
asyncUpdate(signal: AbortSignal): Promise<QueryResult<TData, TVariables>>;
private asyncResolveFns;
private optionsToIgnoreOnce;
executeQuery(options: QueryHookOptions<TData, TVariables>): Promise<QueryResult<TData, TVariables>>;
useQuery(options: QueryHookOptions<TData, TVariables>): QueryResult<TData, TVariables>;

@@ -17,0 +15,0 @@ private renderPromises;

@@ -12,3 +12,3 @@ import { __assign, __rest } from "tslib";

import { useApolloClient } from "./useApolloClient.js";
import { canUseWeakMap, canUseWeakSet, compact, isNonEmptyArray, maybeDeepFreeze } from "../../utilities/index.js";
import { canUseWeakMap, compact, isNonEmptyArray, maybeDeepFreeze } from "../../utilities/index.js";
var hasOwnProperty = Object.prototype.hasOwnProperty;

@@ -37,4 +37,2 @@ export function useQuery(query, options) {

this.query = query;
this.asyncResolveFns = new Set();
this.optionsToIgnoreOnce = new (canUseWeakSet ? WeakSet : Set)();
this.ssrDisabledResult = maybeDeepFreeze({

@@ -63,16 +61,26 @@ loading: true,

};
InternalState.prototype.asyncUpdate = function (signal) {
InternalState.prototype.executeQuery = function (options) {
var _this = this;
return new Promise(function (resolve, reject) {
var watchQueryOptions = _this.watchQueryOptions;
var handleAborted = function () {
_this.asyncResolveFns.delete(resolve);
_this.optionsToIgnoreOnce.delete(watchQueryOptions);
signal.removeEventListener('abort', handleAborted);
reject(signal.reason);
};
_this.asyncResolveFns.add(resolve);
_this.optionsToIgnoreOnce.add(watchQueryOptions);
signal.addEventListener('abort', handleAborted);
_this.forceUpdate();
var _a;
if (options.query) {
Object.assign(this, { query: options.query });
}
this.watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);
var concast = this.observable.reobserveAsConcast(this.getObsQueryOptions());
this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;
this.result = void 0;
this.forceUpdate();
return new Promise(function (resolve) {
var result;
concast.subscribe({
next: function (value) {
result = value;
},
error: function () {
resolve(_this.toQueryResult(_this.observable.getCurrentResult()));
},
complete: function () {
resolve(_this.toQueryResult(result));
}
});
});

@@ -126,3 +134,3 @@ };

var subscription = obsQuery.subscribe(onNext, onError);
return function () { return subscription.unsubscribe(); };
return function () { return setTimeout(function () { return subscription.unsubscribe(); }); };
}, [

@@ -134,8 +142,3 @@ obsQuery,

this.unsafeHandlePartialRefetch(result);
var queryResult = this.toQueryResult(result);
if (!queryResult.loading && this.asyncResolveFns.size) {
this.asyncResolveFns.forEach(function (resolve) { return resolve(queryResult); });
this.asyncResolveFns.clear();
}
return queryResult;
return this.toQueryResult(result);
};

@@ -146,7 +149,5 @@ InternalState.prototype.useOptions = function (options) {

var currentWatchQueryOptions = this.watchQueryOptions;
if (this.optionsToIgnoreOnce.has(currentWatchQueryOptions) ||
!equal(watchQueryOptions, currentWatchQueryOptions)) {
if (!equal(watchQueryOptions, currentWatchQueryOptions)) {
this.watchQueryOptions = watchQueryOptions;
if (currentWatchQueryOptions && this.observable) {
this.optionsToIgnoreOnce.delete(currentWatchQueryOptions);
this.observable.reobserve(this.getObsQueryOptions());

@@ -153,0 +154,0 @@ this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;

@@ -93,5 +93,9 @@ import "../../utilities/globals/index.js";

}
var subscriptionStopped = false;
var subscription = observable.subscribe({
next: function (fetchResult) {
var _a, _b;
if (subscriptionStopped) {
return;
}
var result = {

@@ -119,22 +123,30 @@ loading: false,

var _a, _b;
setResult({
loading: false,
data: void 0,
error: error,
variables: options === null || options === void 0 ? void 0 : options.variables,
});
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, error);
if (!subscriptionStopped) {
setResult({
loading: false,
data: void 0,
error: error,
variables: options === null || options === void 0 ? void 0 : options.variables,
});
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, error);
}
;
},
complete: function () {
var _a, _b;
if ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onComplete) {
ref.current.options.onComplete();
if (!subscriptionStopped) {
if ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onComplete) {
ref.current.options.onComplete();
}
else if ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onSubscriptionComplete) {
ref.current.options.onSubscriptionComplete();
}
}
else if ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onSubscriptionComplete) {
ref.current.options.onSubscriptionComplete();
}
},
});
return function () {
subscription.unsubscribe();
subscriptionStopped = true;
setTimeout(function () {
subscription.unsubscribe();
});
};

@@ -141,0 +153,0 @@ }, [observable]);

@@ -17,3 +17,3 @@ import { Observable } from '../../../utilities';

constructor();
request(operation: Operation): Observable<FetchResult<Record<string, any>, Record<string, any>, Record<string, any>>>;
request(operation: Operation): Observable<FetchResult>;
simulateResult(result: MockedSubscriptionResult, complete?: boolean): void;

@@ -20,0 +20,0 @@ simulateComplete(): void;

@@ -24,5 +24,5 @@ import * as React from 'react';

constructor(props: MockedProviderProps);
render(): JSX.Element | null;
render(): React.JSX.Element | null;
componentWillUnmount(): void;
}
//# sourceMappingURL=MockedProvider.d.ts.map

@@ -7,7 +7,8 @@ import { __assign, __extends } from "tslib";

import { MockLink } from "../core/index.js";
var MockedProvider = (function (_super) {
export var MockedProvider = (function (_super) {
__extends(MockedProvider, _super);
function MockedProvider(props) {
var _a;
var _this = _super.call(this, props) || this;
var _a = _this.props, mocks = _a.mocks, addTypename = _a.addTypename, defaultOptions = _a.defaultOptions, cache = _a.cache, resolvers = _a.resolvers, link = _a.link, showWarnings = _a.showWarnings;
var mocks = (_a = _this.props, _a.mocks), addTypename = _a.addTypename, defaultOptions = _a.defaultOptions, cache = _a.cache, resolvers = _a.resolvers, link = _a.link, showWarnings = _a.showWarnings;
var client = new ApolloClient({

@@ -23,3 +24,4 @@ cache: cache || new Cache({ addTypename: addTypename }),

MockedProvider.prototype.render = function () {
var _a = this.props, children = _a.children, childProps = _a.childProps;
var _a;
var children = (_a = this.props, _a.children), childProps = _a.childProps;
return React.isValidElement(children) ? (React.createElement(ApolloProvider, { client: this.state.client }, React.cloneElement(React.Children.only(children), __assign({}, childProps)))) : null;

@@ -35,3 +37,2 @@ };

}(React.Component));
export { MockedProvider };
//# sourceMappingURL=MockedProvider.js.map

@@ -30,4 +30,5 @@ 'use strict';

function MockedProvider(props) {
var _a;
var _this = _super.call(this, props) || this;
var _a = _this.props, mocks = _a.mocks, addTypename = _a.addTypename, defaultOptions = _a.defaultOptions, cache$1 = _a.cache, resolvers = _a.resolvers, link = _a.link, showWarnings = _a.showWarnings;
var mocks = (_a = _this.props, _a.mocks), addTypename = _a.addTypename, defaultOptions = _a.defaultOptions, cache$1 = _a.cache, resolvers = _a.resolvers, link = _a.link, showWarnings = _a.showWarnings;
var client = new core$1.ApolloClient({

@@ -43,3 +44,4 @@ cache: cache$1 || new cache.InMemoryCache({ addTypename: addTypename }),

MockedProvider.prototype.render = function () {
var _a = this.props, children = _a.children, childProps = _a.childProps;
var _a;
var children = (_a = this.props, _a.children), childProps = _a.childProps;
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;

@@ -46,0 +48,0 @@ };

@@ -1,6 +0,7 @@

import { ExecutionPatchIncrementalResult, ExecutionPatchInitialResult, ExecutionPatchResult, FetchResult } from "../../link/core";
import { ExecutionPatchIncrementalResult, ExecutionPatchInitialResult, ExecutionPatchResult, ApolloPayloadResult, FetchResult } from "../../link/core";
export declare function isExecutionPatchIncrementalResult<T>(value: FetchResult<T>): value is ExecutionPatchIncrementalResult;
export declare function isExecutionPatchInitialResult<T>(value: FetchResult<T>): value is ExecutionPatchInitialResult<T>;
export declare function isExecutionPatchResult<T>(value: FetchResult<T>): value is ExecutionPatchResult<T>;
export declare function isApolloPayloadResult(value: unknown): value is ApolloPayloadResult;
export declare function mergeIncrementalData<TData extends object>(prevResult: TData, result: ExecutionPatchResult<TData>): TData;
//# sourceMappingURL=incrementalResult.d.ts.map

@@ -0,1 +1,2 @@

import { isNonNullObject } from "./objects.js";
import { isNonEmptyArray } from "./arrays.js";

@@ -13,2 +14,5 @@ import { DeepMerger } from "./mergeDeep.js";

}
export function isApolloPayloadResult(value) {
return isNonNullObject(value) && "payload" in value;
}
export function mergeIncrementalData(prevResult, result) {

@@ -15,0 +19,0 @@ var mergedData = prevResult;

@@ -184,5 +184,3 @@ import { InvariantError } from "../globals/index.js";

export function getTypenameFromResult(result, selectionSet, fragmentMap) {
if (typeof result.__typename === 'string') {
return result.__typename;
}
var fragments;
for (var _i = 0, _a = selectionSet.selections; _i < _a.length; _i++) {

@@ -195,3 +193,15 @@ var selection = _a[_i];

}
else if (fragments) {
fragments.push(selection);
}
else {
fragments = [selection];
}
}
if (typeof result.__typename === 'string') {
return result.__typename;
}
if (fragments) {
for (var _b = 0, fragments_1 = fragments; _b < fragments_1.length; _b++) {
var selection = fragments_1[_b];
var typename = getTypenameFromResult(result, getFragmentFromSelection(selection, fragmentMap).selectionSet, fragmentMap);

@@ -198,0 +208,0 @@ if (typeof typename === 'string') {

@@ -327,5 +327,3 @@ 'use strict';

function getTypenameFromResult(result, selectionSet, fragmentMap) {
if (typeof result.__typename === 'string') {
return result.__typename;
}
var fragments;
for (var _i = 0, _a = selectionSet.selections; _i < _a.length; _i++) {

@@ -338,3 +336,15 @@ var selection = _a[_i];

}
else if (fragments) {
fragments.push(selection);
}
else {
fragments = [selection];
}
}
if (typeof result.__typename === 'string') {
return result.__typename;
}
if (fragments) {
for (var _b = 0, fragments_1 = fragments; _b < fragments_1.length; _b++) {
var selection = fragments_1[_b];
var typename = getTypenameFromResult(result, getFragmentFromSelection(selection, fragmentMap).selectionSet, fragmentMap);

@@ -341,0 +351,0 @@ if (typeof typename === 'string') {

@@ -1,2 +0,2 @@

export var version = '3.7.10';
export var version = '3.7.15';
//# sourceMappingURL=version.js.map

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc