{"version":3,"sources":["jsdelivr-header.js","/npm/apollo-client-classic@1.9.4/src/data/storeUtils.js","/npm/apollo-client-classic@1.9.4/src/util/assign.js","/npm/apollo-client-classic@1.9.4/src/queries/getFromAST.js","/npm/apollo-client-classic@1.9.4/src/util/cloneDeep.js","/npm/apollo-client-classic@1.9.4/src/queries/queryTransform.js","/npm/apollo-client-classic@1.9.4/src/transport/networkInterface.js","/npm/apollo-client-classic@1.9.4/src/transport/batching.js","/npm/apollo-client-classic@1.9.4/src/transport/batchedNetworkInterface.js","/npm/apollo-client-classic@1.9.4/src/actions.js","/npm/apollo-client-classic@1.9.4/src/util/environment.js","/npm/apollo-client-classic@1.9.4/src/data/writeToStore.js","/npm/apollo-client-classic@1.9.4/src/queries/directives.js","/npm/apollo-client-classic@1.9.4/src/optimistic-data/store.js","/npm/apollo-client-classic@1.9.4/src/util/isEqual.js","/npm/apollo-client-classic@1.9.4/src/data/readFromStore.js","/npm/apollo-client-classic@1.9.4/src/data/proxy.js","/npm/apollo-client-classic@1.9.4/src/data/replaceQueryResults.js","/npm/apollo-client-classic@1.9.4/src/util/errorHandling.js","/npm/apollo-client-classic@1.9.4/src/data/store.js","/npm/apollo-client-classic@1.9.4/src/store.js","/npm/apollo-client-classic@1.9.4/src/util/Observable.js","/npm/apollo-client-classic@1.9.4/src/errors/ApolloError.js","/npm/apollo-client-classic@1.9.4/src/core/types.js","/npm/apollo-client-classic@1.9.4/src/queries/networkStatus.js","/npm/apollo-client-classic@1.9.4/src/util/maybeDeepFreeze.js","/npm/apollo-client-classic@1.9.4/src/core/ObservableQuery.js","/npm/apollo-client-classic@1.9.4/src/util/warnOnce.js","/npm/apollo-client-classic@1.9.4/src/data/fragmentMatcher.js","/npm/apollo-client-classic@1.9.4/src/transport/Deduplicator.js","/npm/apollo-client-classic@1.9.4/src/queries/store.js","/npm/apollo-client-classic@1.9.4/src/mutations/store.js","/npm/apollo-client-classic@1.9.4/src/scheduler/scheduler.js","/npm/apollo-client-classic@1.9.4/src/core/QueryManager.js","/npm/apollo-client-classic@1.9.4/src/data/resultReducers.js","/npm/apollo-client-classic@1.9.4/src/ApolloClient.js","/npm/apollo-client-classic@1.9.4/src/version.js"],"names":[],"mappings":"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","file":"/npm/apollo-client-classic@1.9.4/apollo.umd.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/apollo-client-classic@1.9.4/apollo.umd.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","function isStringValue(value) {\n    return value.kind === 'StringValue';\n}\nfunction isBooleanValue(value) {\n    return value.kind === 'BooleanValue';\n}\nfunction isIntValue(value) {\n    return value.kind === 'IntValue';\n}\nfunction isFloatValue(value) {\n    return value.kind === 'FloatValue';\n}\nfunction isVariable(value) {\n    return value.kind === 'Variable';\n}\nfunction isObjectValue(value) {\n    return value.kind === 'ObjectValue';\n}\nfunction isListValue(value) {\n    return value.kind === 'ListValue';\n}\nfunction isEnumValue(value) {\n    return value.kind === 'EnumValue';\n}\nexport function valueToObjectRepresentation(argObj, name, value, variables) {\n    if (isIntValue(value) || isFloatValue(value)) {\n        argObj[name.value] = Number(value.value);\n    }\n    else if (isBooleanValue(value) || isStringValue(value)) {\n        argObj[name.value] = value.value;\n    }\n    else if (isObjectValue(value)) {\n        var nestedArgObj_1 = {};\n        value.fields.map(function (obj) {\n            return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n        });\n        argObj[name.value] = nestedArgObj_1;\n    }\n    else if (isVariable(value)) {\n        var variableValue = (variables || {})[value.name.value];\n        argObj[name.value] = variableValue;\n    }\n    else if (isListValue(value)) {\n        argObj[name.value] = value.values.map(function (listValue) {\n            var nestedArgArrayObj = {};\n            valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n            return nestedArgArrayObj[name.value];\n        });\n    }\n    else if (isEnumValue(value)) {\n        argObj[name.value] = value.value;\n    }\n    else {\n        throw new Error(\"The inline argument \\\"\" + name.value + \"\\\" of kind \\\"\" + value\n            .kind + \"\\\" is not supported.\\n                    Use variables instead of inline arguments to overcome this limitation.\");\n    }\n}\nexport function storeKeyNameFromField(field, variables) {\n    var directivesObj = null;\n    if (field.directives) {\n        directivesObj = {};\n        field.directives.forEach(function (directive) {\n            directivesObj[directive.name.value] = {};\n            if (directive.arguments) {\n                directive.arguments.forEach(function (_a) {\n                    var name = _a.name, value = _a.value;\n                    return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n                });\n            }\n        });\n    }\n    var argObj = null;\n    if (field.arguments && field.arguments.length) {\n        argObj = {};\n        field.arguments.forEach(function (_a) {\n            var name = _a.name, value = _a.value;\n            return valueToObjectRepresentation(argObj, name, value, variables);\n        });\n    }\n    return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nexport function getStoreKeyName(fieldName, args, directives) {\n    if (directives &&\n        directives['connection'] &&\n        directives['connection']['key']) {\n        if (directives['connection']['filter'] &&\n            directives['connection']['filter'].length > 0) {\n            var filterKeys = directives['connection']['filter']\n                ? directives['connection']['filter']\n                : [];\n            filterKeys.sort();\n            var queryArgs_1 = args;\n            var filteredArgs_1 = {};\n            filterKeys.forEach(function (key) {\n                filteredArgs_1[key] = queryArgs_1[key];\n            });\n            return directives['connection']['key'] + \"(\" + JSON.stringify(filteredArgs_1) + \")\";\n        }\n        else {\n            return directives['connection']['key'];\n        }\n    }\n    if (args) {\n        var stringifiedArgs = JSON.stringify(args);\n        return fieldName + \"(\" + stringifiedArgs + \")\";\n    }\n    return fieldName;\n}\nexport function resultKeyNameFromField(field) {\n    return field.alias ? field.alias.value : field.name.value;\n}\nexport function isField(selection) {\n    return selection.kind === 'Field';\n}\nexport function isInlineFragment(selection) {\n    return selection.kind === 'InlineFragment';\n}\nexport function graphQLResultHasError(result) {\n    return result.errors && result.errors.length;\n}\nexport function isIdValue(idObject) {\n    return (idObject != null &&\n        typeof idObject === 'object' &&\n        idObject.type === 'id');\n}\nexport function toIdValue(id, generated) {\n    if (generated === void 0) { generated = false; }\n    return {\n        type: 'id',\n        id: id,\n        generated: generated,\n    };\n}\nexport function isJsonValue(jsonObject) {\n    return (jsonObject != null &&\n        typeof jsonObject === 'object' &&\n        jsonObject.type === 'json');\n}\n//# sourceMappingURL=storeUtils.js.map","export function assign(target) {\n    var sources = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        sources[_i - 1] = arguments[_i];\n    }\n    sources.forEach(function (source) {\n        if (typeof source === 'undefined' || source === null) {\n            return;\n        }\n        Object.keys(source).forEach(function (key) {\n            target[key] = source[key];\n        });\n    });\n    return target;\n}\n//# sourceMappingURL=assign.js.map","var __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { valueToObjectRepresentation } from '../data/storeUtils';\nimport { assign } from '../util/assign';\nexport function getMutationDefinition(doc) {\n    checkDocument(doc);\n    var mutationDef = null;\n    doc.definitions.forEach(function (definition) {\n        if (definition.kind === 'OperationDefinition' &&\n            definition.operation === 'mutation') {\n            mutationDef = definition;\n        }\n    });\n    if (!mutationDef) {\n        throw new Error('Must contain a mutation definition.');\n    }\n    return mutationDef;\n}\nexport function checkDocument(doc) {\n    if (doc.kind !== 'Document') {\n        throw new Error(\"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n    }\n    var foundOperation = false;\n    doc.definitions.forEach(function (definition) {\n        switch (definition.kind) {\n            case 'FragmentDefinition':\n                break;\n            case 'OperationDefinition':\n                if (foundOperation) {\n                    throw new Error('Queries must have exactly one operation definition.');\n                }\n                foundOperation = true;\n                break;\n            default:\n                throw new Error(\"Schema type definitions not allowed in queries. Found: \\\"\" + definition.kind + \"\\\"\");\n        }\n    });\n}\nexport function getOperationName(doc) {\n    var res = null;\n    doc.definitions.forEach(function (definition) {\n        if (definition.kind === 'OperationDefinition' && definition.name) {\n            res = definition.name.value;\n        }\n    });\n    return res;\n}\nexport function getFragmentDefinitions(doc) {\n    var fragmentDefinitions = doc.definitions.filter(function (definition) {\n        if (definition.kind === 'FragmentDefinition') {\n            return true;\n        }\n        else {\n            return false;\n        }\n    });\n    return fragmentDefinitions;\n}\nexport function getQueryDefinition(doc) {\n    checkDocument(doc);\n    var queryDef = null;\n    doc.definitions.map(function (definition) {\n        if (definition.kind === 'OperationDefinition' &&\n            definition.operation === 'query') {\n            queryDef = definition;\n        }\n    });\n    if (!queryDef) {\n        throw new Error('Must contain a query definition.');\n    }\n    return queryDef;\n}\nexport function getOperationDefinition(doc) {\n    checkDocument(doc);\n    var opDef = null;\n    doc.definitions.map(function (definition) {\n        if (definition.kind === 'OperationDefinition') {\n            opDef = definition;\n        }\n    });\n    if (!opDef) {\n        throw new Error('Must contain a query definition.');\n    }\n    return opDef;\n}\nexport function getFragmentDefinition(doc) {\n    if (doc.kind !== 'Document') {\n        throw new Error(\"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n    }\n    if (doc.definitions.length > 1) {\n        throw new Error('Fragment must have exactly one definition.');\n    }\n    var fragmentDef = doc.definitions[0];\n    if (fragmentDef.kind !== 'FragmentDefinition') {\n        throw new Error('Must be a fragment definition.');\n    }\n    return fragmentDef;\n}\nexport function createFragmentMap(fragments) {\n    if (fragments === void 0) { fragments = []; }\n    var symTable = {};\n    fragments.forEach(function (fragment) {\n        symTable[fragment.name.value] = fragment;\n    });\n    return symTable;\n}\nexport function getFragmentQueryDocument(document, fragmentName) {\n    var actualFragmentName = fragmentName;\n    var fragments = [];\n    document.definitions.forEach(function (definition) {\n        if (definition.kind === 'OperationDefinition') {\n            throw new Error(\"Found a \" + definition.operation + \" operation\" + (definition.name\n                ? \" named '\" + definition.name.value + \"'\"\n                : '') + \". \" +\n                'No operations are allowed when using a fragment as a query. Only fragments are allowed.');\n        }\n        if (definition.kind === 'FragmentDefinition') {\n            fragments.push(definition);\n        }\n    });\n    if (typeof actualFragmentName === 'undefined') {\n        if (fragments.length !== 1) {\n            throw new Error(\"Found \" + fragments.length + \" fragments. `fragmentName` must be provided when there is not exactly 1 fragment.\");\n        }\n        actualFragmentName = fragments[0].name.value;\n    }\n    var query = __assign({}, document, { definitions: [\n            {\n                kind: 'OperationDefinition',\n                operation: 'query',\n                selectionSet: {\n                    kind: 'SelectionSet',\n                    selections: [\n                        {\n                            kind: 'FragmentSpread',\n                            name: {\n                                kind: 'Name',\n                                value: actualFragmentName,\n                            },\n                        },\n                    ],\n                },\n            }\n        ].concat(document.definitions) });\n    return query;\n}\nexport function getDefaultValues(definition) {\n    if (definition.variableDefinitions && definition.variableDefinitions.length) {\n        var defaultValues = definition.variableDefinitions\n            .filter(function (_a) {\n            var defaultValue = _a.defaultValue;\n            return defaultValue;\n        })\n            .map(function (_a) {\n            var variable = _a.variable, defaultValue = _a.defaultValue;\n            var defaultValueObj = {};\n            valueToObjectRepresentation(defaultValueObj, variable.name, defaultValue);\n            return defaultValueObj;\n        });\n        return assign.apply(void 0, [{}].concat(defaultValues));\n    }\n    return {};\n}\n//# sourceMappingURL=getFromAST.js.map","export function cloneDeep(value) {\n    if (Array.isArray(value)) {\n        return value.map(function (item) { return cloneDeep(item); });\n    }\n    if (value !== null && typeof value === 'object') {\n        var nextValue = {};\n        for (var key in value) {\n            if (value.hasOwnProperty(key)) {\n                nextValue[key] = cloneDeep(value[key]);\n            }\n        }\n        return nextValue;\n    }\n    return value;\n}\n//# sourceMappingURL=cloneDeep.js.map","import { checkDocument } from './getFromAST';\nimport { cloneDeep } from '../util/cloneDeep';\nvar TYPENAME_FIELD = {\n    kind: 'Field',\n    name: {\n        kind: 'Name',\n        value: '__typename',\n    },\n};\nfunction addTypenameToSelectionSet(selectionSet, isRoot) {\n    if (isRoot === void 0) { isRoot = false; }\n    if (selectionSet.selections) {\n        if (!isRoot) {\n            var alreadyHasThisField = selectionSet.selections.some(function (selection) {\n                return (selection.kind === 'Field' &&\n                    selection.name.value === '__typename');\n            });\n            if (!alreadyHasThisField) {\n                selectionSet.selections.push(TYPENAME_FIELD);\n            }\n        }\n        selectionSet.selections.forEach(function (selection) {\n            if (selection.kind === 'Field') {\n                if (selection.name.value.lastIndexOf('__', 0) !== 0 &&\n                    selection.selectionSet) {\n                    addTypenameToSelectionSet(selection.selectionSet);\n                }\n            }\n            else if (selection.kind === 'InlineFragment') {\n                if (selection.selectionSet) {\n                    addTypenameToSelectionSet(selection.selectionSet);\n                }\n            }\n        });\n    }\n}\nfunction removeConnectionDirectiveFromSelectionSet(selectionSet) {\n    if (selectionSet.selections) {\n        selectionSet.selections.forEach(function (selection) {\n            if (selection.kind === 'Field' &&\n                selection &&\n                selection.directives) {\n                selection.directives = selection.directives.filter(function (directive) {\n                    var willRemove = directive.name.value === 'connection';\n                    if (willRemove) {\n                        if (!directive.arguments ||\n                            !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) {\n                            console.warn('Removing an @connection directive even though it does not have a key. ' +\n                                'You may want to use the key parameter to specify a store key.');\n                        }\n                    }\n                    return !willRemove;\n                });\n            }\n        });\n        selectionSet.selections.forEach(function (selection) {\n            if (selection.kind === 'Field') {\n                if (selection.selectionSet) {\n                    removeConnectionDirectiveFromSelectionSet(selection.selectionSet);\n                }\n            }\n            else if (selection.kind === 'InlineFragment') {\n                if (selection.selectionSet) {\n                    removeConnectionDirectiveFromSelectionSet(selection.selectionSet);\n                }\n            }\n        });\n    }\n}\nexport function addTypenameToDocument(doc) {\n    checkDocument(doc);\n    var docClone = cloneDeep(doc);\n    docClone.definitions.forEach(function (definition) {\n        var isRoot = definition.kind === 'OperationDefinition';\n        addTypenameToSelectionSet(definition.selectionSet, isRoot);\n    });\n    return docClone;\n}\nexport function removeConnectionDirectiveFromDocument(doc) {\n    checkDocument(doc);\n    var docClone = cloneDeep(doc);\n    docClone.definitions.forEach(function (definition) {\n        removeConnectionDirectiveFromSelectionSet(definition.selectionSet);\n    });\n    return docClone;\n}\n//# sourceMappingURL=queryTransform.js.map","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport 'whatwg-fetch';\nimport { print } from 'graphql/language/printer';\nimport { removeConnectionDirectiveFromDocument } from '../queries/queryTransform';\nexport function printRequest(request) {\n    return __assign({}, request, { query: print(request.query) });\n}\nvar BaseNetworkInterface = (function () {\n    function BaseNetworkInterface(uri, opts) {\n        if (opts === void 0) { opts = {}; }\n        if (!uri) {\n            throw new Error('A remote endpoint is required for a network layer');\n        }\n        if (typeof uri !== 'string') {\n            throw new Error('Remote endpoint must be a string');\n        }\n        this._uri = uri;\n        this._opts = __assign({}, opts);\n        this._middlewares = [];\n        this._afterwares = [];\n    }\n    BaseNetworkInterface.prototype.query = function (request) {\n        return new Promise(function (resolve, reject) {\n            reject(new Error('BaseNetworkInterface should not be used directly'));\n        });\n    };\n    return BaseNetworkInterface;\n}());\nexport { BaseNetworkInterface };\nvar HTTPFetchNetworkInterface = (function (_super) {\n    __extends(HTTPFetchNetworkInterface, _super);\n    function HTTPFetchNetworkInterface() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    HTTPFetchNetworkInterface.prototype.applyMiddlewares = function (requestAndOptions) {\n        var _this = this;\n        return new Promise(function (resolve, reject) {\n            var request = requestAndOptions.request, options = requestAndOptions.options;\n            var queue = function (funcs, scope) {\n                var next = function (err) {\n                    if (err) {\n                        reject(err);\n                    }\n                    else if (funcs.length > 0) {\n                        var f = funcs.shift();\n                        if (f) {\n                            f.applyMiddleware.apply(scope, [{ request: request, options: options }, next]);\n                        }\n                    }\n                    else {\n                        resolve({\n                            request: request,\n                            options: options,\n                        });\n                    }\n                };\n                next();\n            };\n            queue(_this._middlewares.slice(), _this);\n        });\n    };\n    HTTPFetchNetworkInterface.prototype.applyAfterwares = function (_a) {\n        var _this = this;\n        var response = _a.response, options = _a.options;\n        return new Promise(function (resolve, reject) {\n            var responseObject = { response: response, options: options };\n            var queue = function (funcs, scope) {\n                var next = function () {\n                    if (funcs.length > 0) {\n                        var f = funcs.shift();\n                        if (f) {\n                            f.applyAfterware.apply(scope, [responseObject, next]);\n                        }\n                    }\n                    else {\n                        resolve(responseObject);\n                    }\n                };\n                next();\n            };\n            queue(_this._afterwares.slice(), _this);\n        });\n    };\n    HTTPFetchNetworkInterface.prototype.fetchFromRemoteEndpoint = function (_a) {\n        var request = _a.request, options = _a.options;\n        return fetch(this._uri, __assign({}, this._opts, { body: JSON.stringify(printRequest(request)), method: 'POST' }, options, { headers: __assign({ Accept: '*/*', 'Content-Type': 'application/json' }, options.headers) }));\n    };\n    HTTPFetchNetworkInterface.prototype.query = function (request) {\n        var _this = this;\n        var options = __assign({}, this._opts);\n        return this.applyMiddlewares({\n            request: request,\n            options: options,\n        })\n            .then(function (rao) {\n            if (rao.request.query) {\n                rao.request.query = removeConnectionDirectiveFromDocument(rao.request.query);\n            }\n            return rao;\n        })\n            .then(function (rao) { return _this.fetchFromRemoteEndpoint.call(_this, rao); })\n            .then(function (response) {\n            return _this.applyAfterwares({\n                response: response,\n                options: options,\n            });\n        })\n            .then(function (_a) {\n            var response = _a.response;\n            var httpResponse = response;\n            return httpResponse\n                .json()\n                .then(function (payload) {\n                if (!payload.hasOwnProperty('data') &&\n                    !payload.hasOwnProperty('errors')) {\n                    throw new Error(\"Server response was missing for query '\" + request.debugName + \"'.\");\n                }\n                else {\n                    return payload;\n                }\n            })\n                .catch(function (error) {\n                var httpError = new Error(\"Network request failed with status \" + response.status + \" - \\\"\" + response.statusText + \"\\\"\");\n                httpError.response = httpResponse;\n                httpError.parseError = error;\n                throw httpError;\n            });\n        });\n    };\n    HTTPFetchNetworkInterface.prototype.use = function (middlewares) {\n        var _this = this;\n        middlewares.map(function (middleware) {\n            if (typeof middleware.applyMiddleware === 'function') {\n                _this._middlewares.push(middleware);\n            }\n            else {\n                throw new Error('Middleware must implement the applyMiddleware function');\n            }\n        });\n        return this;\n    };\n    HTTPFetchNetworkInterface.prototype.useAfter = function (afterwares) {\n        var _this = this;\n        afterwares.map(function (afterware) {\n            if (typeof afterware.applyAfterware === 'function') {\n                _this._afterwares.push(afterware);\n            }\n            else {\n                throw new Error('Afterware must implement the applyAfterware function');\n            }\n        });\n        return this;\n    };\n    return HTTPFetchNetworkInterface;\n}(BaseNetworkInterface));\nexport { HTTPFetchNetworkInterface };\nexport function createNetworkInterface(uriOrInterfaceOpts, secondArgOpts) {\n    if (secondArgOpts === void 0) { secondArgOpts = {}; }\n    if (!uriOrInterfaceOpts) {\n        throw new Error('You must pass an options argument to createNetworkInterface.');\n    }\n    var uri;\n    var opts;\n    if (typeof uriOrInterfaceOpts === 'string') {\n        console.warn(\"Passing the URI as the first argument to createNetworkInterface is deprecated as of Apollo Client 0.5. Please pass it as the \\\"uri\\\" property of the network interface options.\");\n        opts = secondArgOpts.opts;\n        uri = uriOrInterfaceOpts;\n    }\n    else {\n        opts = uriOrInterfaceOpts.opts;\n        uri = uriOrInterfaceOpts.uri;\n    }\n    return new HTTPFetchNetworkInterface(uri, opts);\n}\n//# sourceMappingURL=networkInterface.js.map","var QueryBatcher = (function () {\n    function QueryBatcher(_a) {\n        var batchInterval = _a.batchInterval, _b = _a.batchMax, batchMax = _b === void 0 ? 0 : _b, batchFetchFunction = _a.batchFetchFunction;\n        this.queuedRequests = [];\n        this.queuedRequests = [];\n        this.batchInterval = batchInterval;\n        this.batchMax = batchMax;\n        this.batchFetchFunction = batchFetchFunction;\n    }\n    QueryBatcher.prototype.enqueueRequest = function (request) {\n        var fetchRequest = {\n            request: request,\n        };\n        this.queuedRequests.push(fetchRequest);\n        fetchRequest.promise = new Promise(function (resolve, reject) {\n            fetchRequest.resolve = resolve;\n            fetchRequest.reject = reject;\n        });\n        if (this.queuedRequests.length === 1) {\n            this.scheduleQueueConsumption();\n        }\n        if (this.queuedRequests.length === this.batchMax) {\n            this.consumeQueue();\n        }\n        return fetchRequest.promise;\n    };\n    QueryBatcher.prototype.consumeQueue = function () {\n        var requests = this.queuedRequests.map(function (queuedRequest) { return queuedRequest.request; });\n        var promises = [];\n        var resolvers = [];\n        var rejecters = [];\n        this.queuedRequests.forEach(function (fetchRequest, index) {\n            promises.push(fetchRequest.promise);\n            resolvers.push(fetchRequest.resolve);\n            rejecters.push(fetchRequest.reject);\n        });\n        this.queuedRequests = [];\n        var batchedPromise = this.batchFetchFunction(requests);\n        batchedPromise\n            .then(function (results) {\n            results.forEach(function (result, index) {\n                resolvers[index](result);\n            });\n        })\n            .catch(function (error) {\n            rejecters.forEach(function (rejecter, index) {\n                rejecters[index](error);\n            });\n        });\n        return promises;\n    };\n    QueryBatcher.prototype.scheduleQueueConsumption = function () {\n        var _this = this;\n        setTimeout(function () {\n            if (_this.queuedRequests.length) {\n                _this.consumeQueue();\n            }\n        }, this.batchInterval);\n    };\n    return QueryBatcher;\n}());\nexport { QueryBatcher };\n//# sourceMappingURL=batching.js.map","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport 'whatwg-fetch';\nimport { BaseNetworkInterface, printRequest, } from './networkInterface';\nimport { removeConnectionDirectiveFromDocument } from '../queries/queryTransform';\nimport { QueryBatcher } from './batching';\nimport { assign } from '../util/assign';\nvar HTTPBatchedNetworkInterface = (function (_super) {\n    __extends(HTTPBatchedNetworkInterface, _super);\n    function HTTPBatchedNetworkInterface(_a) {\n        var uri = _a.uri, _b = _a.batchInterval, batchInterval = _b === void 0 ? 10 : _b, _c = _a.batchMax, batchMax = _c === void 0 ? 0 : _c, fetchOpts = _a.fetchOpts;\n        var _this = _super.call(this, uri, fetchOpts) || this;\n        if (typeof batchInterval !== 'number') {\n            throw new Error(\"batchInterval must be a number, got \" + batchInterval);\n        }\n        if (typeof batchMax !== 'number') {\n            throw new Error(\"batchMax must be a number, got \" + batchMax);\n        }\n        _this.batcher = new QueryBatcher({\n            batchInterval: batchInterval,\n            batchMax: batchMax,\n            batchFetchFunction: _this.batchQuery.bind(_this),\n        });\n        return _this;\n    }\n    HTTPBatchedNetworkInterface.prototype.query = function (request) {\n        return this.batcher.enqueueRequest(request);\n    };\n    HTTPBatchedNetworkInterface.prototype.batchQuery = function (requests) {\n        var _this = this;\n        var options = __assign({}, this._opts);\n        var middlewarePromise = this.applyBatchMiddlewares({\n            requests: requests,\n            options: options,\n        });\n        return new Promise(function (resolve, reject) {\n            middlewarePromise\n                .then(function (batchRequestAndOptions) {\n                batchRequestAndOptions.requests.forEach(function (r) {\n                    if (r.query)\n                        r.query = removeConnectionDirectiveFromDocument(r.query);\n                });\n                return _this.batchedFetchFromRemoteEndpoint(batchRequestAndOptions)\n                    .then(function (result) {\n                    var httpResponse = result;\n                    if (!httpResponse.ok) {\n                        return _this.applyBatchAfterwares({\n                            responses: [httpResponse],\n                            options: batchRequestAndOptions.options,\n                        }).then(function () {\n                            var httpError = new Error(\"Network request failed with status \" + httpResponse.status + \" - \\\"\" + httpResponse.statusText + \"\\\"\");\n                            httpError.response = httpResponse;\n                            throw httpError;\n                        });\n                    }\n                    return result.json();\n                })\n                    .then(function (responses) {\n                    if (typeof responses.map !== 'function') {\n                        throw new Error('BatchingNetworkInterface: server response is not an array');\n                    }\n                    _this.applyBatchAfterwares({\n                        responses: responses,\n                        options: batchRequestAndOptions.options,\n                    })\n                        .then(function (responseAndOptions) {\n                        resolve(responseAndOptions.responses);\n                    })\n                        .catch(function (error) {\n                        reject(error);\n                    });\n                });\n            })\n                .catch(function (error) {\n                reject(error);\n            });\n        });\n    };\n    HTTPBatchedNetworkInterface.prototype.applyBatchMiddlewares = function (_a) {\n        var _this = this;\n        var requests = _a.requests, options = _a.options;\n        return new Promise(function (resolve, reject) {\n            var queue = function (funcs, scope) {\n                var next = function () {\n                    if (funcs.length > 0) {\n                        var f = funcs.shift();\n                        if (f) {\n                            f.applyBatchMiddleware.apply(scope, [\n                                { requests: requests, options: options },\n                                next,\n                            ]);\n                        }\n                    }\n                    else {\n                        resolve({\n                            requests: requests,\n                            options: options,\n                        });\n                    }\n                };\n                next();\n            };\n            queue(_this._middlewares.slice(), _this);\n        });\n    };\n    HTTPBatchedNetworkInterface.prototype.applyBatchAfterwares = function (_a) {\n        var _this = this;\n        var responses = _a.responses, options = _a.options;\n        return new Promise(function (resolve, reject) {\n            var responseObject = { responses: responses, options: options };\n            var queue = function (funcs, scope) {\n                var next = function () {\n                    if (funcs.length > 0) {\n                        var f = funcs.shift();\n                        if (f) {\n                            f.applyBatchAfterware.apply(scope, [responseObject, next]);\n                        }\n                    }\n                    else {\n                        resolve(responseObject);\n                    }\n                };\n                next();\n            };\n            queue(_this._afterwares.slice(), _this);\n        });\n    };\n    HTTPBatchedNetworkInterface.prototype.use = function (middlewares) {\n        var _this = this;\n        middlewares.map(function (middleware) {\n            if (typeof middleware.applyBatchMiddleware === 'function') {\n                _this._middlewares.push(middleware);\n            }\n            else {\n                throw new Error('Batch middleware must implement the applyBatchMiddleware function');\n            }\n        });\n        return this;\n    };\n    HTTPBatchedNetworkInterface.prototype.useAfter = function (afterwares) {\n        var _this = this;\n        afterwares.map(function (afterware) {\n            if (typeof afterware.applyBatchAfterware === 'function') {\n                _this._afterwares.push(afterware);\n            }\n            else {\n                throw new Error('Batch afterware must implement the applyBatchAfterware function');\n            }\n        });\n        return this;\n    };\n    HTTPBatchedNetworkInterface.prototype.batchedFetchFromRemoteEndpoint = function (batchRequestAndOptions) {\n        var options = {};\n        assign(options, batchRequestAndOptions.options);\n        var printedRequests = batchRequestAndOptions.requests.map(function (request) {\n            return printRequest(request);\n        });\n        return fetch(this._uri, __assign({}, this._opts, { body: JSON.stringify(printedRequests), method: 'POST' }, options, { headers: __assign({ Accept: '*/*', 'Content-Type': 'application/json' }, options.headers) }));\n    };\n    return HTTPBatchedNetworkInterface;\n}(BaseNetworkInterface));\nexport { HTTPBatchedNetworkInterface };\nexport function createBatchingNetworkInterface(options) {\n    if (!options) {\n        throw new Error('You must pass an options argument to createNetworkInterface.');\n    }\n    return new HTTPBatchedNetworkInterface({\n        uri: options.uri,\n        batchInterval: options.batchInterval,\n        batchMax: options.batchMax,\n        fetchOpts: options.opts || {},\n    });\n}\n//# sourceMappingURL=batchedNetworkInterface.js.map","export function isQueryResultAction(action) {\n    return action.type === 'APOLLO_QUERY_RESULT';\n}\nexport function isQueryErrorAction(action) {\n    return action.type === 'APOLLO_QUERY_ERROR';\n}\nexport function isQueryInitAction(action) {\n    return action.type === 'APOLLO_QUERY_INIT';\n}\nexport function isQueryResultClientAction(action) {\n    return action.type === 'APOLLO_QUERY_RESULT_CLIENT';\n}\nexport function isQueryStopAction(action) {\n    return action.type === 'APOLLO_QUERY_STOP';\n}\nexport function isMutationInitAction(action) {\n    return action.type === 'APOLLO_MUTATION_INIT';\n}\nexport function isMutationResultAction(action) {\n    return action.type === 'APOLLO_MUTATION_RESULT';\n}\nexport function isMutationErrorAction(action) {\n    return action.type === 'APOLLO_MUTATION_ERROR';\n}\nexport function isUpdateQueryResultAction(action) {\n    return action.type === 'APOLLO_UPDATE_QUERY_RESULT';\n}\nexport function isStoreResetAction(action) {\n    return action.type === 'APOLLO_STORE_RESET';\n}\nexport function isSubscriptionResultAction(action) {\n    return action.type === 'APOLLO_SUBSCRIPTION_RESULT';\n}\nexport function isWriteAction(action) {\n    return action.type === 'APOLLO_WRITE';\n}\n//# sourceMappingURL=actions.js.map","export function getEnv() {\n    if (typeof process !== 'undefined' && process.env.NODE_ENV) {\n        return process.env.NODE_ENV;\n    }\n    return 'development';\n}\nexport function isEnv(env) {\n    return getEnv() === env;\n}\nexport function isProduction() {\n    return isEnv('production') === true;\n}\nexport function isDevelopment() {\n    return isEnv('development') === true;\n}\nexport function isTest() {\n    return isEnv('test') === true;\n}\n//# sourceMappingURL=environment.js.map","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { getDefaultValues, getOperationDefinition, getQueryDefinition, getFragmentDefinitions, createFragmentMap, } from '../queries/getFromAST';\nimport { storeKeyNameFromField, resultKeyNameFromField, isField, isInlineFragment, } from './storeUtils';\nimport { isIdValue } from './storeUtils';\nimport { shouldInclude } from '../queries/directives';\nimport { isProduction } from '../util/environment';\nimport { assign } from '../util/assign';\nvar WriteError = (function (_super) {\n    __extends(WriteError, _super);\n    function WriteError() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = 'WriteError';\n        return _this;\n    }\n    return WriteError;\n}(Error));\nfunction enhanceErrorWithDocument(error, document) {\n    var enhancedError = new WriteError(\"Error writing result to store for query \" + (document.loc &&\n        document.loc.source &&\n        document.loc.source.body));\n    enhancedError.message += '/n' + error.message;\n    enhancedError.stack = error.stack;\n    return enhancedError;\n}\nexport function writeQueryToStore(_a) {\n    var result = _a.result, query = _a.query, _b = _a.store, store = _b === void 0 ? {} : _b, variables = _a.variables, dataIdFromObject = _a.dataIdFromObject, _c = _a.fragmentMap, fragmentMap = _c === void 0 ? {} : _c, fragmentMatcherFunction = _a.fragmentMatcherFunction;\n    var queryDefinition = getQueryDefinition(query);\n    variables = assign({}, getDefaultValues(queryDefinition), variables);\n    try {\n        return writeSelectionSetToStore({\n            dataId: 'ROOT_QUERY',\n            result: result,\n            selectionSet: queryDefinition.selectionSet,\n            context: {\n                store: store,\n                processedData: {},\n                variables: variables,\n                dataIdFromObject: dataIdFromObject,\n                fragmentMap: fragmentMap,\n                fragmentMatcherFunction: fragmentMatcherFunction,\n            },\n        });\n    }\n    catch (e) {\n        throw enhanceErrorWithDocument(e, query);\n    }\n}\nexport function writeResultToStore(_a) {\n    var dataId = _a.dataId, result = _a.result, document = _a.document, _b = _a.store, store = _b === void 0 ? {} : _b, variables = _a.variables, dataIdFromObject = _a.dataIdFromObject, fragmentMatcherFunction = _a.fragmentMatcherFunction;\n    var operationDefinition = getOperationDefinition(document);\n    var selectionSet = operationDefinition.selectionSet;\n    var fragmentMap = createFragmentMap(getFragmentDefinitions(document));\n    variables = assign({}, getDefaultValues(operationDefinition), variables);\n    try {\n        return writeSelectionSetToStore({\n            result: result,\n            dataId: dataId,\n            selectionSet: selectionSet,\n            context: {\n                store: store,\n                processedData: {},\n                variables: variables,\n                dataIdFromObject: dataIdFromObject,\n                fragmentMap: fragmentMap,\n                fragmentMatcherFunction: fragmentMatcherFunction,\n            },\n        });\n    }\n    catch (e) {\n        throw enhanceErrorWithDocument(e, document);\n    }\n}\nexport function writeSelectionSetToStore(_a) {\n    var result = _a.result, dataId = _a.dataId, selectionSet = _a.selectionSet, context = _a.context;\n    var variables = context.variables, store = context.store, dataIdFromObject = context.dataIdFromObject, fragmentMap = context.fragmentMap;\n    selectionSet.selections.forEach(function (selection) {\n        var included = shouldInclude(selection, variables);\n        if (isField(selection)) {\n            var resultFieldKey = resultKeyNameFromField(selection);\n            var value = result[resultFieldKey];\n            if (included) {\n                if (typeof value !== 'undefined') {\n                    writeFieldToStore({\n                        dataId: dataId,\n                        value: value,\n                        field: selection,\n                        context: context,\n                    });\n                }\n                else {\n                    if (context.fragmentMatcherFunction) {\n                        if (!isProduction()) {\n                            console.warn(\"Missing field \" + resultFieldKey + \" in \" + JSON.stringify(result, null, 2).substring(0, 100));\n                        }\n                    }\n                }\n            }\n        }\n        else {\n            var fragment = void 0;\n            if (isInlineFragment(selection)) {\n                fragment = selection;\n            }\n            else {\n                fragment = (fragmentMap || {})[selection.name.value];\n                if (!fragment) {\n                    throw new Error(\"No fragment named \" + selection.name.value + \".\");\n                }\n            }\n            var matches = true;\n            if (context.fragmentMatcherFunction && fragment.typeCondition) {\n                var idValue = { type: 'id', id: 'self', generated: false };\n                var fakeContext = {\n                    store: { self: result },\n                    returnPartialData: false,\n                    hasMissingField: false,\n                    customResolvers: {},\n                };\n                matches = context.fragmentMatcherFunction(idValue, fragment.typeCondition.name.value, fakeContext);\n                if (fakeContext.returnPartialData) {\n                    console.error('WARNING: heuristic fragment matching going on!');\n                }\n            }\n            if (included && matches) {\n                writeSelectionSetToStore({\n                    result: result,\n                    selectionSet: fragment.selectionSet,\n                    dataId: dataId,\n                    context: context,\n                });\n            }\n        }\n    });\n    return store;\n}\nfunction isGeneratedId(id) {\n    return id[0] === '$';\n}\nfunction mergeWithGenerated(generatedKey, realKey, cache) {\n    var generated = cache[generatedKey];\n    var real = cache[realKey];\n    Object.keys(generated).forEach(function (key) {\n        var value = generated[key];\n        var realValue = real[key];\n        if (isIdValue(value) && isGeneratedId(value.id) && isIdValue(realValue)) {\n            mergeWithGenerated(value.id, realValue.id, cache);\n        }\n        delete cache[generatedKey];\n        cache[realKey] = __assign({}, generated, real);\n    });\n}\nfunction isDataProcessed(dataId, field, processedData) {\n    if (!processedData) {\n        return false;\n    }\n    if (processedData[dataId]) {\n        if (processedData[dataId].indexOf(field) >= 0) {\n            return true;\n        }\n        else {\n            processedData[dataId].push(field);\n        }\n    }\n    else {\n        processedData[dataId] = [field];\n    }\n    return false;\n}\nfunction writeFieldToStore(_a) {\n    var field = _a.field, value = _a.value, dataId = _a.dataId, context = _a.context;\n    var variables = context.variables, dataIdFromObject = context.dataIdFromObject, store = context.store, fragmentMap = context.fragmentMap;\n    var storeValue;\n    var storeFieldName = storeKeyNameFromField(field, variables);\n    var shouldMerge = false;\n    var generatedKey = '';\n    if (!field.selectionSet || value === null) {\n        storeValue =\n            value != null && typeof value === 'object'\n                ?\n                    { type: 'json', json: value }\n                :\n                    value;\n    }\n    else if (Array.isArray(value)) {\n        var generatedId = dataId + \".\" + storeFieldName;\n        storeValue = processArrayValue(value, generatedId, field.selectionSet, context);\n    }\n    else {\n        var valueDataId = dataId + \".\" + storeFieldName;\n        var generated = true;\n        if (!isGeneratedId(valueDataId)) {\n            valueDataId = '$' + valueDataId;\n        }\n        if (dataIdFromObject) {\n            var semanticId = dataIdFromObject(value);\n            if (semanticId && isGeneratedId(semanticId)) {\n                throw new Error('IDs returned by dataIdFromObject cannot begin with the \"$\" character.');\n            }\n            if (semanticId) {\n                valueDataId = semanticId;\n                generated = false;\n            }\n        }\n        if (!isDataProcessed(valueDataId, field, context.processedData)) {\n            writeSelectionSetToStore({\n                dataId: valueDataId,\n                result: value,\n                selectionSet: field.selectionSet,\n                context: context,\n            });\n        }\n        storeValue = {\n            type: 'id',\n            id: valueDataId,\n            generated: generated,\n        };\n        if (store[dataId] && store[dataId][storeFieldName] !== storeValue) {\n            var escapedId = store[dataId][storeFieldName];\n            if (isIdValue(storeValue) &&\n                storeValue.generated &&\n                isIdValue(escapedId) &&\n                !escapedId.generated) {\n                throw new Error(\"Store error: the application attempted to write an object with no provided id\" +\n                    (\" but the store already contains an id of \" + escapedId.id + \" for this object.\"));\n            }\n            if (isIdValue(escapedId) && escapedId.generated) {\n                generatedKey = escapedId.id;\n                shouldMerge = true;\n            }\n        }\n    }\n    var newStoreObj = __assign({}, store[dataId], (_b = {}, _b[storeFieldName] = storeValue, _b));\n    if (shouldMerge) {\n        mergeWithGenerated(generatedKey, storeValue.id, store);\n    }\n    if (!store[dataId] || storeValue !== store[dataId][storeFieldName]) {\n        store[dataId] = newStoreObj;\n    }\n    var _b;\n}\nfunction processArrayValue(value, generatedId, selectionSet, context) {\n    return value.map(function (item, index) {\n        if (item === null) {\n            return null;\n        }\n        var itemDataId = generatedId + \".\" + index;\n        if (Array.isArray(item)) {\n            return processArrayValue(item, itemDataId, selectionSet, context);\n        }\n        var generated = true;\n        if (context.dataIdFromObject) {\n            var semanticId = context.dataIdFromObject(item);\n            if (semanticId) {\n                itemDataId = semanticId;\n                generated = false;\n            }\n        }\n        if (!isDataProcessed(itemDataId, selectionSet, context.processedData)) {\n            writeSelectionSetToStore({\n                dataId: itemDataId,\n                result: item,\n                selectionSet: selectionSet,\n                context: context,\n            });\n        }\n        var idStoreValue = {\n            type: 'id',\n            id: itemDataId,\n            generated: generated,\n        };\n        return idStoreValue;\n    });\n}\n//# sourceMappingURL=writeToStore.js.map","export function shouldInclude(selection, variables) {\n    if (variables === void 0) { variables = {}; }\n    if (!selection.directives) {\n        return true;\n    }\n    var res = true;\n    selection.directives.forEach(function (directive) {\n        if (directive.name.value !== 'skip' && directive.name.value !== 'include') {\n            return;\n        }\n        var directiveArguments = directive.arguments || [];\n        var directiveName = directive.name.value;\n        if (directiveArguments.length !== 1) {\n            throw new Error(\"Incorrect number of arguments for the @\" + directiveName + \" directive.\");\n        }\n        var ifArgument = directiveArguments[0];\n        if (!ifArgument.name || ifArgument.name.value !== 'if') {\n            throw new Error(\"Invalid argument for the @\" + directiveName + \" directive.\");\n        }\n        var ifValue = directiveArguments[0].value;\n        var evaledValue = false;\n        if (!ifValue || ifValue.kind !== 'BooleanValue') {\n            if (ifValue.kind !== 'Variable') {\n                throw new Error(\"Argument for the @\" + directiveName + \" directive must be a variable or a bool ean value.\");\n            }\n            else {\n                evaledValue = variables[ifValue.name.value];\n                if (evaledValue === undefined) {\n                    throw new Error(\"Invalid variable referenced in @\" + directiveName + \" directive.\");\n                }\n            }\n        }\n        else {\n            evaledValue = ifValue.value;\n        }\n        if (directiveName === 'skip') {\n            evaledValue = !evaledValue;\n        }\n        if (!evaledValue) {\n            res = false;\n        }\n    });\n    return res;\n}\n//# sourceMappingURL=directives.js.map","var __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { isMutationInitAction, isMutationResultAction, isMutationErrorAction, } from '../actions';\nimport { data } from '../data/store';\nimport { assign } from '../util/assign';\nvar optimisticDefaultState = [];\nexport function getDataWithOptimisticResults(store) {\n    if (store.optimistic.length === 0) {\n        return store.data;\n    }\n    var patches = store.optimistic.map(function (opt) { return opt.data; });\n    return assign.apply(void 0, [{}, store.data].concat(patches));\n}\nexport function optimistic(previousState, action, store, config) {\n    if (previousState === void 0) { previousState = optimisticDefaultState; }\n    if (isMutationInitAction(action) && action.optimisticResponse) {\n        var optimisticResponse = void 0;\n        if (typeof action.optimisticResponse === 'function') {\n            optimisticResponse = action.optimisticResponse(action.variables);\n        }\n        else {\n            optimisticResponse = action.optimisticResponse;\n        }\n        var fakeMutationResultAction = {\n            type: 'APOLLO_MUTATION_RESULT',\n            result: { data: optimisticResponse },\n            document: action.mutation,\n            operationName: action.operationName,\n            variables: action.variables,\n            mutationId: action.mutationId,\n            extraReducers: action.extraReducers,\n            updateQueries: action.updateQueries,\n            update: action.update,\n        };\n        var optimisticData = getDataWithOptimisticResults(__assign({}, store, { optimistic: previousState }));\n        var patch = getOptimisticDataPatch(optimisticData, fakeMutationResultAction, store.queries, store.mutations, config);\n        var optimisticState = {\n            action: fakeMutationResultAction,\n            data: patch,\n            mutationId: action.mutationId,\n        };\n        var newState = previousState.concat([optimisticState]);\n        return newState;\n    }\n    else if ((isMutationErrorAction(action) || isMutationResultAction(action)) &&\n        previousState.some(function (change) { return change.mutationId === action.mutationId; })) {\n        return rollbackOptimisticData(function (change) { return change.mutationId === action.mutationId; }, previousState, store, config);\n    }\n    return previousState;\n}\nfunction getOptimisticDataPatch(previousData, optimisticAction, queries, mutations, config) {\n    var optimisticData = data(previousData, optimisticAction, config);\n    var patch = {};\n    Object.keys(optimisticData).forEach(function (key) {\n        if (optimisticData[key] !== previousData[key]) {\n            patch[key] = optimisticData[key];\n        }\n    });\n    return patch;\n}\nfunction rollbackOptimisticData(filterFn, previousState, store, config) {\n    if (previousState === void 0) { previousState = optimisticDefaultState; }\n    var optimisticData = assign({}, store.data);\n    var newState = previousState\n        .filter(function (item) { return !filterFn(item); })\n        .map(function (change) {\n        var patch = getOptimisticDataPatch(optimisticData, change.action, store.queries, store.mutations, config);\n        assign(optimisticData, patch);\n        return __assign({}, change, { data: patch });\n    });\n    return newState;\n}\n//# sourceMappingURL=store.js.map","export function isEqual(a, b) {\n    if (a === b) {\n        return true;\n    }\n    if (a instanceof Date && b instanceof Date) {\n        return a.getTime() === b.getTime();\n    }\n    if (a != null &&\n        typeof a === 'object' &&\n        b != null &&\n        typeof b === 'object') {\n        for (var key in a) {\n            if (Object.prototype.hasOwnProperty.call(a, key)) {\n                if (!Object.prototype.hasOwnProperty.call(b, key)) {\n                    return false;\n                }\n                if (!isEqual(a[key], b[key])) {\n                    return false;\n                }\n            }\n        }\n        for (var key in b) {\n            if (!Object.prototype.hasOwnProperty.call(a, key)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    return false;\n}\n//# sourceMappingURL=isEqual.js.map","var __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport graphqlAnywhere from 'graphql-anywhere';\nimport { isJsonValue, isIdValue } from './storeUtils';\nimport { getStoreKeyName } from './storeUtils';\nimport { getDefaultValues, getQueryDefinition } from '../queries/getFromAST';\nimport { isEqual } from '../util/isEqual';\nimport { assign } from '../util/assign';\nexport var ID_KEY = typeof Symbol !== 'undefined' ? Symbol('id') : '@@id';\nexport function readQueryFromStore(options) {\n    var optsPatch = { returnPartialData: false };\n    return diffQueryAgainstStore(__assign({}, options, optsPatch)).result;\n}\nvar readStoreResolver = function (fieldName, idValue, args, context, _a) {\n    var resultKey = _a.resultKey, directives = _a.directives;\n    assertIdValue(idValue);\n    var objId = idValue.id;\n    var obj = context.store[objId];\n    var storeKeyName = getStoreKeyName(fieldName, args, directives);\n    var fieldValue = (obj || {})[storeKeyName];\n    if (typeof fieldValue === 'undefined') {\n        if (context.customResolvers &&\n            obj &&\n            (obj.__typename || objId === 'ROOT_QUERY')) {\n            var typename = obj.__typename || 'Query';\n            var type = context.customResolvers[typename];\n            if (type) {\n                var resolver = type[fieldName];\n                if (resolver) {\n                    fieldValue = resolver(obj, args);\n                }\n            }\n        }\n        if (typeof fieldValue === 'undefined') {\n            if (!context.returnPartialData) {\n                throw new Error(\"Can't find field \" + storeKeyName + \" on object (\" + objId + \") \" + JSON.stringify(obj, null, 2) + \".\");\n            }\n            context.hasMissingField = true;\n            return fieldValue;\n        }\n    }\n    if (isJsonValue(fieldValue)) {\n        if (idValue.previousResult &&\n            isEqual(idValue.previousResult[resultKey], fieldValue.json)) {\n            return idValue.previousResult[resultKey];\n        }\n        return fieldValue.json;\n    }\n    if (idValue.previousResult) {\n        fieldValue = addPreviousResultToIdValues(fieldValue, idValue.previousResult[resultKey]);\n    }\n    return fieldValue;\n};\nexport function diffQueryAgainstStore(_a) {\n    var store = _a.store, query = _a.query, variables = _a.variables, previousResult = _a.previousResult, _b = _a.returnPartialData, returnPartialData = _b === void 0 ? true : _b, _c = _a.rootId, rootId = _c === void 0 ? 'ROOT_QUERY' : _c, fragmentMatcherFunction = _a.fragmentMatcherFunction, config = _a.config;\n    var queryDefinition = getQueryDefinition(query);\n    variables = assign({}, getDefaultValues(queryDefinition), variables);\n    var context = {\n        store: store,\n        returnPartialData: returnPartialData,\n        customResolvers: (config && config.customResolvers) || {},\n        hasMissingField: false,\n    };\n    var rootIdValue = {\n        type: 'id',\n        id: rootId,\n        previousResult: previousResult,\n    };\n    var result = graphqlAnywhere(readStoreResolver, query, rootIdValue, context, variables, {\n        fragmentMatcher: fragmentMatcherFunction,\n        resultMapper: resultMapper,\n    });\n    return {\n        result: result,\n        isMissing: context.hasMissingField,\n    };\n}\nexport function assertIdValue(idValue) {\n    if (!isIdValue(idValue)) {\n        throw new Error(\"Encountered a sub-selection on the query, but the store doesn't have an object reference. This should never happen during normal use unless you have custom code that is directly manipulating the store; please file an issue.\");\n    }\n}\nfunction addPreviousResultToIdValues(value, previousResult) {\n    if (isIdValue(value)) {\n        return __assign({}, value, { previousResult: previousResult });\n    }\n    else if (Array.isArray(value)) {\n        var idToPreviousResult_1 = {};\n        if (Array.isArray(previousResult)) {\n            previousResult.forEach(function (item) {\n                if (item && item[ID_KEY]) {\n                    idToPreviousResult_1[item[ID_KEY]] = item;\n                }\n            });\n        }\n        return value.map(function (item, i) {\n            var itemPreviousResult = previousResult && previousResult[i];\n            if (isIdValue(item)) {\n                itemPreviousResult = idToPreviousResult_1[item.id] || itemPreviousResult;\n            }\n            return addPreviousResultToIdValues(item, itemPreviousResult);\n        });\n    }\n    return value;\n}\nfunction resultMapper(resultFields, idValue) {\n    if (idValue.previousResult) {\n        var currentResultKeys_1 = Object.keys(resultFields);\n        var sameAsPreviousResult = Object.keys(idValue.previousResult).reduce(function (sameKeys, key) { return sameKeys && currentResultKeys_1.indexOf(key) > -1; }, true) &&\n            currentResultKeys_1.reduce(function (same, key) {\n                return same &&\n                    areNestedArrayItemsStrictlyEqual(resultFields[key], idValue.previousResult[key]);\n            }, true);\n        if (sameAsPreviousResult) {\n            return idValue.previousResult;\n        }\n    }\n    Object.defineProperty(resultFields, ID_KEY, {\n        enumerable: false,\n        configurable: false,\n        writable: false,\n        value: idValue.id,\n    });\n    return resultFields;\n}\nfunction areNestedArrayItemsStrictlyEqual(a, b) {\n    if (a === b) {\n        return true;\n    }\n    if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) {\n        return false;\n    }\n    return a.reduce(function (same, item, i) { return same && areNestedArrayItemsStrictlyEqual(item, b[i]); }, true);\n}\n//# sourceMappingURL=readFromStore.js.map","var __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { getFragmentQueryDocument, getOperationName, } from '../queries/getFromAST';\nimport { getDataWithOptimisticResults } from '../optimistic-data/store';\nimport { readQueryFromStore } from './readFromStore';\nimport { writeResultToStore } from './writeToStore';\nimport { addTypenameToDocument } from '../queries/queryTransform';\nvar ReduxDataProxy = (function () {\n    function ReduxDataProxy(store, reduxRootSelector, fragmentMatcher, reducerConfig) {\n        this.store = store;\n        this.reduxRootSelector = reduxRootSelector;\n        this.reducerConfig = reducerConfig;\n        this.fragmentMatcher = fragmentMatcher;\n    }\n    ReduxDataProxy.prototype.readQuery = function (_a) {\n        var query = _a.query, variables = _a.variables;\n        if (this.reducerConfig.addTypename) {\n            query = addTypenameToDocument(query);\n        }\n        return readQueryFromStore({\n            rootId: 'ROOT_QUERY',\n            store: getDataWithOptimisticResults(this.reduxRootSelector(this.store.getState())),\n            query: query,\n            variables: variables,\n            fragmentMatcherFunction: this.fragmentMatcher.match,\n            config: this.reducerConfig,\n        });\n    };\n    ReduxDataProxy.prototype.readFragment = function (_a) {\n        var id = _a.id, fragment = _a.fragment, fragmentName = _a.fragmentName, variables = _a.variables;\n        var query = getFragmentQueryDocument(fragment, fragmentName);\n        var data = getDataWithOptimisticResults(this.reduxRootSelector(this.store.getState()));\n        if (typeof data[id] === 'undefined') {\n            return null;\n        }\n        if (this.reducerConfig.addTypename) {\n            query = addTypenameToDocument(query);\n        }\n        return readQueryFromStore({\n            rootId: id,\n            store: data,\n            query: query,\n            variables: variables,\n            fragmentMatcherFunction: this.fragmentMatcher.match,\n            config: this.reducerConfig,\n        });\n    };\n    ReduxDataProxy.prototype.writeQuery = function (_a) {\n        var data = _a.data, query = _a.query, variables = _a.variables;\n        if (this.reducerConfig.addTypename) {\n            query = addTypenameToDocument(query);\n        }\n        this.store.dispatch({\n            type: 'APOLLO_WRITE',\n            writes: [\n                {\n                    rootId: 'ROOT_QUERY',\n                    result: data,\n                    document: query,\n                    operationName: getOperationName(query),\n                    variables: variables || {},\n                },\n            ],\n        });\n    };\n    ReduxDataProxy.prototype.writeFragment = function (_a) {\n        var data = _a.data, id = _a.id, fragment = _a.fragment, fragmentName = _a.fragmentName, variables = _a.variables;\n        var document = getFragmentQueryDocument(fragment, fragmentName);\n        if (this.reducerConfig.addTypename) {\n            document = addTypenameToDocument(document);\n        }\n        this.store.dispatch({\n            type: 'APOLLO_WRITE',\n            writes: [\n                {\n                    rootId: id,\n                    result: data,\n                    document: document,\n                    operationName: getOperationName(document),\n                    variables: variables || {},\n                },\n            ],\n        });\n    };\n    return ReduxDataProxy;\n}());\nexport { ReduxDataProxy };\nvar TransactionDataProxy = (function () {\n    function TransactionDataProxy(data, reducerConfig) {\n        this.data = __assign({}, data);\n        this.reducerConfig = reducerConfig;\n        this.writes = [];\n        this.isFinished = false;\n    }\n    TransactionDataProxy.prototype.finish = function () {\n        this.assertNotFinished();\n        var writes = this.writes;\n        this.writes = [];\n        this.isFinished = true;\n        return writes;\n    };\n    TransactionDataProxy.prototype.readQuery = function (_a) {\n        var query = _a.query, variables = _a.variables;\n        this.assertNotFinished();\n        if (this.reducerConfig.addTypename) {\n            query = addTypenameToDocument(query);\n        }\n        return readQueryFromStore({\n            rootId: 'ROOT_QUERY',\n            store: this.data,\n            query: query,\n            variables: variables,\n            config: this.reducerConfig,\n            fragmentMatcherFunction: this.reducerConfig.fragmentMatcher,\n        });\n    };\n    TransactionDataProxy.prototype.readFragment = function (_a) {\n        var id = _a.id, fragment = _a.fragment, fragmentName = _a.fragmentName, variables = _a.variables;\n        this.assertNotFinished();\n        if (!fragment) {\n            throw new Error('fragment option is required. Please pass a GraphQL fragment to readFragment.');\n        }\n        var data = this.data;\n        var query = getFragmentQueryDocument(fragment, fragmentName);\n        if (this.reducerConfig.addTypename) {\n            query = addTypenameToDocument(query);\n        }\n        if (typeof data[id] === 'undefined') {\n            return null;\n        }\n        return readQueryFromStore({\n            rootId: id,\n            store: data,\n            query: query,\n            variables: variables,\n            config: this.reducerConfig,\n            fragmentMatcherFunction: this.reducerConfig.fragmentMatcher,\n        });\n    };\n    TransactionDataProxy.prototype.writeQuery = function (_a) {\n        var data = _a.data, query = _a.query, variables = _a.variables;\n        this.assertNotFinished();\n        if (this.reducerConfig.addTypename) {\n            query = addTypenameToDocument(query);\n        }\n        this.applyWrite({\n            rootId: 'ROOT_QUERY',\n            result: data,\n            document: query,\n            operationName: getOperationName(query),\n            variables: variables || {},\n        });\n    };\n    TransactionDataProxy.prototype.writeFragment = function (_a) {\n        var data = _a.data, id = _a.id, fragment = _a.fragment, fragmentName = _a.fragmentName, variables = _a.variables;\n        this.assertNotFinished();\n        if (!fragment) {\n            throw new Error('fragment option is required. Please pass a GraphQL fragment to writeFragment.');\n        }\n        var query = getFragmentQueryDocument(fragment, fragmentName);\n        if (this.reducerConfig.addTypename) {\n            query = addTypenameToDocument(query);\n        }\n        this.applyWrite({\n            rootId: id,\n            result: data,\n            document: query,\n            operationName: getOperationName(query),\n            variables: variables || {},\n        });\n    };\n    TransactionDataProxy.prototype.assertNotFinished = function () {\n        if (this.isFinished) {\n            throw new Error('Cannot call transaction methods after the transaction has finished.');\n        }\n    };\n    TransactionDataProxy.prototype.applyWrite = function (write) {\n        writeResultToStore({\n            result: write.result,\n            dataId: write.rootId,\n            document: write.document,\n            variables: write.variables,\n            store: this.data,\n            dataIdFromObject: this.reducerConfig.dataIdFromObject || (function () { return null; }),\n            fragmentMatcherFunction: this.reducerConfig.fragmentMatcher,\n        });\n        this.writes.push(write);\n    };\n    return TransactionDataProxy;\n}());\nexport { TransactionDataProxy };\n//# sourceMappingURL=proxy.js.map","var __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { writeResultToStore } from './writeToStore';\nexport function replaceQueryResults(state, _a, config) {\n    var variables = _a.variables, document = _a.document, newResult = _a.newResult;\n    var clonedState = __assign({}, state);\n    return writeResultToStore({\n        result: newResult,\n        dataId: 'ROOT_QUERY',\n        variables: variables,\n        document: document,\n        store: clonedState,\n        dataIdFromObject: config.dataIdFromObject,\n        fragmentMatcherFunction: config.fragmentMatcher,\n    });\n}\n//# sourceMappingURL=replaceQueryResults.js.map","export function tryFunctionOrLogError(f) {\n    try {\n        return f();\n    }\n    catch (e) {\n        if (console.error) {\n            console.error(e);\n        }\n    }\n}\n//# sourceMappingURL=errorHandling.js.map","var __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { isQueryResultAction, isMutationResultAction, isUpdateQueryResultAction, isStoreResetAction, isSubscriptionResultAction, isWriteAction, } from '../actions';\nimport { writeResultToStore } from './writeToStore';\nimport { TransactionDataProxy } from '../data/proxy';\nimport { getOperationName } from '../queries/getFromAST';\nimport { graphQLResultHasError } from './storeUtils';\nimport { replaceQueryResults } from './replaceQueryResults';\nimport { diffQueryAgainstStore } from './readFromStore';\nimport { tryFunctionOrLogError } from '../util/errorHandling';\nexport function data(previousState, action, config) {\n    if (previousState === void 0) { previousState = {}; }\n    var constAction = action;\n    if (isQueryResultAction(action)) {\n        if (action.fetchMoreForQueryId) {\n            return previousState;\n        }\n        if (!graphQLResultHasError(action.result)) {\n            var clonedState = __assign({}, previousState);\n            var newState_1 = writeResultToStore({\n                result: action.result.data,\n                dataId: 'ROOT_QUERY',\n                document: action.document,\n                variables: action.variables,\n                store: clonedState,\n                dataIdFromObject: config.dataIdFromObject,\n                fragmentMatcherFunction: config.fragmentMatcher,\n            });\n            if (action.extraReducers) {\n                action.extraReducers.forEach(function (reducer) {\n                    newState_1 = reducer(newState_1, constAction);\n                });\n            }\n            return newState_1;\n        }\n    }\n    else if (isSubscriptionResultAction(action)) {\n        if (!graphQLResultHasError(action.result)) {\n            var clonedState = __assign({}, previousState);\n            var newState_2 = writeResultToStore({\n                result: action.result.data,\n                dataId: 'ROOT_SUBSCRIPTION',\n                document: action.document,\n                variables: action.variables,\n                store: clonedState,\n                dataIdFromObject: config.dataIdFromObject,\n                fragmentMatcherFunction: config.fragmentMatcher,\n            });\n            if (action.extraReducers) {\n                action.extraReducers.forEach(function (reducer) {\n                    newState_2 = reducer(newState_2, constAction);\n                });\n            }\n            return newState_2;\n        }\n    }\n    else if (isMutationResultAction(constAction)) {\n        if (!constAction.result.errors) {\n            var clonedState = __assign({}, previousState);\n            var newState_3 = writeResultToStore({\n                result: constAction.result.data,\n                dataId: 'ROOT_MUTATION',\n                document: constAction.document,\n                variables: constAction.variables,\n                store: clonedState,\n                dataIdFromObject: config.dataIdFromObject,\n                fragmentMatcherFunction: config.fragmentMatcher,\n            });\n            var updateQueries_1 = constAction.updateQueries;\n            if (updateQueries_1) {\n                Object.keys(updateQueries_1)\n                    .filter(function (id) { return updateQueries_1[id]; })\n                    .forEach(function (queryId) {\n                    var _a = updateQueries_1[queryId], query = _a.query, reducer = _a.reducer;\n                    var _b = diffQueryAgainstStore({\n                        store: previousState,\n                        query: query.document,\n                        variables: query.variables,\n                        returnPartialData: true,\n                        fragmentMatcherFunction: config.fragmentMatcher,\n                        config: config,\n                    }), currentQueryResult = _b.result, isMissing = _b.isMissing;\n                    if (isMissing) {\n                        return;\n                    }\n                    var nextQueryResult = tryFunctionOrLogError(function () {\n                        return reducer(currentQueryResult, {\n                            mutationResult: constAction.result,\n                            queryName: getOperationName(query.document),\n                            queryVariables: query.variables,\n                        });\n                    });\n                    if (nextQueryResult) {\n                        newState_3 = writeResultToStore({\n                            result: nextQueryResult,\n                            dataId: 'ROOT_QUERY',\n                            document: query.document,\n                            variables: query.variables,\n                            store: newState_3,\n                            dataIdFromObject: config.dataIdFromObject,\n                            fragmentMatcherFunction: config.fragmentMatcher,\n                        });\n                    }\n                });\n            }\n            if (constAction.update) {\n                var update_1 = constAction.update;\n                var proxy_1 = new TransactionDataProxy(newState_3, config);\n                tryFunctionOrLogError(function () { return update_1(proxy_1, constAction.result); });\n                var writes = proxy_1.finish();\n                newState_3 = data(newState_3, { type: 'APOLLO_WRITE', writes: writes }, config);\n            }\n            if (constAction.extraReducers) {\n                constAction.extraReducers.forEach(function (reducer) {\n                    newState_3 = reducer(newState_3, constAction);\n                });\n            }\n            return newState_3;\n        }\n    }\n    else if (isUpdateQueryResultAction(constAction)) {\n        return replaceQueryResults(previousState, constAction, config);\n    }\n    else if (isStoreResetAction(action)) {\n        return {};\n    }\n    else if (isWriteAction(action)) {\n        return action.writes.reduce(function (currentState, write) {\n            return writeResultToStore({\n                result: write.result,\n                dataId: write.rootId,\n                document: write.document,\n                variables: write.variables,\n                store: currentState,\n                dataIdFromObject: config.dataIdFromObject,\n                fragmentMatcherFunction: config.fragmentMatcher,\n            });\n        }, __assign({}, previousState));\n    }\n    return previousState;\n}\n//# sourceMappingURL=store.js.map","var __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { createStore, compose as reduxCompose, applyMiddleware, combineReducers, } from 'redux';\nimport { data } from './data/store';\nimport { optimistic, getDataWithOptimisticResults, } from './optimistic-data/store';\nexport { getDataWithOptimisticResults };\nimport { isQueryResultAction, isMutationResultAction, isSubscriptionResultAction, } from './actions';\nvar crashReporter = function (store) { return function (next) { return function (action) {\n    try {\n        return next(action);\n    }\n    catch (err) {\n        console.error('Caught an exception!', err);\n        console.error(err.stack);\n        throw err;\n    }\n}; }; };\nvar createReducerError = function (error, action) {\n    var reducerError = { error: error };\n    if (isQueryResultAction(action)) {\n        reducerError.queryId = action.queryId;\n    }\n    else if (isSubscriptionResultAction(action)) {\n        reducerError.subscriptionId = action.subscriptionId;\n    }\n    else if (isMutationResultAction(action)) {\n        reducerError.mutationId = action.mutationId;\n    }\n    return reducerError;\n};\nexport function createApolloReducer(config) {\n    return function apolloReducer(state, action) {\n        if (state === void 0) { state = {}; }\n        try {\n            var newState = {\n                data: data(state.data, action, config),\n                optimistic: [],\n                reducerError: null,\n            };\n            newState.optimistic = optimistic(state.optimistic, action, newState, config);\n            if (state.data === newState.data &&\n                state.optimistic === newState.optimistic &&\n                state.reducerError === newState.reducerError) {\n                return state;\n            }\n            return newState;\n        }\n        catch (reducerError) {\n            return __assign({}, state, { reducerError: createReducerError(reducerError, action) });\n        }\n    };\n}\nexport function createApolloStore(_a) {\n    var _b = _a === void 0 ? {} : _a, _c = _b.reduxRootKey, reduxRootKey = _c === void 0 ? 'apollo' : _c, initialState = _b.initialState, _d = _b.config, config = _d === void 0 ? {} : _d, _e = _b.reportCrashes, reportCrashes = _e === void 0 ? true : _e, logger = _b.logger;\n    var enhancers = [];\n    var middlewares = [];\n    if (reportCrashes) {\n        middlewares.push(crashReporter);\n    }\n    if (logger) {\n        middlewares.push(logger);\n    }\n    if (middlewares.length > 0) {\n        enhancers.push(applyMiddleware.apply(void 0, middlewares));\n    }\n    if (typeof window !== 'undefined') {\n        var anyWindow = window;\n        if (anyWindow.devToolsExtension) {\n            enhancers.push(anyWindow.devToolsExtension());\n        }\n    }\n    var compose = reduxCompose;\n    if (initialState &&\n        initialState[reduxRootKey] &&\n        initialState[reduxRootKey]['queries']) {\n        throw new Error('Apollo initial state may not contain queries, only data');\n    }\n    if (initialState &&\n        initialState[reduxRootKey] &&\n        initialState[reduxRootKey]['mutations']) {\n        throw new Error('Apollo initial state may not contain mutations, only data');\n    }\n    return createStore(combineReducers((_f = {}, _f[reduxRootKey] = createApolloReducer(config), _f)), initialState, compose.apply(void 0, enhancers));\n    var _f;\n}\n//# sourceMappingURL=store.js.map","import $$observable from 'symbol-observable';\nfunction isSubscription(subscription) {\n    return subscription.unsubscribe !== undefined;\n}\nvar Observable = (function () {\n    function Observable(subscriberFunction) {\n        this.subscriberFunction = subscriberFunction;\n    }\n    Observable.prototype[$$observable] = function () {\n        return this;\n    };\n    Observable.prototype.subscribe = function (observer) {\n        var subscriptionOrCleanupFunction = this.subscriberFunction(observer);\n        if (isSubscription(subscriptionOrCleanupFunction)) {\n            return subscriptionOrCleanupFunction;\n        }\n        else {\n            return {\n                unsubscribe: subscriptionOrCleanupFunction,\n            };\n        }\n    };\n    return Observable;\n}());\nexport { Observable };\n//# sourceMappingURL=Observable.js.map","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nexport function isApolloError(err) {\n    return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n    var message = '';\n    if (Array.isArray(err.graphQLErrors) && err.graphQLErrors.length !== 0) {\n        err.graphQLErrors.forEach(function (graphQLError) {\n            var errorMessage = graphQLError\n                ? graphQLError.message\n                : 'Error message not found.';\n            message += \"GraphQL error: \" + errorMessage + \"\\n\";\n        });\n    }\n    if (err.networkError) {\n        message += 'Network error: ' + err.networkError.message + '\\n';\n    }\n    message = message.replace(/\\n$/, '');\n    return message;\n};\nvar ApolloError = (function (_super) {\n    __extends(ApolloError, _super);\n    function ApolloError(_a) {\n        var graphQLErrors = _a.graphQLErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n        var _this = _super.call(this, errorMessage) || this;\n        _this.graphQLErrors = graphQLErrors || [];\n        _this.networkError = networkError || null;\n        if (!errorMessage) {\n            _this.message = generateErrorMessage(_this);\n        }\n        else {\n            _this.message = errorMessage;\n        }\n        _this.extraInfo = extraInfo;\n        return _this;\n    }\n    return ApolloError;\n}(Error));\nexport { ApolloError };\n//# sourceMappingURL=ApolloError.js.map","export var FetchType;\n(function (FetchType) {\n    FetchType[FetchType[\"normal\"] = 1] = \"normal\";\n    FetchType[FetchType[\"refetch\"] = 2] = \"refetch\";\n    FetchType[FetchType[\"poll\"] = 3] = \"poll\";\n})(FetchType || (FetchType = {}));\n//# sourceMappingURL=types.js.map","export var NetworkStatus;\n(function (NetworkStatus) {\n    NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n    NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n    NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n    NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n    NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n    NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n    NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\nexport function isNetworkRequestInFlight(networkStatus) {\n    return networkStatus < 7;\n}\n//# sourceMappingURL=networkStatus.js.map","import { isDevelopment, isTest } from './environment';\nfunction deepFreeze(o) {\n    Object.freeze(o);\n    Object.getOwnPropertyNames(o).forEach(function (prop) {\n        if (o.hasOwnProperty(prop) &&\n            o[prop] !== null &&\n            (typeof o[prop] === 'object' || typeof o[prop] === 'function') &&\n            !Object.isFrozen(o[prop])) {\n            deepFreeze(o[prop]);\n        }\n    });\n    return o;\n}\nexport default function maybeDeepFreeze(obj) {\n    if (isDevelopment() || isTest()) {\n        return deepFreeze(obj);\n    }\n    return obj;\n}\n//# sourceMappingURL=maybeDeepFreeze.js.map","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { Observable } from '../util/Observable';\nimport { ApolloError } from '../errors/ApolloError';\nimport { FetchType } from './types';\nimport { tryFunctionOrLogError } from '../util/errorHandling';\nimport { isEqual } from '../util/isEqual';\nimport maybeDeepFreeze from '../util/maybeDeepFreeze';\nimport { NetworkStatus, isNetworkRequestInFlight, } from '../queries/networkStatus';\nimport { getOperationName } from '../queries/getFromAST';\nvar ObservableQuery = (function (_super) {\n    __extends(ObservableQuery, _super);\n    function ObservableQuery(_a) {\n        var scheduler = _a.scheduler, options = _a.options, _b = _a.shouldSubscribe, shouldSubscribe = _b === void 0 ? true : _b;\n        var _this = this;\n        var queryManager = scheduler.queryManager;\n        var queryId = queryManager.generateQueryId();\n        var subscriberFunction = function (observer) {\n            return _this.onSubscribe(observer);\n        };\n        _this = _super.call(this, subscriberFunction) || this;\n        _this.isCurrentlyPolling = false;\n        _this.options = options;\n        _this.variables = _this.options.variables || {};\n        _this.scheduler = scheduler;\n        _this.queryManager = queryManager;\n        _this.queryId = queryId;\n        _this.shouldSubscribe = shouldSubscribe;\n        _this.observers = [];\n        _this.subscriptionHandles = [];\n        return _this;\n    }\n    ObservableQuery.prototype.result = function () {\n        var that = this;\n        return new Promise(function (resolve, reject) {\n            var subscription = null;\n            var observer = {\n                next: function (result) {\n                    resolve(result);\n                    var selectedObservers = that.observers.filter(function (obs) { return obs !== observer; });\n                    if (selectedObservers.length === 0) {\n                        that.queryManager.removeQuery(that.queryId);\n                    }\n                    setTimeout(function () {\n                        subscription.unsubscribe();\n                    }, 0);\n                },\n                error: function (error) {\n                    reject(error);\n                },\n            };\n            subscription = that.subscribe(observer);\n        });\n    };\n    ObservableQuery.prototype.currentResult = function () {\n        var _a = this.queryManager.getCurrentQueryResult(this, true), data = _a.data, partial = _a.partial;\n        var queryStoreValue = this.queryManager.queryStore.get(this.queryId);\n        if (queryStoreValue &&\n            ((queryStoreValue.graphQLErrors &&\n                queryStoreValue.graphQLErrors.length > 0) ||\n                queryStoreValue.networkError)) {\n            var error = new ApolloError({\n                graphQLErrors: queryStoreValue.graphQLErrors,\n                networkError: queryStoreValue.networkError,\n            });\n            return {\n                data: {},\n                loading: false,\n                networkStatus: queryStoreValue.networkStatus,\n                error: error,\n            };\n        }\n        var queryLoading = !queryStoreValue ||\n            queryStoreValue.networkStatus === NetworkStatus.loading;\n        var loading = (this.options.fetchPolicy === 'network-only' && queryLoading) ||\n            (partial && this.options.fetchPolicy !== 'cache-only');\n        var networkStatus;\n        if (queryStoreValue) {\n            networkStatus = queryStoreValue.networkStatus;\n        }\n        else {\n            networkStatus = loading ? NetworkStatus.loading : NetworkStatus.ready;\n        }\n        var result = {\n            data: data,\n            loading: isNetworkRequestInFlight(networkStatus),\n            networkStatus: networkStatus,\n        };\n        if (!partial) {\n            var stale = false;\n            this.lastResult = __assign({}, result, { stale: stale });\n        }\n        return __assign({}, result, { partial: partial });\n    };\n    ObservableQuery.prototype.getLastResult = function () {\n        return this.lastResult;\n    };\n    ObservableQuery.prototype.refetch = function (variables) {\n        this.variables = __assign({}, this.variables, variables);\n        if (this.options.fetchPolicy === 'cache-only') {\n            return Promise.reject(new Error('cache-only fetchPolicy option should not be used together with query refetch.'));\n        }\n        this.options.variables = __assign({}, this.options.variables, this.variables);\n        var combinedOptions = __assign({}, this.options, { fetchPolicy: 'network-only' });\n        return this.queryManager\n            .fetchQuery(this.queryId, combinedOptions, FetchType.refetch)\n            .then(function (result) { return maybeDeepFreeze(result); });\n    };\n    ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n        var _this = this;\n        if (!fetchMoreOptions.updateQuery) {\n            throw new Error('updateQuery option is required. This function defines how to update the query data with the new results.');\n        }\n        return Promise.resolve()\n            .then(function () {\n            var qid = _this.queryManager.generateQueryId();\n            var combinedOptions = null;\n            if (fetchMoreOptions.query) {\n                combinedOptions = fetchMoreOptions;\n            }\n            else {\n                var variables = __assign({}, _this.variables, fetchMoreOptions.variables);\n                combinedOptions = __assign({}, _this.options, fetchMoreOptions, { variables: variables });\n            }\n            combinedOptions = __assign({}, combinedOptions, { query: combinedOptions.query, fetchPolicy: 'network-only' });\n            return _this.queryManager.fetchQuery(qid, combinedOptions, FetchType.normal, _this.queryId);\n        })\n            .then(function (fetchMoreResult) {\n            var data = fetchMoreResult.data;\n            var reducer = fetchMoreOptions.updateQuery;\n            var mapFn = function (previousResult, _a) {\n                var variables = _a.variables;\n                var queryVariables = variables;\n                return reducer(previousResult, {\n                    fetchMoreResult: data,\n                    queryVariables: queryVariables,\n                });\n            };\n            _this.updateQuery(mapFn);\n            return fetchMoreResult;\n        });\n    };\n    ObservableQuery.prototype.subscribeToMore = function (options) {\n        var _this = this;\n        var observable = this.queryManager.startGraphQLSubscription({\n            query: options.document,\n            variables: options.variables,\n        });\n        var subscription = observable.subscribe({\n            next: function (data) {\n                if (options.updateQuery) {\n                    var reducer_1 = options.updateQuery;\n                    var mapFn = function (previousResult, _a) {\n                        var variables = _a.variables;\n                        return reducer_1(previousResult, {\n                            subscriptionData: { data: data },\n                            variables: variables,\n                        });\n                    };\n                    _this.updateQuery(mapFn);\n                }\n            },\n            error: function (err) {\n                if (options.onError) {\n                    options.onError(err);\n                }\n                else {\n                    console.error('Unhandled GraphQL subscription error', err);\n                }\n            },\n        });\n        this.subscriptionHandles.push(subscription);\n        return function () {\n            var i = _this.subscriptionHandles.indexOf(subscription);\n            if (i >= 0) {\n                _this.subscriptionHandles.splice(i, 1);\n                subscription.unsubscribe();\n            }\n        };\n    };\n    ObservableQuery.prototype.setOptions = function (opts) {\n        var oldOptions = this.options;\n        this.options = __assign({}, this.options, opts);\n        if (opts.pollInterval) {\n            this.startPolling(opts.pollInterval);\n        }\n        else if (opts.pollInterval === 0) {\n            this.stopPolling();\n        }\n        var tryFetch = (oldOptions.fetchPolicy !== 'network-only' &&\n            opts.fetchPolicy === 'network-only') ||\n            (oldOptions.fetchPolicy === 'cache-only' &&\n                opts.fetchPolicy !== 'cache-only') ||\n            (oldOptions.fetchPolicy === 'standby' &&\n                opts.fetchPolicy !== 'standby') ||\n            false;\n        return this.setVariables(this.options.variables, tryFetch, opts.fetchResults);\n    };\n    ObservableQuery.prototype.setVariables = function (variables, tryFetch, fetchResults) {\n        if (tryFetch === void 0) { tryFetch = false; }\n        if (fetchResults === void 0) { fetchResults = true; }\n        var newVariables = __assign({}, this.variables, variables);\n        if (isEqual(newVariables, this.variables) && !tryFetch) {\n            if (this.observers.length === 0 || !fetchResults) {\n                return new Promise(function (resolve) { return resolve(); });\n            }\n            return this.result();\n        }\n        else {\n            this.variables = newVariables;\n            this.options.variables = newVariables;\n            if (this.observers.length === 0) {\n                return new Promise(function (resolve) { return resolve(); });\n            }\n            return this.queryManager\n                .fetchQuery(this.queryId, __assign({}, this.options, { variables: this.variables }))\n                .then(function (result) { return maybeDeepFreeze(result); });\n        }\n    };\n    ObservableQuery.prototype.updateQuery = function (mapFn) {\n        var _a = this.queryManager.getQueryWithPreviousResult(this.queryId), previousResult = _a.previousResult, variables = _a.variables, document = _a.document;\n        var newResult = tryFunctionOrLogError(function () {\n            return mapFn(previousResult, { variables: variables });\n        });\n        if (newResult) {\n            this.queryManager.store.dispatch({\n                type: 'APOLLO_UPDATE_QUERY_RESULT',\n                newResult: newResult,\n                variables: variables,\n                document: document,\n                operationName: getOperationName(document),\n            });\n        }\n    };\n    ObservableQuery.prototype.stopPolling = function () {\n        if (this.isCurrentlyPolling) {\n            this.scheduler.stopPollingQuery(this.queryId);\n            this.options.pollInterval = undefined;\n            this.isCurrentlyPolling = false;\n        }\n    };\n    ObservableQuery.prototype.startPolling = function (pollInterval) {\n        if (this.options.fetchPolicy === 'cache-first' ||\n            this.options.fetchPolicy === 'cache-only') {\n            throw new Error('Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.');\n        }\n        if (this.isCurrentlyPolling) {\n            this.scheduler.stopPollingQuery(this.queryId);\n            this.isCurrentlyPolling = false;\n        }\n        this.options.pollInterval = pollInterval;\n        this.isCurrentlyPolling = true;\n        this.scheduler.startPollingQuery(this.options, this.queryId);\n    };\n    ObservableQuery.prototype.onSubscribe = function (observer) {\n        var _this = this;\n        this.observers.push(observer);\n        if (observer.next && this.lastResult) {\n            observer.next(this.lastResult);\n        }\n        if (observer.error && this.lastError) {\n            observer.error(this.lastError);\n        }\n        if (this.observers.length === 1) {\n            this.setUpQuery();\n        }\n        var retQuerySubscription = {\n            unsubscribe: function () {\n                if (!_this.observers.some(function (el) { return el === observer; })) {\n                    return;\n                }\n                _this.observers = _this.observers.filter(function (obs) { return obs !== observer; });\n                if (_this.observers.length === 0) {\n                    _this.tearDownQuery();\n                }\n            },\n        };\n        return retQuerySubscription;\n    };\n    ObservableQuery.prototype.setUpQuery = function () {\n        var _this = this;\n        if (this.shouldSubscribe) {\n            this.queryManager.addObservableQuery(this.queryId, this);\n        }\n        if (!!this.options.pollInterval) {\n            if (this.options.fetchPolicy === 'cache-first' ||\n                this.options.fetchPolicy === 'cache-only') {\n                throw new Error('Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.');\n            }\n            this.isCurrentlyPolling = true;\n            this.scheduler.startPollingQuery(this.options, this.queryId);\n        }\n        var observer = {\n            next: function (result) {\n                _this.lastResult = result;\n                _this.observers.forEach(function (obs) {\n                    if (obs.next) {\n                        obs.next(result);\n                    }\n                });\n            },\n            error: function (error) {\n                _this.observers.forEach(function (obs) {\n                    if (obs.error) {\n                        obs.error(error);\n                    }\n                    else {\n                        console.error('Unhandled error', error.message, error.stack);\n                    }\n                });\n                _this.lastError = error;\n            },\n        };\n        this.queryManager.startQuery(this.queryId, this.options, this.queryManager.queryListenerForObserver(this.queryId, this.options, observer));\n    };\n    ObservableQuery.prototype.tearDownQuery = function () {\n        if (this.isCurrentlyPolling) {\n            this.scheduler.stopPollingQuery(this.queryId);\n            this.isCurrentlyPolling = false;\n        }\n        this.subscriptionHandles.forEach(function (sub) { return sub.unsubscribe(); });\n        this.subscriptionHandles = [];\n        this.queryManager.stopQuery(this.queryId);\n        if (this.shouldSubscribe) {\n            this.queryManager.removeObservableQuery(this.queryId);\n        }\n        this.observers = [];\n    };\n    return ObservableQuery;\n}(Observable));\nexport { ObservableQuery };\n//# sourceMappingURL=ObservableQuery.js.map","import { isProduction, isTest } from './environment';\nvar haveWarned = Object.create({});\nexport function warnOnceInDevelopment(msg, type) {\n    if (type === void 0) { type = 'warn'; }\n    if (isProduction()) {\n        return;\n    }\n    if (!haveWarned[msg]) {\n        if (!isTest()) {\n            haveWarned[msg] = true;\n        }\n        switch (type) {\n            case 'error':\n                console.error(msg);\n                break;\n            default:\n                console.warn(msg);\n        }\n    }\n}\n//# sourceMappingURL=warnOnce.js.map","import { isTest } from '../util/environment';\nimport { warnOnceInDevelopment } from '../util/warnOnce';\nvar IntrospectionFragmentMatcher = (function () {\n    function IntrospectionFragmentMatcher(options) {\n        if (options && options.introspectionQueryResultData) {\n            this.possibleTypesMap = this.parseIntrospectionResult(options.introspectionQueryResultData);\n            this.isReady = true;\n        }\n        else {\n            this.isReady = false;\n        }\n        this.match = this.match.bind(this);\n    }\n    IntrospectionFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n        if (!this.isReady) {\n            throw new Error('FragmentMatcher.match() was called before FragmentMatcher.init()');\n        }\n        var obj = context.store[idValue.id];\n        if (!obj) {\n            return false;\n        }\n        if (!obj.__typename) {\n            throw new Error(\"Cannot match fragment because __typename property is missing: \" + JSON.stringify(obj));\n        }\n        if (obj.__typename === typeCondition) {\n            return true;\n        }\n        var implementingTypes = this.possibleTypesMap[typeCondition];\n        if (implementingTypes && implementingTypes.indexOf(obj.__typename) > -1) {\n            return true;\n        }\n        return false;\n    };\n    IntrospectionFragmentMatcher.prototype.parseIntrospectionResult = function (introspectionResultData) {\n        var typeMap = {};\n        introspectionResultData.__schema.types.forEach(function (type) {\n            if (type.kind === 'UNION' || type.kind === 'INTERFACE') {\n                typeMap[type.name] = type.possibleTypes.map(function (implementingType) { return implementingType.name; });\n            }\n        });\n        return typeMap;\n    };\n    return IntrospectionFragmentMatcher;\n}());\nexport { IntrospectionFragmentMatcher };\nvar haveWarned = false;\nvar HeuristicFragmentMatcher = (function () {\n    function HeuristicFragmentMatcher() {\n    }\n    HeuristicFragmentMatcher.prototype.ensureReady = function () {\n        return Promise.resolve();\n    };\n    HeuristicFragmentMatcher.prototype.canBypassInit = function () {\n        return true;\n    };\n    HeuristicFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n        var obj = context.store[idValue.id];\n        if (!obj) {\n            return false;\n        }\n        if (!obj.__typename) {\n            if (!haveWarned) {\n                console.warn(\"You're using fragments in your queries, but either don't have the addTypename:\\n  true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.\\n   Please turn on the addTypename option and include __typename when writing fragments so that Apollo Client\\n   can accurately match fragments.\");\n                console.warn('Could not find __typename on Fragment ', typeCondition, obj);\n                console.warn(\"DEPRECATION WARNING: using fragments without __typename is unsupported behavior \" +\n                    \"and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.\");\n                if (!isTest()) {\n                    haveWarned = true;\n                }\n            }\n            context.returnPartialData = true;\n            return true;\n        }\n        if (obj.__typename === typeCondition) {\n            return true;\n        }\n        warnOnceInDevelopment(\"You are using the simple (heuristic) fragment matcher, but your queries contain union or interface types.\\n     Apollo Client will not be able to able to accurately map fragments.\" +\n            \"To make this error go away, use the IntrospectionFragmentMatcher as described in the docs: \" +\n            \"http://dev.apollodata.com/react/initialization.html#fragment-matcher\", 'error');\n        context.returnPartialData = true;\n        return true;\n    };\n    return HeuristicFragmentMatcher;\n}());\nexport { HeuristicFragmentMatcher };\n//# sourceMappingURL=fragmentMatcher.js.map","import { print } from 'graphql/language/printer';\nvar Deduplicator = (function () {\n    function Deduplicator(networkInterface) {\n        this.networkInterface = networkInterface;\n        this.inFlightRequestPromises = {};\n    }\n    Deduplicator.prototype.query = function (request, deduplicate) {\n        var _this = this;\n        if (deduplicate === void 0) { deduplicate = true; }\n        if (!deduplicate) {\n            return this.networkInterface.query(request);\n        }\n        var key = this.getKey(request);\n        if (!this.inFlightRequestPromises[key]) {\n            this.inFlightRequestPromises[key] = this.networkInterface.query(request);\n        }\n        return this.inFlightRequestPromises[key]\n            .then(function (res) {\n            delete _this.inFlightRequestPromises[key];\n            return res;\n        })\n            .catch(function (err) {\n            delete _this.inFlightRequestPromises[key];\n            throw err;\n        });\n    };\n    Deduplicator.prototype.getKey = function (request) {\n        return print(request.query) + \"|\" + JSON.stringify(request.variables) + \"|\" + request.operationName;\n    };\n    return Deduplicator;\n}());\nexport { Deduplicator };\n//# sourceMappingURL=Deduplicator.js.map","var __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { isEqual } from '../util/isEqual';\nimport { NetworkStatus } from './networkStatus';\nvar QueryStore = (function () {\n    function QueryStore() {\n        this.store = {};\n    }\n    QueryStore.prototype.getStore = function () {\n        return this.store;\n    };\n    QueryStore.prototype.get = function (queryId) {\n        return this.store[queryId];\n    };\n    QueryStore.prototype.initQuery = function (query) {\n        var previousQuery = this.store[query.queryId];\n        if (previousQuery && previousQuery.queryString !== query.queryString) {\n            throw new Error('Internal Error: may not update existing query string in store');\n        }\n        var isSetVariables = false;\n        var previousVariables = null;\n        if (query.storePreviousVariables &&\n            previousQuery &&\n            previousQuery.networkStatus !== NetworkStatus.loading) {\n            if (!isEqual(previousQuery.variables, query.variables)) {\n                isSetVariables = true;\n                previousVariables = previousQuery.variables;\n            }\n        }\n        var networkStatus;\n        if (isSetVariables) {\n            networkStatus = NetworkStatus.setVariables;\n        }\n        else if (query.isPoll) {\n            networkStatus = NetworkStatus.poll;\n        }\n        else if (query.isRefetch) {\n            networkStatus = NetworkStatus.refetch;\n        }\n        else {\n            networkStatus = NetworkStatus.loading;\n        }\n        this.store[query.queryId] = {\n            queryString: query.queryString,\n            document: query.document,\n            variables: query.variables,\n            previousVariables: previousVariables,\n            networkError: null,\n            graphQLErrors: [],\n            networkStatus: networkStatus,\n            metadata: query.metadata,\n        };\n        if (typeof query.fetchMoreForQueryId === 'string') {\n            this.store[query.fetchMoreForQueryId].networkStatus =\n                NetworkStatus.fetchMore;\n        }\n    };\n    QueryStore.prototype.markQueryResult = function (queryId, result, fetchMoreForQueryId) {\n        if (!this.store[queryId]) {\n            return;\n        }\n        this.store[queryId].networkError = null;\n        this.store[queryId].graphQLErrors =\n            result.errors && result.errors.length ? result.errors : [];\n        this.store[queryId].previousVariables = null;\n        this.store[queryId].networkStatus = NetworkStatus.ready;\n        if (typeof fetchMoreForQueryId === 'string') {\n            this.store[fetchMoreForQueryId].networkStatus = NetworkStatus.ready;\n        }\n    };\n    QueryStore.prototype.markQueryError = function (queryId, error, fetchMoreForQueryId) {\n        if (!this.store[queryId]) {\n            return;\n        }\n        this.store[queryId].networkError = error;\n        this.store[queryId].networkStatus = NetworkStatus.error;\n        if (typeof fetchMoreForQueryId === 'string') {\n            this.markQueryError(fetchMoreForQueryId, error, undefined);\n        }\n    };\n    QueryStore.prototype.markQueryResultClient = function (queryId, complete) {\n        if (!this.store[queryId]) {\n            return;\n        }\n        this.store[queryId].networkError = null;\n        this.store[queryId].previousVariables = null;\n        this.store[queryId].networkStatus = complete\n            ? NetworkStatus.ready\n            : NetworkStatus.loading;\n    };\n    QueryStore.prototype.stopQuery = function (queryId) {\n        delete this.store[queryId];\n    };\n    QueryStore.prototype.reset = function (observableQueryIds) {\n        var _this = this;\n        this.store = Object.keys(this.store)\n            .filter(function (queryId) {\n            return observableQueryIds.indexOf(queryId) > -1;\n        })\n            .reduce(function (res, key) {\n            res[key] = __assign({}, _this.store[key], { networkStatus: NetworkStatus.loading });\n            return res;\n        }, {});\n    };\n    return QueryStore;\n}());\nexport { QueryStore };\n//# sourceMappingURL=store.js.map","var MutationStore = (function () {\n    function MutationStore() {\n        this.store = {};\n    }\n    MutationStore.prototype.getStore = function () {\n        return this.store;\n    };\n    MutationStore.prototype.get = function (mutationId) {\n        return this.store[mutationId];\n    };\n    MutationStore.prototype.initMutation = function (mutationId, mutationString, variables) {\n        this.store[mutationId] = {\n            mutationString: mutationString,\n            variables: variables || {},\n            loading: true,\n            error: null,\n        };\n    };\n    MutationStore.prototype.markMutationError = function (mutationId, error) {\n        this.store[mutationId].loading = false;\n        this.store[mutationId].error = error;\n    };\n    MutationStore.prototype.markMutationResult = function (mutationId) {\n        this.store[mutationId].loading = false;\n        this.store[mutationId].error = null;\n    };\n    MutationStore.prototype.reset = function () {\n        this.store = {};\n    };\n    return MutationStore;\n}());\nexport { MutationStore };\n//# sourceMappingURL=store.js.map","var __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { FetchType } from '../core/types';\nimport { ObservableQuery } from '../core/ObservableQuery';\nimport { NetworkStatus } from '../queries/networkStatus';\nvar QueryScheduler = (function () {\n    function QueryScheduler(_a) {\n        var queryManager = _a.queryManager;\n        this.queryManager = queryManager;\n        this.pollingTimers = {};\n        this.inFlightQueries = {};\n        this.registeredQueries = {};\n        this.intervalQueries = {};\n    }\n    QueryScheduler.prototype.checkInFlight = function (queryId) {\n        var query = this.queryManager.queryStore.get(queryId);\n        return (query &&\n            query.networkStatus !== NetworkStatus.ready &&\n            query.networkStatus !== NetworkStatus.error);\n    };\n    QueryScheduler.prototype.fetchQuery = function (queryId, options, fetchType) {\n        var _this = this;\n        return new Promise(function (resolve, reject) {\n            _this.queryManager\n                .fetchQuery(queryId, options, fetchType)\n                .then(function (result) {\n                resolve(result);\n            })\n                .catch(function (error) {\n                reject(error);\n            });\n        });\n    };\n    QueryScheduler.prototype.startPollingQuery = function (options, queryId, listener) {\n        if (!options.pollInterval) {\n            throw new Error('Attempted to start a polling query without a polling interval.');\n        }\n        if (this.queryManager.ssrMode) {\n            return queryId;\n        }\n        this.registeredQueries[queryId] = options;\n        if (listener) {\n            this.queryManager.addQueryListener(queryId, listener);\n        }\n        this.addQueryOnInterval(queryId, options);\n        return queryId;\n    };\n    QueryScheduler.prototype.stopPollingQuery = function (queryId) {\n        delete this.registeredQueries[queryId];\n    };\n    QueryScheduler.prototype.fetchQueriesOnInterval = function (interval) {\n        var _this = this;\n        this.intervalQueries[interval] = this.intervalQueries[interval].filter(function (queryId) {\n            if (!_this.registeredQueries.hasOwnProperty(queryId)) {\n                return false;\n            }\n            if (_this.checkInFlight(queryId)) {\n                return true;\n            }\n            var queryOptions = _this.registeredQueries[queryId];\n            var pollingOptions = __assign({}, queryOptions);\n            pollingOptions.fetchPolicy = 'network-only';\n            _this.fetchQuery(queryId, pollingOptions, FetchType.poll);\n            return true;\n        });\n        if (this.intervalQueries[interval].length === 0) {\n            clearInterval(this.pollingTimers[interval]);\n            delete this.intervalQueries[interval];\n        }\n    };\n    QueryScheduler.prototype.addQueryOnInterval = function (queryId, queryOptions) {\n        var _this = this;\n        var interval = queryOptions.pollInterval;\n        if (!interval) {\n            throw new Error(\"A poll interval is required to start polling query with id '\" + queryId + \"'.\");\n        }\n        if (this.intervalQueries.hasOwnProperty(interval.toString()) &&\n            this.intervalQueries[interval].length > 0) {\n            this.intervalQueries[interval].push(queryId);\n        }\n        else {\n            this.intervalQueries[interval] = [queryId];\n            this.pollingTimers[interval] = setInterval(function () {\n                _this.fetchQueriesOnInterval(interval);\n            }, interval);\n        }\n    };\n    QueryScheduler.prototype.registerPollingQuery = function (queryOptions) {\n        if (!queryOptions.pollInterval) {\n            throw new Error('Attempted to register a non-polling query with the scheduler.');\n        }\n        return new ObservableQuery({\n            scheduler: this,\n            options: queryOptions,\n        });\n    };\n    return QueryScheduler;\n}());\nexport { QueryScheduler };\n//# sourceMappingURL=scheduler.js.map","var __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { Deduplicator } from '../transport/Deduplicator';\nimport { isEqual } from '../util/isEqual';\nimport { assign } from '../util/assign';\nimport { FetchType, } from './types';\nimport { QueryStore } from '../queries/store';\nimport { NetworkStatus, isNetworkRequestInFlight, } from '../queries/networkStatus';\nimport { getDataWithOptimisticResults, } from '../store';\nimport { getQueryDefinition, getOperationDefinition, getOperationName, getDefaultValues, getMutationDefinition, } from '../queries/getFromAST';\nimport { addTypenameToDocument } from '../queries/queryTransform';\nimport { createStoreReducer } from '../data/resultReducers';\nimport { HeuristicFragmentMatcher, } from '../data/fragmentMatcher';\nimport { isProduction } from '../util/environment';\nimport maybeDeepFreeze from '../util/maybeDeepFreeze';\nimport { print } from 'graphql/language/printer';\nimport { readQueryFromStore } from '../data/readFromStore';\nimport { diffQueryAgainstStore } from '../data/readFromStore';\nimport { MutationStore } from '../mutations/store';\nimport { QueryScheduler } from '../scheduler/scheduler';\nimport { Observable } from '../util/Observable';\nimport { isApolloError, ApolloError } from '../errors/ApolloError';\nimport { ObservableQuery } from './ObservableQuery';\nvar QueryManager = (function () {\n    function QueryManager(_a) {\n        var networkInterface = _a.networkInterface, store = _a.store, reduxRootSelector = _a.reduxRootSelector, _b = _a.reducerConfig, reducerConfig = _b === void 0 ? {} : _b, fragmentMatcher = _a.fragmentMatcher, _c = _a.addTypename, addTypename = _c === void 0 ? true : _c, _d = _a.queryDeduplication, queryDeduplication = _d === void 0 ? false : _d, _e = _a.ssrMode, ssrMode = _e === void 0 ? false : _e;\n        var _this = this;\n        this.mutationStore = new MutationStore();\n        this.queryStore = new QueryStore();\n        this.idCounter = 1;\n        this.lastRequestId = {};\n        this.disableBroadcasting = false;\n        this.networkInterface = networkInterface;\n        this.deduplicator = new Deduplicator(networkInterface);\n        this.store = store;\n        this.reduxRootSelector = reduxRootSelector;\n        this.reducerConfig = reducerConfig;\n        this.pollingTimers = {};\n        this.queryListeners = {};\n        this.queryDocuments = {};\n        this.addTypename = addTypename;\n        this.queryDeduplication = queryDeduplication;\n        this.ssrMode = ssrMode;\n        if (typeof fragmentMatcher === 'undefined') {\n            this.fragmentMatcher = new HeuristicFragmentMatcher();\n        }\n        else {\n            this.fragmentMatcher = fragmentMatcher;\n        }\n        this.scheduler = new QueryScheduler({\n            queryManager: this,\n        });\n        this.fetchQueryPromises = {};\n        this.observableQueries = {};\n        this.queryIdsByName = {};\n        if (this.store['subscribe']) {\n            var currentStoreData_1;\n            this.store['subscribe'](function () {\n                var previousStoreData = currentStoreData_1 || {};\n                var previousStoreHasData = Object.keys(previousStoreData).length;\n                currentStoreData_1 = _this.getApolloState();\n                if (isEqual(previousStoreData, currentStoreData_1) &&\n                    previousStoreHasData) {\n                    return;\n                }\n                _this.broadcastQueries();\n            });\n        }\n    }\n    QueryManager.prototype.broadcastNewStore = function (store) {\n        this.broadcastQueries();\n    };\n    QueryManager.prototype.mutate = function (_a) {\n        var _this = this;\n        var mutation = _a.mutation, variables = _a.variables, optimisticResponse = _a.optimisticResponse, updateQueriesByName = _a.updateQueries, _b = _a.refetchQueries, refetchQueries = _b === void 0 ? [] : _b, updateWithProxyFn = _a.update;\n        if (!mutation) {\n            throw new Error('mutation option is required. You must specify your GraphQL document in the mutation option.');\n        }\n        var mutationId = this.generateQueryId();\n        if (this.addTypename) {\n            mutation = addTypenameToDocument(mutation);\n        }\n        variables = assign({}, getDefaultValues(getMutationDefinition(mutation)), variables);\n        var mutationString = print(mutation);\n        var request = {\n            query: mutation,\n            variables: variables,\n            operationName: getOperationName(mutation),\n        };\n        this.queryDocuments[mutationId] = mutation;\n        var generateUpdateQueriesInfo = function () {\n            var ret = {};\n            if (updateQueriesByName) {\n                Object.keys(updateQueriesByName).forEach(function (queryName) {\n                    return (_this.queryIdsByName[queryName] || []).forEach(function (queryId) {\n                        ret[queryId] = {\n                            reducer: updateQueriesByName[queryName],\n                            query: _this.queryStore.get(queryId),\n                        };\n                    });\n                });\n            }\n            return ret;\n        };\n        this.store.dispatch({\n            type: 'APOLLO_MUTATION_INIT',\n            mutationString: mutationString,\n            mutation: mutation,\n            variables: variables || {},\n            operationName: getOperationName(mutation),\n            mutationId: mutationId,\n            optimisticResponse: optimisticResponse,\n            extraReducers: this.getExtraReducers(),\n            updateQueries: generateUpdateQueriesInfo(),\n            update: updateWithProxyFn,\n        });\n        this.mutationStore.initMutation(mutationId, mutationString, variables);\n        return new Promise(function (resolve, reject) {\n            _this.networkInterface\n                .query(request)\n                .then(function (result) {\n                if (result.errors) {\n                    var error = new ApolloError({\n                        graphQLErrors: result.errors,\n                    });\n                    _this.store.dispatch({\n                        type: 'APOLLO_MUTATION_ERROR',\n                        error: error,\n                        mutationId: mutationId,\n                    });\n                    _this.mutationStore.markMutationError(mutationId, error);\n                    delete _this.queryDocuments[mutationId];\n                    reject(error);\n                    return;\n                }\n                _this.store.dispatch({\n                    type: 'APOLLO_MUTATION_RESULT',\n                    result: result,\n                    mutationId: mutationId,\n                    document: mutation,\n                    operationName: getOperationName(mutation),\n                    variables: variables || {},\n                    extraReducers: _this.getExtraReducers(),\n                    updateQueries: generateUpdateQueriesInfo(),\n                    update: updateWithProxyFn,\n                });\n                _this.mutationStore.markMutationResult(mutationId);\n                var reducerError = _this.getApolloState().reducerError;\n                if (reducerError && reducerError.mutationId === mutationId) {\n                    reject(reducerError.error);\n                    return;\n                }\n                if (typeof refetchQueries === 'function') {\n                    refetchQueries = refetchQueries(result) || [];\n                }\n                if (typeof refetchQueries[0] === 'string') {\n                    refetchQueries.forEach(function (name) {\n                        _this.refetchQueryByName(name);\n                    });\n                }\n                else {\n                    refetchQueries.forEach(function (pureQuery) {\n                        _this.query({\n                            query: pureQuery.query,\n                            variables: pureQuery.variables,\n                            fetchPolicy: 'network-only',\n                        });\n                    });\n                }\n                delete _this.queryDocuments[mutationId];\n                resolve(result);\n            })\n                .catch(function (err) {\n                _this.store.dispatch({\n                    type: 'APOLLO_MUTATION_ERROR',\n                    error: err,\n                    mutationId: mutationId,\n                });\n                delete _this.queryDocuments[mutationId];\n                reject(new ApolloError({\n                    networkError: err,\n                }));\n            });\n        });\n    };\n    QueryManager.prototype.fetchQuery = function (queryId, options, fetchType, fetchMoreForQueryId) {\n        var _this = this;\n        var _a = options.variables, variables = _a === void 0 ? {} : _a, _b = options.metadata, metadata = _b === void 0 ? null : _b, _c = options.fetchPolicy, fetchPolicy = _c === void 0 ? 'cache-first' : _c;\n        var queryDoc = this.transformQueryDocument(options).queryDoc;\n        var queryString = print(queryDoc);\n        var storeResult;\n        var needToFetch = fetchPolicy === 'network-only';\n        if (fetchType !== FetchType.refetch && fetchPolicy !== 'network-only') {\n            var _d = diffQueryAgainstStore({\n                query: queryDoc,\n                store: this.reduxRootSelector(this.store.getState()).data,\n                variables: variables,\n                returnPartialData: true,\n                fragmentMatcherFunction: this.fragmentMatcher.match,\n                config: this.reducerConfig,\n            }), isMissing = _d.isMissing, result = _d.result;\n            needToFetch = isMissing || fetchPolicy === 'cache-and-network';\n            storeResult = result;\n        }\n        var shouldFetch = needToFetch && fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby';\n        var requestId = this.generateRequestId();\n        this.queryDocuments[queryId] = queryDoc;\n        this.queryStore.initQuery({\n            queryId: queryId,\n            queryString: queryString,\n            document: queryDoc,\n            storePreviousVariables: shouldFetch,\n            variables: variables,\n            isPoll: fetchType === FetchType.poll,\n            isRefetch: fetchType === FetchType.refetch,\n            metadata: metadata,\n            fetchMoreForQueryId: fetchMoreForQueryId,\n        });\n        this.broadcastQueries();\n        if (QueryManager.EMIT_REDUX_ACTIONS) {\n            this.store.dispatch({\n                type: 'APOLLO_QUERY_INIT',\n                queryString: queryString,\n                document: queryDoc,\n                operationName: getOperationName(queryDoc),\n                variables: variables,\n                fetchPolicy: fetchPolicy,\n                queryId: queryId,\n                requestId: requestId,\n                storePreviousVariables: shouldFetch,\n                isPoll: fetchType === FetchType.poll,\n                isRefetch: fetchType === FetchType.refetch,\n                fetchMoreForQueryId: fetchMoreForQueryId,\n                metadata: metadata,\n            });\n        }\n        this.lastRequestId[queryId] = requestId;\n        var shouldDispatchClientResult = !shouldFetch || fetchPolicy === 'cache-and-network';\n        if (shouldDispatchClientResult) {\n            this.queryStore.markQueryResultClient(queryId, !shouldFetch);\n            this.broadcastQueries();\n            if (QueryManager.EMIT_REDUX_ACTIONS) {\n                this.store.dispatch({\n                    type: 'APOLLO_QUERY_RESULT_CLIENT',\n                    result: { data: storeResult },\n                    variables: variables,\n                    document: queryDoc,\n                    operationName: getOperationName(queryDoc),\n                    complete: !shouldFetch,\n                    queryId: queryId,\n                    requestId: requestId,\n                });\n            }\n        }\n        if (shouldFetch) {\n            var networkResult = this.fetchRequest({\n                requestId: requestId,\n                queryId: queryId,\n                document: queryDoc,\n                options: options,\n                fetchMoreForQueryId: fetchMoreForQueryId,\n            }).catch(function (error) {\n                if (isApolloError(error)) {\n                    throw error;\n                }\n                else {\n                    if (requestId >= (_this.lastRequestId[queryId] || 1)) {\n                        if (QueryManager.EMIT_REDUX_ACTIONS) {\n                            _this.store.dispatch({\n                                type: 'APOLLO_QUERY_ERROR',\n                                error: error,\n                                queryId: queryId,\n                                requestId: requestId,\n                                fetchMoreForQueryId: fetchMoreForQueryId,\n                            });\n                        }\n                        _this.queryStore.markQueryError(queryId, error, fetchMoreForQueryId);\n                        _this.broadcastQueries();\n                    }\n                    _this.removeFetchQueryPromise(requestId);\n                    throw new ApolloError({\n                        networkError: error,\n                    });\n                }\n            });\n            if (fetchPolicy !== 'cache-and-network') {\n                return networkResult;\n            }\n        }\n        return Promise.resolve({ data: storeResult });\n    };\n    QueryManager.prototype.queryListenerForObserver = function (queryId, options, observer) {\n        var _this = this;\n        var previouslyHadError = false;\n        return function (queryStoreValue) {\n            if (!queryStoreValue) {\n                return;\n            }\n            queryStoreValue = _this.queryStore.get(queryId);\n            var storedQuery = _this.observableQueries[queryId];\n            var observableQuery = storedQuery ? storedQuery.observableQuery : null;\n            var fetchPolicy = observableQuery\n                ? observableQuery.options.fetchPolicy\n                : options.fetchPolicy;\n            if (fetchPolicy === 'standby') {\n                return;\n            }\n            var lastResult = observableQuery\n                ? observableQuery.getLastResult()\n                : null;\n            var shouldNotifyIfLoading = queryStoreValue.previousVariables ||\n                fetchPolicy === 'cache-only' ||\n                fetchPolicy === 'cache-and-network';\n            var networkStatusChanged = lastResult &&\n                queryStoreValue.networkStatus !== lastResult.networkStatus;\n            if (!isNetworkRequestInFlight(queryStoreValue.networkStatus) ||\n                (networkStatusChanged && options.notifyOnNetworkStatusChange) ||\n                shouldNotifyIfLoading) {\n                if ((queryStoreValue.graphQLErrors &&\n                    queryStoreValue.graphQLErrors.length > 0) ||\n                    queryStoreValue.networkError) {\n                    var apolloError_1 = new ApolloError({\n                        graphQLErrors: queryStoreValue.graphQLErrors,\n                        networkError: queryStoreValue.networkError,\n                    });\n                    previouslyHadError = true;\n                    if (observer.error) {\n                        try {\n                            observer.error(apolloError_1);\n                        }\n                        catch (e) {\n                            setTimeout(function () {\n                                throw e;\n                            }, 0);\n                        }\n                    }\n                    else {\n                        setTimeout(function () {\n                            throw apolloError_1;\n                        }, 0);\n                        if (!isProduction()) {\n                            console.info('An unhandled error was thrown because no error handler is registered ' +\n                                'for the query ' +\n                                queryStoreValue.queryString);\n                        }\n                    }\n                }\n                else {\n                    try {\n                        var _a = diffQueryAgainstStore({\n                            store: _this.getDataWithOptimisticResults(),\n                            query: _this.queryDocuments[queryId],\n                            variables: queryStoreValue.previousVariables || queryStoreValue.variables,\n                            config: _this.reducerConfig,\n                            fragmentMatcherFunction: _this.fragmentMatcher.match,\n                            previousResult: lastResult && lastResult.data,\n                        }), data = _a.result, isMissing = _a.isMissing;\n                        var resultFromStore = void 0;\n                        if (isMissing && fetchPolicy !== 'cache-only') {\n                            resultFromStore = {\n                                data: lastResult && lastResult.data,\n                                loading: isNetworkRequestInFlight(queryStoreValue.networkStatus),\n                                networkStatus: queryStoreValue.networkStatus,\n                                stale: true,\n                            };\n                        }\n                        else {\n                            resultFromStore = {\n                                data: data,\n                                loading: isNetworkRequestInFlight(queryStoreValue.networkStatus),\n                                networkStatus: queryStoreValue.networkStatus,\n                                stale: false,\n                            };\n                        }\n                        if (observer.next) {\n                            var isDifferentResult = !(lastResult &&\n                                resultFromStore &&\n                                lastResult.networkStatus === resultFromStore.networkStatus &&\n                                lastResult.stale === resultFromStore.stale &&\n                                lastResult.data === resultFromStore.data);\n                            if (isDifferentResult || previouslyHadError) {\n                                try {\n                                    observer.next(maybeDeepFreeze(resultFromStore));\n                                }\n                                catch (e) {\n                                    setTimeout(function () {\n                                        throw e;\n                                    }, 0);\n                                }\n                            }\n                        }\n                        previouslyHadError = false;\n                    }\n                    catch (error) {\n                        previouslyHadError = true;\n                        if (observer.error) {\n                            observer.error(new ApolloError({\n                                networkError: error,\n                            }));\n                        }\n                        return;\n                    }\n                }\n            }\n        };\n    };\n    QueryManager.prototype.watchQuery = function (options, shouldSubscribe) {\n        if (shouldSubscribe === void 0) { shouldSubscribe = true; }\n        if (options.returnPartialData) {\n            throw new Error('returnPartialData option is no longer supported since Apollo Client 1.0.');\n        }\n        if (options.forceFetch) {\n            throw new Error('forceFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n        }\n        if (options.noFetch) {\n            throw new Error('noFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n        }\n        if (options.fetchPolicy === 'standby') {\n            throw new Error('client.watchQuery cannot be called with fetchPolicy set to \"standby\"');\n        }\n        var queryDefinition = getQueryDefinition(options.query);\n        if (queryDefinition.variableDefinitions &&\n            queryDefinition.variableDefinitions.length) {\n            var defaultValues = getDefaultValues(queryDefinition);\n            options.variables = assign({}, defaultValues, options.variables);\n        }\n        if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n            options.notifyOnNetworkStatusChange = false;\n        }\n        var transformedOptions = __assign({}, options);\n        var observableQuery = new ObservableQuery({\n            scheduler: this.scheduler,\n            options: transformedOptions,\n            shouldSubscribe: shouldSubscribe,\n        });\n        return observableQuery;\n    };\n    QueryManager.prototype.query = function (options) {\n        var _this = this;\n        if (!options.query) {\n            throw new Error('query option is required. You must specify your GraphQL document in the query option.');\n        }\n        if (options.query.kind !== 'Document') {\n            throw new Error('You must wrap the query string in a \"gql\" tag.');\n        }\n        if (options.returnPartialData) {\n            throw new Error('returnPartialData option only supported on watchQuery.');\n        }\n        if (options.pollInterval) {\n            throw new Error('pollInterval option only supported on watchQuery.');\n        }\n        if (options.forceFetch) {\n            throw new Error('forceFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n        }\n        if (options.noFetch) {\n            throw new Error('noFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n        }\n        if (typeof options.notifyOnNetworkStatusChange !== 'undefined') {\n            throw new Error('Cannot call \"query\" with \"notifyOnNetworkStatusChange\" option. Only \"watchQuery\" has that option.');\n        }\n        options.notifyOnNetworkStatusChange = false;\n        var requestId = this.idCounter;\n        var resPromise = new Promise(function (resolve, reject) {\n            _this.addFetchQueryPromise(requestId, resPromise, resolve, reject);\n            return _this.watchQuery(options, false)\n                .result()\n                .then(function (result) {\n                _this.removeFetchQueryPromise(requestId);\n                resolve(result);\n            })\n                .catch(function (error) {\n                _this.removeFetchQueryPromise(requestId);\n                reject(error);\n            });\n        });\n        return resPromise;\n    };\n    QueryManager.prototype.generateQueryId = function () {\n        var queryId = this.idCounter.toString();\n        this.idCounter++;\n        return queryId;\n    };\n    QueryManager.prototype.stopQueryInStore = function (queryId) {\n        this.queryStore.stopQuery(queryId);\n        this.broadcastQueries();\n        if (QueryManager.EMIT_REDUX_ACTIONS) {\n            this.store.dispatch({\n                type: 'APOLLO_QUERY_STOP',\n                queryId: queryId,\n            });\n        }\n    };\n    QueryManager.prototype.getApolloState = function () {\n        return this.reduxRootSelector(this.store.getState());\n    };\n    QueryManager.prototype.selectApolloState = function (store) {\n        return this.reduxRootSelector(store.getState());\n    };\n    QueryManager.prototype.getInitialState = function () {\n        return { data: this.getApolloState().data };\n    };\n    QueryManager.prototype.getDataWithOptimisticResults = function () {\n        return getDataWithOptimisticResults(this.getApolloState());\n    };\n    QueryManager.prototype.addQueryListener = function (queryId, listener) {\n        this.queryListeners[queryId] = this.queryListeners[queryId] || [];\n        this.queryListeners[queryId].push(listener);\n    };\n    QueryManager.prototype.addFetchQueryPromise = function (requestId, promise, resolve, reject) {\n        this.fetchQueryPromises[requestId.toString()] = {\n            promise: promise,\n            resolve: resolve,\n            reject: reject,\n        };\n    };\n    QueryManager.prototype.removeFetchQueryPromise = function (requestId) {\n        delete this.fetchQueryPromises[requestId.toString()];\n    };\n    QueryManager.prototype.addObservableQuery = function (queryId, observableQuery) {\n        this.observableQueries[queryId] = { observableQuery: observableQuery };\n        var queryDef = getQueryDefinition(observableQuery.options.query);\n        if (queryDef.name && queryDef.name.value) {\n            var queryName = queryDef.name.value;\n            this.queryIdsByName[queryName] = this.queryIdsByName[queryName] || [];\n            this.queryIdsByName[queryName].push(observableQuery.queryId);\n        }\n    };\n    QueryManager.prototype.removeObservableQuery = function (queryId) {\n        var observableQuery = this.observableQueries[queryId].observableQuery;\n        var definition = getQueryDefinition(observableQuery.options.query);\n        var queryName = definition.name ? definition.name.value : null;\n        delete this.observableQueries[queryId];\n        if (queryName) {\n            this.queryIdsByName[queryName] = this.queryIdsByName[queryName].filter(function (val) {\n                return !(observableQuery.queryId === val);\n            });\n        }\n    };\n    QueryManager.prototype.resetStore = function () {\n        var _this = this;\n        Object.keys(this.fetchQueryPromises).forEach(function (key) {\n            var reject = _this.fetchQueryPromises[key].reject;\n            reject(new Error('Store reset while query was in flight.'));\n        });\n        this.queryStore.reset(Object.keys(this.observableQueries));\n        this.store.dispatch({\n            type: 'APOLLO_STORE_RESET',\n            observableQueryIds: Object.keys(this.observableQueries),\n        });\n        this.mutationStore.reset();\n        var observableQueryPromises = [];\n        Object.keys(this.observableQueries).forEach(function (queryId) {\n            var storeQuery = _this.queryStore.get(queryId);\n            var fetchPolicy = _this.observableQueries[queryId].observableQuery\n                .options.fetchPolicy;\n            if (fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby') {\n                observableQueryPromises.push(_this.observableQueries[queryId].observableQuery.refetch());\n            }\n        });\n        return Promise.all(observableQueryPromises);\n    };\n    QueryManager.prototype.startQuery = function (queryId, options, listener) {\n        this.addQueryListener(queryId, listener);\n        this.fetchQuery(queryId, options)\n            .catch(function (error) { return undefined; });\n        return queryId;\n    };\n    QueryManager.prototype.startGraphQLSubscription = function (options) {\n        var _this = this;\n        var query = options.query;\n        var transformedDoc = query;\n        if (this.addTypename) {\n            transformedDoc = addTypenameToDocument(transformedDoc);\n        }\n        var variables = assign({}, getDefaultValues(getOperationDefinition(query)), options.variables);\n        var request = {\n            query: transformedDoc,\n            variables: variables,\n            operationName: getOperationName(transformedDoc),\n        };\n        var subId;\n        var observers = [];\n        return new Observable(function (observer) {\n            observers.push(observer);\n            if (observers.length === 1) {\n                var handler = function (error, result) {\n                    if (error) {\n                        observers.forEach(function (obs) {\n                            if (obs.error) {\n                                obs.error(error);\n                            }\n                        });\n                    }\n                    else {\n                        _this.store.dispatch({\n                            type: 'APOLLO_SUBSCRIPTION_RESULT',\n                            document: transformedDoc,\n                            operationName: getOperationName(transformedDoc),\n                            result: { data: result },\n                            variables: variables,\n                            subscriptionId: subId,\n                            extraReducers: _this.getExtraReducers(),\n                        });\n                        observers.forEach(function (obs) {\n                            if (obs.next) {\n                                obs.next(result);\n                            }\n                        });\n                    }\n                };\n                subId = _this\n                    .networkInterface.subscribe(request, handler);\n            }\n            return {\n                unsubscribe: function () {\n                    observers = observers.filter(function (obs) { return obs !== observer; });\n                    if (observers.length === 0) {\n                        _this.networkInterface.unsubscribe(subId);\n                    }\n                },\n                _networkSubscriptionId: subId,\n            };\n        });\n    };\n    QueryManager.prototype.removeQuery = function (queryId) {\n        delete this.queryListeners[queryId];\n        delete this.queryDocuments[queryId];\n    };\n    QueryManager.prototype.stopQuery = function (queryId) {\n        this.removeQuery(queryId);\n        this.stopQueryInStore(queryId);\n    };\n    QueryManager.prototype.getCurrentQueryResult = function (observableQuery, isOptimistic) {\n        if (isOptimistic === void 0) { isOptimistic = false; }\n        var _a = this.getQueryParts(observableQuery), variables = _a.variables, document = _a.document;\n        var lastResult = observableQuery.getLastResult();\n        var queryOptions = observableQuery.options;\n        var readOptions = {\n            store: isOptimistic\n                ? this.getDataWithOptimisticResults()\n                : this.getApolloState().data,\n            query: document,\n            variables: variables,\n            config: this.reducerConfig,\n            previousResult: lastResult ? lastResult.data : undefined,\n            fragmentMatcherFunction: this.fragmentMatcher.match,\n        };\n        try {\n            var data = readQueryFromStore(readOptions);\n            return maybeDeepFreeze({ data: data, partial: false });\n        }\n        catch (e) {\n            return maybeDeepFreeze({ data: {}, partial: true });\n        }\n    };\n    QueryManager.prototype.getQueryWithPreviousResult = function (queryIdOrObservable, isOptimistic) {\n        if (isOptimistic === void 0) { isOptimistic = false; }\n        var observableQuery;\n        if (typeof queryIdOrObservable === 'string') {\n            if (!this.observableQueries[queryIdOrObservable]) {\n                throw new Error(\"ObservableQuery with this id doesn't exist: \" + queryIdOrObservable);\n            }\n            observableQuery = this.observableQueries[queryIdOrObservable]\n                .observableQuery;\n        }\n        else {\n            observableQuery = queryIdOrObservable;\n        }\n        var _a = this.getQueryParts(observableQuery), variables = _a.variables, document = _a.document;\n        var data = this.getCurrentQueryResult(observableQuery, isOptimistic).data;\n        return {\n            previousResult: data,\n            variables: variables,\n            document: document,\n        };\n    };\n    QueryManager.prototype.getQueryParts = function (observableQuery) {\n        var queryOptions = observableQuery.options;\n        var transformedDoc = observableQuery.options.query;\n        if (this.addTypename) {\n            transformedDoc = addTypenameToDocument(transformedDoc);\n        }\n        return {\n            variables: queryOptions.variables,\n            document: transformedDoc,\n        };\n    };\n    QueryManager.prototype.transformQueryDocument = function (options) {\n        var queryDoc = options.query;\n        if (this.addTypename) {\n            queryDoc = addTypenameToDocument(queryDoc);\n        }\n        return {\n            queryDoc: queryDoc,\n        };\n    };\n    QueryManager.prototype.getExtraReducers = function () {\n        var _this = this;\n        return Object.keys(this.observableQueries)\n            .map(function (obsQueryId) {\n            var query = _this.observableQueries[obsQueryId].observableQuery;\n            var queryOptions = query.options;\n            if (queryOptions.reducer) {\n                return createStoreReducer(queryOptions.reducer, _this.addTypename\n                    ? addTypenameToDocument(queryOptions.query)\n                    : queryOptions.query, query.variables || {}, _this.reducerConfig);\n            }\n            return null;\n        })\n            .filter(function (reducer) { return reducer !== null; });\n    };\n    QueryManager.prototype.fetchRequest = function (_a) {\n        var _this = this;\n        var requestId = _a.requestId, queryId = _a.queryId, document = _a.document, options = _a.options, fetchMoreForQueryId = _a.fetchMoreForQueryId;\n        var variables = options.variables;\n        var request = {\n            query: document,\n            variables: variables,\n            operationName: getOperationName(document),\n        };\n        var retPromise = new Promise(function (resolve, reject) {\n            _this.addFetchQueryPromise(requestId, retPromise, resolve, reject);\n            _this.deduplicator\n                .query(request, _this.queryDeduplication)\n                .then(function (result) {\n                var extraReducers = _this.getExtraReducers();\n                if (requestId >= (_this.lastRequestId[queryId] || 1)) {\n                    _this.disableBroadcasting = true;\n                    _this.store.dispatch({\n                        type: 'APOLLO_QUERY_RESULT',\n                        document: document,\n                        variables: variables ? variables : {},\n                        operationName: getOperationName(document),\n                        result: result,\n                        queryId: queryId,\n                        requestId: requestId,\n                        fetchMoreForQueryId: fetchMoreForQueryId,\n                        extraReducers: extraReducers,\n                    });\n                    _this.disableBroadcasting = false;\n                    var reducerError = _this.getApolloState().reducerError;\n                    if (!reducerError || reducerError.queryId !== queryId) {\n                        _this.queryStore.markQueryResult(queryId, result, fetchMoreForQueryId);\n                        _this.broadcastQueries();\n                    }\n                }\n                _this.removeFetchQueryPromise(requestId);\n                if (result.errors) {\n                    throw new ApolloError({\n                        graphQLErrors: result.errors,\n                    });\n                }\n                return result;\n            })\n                .then(function (result) {\n                var resultFromStore;\n                if (fetchMoreForQueryId) {\n                    resultFromStore = result.data;\n                }\n                else {\n                    try {\n                        resultFromStore = readQueryFromStore({\n                            store: _this.getApolloState().data,\n                            variables: variables,\n                            query: document,\n                            config: _this.reducerConfig,\n                            fragmentMatcherFunction: _this.fragmentMatcher.match,\n                        });\n                    }\n                    catch (e) { }\n                }\n                var reducerError = _this.getApolloState().reducerError;\n                if (reducerError && reducerError.queryId === queryId) {\n                    return Promise.reject(reducerError.error);\n                }\n                _this.removeFetchQueryPromise(requestId);\n                resolve({\n                    data: resultFromStore,\n                    loading: false,\n                    networkStatus: NetworkStatus.ready,\n                    stale: false,\n                });\n                return Promise.resolve();\n            })\n                .catch(function (error) {\n                reject(error);\n            });\n        });\n        return retPromise;\n    };\n    QueryManager.prototype.refetchQueryByName = function (queryName) {\n        var _this = this;\n        var refetchedQueries = this.queryIdsByName[queryName];\n        if (refetchedQueries === undefined) {\n            console.warn(\"Warning: unknown query with name \" + queryName + \" asked to refetch\");\n            return;\n        }\n        else {\n            return Promise.all(refetchedQueries.map(function (queryId) {\n                return _this.observableQueries[queryId].observableQuery.refetch();\n            }));\n        }\n    };\n    QueryManager.prototype.broadcastQueries = function () {\n        var _this = this;\n        if (this.disableBroadcasting) {\n            return;\n        }\n        Object.keys(this.queryListeners).forEach(function (queryId) {\n            var listeners = _this.queryListeners[queryId];\n            if (listeners) {\n                listeners.forEach(function (listener) {\n                    if (listener) {\n                        var queryStoreValue = _this.queryStore.get(queryId);\n                        listener(queryStoreValue);\n                    }\n                });\n            }\n        });\n    };\n    QueryManager.prototype.generateRequestId = function () {\n        var requestId = this.idCounter;\n        this.idCounter++;\n        return requestId;\n    };\n    QueryManager.EMIT_REDUX_ACTIONS = true;\n    return QueryManager;\n}());\nexport { QueryManager };\n//# sourceMappingURL=QueryManager.js.map","import { diffQueryAgainstStore } from './readFromStore';\nimport { writeResultToStore } from './writeToStore';\nexport function createStoreReducer(resultReducer, document, variables, config) {\n    return function (store, action) {\n        var _a = diffQueryAgainstStore({\n            store: store,\n            query: document,\n            variables: variables,\n            returnPartialData: true,\n            fragmentMatcherFunction: config.fragmentMatcher,\n            config: config,\n        }), result = _a.result, isMissing = _a.isMissing;\n        if (isMissing) {\n            return store;\n        }\n        var nextResult;\n        try {\n            nextResult = resultReducer(result, action, variables);\n        }\n        catch (err) {\n            console.warn('Unhandled error in result reducer', err);\n            throw err;\n        }\n        if (result !== nextResult) {\n            return writeResultToStore({\n                dataId: 'ROOT_QUERY',\n                result: nextResult,\n                store: store,\n                document: document,\n                variables: variables,\n                dataIdFromObject: config.dataIdFromObject,\n                fragmentMatcherFunction: config.fragmentMatcher,\n            });\n        }\n        return store;\n    };\n}\n//# sourceMappingURL=resultReducers.js.map","var __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nimport { createNetworkInterface, } from './transport/networkInterface';\nimport { execute, ApolloLink, } from 'apollo-link-core';\nimport { HeuristicFragmentMatcher, } from './data/fragmentMatcher';\nimport { createApolloStore, createApolloReducer, } from './store';\nimport { QueryManager } from './core/QueryManager';\nimport { isProduction } from './util/environment';\nimport { getStoreKeyName } from './data/storeUtils';\nimport { ReduxDataProxy, } from './data/proxy';\nimport { version } from './version';\nvar DEFAULT_REDUX_ROOT_KEY = 'apollo';\nfunction defaultReduxRootSelector(state) {\n    return state[DEFAULT_REDUX_ROOT_KEY];\n}\nfunction defaultDataIdFromObject(result) {\n    if (result.__typename) {\n        if (result.id !== undefined) {\n            return result.__typename + \":\" + result.id;\n        }\n        if (result._id !== undefined) {\n            return result.__typename + \":\" + result._id;\n        }\n    }\n    return null;\n}\nvar hasSuggestedDevtools = false;\nvar ApolloClient = (function () {\n    function ApolloClient(options) {\n        if (options === void 0) { options = {}; }\n        var _this = this;\n        this.middleware = function () {\n            return function (store) {\n                _this.setStore(store);\n                return function (next) { return function (action) {\n                    var previousApolloState = _this.queryManager.selectApolloState(store);\n                    var returnValue = next(action);\n                    var newApolloState = _this.queryManager.selectApolloState(store);\n                    if (newApolloState !== previousApolloState) {\n                        _this.queryManager.broadcastNewStore(store.getState());\n                    }\n                    if (_this.devToolsHookCb) {\n                        _this.devToolsHookCb({\n                            action: action,\n                            state: {\n                                queries: _this.queryManager.queryStore.getStore(),\n                                mutations: _this.queryManager.mutationStore.getStore(),\n                            },\n                            dataWithOptimisticResults: _this.queryManager.getDataWithOptimisticResults(),\n                        });\n                    }\n                    return returnValue;\n                }; };\n            };\n        };\n        var dataIdFromObject = options.dataIdFromObject;\n        var networkInterface = options.networkInterface, reduxRootSelector = options.reduxRootSelector, initialState = options.initialState, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, _c = options.addTypename, addTypename = _c === void 0 ? true : _c, customResolvers = options.customResolvers, connectToDevTools = options.connectToDevTools, fragmentMatcher = options.fragmentMatcher, _d = options.queryDeduplication, queryDeduplication = _d === void 0 ? true : _d;\n        if (typeof reduxRootSelector === 'function') {\n            this.reduxRootSelector = reduxRootSelector;\n        }\n        else if (typeof reduxRootSelector !== 'undefined') {\n            throw new Error('\"reduxRootSelector\" must be a function.');\n        }\n        if (typeof fragmentMatcher === 'undefined') {\n            this.fragmentMatcher = new HeuristicFragmentMatcher();\n        }\n        else {\n            this.fragmentMatcher = fragmentMatcher;\n        }\n        var createQuery = function (getResult) {\n            return function (request) {\n                return new Promise(function (resolve, reject) {\n                    var resolved = false;\n                    var subscription = getResult(request).subscribe({\n                        next: function (data) {\n                            if (!resolved) {\n                                resolve(data);\n                                resolved = true;\n                            }\n                            else {\n                                console.warn('Apollo Client does not support multiple results from an Observable');\n                            }\n                        },\n                        error: reject,\n                        complete: function () { return subscription.unsubscribe(); },\n                    });\n                });\n            };\n        };\n        if (networkInterface instanceof ApolloLink) {\n            var count_1 = 0;\n            this.networkInterface = {\n                query: createQuery(function (request) {\n                    return execute(networkInterface, request);\n                }),\n                subscribe: function (request, handler) {\n                    if (!_this.subscriptionMap) {\n                        _this.subscriptionMap = new Map();\n                    }\n                    var subscription = execute(networkInterface, request).subscribe({\n                        next: function (data) { return handler(undefined, data); },\n                        error: function (error) { return handler([error]); },\n                        complete: handler,\n                    });\n                    var id = count_1.toString();\n                    _this.subscriptionMap.set(id, subscription);\n                    count_1++;\n                    return id;\n                },\n                unsubscribe: function (id) {\n                    if (_this.subscriptionMap) {\n                        var subscription = _this.subscriptionMap.get(id);\n                        if (subscription) {\n                            subscription.unsubscribe();\n                        }\n                    }\n                },\n            };\n        }\n        else {\n            this.networkInterface = networkInterface\n                ? networkInterface\n                : createNetworkInterface({ uri: '/graphql' });\n        }\n        this.initialState = initialState ? initialState : {};\n        this.addTypename = addTypename;\n        this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n        this.dataId = dataIdFromObject =\n            dataIdFromObject || defaultDataIdFromObject;\n        this.dataIdFromObject = this.dataId;\n        this.fieldWithArgs = getStoreKeyName;\n        this.queryDeduplication = queryDeduplication;\n        this.ssrMode = ssrMode;\n        if (ssrForceFetchDelay) {\n            setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay);\n        }\n        this.reducerConfig = {\n            dataIdFromObject: dataIdFromObject,\n            customResolvers: customResolvers,\n            addTypename: addTypename,\n            fragmentMatcher: this.fragmentMatcher.match,\n        };\n        this.watchQuery = this.watchQuery.bind(this);\n        this.query = this.query.bind(this);\n        this.mutate = this.mutate.bind(this);\n        this.setStore = this.setStore.bind(this);\n        this.resetStore = this.resetStore.bind(this);\n        var defaultConnectToDevTools = !isProduction() &&\n            typeof window !== 'undefined' &&\n            !window.__APOLLO_CLIENT__;\n        if (typeof connectToDevTools === 'undefined'\n            ? defaultConnectToDevTools\n            : connectToDevTools) {\n            window.__APOLLO_CLIENT__ = this;\n        }\n        if (!hasSuggestedDevtools && !isProduction()) {\n            hasSuggestedDevtools = true;\n            if (typeof window !== 'undefined' &&\n                window.document &&\n                window.top === window.self) {\n                if (typeof window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n                    if (navigator.userAgent.indexOf('Chrome') > -1) {\n                        console.debug('Download the Apollo DevTools ' +\n                            'for a better development experience: ' +\n                            'https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm');\n                    }\n                }\n            }\n        }\n        this.version = version;\n    }\n    ApolloClient.prototype.watchQuery = function (options) {\n        this.initStore();\n        if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n            options = __assign({}, options, { fetchPolicy: 'cache-first' });\n        }\n        return this.queryManager.watchQuery(options);\n    };\n    ApolloClient.prototype.query = function (options) {\n        this.initStore();\n        if (options.fetchPolicy === 'cache-and-network') {\n            throw new Error('cache-and-network fetchPolicy can only be used with watchQuery');\n        }\n        if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n            options = __assign({}, options, { fetchPolicy: 'cache-first' });\n        }\n        return this.queryManager.query(options);\n    };\n    ApolloClient.prototype.mutate = function (options) {\n        this.initStore();\n        return this.queryManager.mutate(options);\n    };\n    ApolloClient.prototype.subscribe = function (options) {\n        this.initStore();\n        return this.queryManager.startGraphQLSubscription(options);\n    };\n    ApolloClient.prototype.readQuery = function (options) {\n        return this.initProxy().readQuery(options);\n    };\n    ApolloClient.prototype.readFragment = function (options) {\n        return this.initProxy().readFragment(options);\n    };\n    ApolloClient.prototype.writeQuery = function (options) {\n        return this.initProxy().writeQuery(options);\n    };\n    ApolloClient.prototype.writeFragment = function (options) {\n        return this.initProxy().writeFragment(options);\n    };\n    ApolloClient.prototype.reducer = function () {\n        return createApolloReducer(this.reducerConfig);\n    };\n    ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n        this.devToolsHookCb = cb;\n    };\n    ApolloClient.prototype.initStore = function () {\n        var _this = this;\n        if (this.store) {\n            return;\n        }\n        if (this.reduxRootSelector) {\n            throw new Error('Cannot initialize the store because \"reduxRootSelector\" is provided. ' +\n                'reduxRootSelector should only be used when the store is created outside of the client. ' +\n                'This may lead to unexpected results when querying the store internally. ' +\n                \"Please remove that option from ApolloClient constructor.\");\n        }\n        this.setStore(createApolloStore({\n            reduxRootKey: DEFAULT_REDUX_ROOT_KEY,\n            initialState: this.initialState,\n            config: this.reducerConfig,\n            logger: function (store) { return function (next) { return function (action) {\n                var result = next(action);\n                if (_this.devToolsHookCb) {\n                    _this.devToolsHookCb({\n                        action: action,\n                        state: {\n                            queries: _this.queryManager.queryStore.getStore(),\n                            mutations: _this.queryManager.mutationStore.getStore(),\n                        },\n                        dataWithOptimisticResults: _this.queryManager.getDataWithOptimisticResults(),\n                    });\n                }\n                return result;\n            }; }; },\n        }));\n    };\n    ApolloClient.prototype.resetStore = function () {\n        return this.queryManager ? this.queryManager.resetStore() : null;\n    };\n    ApolloClient.prototype.getInitialState = function () {\n        this.initStore();\n        return this.queryManager.getInitialState();\n    };\n    ApolloClient.prototype.setStore = function (store) {\n        var reduxRootSelector;\n        if (this.reduxRootSelector) {\n            reduxRootSelector = this.reduxRootSelector;\n        }\n        else {\n            reduxRootSelector = defaultReduxRootSelector;\n        }\n        if (typeof reduxRootSelector(store.getState()) === 'undefined') {\n            throw new Error('Existing store does not use apolloReducer. Please make sure the store ' +\n                'is properly configured and \"reduxRootSelector\" is correctly specified.');\n        }\n        this.store = store;\n        this.queryManager = new QueryManager({\n            networkInterface: this.networkInterface,\n            reduxRootSelector: reduxRootSelector,\n            store: store,\n            addTypename: this.addTypename,\n            reducerConfig: this.reducerConfig,\n            queryDeduplication: this.queryDeduplication,\n            fragmentMatcher: this.fragmentMatcher,\n            ssrMode: this.ssrMode,\n        });\n    };\n    ApolloClient.prototype.initProxy = function () {\n        if (!this.proxy) {\n            this.initStore();\n            this.proxy = new ReduxDataProxy(this.store, this.reduxRootSelector || defaultReduxRootSelector, this.fragmentMatcher, this.reducerConfig);\n        }\n        return this.proxy;\n    };\n    return ApolloClient;\n}());\nexport default ApolloClient;\n//# sourceMappingURL=ApolloClient.js.map","export var version = \"1.9.4\";\n//# sourceMappingURL=version.js.map"]}