{"version":3,"file":"static/chunks/2571-c45b8fef4ba22302.js","mappings":"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ACA,0EGpFAK,aFKA,IAAAC,EAAA,gCAEA,SAAAC,EAAAC,CAAA,EACA,OAAAC,CAAA,CAAAD,EAAAE,UAAA,KAGA,IAAAD,EAAA,CACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,MACA,MACA,MACA,UACA,MACA,MACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,gBCnKA,IAAAE,EAAA,CACAC,KAAA,CACAC,MAAA,GAAApiC,EAAAxe,KAAA,EAEAo2C,SAAA,CACAwK,MAAA,OAAApiC,EAAA/I,IAAA,EAGAorC,SAAA,CACAD,MAAA,GAAAl9B,EAAAlF,EAAAymB,WAAA,QACA,EACA6b,oBAAA,CACAF,MAAApiC,CAAA,EACA,IAAAuiC,EAAAC,EAAA,IAAAt9B,EAAAlF,EAAA2b,mBAAA,YACA8mB,EAAAv9B,EACA,CACAlF,EAAA0mB,SAAA,CACAxhB,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","sources":["webpack://_N_E/./node_modules/next/dist/client/components/noop-head.js","webpack://_N_E/./node_modules/redux-persist/es/constants.js","webpack://_N_E/./node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","webpack://_N_E/./node_modules/redux-persist/es/createPersistoid.js","webpack://_N_E/./node_modules/redux-persist/es/getStoredState.js","webpack://_N_E/./node_modules/redux-persist/es/purgeStoredState.js","webpack://_N_E/./node_modules/redux-persist/es/persistReducer.js","webpack://_N_E/./node_modules/redux-persist/es/persistStore.js","webpack://_N_E/./node_modules/redux-persist/es/index.js","webpack://_N_E/./node_modules/redux-persist/es/integration/react.js","webpack://_N_E/./node_modules/redux-persist/lib/storage/createWebStorage.js","webpack://_N_E/./node_modules/redux-persist/lib/storage/getStorage.js","webpack://_N_E/./node_modules/redux-persist/lib/storage/index.js","webpack://_N_E/./node_modules/next/font/google/target.css","webpack://_N_E/./node_modules/next/font/google/target.css?390e","webpack://_N_E/./node_modules/@apollo/client/cache/core/cache.js","webpack://_N_E/./node_modules/@apollo/client/cache/core/types/common.js","webpack://_N_E/./node_modules/@apollo/client/cache/inmemory/helpers.js","webpack://_N_E/./node_modules/@apollo/client/cache/inmemory/entityStore.js","webpack://_N_E/./node_modules/@apollo/client/cache/inmemory/object-canon.js","webpack://_N_E/./node_modules/@apollo/client/cache/inmemory/readFromStore.js","webpack://_N_E/./node_modules/@apollo/client/cache/inmemory/key-extractor.js","webpack://_N_E/./node_modules/@apollo/client/cache/inmemory/policies.js","webpack://_N_E/./node_modules/@apollo/client/cache/inmemory/writeToStore.js","webpack://_N_E/./node_modules/@apollo/client/cache/inmemory/inMemoryCache.js","webpack://_N_E/./node_modules/@apollo/client/cache/inmemory/reactiveVars.js","webpack://_N_E/./node_modules/@apollo/client/link/core/execute.js","webpack://_N_E/./node_modules/@apollo/client/link/http/HttpLink.js","webpack://_N_E/./node_modules/@apollo/client/utilities/observables/asyncMap.js","webpack://_N_E/./node_modules/@apollo/client/utilities/common/errorHandling.js","webpack://_N_E/./node_modules/@apollo/client/utilities/observables/iteration.js","webpack://_N_E/./node_modules/@apollo/client/utilities/observables/subclassing.js","webpack://_N_E/./node_modules/@apollo/client/utilities/observables/Concast.js","webpack://_N_E/./node_modules/@apollo/client/core/ObservableQuery.js","webpack://_N_E/./node_modules/@apollo/client/core/QueryInfo.js","webpack://_N_E/./node_modules/@apollo/client/core/QueryManager.js","webpack://_N_E/./node_modules/graphql/language/predicates.mjs","webpack://_N_E/./node_modules/@apollo/client/core/LocalState.js","webpack://_N_E/./node_modules/@apollo/client/core/ApolloClient.js","webpack://_N_E/./node_modules/@apollo/client/core/equalByQuery.js","webpack://_N_E/./node_modules/@apollo/client/core/networkStatus.js","webpack://_N_E/./node_modules/@apollo/client/link/context/index.js","webpack://_N_E/./node_modules/@apollo/client/link/utils/createOperation.js","webpack://_N_E/./node_modules/@apollo/client/link/utils/transformOperation.js","webpack://_N_E/./node_modules/@apollo/client/link/utils/validateOperation.js","webpack://_N_E/./node_modules/@apollo/client/link/core/ApolloLink.js","webpack://_N_E/./node_modules/@apollo/client/link/error/index.js","webpack://_N_E/./node_modules/@apollo/client/link/http/serializeFetchParameter.js","webpack://_N_E/./node_modules/@apollo/client/link/http/selectURI.js","webpack://_N_E/./node_modules/@apollo/client/link/http/iterators/async.js","webpack://_N_E/./node_modules/@apollo/client/link/http/iterators/nodeStream.js","webpack://_N_E/./node_modules/@apollo/client/link/http/iterators/promise.js","webpack://_N_E/./node_modules/@apollo/client/link/http/iterators/reader.js","webpack://_N_E/./node_modules/@apollo/client/link/http/responseIterator.js","webpack://_N_E/./node_modules/@apollo/client/link/utils/throwServerError.js","webpack://_N_E/./node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","webpack://_N_E/./node_modules/@apollo/client/link/http/checkFetcher.js","webpack://_N_E/./node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","webpack://_N_E/./node_modules/@apollo/client/link/http/rewriteURIForGET.js","webpack://_N_E/./node_modules/@apollo/client/link/utils/fromError.js","webpack://_N_E/./node_modules/@apollo/client/link/utils/filterOperationVariables.js","webpack://_N_E/./node_modules/@apollo/client/link/http/createHttpLink.js","webpack://_N_E/./node_modules/@apollo/client/react/context/ApolloProvider.js","webpack://_N_E/./node_modules/@apollo/client/utilities/common/arrays.js","webpack://_N_E/./node_modules/@apollo/client/utilities/common/canonicalStringify.js","webpack://_N_E/./node_modules/@apollo/client/utilities/common/cloneDeep.js","webpack://_N_E/./node_modules/@apollo/client/utilities/common/incrementalResult.js","webpack://_N_E/./node_modules/@apollo/client/utilities/common/maybeDeepFreeze.js","webpack://_N_E/./node_modules/@apollo/client/utilities/common/mergeDeep.js","webpack://_N_E/./node_modules/@apollo/client/utilities/graphql/DocumentTransform.js","webpack://_N_E/./node_modules/@apollo/client/utilities/graphql/directives.js","webpack://_N_E/./node_modules/@apollo/client/utilities/graphql/fragments.js","webpack://_N_E/./node_modules/@apollo/client/utilities/graphql/getFromAST.js","webpack://_N_E/./node_modules/graphql/language/printString.mjs","webpack://_N_E/./node_modules/graphql/language/printer.mjs","webpack://_N_E/./node_modules/@apollo/client/utilities/graphql/print.js","webpack://_N_E/./node_modules/@apollo/client/utilities/graphql/storeUtils.js","webpack://_N_E/./node_modules/@apollo/client/utilities/graphql/transform.js","webpack://_N_E/./node_modules/@wry/trie/lib/index.js","webpack://_N_E/./node_modules/graphql/language/visitor.mjs","webpack://_N_E/./node_modules/optimism/node_modules/@wry/trie/lib/index.js","webpack://_N_E/./node_modules/@wry/context/lib/slot.js","webpack://_N_E/./node_modules/@wry/context/lib/index.js","webpack://_N_E/./node_modules/optimism/lib/context.js","webpack://_N_E/./node_modules/optimism/lib/helpers.js","webpack://_N_E/./node_modules/optimism/lib/entry.js","webpack://_N_E/./node_modules/optimism/lib/dep.js","webpack://_N_E/./node_modules/optimism/lib/index.js","webpack://_N_E/./node_modules/zen-observable-ts/module.js","webpack://_N_E/<anon>"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nObject.defineProperty(exports, \"default\", {\n    enumerable: true,\n    get: function() {\n        return NoopHead;\n    }\n});\nfunction NoopHead() {\n    return null;\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n  Object.defineProperty(exports.default, '__esModule', { value: true });\n  Object.assign(exports.default, exports);\n  module.exports = exports.default;\n}\n\n//# sourceMappingURL=noop-head.js.map","export var KEY_PREFIX = 'persist:';\nexport var FLUSH = 'persist/FLUSH';\nexport var REHYDRATE = 'persist/REHYDRATE';\nexport var PAUSE = 'persist/PAUSE';\nexport var PERSIST = 'persist/PERSIST';\nexport var PURGE = 'persist/PURGE';\nexport var REGISTER = 'persist/REGISTER';\nexport var DEFAULT_VERSION = -1;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n  autoMergeLevel1: \n    - merges 1 level of substate\n    - skips substate if already modified\n*/\nexport default function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n  var debug = _ref.debug;\n\n  var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n  if (inboundState && _typeof(inboundState) === 'object') {\n    Object.keys(inboundState).forEach(function (key) {\n      // ignore _persist data\n      if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n      if (originalState[key] !== reducedState[key]) {\n        if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n        return;\n      } // otherwise hard set the new value\n\n\n      newState[key] = inboundState[key];\n    });\n  }\n\n  if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n  return newState;\n}","import { KEY_PREFIX, REHYDRATE } from './constants';\n// @TODO remove once flow < 0.63 support is no longer required.\nexport default function createPersistoid(config) {\n  // defaults\n  var blacklist = config.blacklist || null;\n  var whitelist = config.whitelist || null;\n  var transforms = config.transforms || [];\n  var throttle = config.throttle || 0;\n  var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n  var storage = config.storage;\n  var serialize;\n\n  if (config.serialize === false) {\n    serialize = function serialize(x) {\n      return x;\n    };\n  } else if (typeof config.serialize === 'function') {\n    serialize = config.serialize;\n  } else {\n    serialize = defaultSerialize;\n  }\n\n  var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n  var lastState = {};\n  var stagedState = {};\n  var keysToProcess = [];\n  var timeIterator = null;\n  var writePromise = null;\n\n  var update = function update(state) {\n    // add any changed keys to the queue\n    Object.keys(state).forEach(function (key) {\n      if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n      if (lastState[key] === state[key]) return; // value unchanged? noop\n\n      if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n      keysToProcess.push(key); // add key to queue\n    }); //if any key is missing in the new state which was present in the lastState,\n    //add it for processing too\n\n    Object.keys(lastState).forEach(function (key) {\n      if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n        keysToProcess.push(key);\n      }\n    }); // start the time iterator if not running (read: throttle)\n\n    if (timeIterator === null) {\n      timeIterator = setInterval(processNextKey, throttle);\n    }\n\n    lastState = state;\n  };\n\n  function processNextKey() {\n    if (keysToProcess.length === 0) {\n      if (timeIterator) clearInterval(timeIterator);\n      timeIterator = null;\n      return;\n    }\n\n    var key = keysToProcess.shift();\n    var endState = transforms.reduce(function (subState, transformer) {\n      return transformer.in(subState, key, lastState);\n    }, lastState[key]);\n\n    if (endState !== undefined) {\n      try {\n        stagedState[key] = serialize(endState);\n      } catch (err) {\n        console.error('redux-persist/createPersistoid: error serializing state', err);\n      }\n    } else {\n      //if the endState is undefined, no need to persist the existing serialized content\n      delete stagedState[key];\n    }\n\n    if (keysToProcess.length === 0) {\n      writeStagedState();\n    }\n  }\n\n  function writeStagedState() {\n    // cleanup any removed keys just before write.\n    Object.keys(stagedState).forEach(function (key) {\n      if (lastState[key] === undefined) {\n        delete stagedState[key];\n      }\n    });\n    writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n  }\n\n  function passWhitelistBlacklist(key) {\n    if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n    if (blacklist && blacklist.indexOf(key) !== -1) return false;\n    return true;\n  }\n\n  function onWriteFail(err) {\n    // @TODO add fail handlers (typically storage full)\n    if (writeFailHandler) writeFailHandler(err);\n\n    if (err && process.env.NODE_ENV !== 'production') {\n      console.error('Error storing data', err);\n    }\n  }\n\n  var flush = function flush() {\n    while (keysToProcess.length !== 0) {\n      processNextKey();\n    }\n\n    return writePromise || Promise.resolve();\n  }; // return `persistoid`\n\n\n  return {\n    update: update,\n    flush: flush\n  };\n} // @NOTE in the future this may be exposed via config\n\nfunction defaultSerialize(data) {\n  return JSON.stringify(data);\n}","import { KEY_PREFIX } from './constants';\nexport default function getStoredState(config) {\n  var transforms = config.transforms || [];\n  var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n  var storage = config.storage;\n  var debug = config.debug;\n  var deserialize;\n\n  if (config.deserialize === false) {\n    deserialize = function deserialize(x) {\n      return x;\n    };\n  } else if (typeof config.deserialize === 'function') {\n    deserialize = config.deserialize;\n  } else {\n    deserialize = defaultDeserialize;\n  }\n\n  return storage.getItem(storageKey).then(function (serialized) {\n    if (!serialized) return undefined;else {\n      try {\n        var state = {};\n        var rawState = deserialize(serialized);\n        Object.keys(rawState).forEach(function (key) {\n          state[key] = transforms.reduceRight(function (subState, transformer) {\n            return transformer.out(subState, key, rawState);\n          }, deserialize(rawState[key]));\n        });\n        return state;\n      } catch (err) {\n        if (process.env.NODE_ENV !== 'production' && debug) console.log(\"redux-persist/getStoredState: Error restoring data \".concat(serialized), err);\n        throw err;\n      }\n    }\n  });\n}\n\nfunction defaultDeserialize(serial) {\n  return JSON.parse(serial);\n}","import { KEY_PREFIX } from './constants';\nexport default function purgeStoredState(config) {\n  var storage = config.storage;\n  var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n  return storage.removeItem(storageKey, warnIfRemoveError);\n}\n\nfunction warnIfRemoveError(err) {\n  if (err && process.env.NODE_ENV !== 'production') {\n    console.error('redux-persist/purgeStoredState: Error purging data stored state', err);\n  }\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\nvar DEFAULT_TIMEOUT = 5000;\n/*\n  @TODO add validation / handling for:\n  - persisting a reducer which has nested _persist\n  - handling actions that fire before reydrate is called\n*/\n\nexport default function persistReducer(config, baseReducer) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!config) throw new Error('config is required for persistReducer');\n    if (!config.key) throw new Error('key is required in persistor config');\n    if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n  }\n\n  var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n  var debug = config.debug || false;\n  var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n  var getStoredState = config.getStoredState || defaultGetStoredState;\n  var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n  var _persistoid = null;\n  var _purge = false;\n  var _paused = true;\n\n  var conditionalUpdate = function conditionalUpdate(state) {\n    // update the persistoid only if we are rehydrated and not paused\n    state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n    return state;\n  };\n\n  return function (state, action) {\n    var _ref = state || {},\n        _persist = _ref._persist,\n        rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n    var restState = rest;\n\n    if (action.type === PERSIST) {\n      var _sealed = false;\n\n      var _rehydrate = function _rehydrate(payload, err) {\n        // dev warning if we are already sealed\n        if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n        if (!_sealed) {\n          action.rehydrate(config.key, payload, err);\n          _sealed = true;\n        }\n      };\n\n      timeout && setTimeout(function () {\n        !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n      }, timeout); // @NOTE PERSIST resumes if paused.\n\n      _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n      if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n      if (_persist) {\n        // We still need to call the base reducer because there might be nested\n        // uses of persistReducer which need to be aware of the PERSIST action\n        return _objectSpread({}, baseReducer(restState, action), {\n          _persist: _persist\n        });\n      }\n\n      if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n      action.register(config.key);\n      getStoredState(config).then(function (restoredState) {\n        var migrate = config.migrate || function (s, v) {\n          return Promise.resolve(s);\n        };\n\n        migrate(restoredState, version).then(function (migratedState) {\n          _rehydrate(migratedState);\n        }, function (migrateErr) {\n          if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n          _rehydrate(undefined, migrateErr);\n        });\n      }, function (err) {\n        _rehydrate(undefined, err);\n      });\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: {\n          version: version,\n          rehydrated: false\n        }\n      });\n    } else if (action.type === PURGE) {\n      _purge = true;\n      action.result(purgeStoredState(config));\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: _persist\n      });\n    } else if (action.type === FLUSH) {\n      action.result(_persistoid && _persistoid.flush());\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: _persist\n      });\n    } else if (action.type === PAUSE) {\n      _paused = true;\n    } else if (action.type === REHYDRATE) {\n      // noop on restState if purging\n      if (_purge) return _objectSpread({}, restState, {\n        _persist: _objectSpread({}, _persist, {\n          rehydrated: true\n        }) // @NOTE if key does not match, will continue to default else below\n\n      });\n\n      if (action.key === config.key) {\n        var reducedState = baseReducer(restState, action);\n        var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n        var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n        var _newState = _objectSpread({}, reconciledRest, {\n          _persist: _objectSpread({}, _persist, {\n            rehydrated: true\n          })\n        });\n\n        return conditionalUpdate(_newState);\n      }\n    } // if we have not already handled PERSIST, straight passthrough\n\n\n    if (!_persist) return baseReducer(state, action); // run base reducer:\n    // is state modified ? return original : return updated\n\n    var newState = baseReducer(restState, action);\n    if (newState === restState) return state;\n    return conditionalUpdate(_objectSpread({}, newState, {\n      _persist: _persist\n    }));\n  };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { createStore } from 'redux';\nimport { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from './constants';\nvar initialState = {\n  registry: [],\n  bootstrapped: false\n};\n\nvar persistorReducer = function persistorReducer() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case REGISTER:\n      return _objectSpread({}, state, {\n        registry: [].concat(_toConsumableArray(state.registry), [action.key])\n      });\n\n    case REHYDRATE:\n      var firstIndex = state.registry.indexOf(action.key);\n\n      var registry = _toConsumableArray(state.registry);\n\n      registry.splice(firstIndex, 1);\n      return _objectSpread({}, state, {\n        registry: registry,\n        bootstrapped: registry.length === 0\n      });\n\n    default:\n      return state;\n  }\n};\n\nexport default function persistStore(store, options, cb) {\n  // help catch incorrect usage of passing PersistConfig in as PersistorOptions\n  if (process.env.NODE_ENV !== 'production') {\n    var optionsToTest = options || {};\n    var bannedKeys = ['blacklist', 'whitelist', 'transforms', 'storage', 'keyPrefix', 'migrate'];\n    bannedKeys.forEach(function (k) {\n      if (!!optionsToTest[k]) console.error(\"redux-persist: invalid option passed to persistStore: \\\"\".concat(k, \"\\\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer.\"));\n    });\n  }\n\n  var boostrappedCb = cb || false;\n\n  var _pStore = createStore(persistorReducer, initialState, options && options.enhancer ? options.enhancer : undefined);\n\n  var register = function register(key) {\n    _pStore.dispatch({\n      type: REGISTER,\n      key: key\n    });\n  };\n\n  var rehydrate = function rehydrate(key, payload, err) {\n    var rehydrateAction = {\n      type: REHYDRATE,\n      payload: payload,\n      err: err,\n      key: key // dispatch to `store` to rehydrate and `persistor` to track result\n\n    };\n    store.dispatch(rehydrateAction);\n\n    _pStore.dispatch(rehydrateAction);\n\n    if (boostrappedCb && persistor.getState().bootstrapped) {\n      boostrappedCb();\n      boostrappedCb = false;\n    }\n  };\n\n  var persistor = _objectSpread({}, _pStore, {\n    purge: function purge() {\n      var results = [];\n      store.dispatch({\n        type: PURGE,\n        result: function result(purgeResult) {\n          results.push(purgeResult);\n        }\n      });\n      return Promise.all(results);\n    },\n    flush: function flush() {\n      var results = [];\n      store.dispatch({\n        type: FLUSH,\n        result: function result(flushResult) {\n          results.push(flushResult);\n        }\n      });\n      return Promise.all(results);\n    },\n    pause: function pause() {\n      store.dispatch({\n        type: PAUSE\n      });\n    },\n    persist: function persist() {\n      store.dispatch({\n        type: PERSIST,\n        register: register,\n        rehydrate: rehydrate\n      });\n    }\n  });\n\n  if (!(options && options.manualPersist)) {\n    persistor.persist();\n  }\n\n  return persistor;\n}","export { default as persistReducer } from './persistReducer';\nexport { default as persistCombineReducers } from './persistCombineReducers';\nexport { default as persistStore } from './persistStore';\nexport { default as createMigrate } from './createMigrate';\nexport { default as createTransform } from './createTransform';\nexport { default as getStoredState } from './getStoredState';\nexport { default as createPersistoid } from './createPersistoid';\nexport { default as purgeStoredState } from './purgeStoredState';\nexport * from './constants';","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { PureComponent } from 'react'; // eslint-disable-line import/no-unresolved\n\nexport var PersistGate =\n/*#__PURE__*/\nfunction (_PureComponent) {\n  _inherits(PersistGate, _PureComponent);\n\n  function PersistGate() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, PersistGate);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(PersistGate)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      bootstrapped: false\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_unsubscribe\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"handlePersistorState\", function () {\n      var persistor = _this.props.persistor;\n\n      var _persistor$getState = persistor.getState(),\n          bootstrapped = _persistor$getState.bootstrapped;\n\n      if (bootstrapped) {\n        if (_this.props.onBeforeLift) {\n          Promise.resolve(_this.props.onBeforeLift()).finally(function () {\n            return _this.setState({\n              bootstrapped: true\n            });\n          });\n        } else {\n          _this.setState({\n            bootstrapped: true\n          });\n        }\n\n        _this._unsubscribe && _this._unsubscribe();\n      }\n    });\n\n    return _this;\n  }\n\n  _createClass(PersistGate, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this._unsubscribe = this.props.persistor.subscribe(this.handlePersistorState);\n      this.handlePersistorState();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this._unsubscribe && this._unsubscribe();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof this.props.children === 'function' && this.props.loading) console.error('redux-persist: PersistGate expects either a function child or loading prop, but not both. The loading prop will be ignored.');\n      }\n\n      if (typeof this.props.children === 'function') {\n        return this.props.children(this.state.bootstrapped);\n      }\n\n      return this.state.bootstrapped ? this.props.children : this.props.loading;\n    }\n  }]);\n\n  return PersistGate;\n}(PureComponent);\n\n_defineProperty(PersistGate, \"defaultProps\", {\n  children: null,\n  loading: null\n});","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createWebStorage;\n\nvar _getStorage = _interopRequireDefault(require(\"./getStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createWebStorage(type) {\n  var storage = (0, _getStorage.default)(type);\n  return {\n    getItem: function getItem(key) {\n      return new Promise(function (resolve, reject) {\n        resolve(storage.getItem(key));\n      });\n    },\n    setItem: function setItem(key, item) {\n      return new Promise(function (resolve, reject) {\n        resolve(storage.setItem(key, item));\n      });\n    },\n    removeItem: function removeItem(key) {\n      return new Promise(function (resolve, reject) {\n        resolve(storage.removeItem(key));\n      });\n    }\n  };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getStorage;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction noop() {}\n\nvar noopStorage = {\n  getItem: noop,\n  setItem: noop,\n  removeItem: noop\n};\n\nfunction hasStorage(storageType) {\n  if ((typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) !== 'object' || !(storageType in self)) {\n    return false;\n  }\n\n  try {\n    var storage = self[storageType];\n    var testKey = \"redux-persist \".concat(storageType, \" test\");\n    storage.setItem(testKey, 'test');\n    storage.getItem(testKey);\n    storage.removeItem(testKey);\n  } catch (e) {\n    if (process.env.NODE_ENV !== 'production') console.warn(\"redux-persist \".concat(storageType, \" test failed, persistence will be disabled.\"));\n    return false;\n  }\n\n  return true;\n}\n\nfunction getStorage(type) {\n  var storageType = \"\".concat(type, \"Storage\");\n  if (hasStorage(storageType)) return self[storageType];else {\n    if (process.env.NODE_ENV !== 'production') {\n      console.error(\"redux-persist failed to create sync storage. falling back to noop storage.\");\n    }\n\n    return noopStorage;\n  }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _createWebStorage = _interopRequireDefault(require(\"./createWebStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = (0, _createWebStorage.default)('local');\n\nexports.default = _default;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'__Hind_0f85a8', '__Hind_Fallback_0f85a8'\",\"fontStyle\":\"normal\"},\"className\":\"__className_0f85a8\",\"variable\":\"__variable_0f85a8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'__Poppins_559008', '__Poppins_Fallback_559008'\",\"fontStyle\":\"normal\"},\"className\":\"__className_559008\",\"variable\":\"__variable_559008\"};","import { __assign, __rest } from \"tslib\";\nimport { wrap } from \"optimism\";\nimport { Observable, cacheSizes, getFragmentQueryDocument, mergeDeepArray, } from \"../../utilities/index.js\";\nimport { WeakCache } from \"@wry/caches\";\nimport { getApolloCacheMemoryInternals } from \"../../utilities/caching/getMemoryInternals.js\";\nimport { equalByQuery } from \"../../core/equalByQuery.js\";\nvar ApolloCache = /** @class */ (function () {\n    function ApolloCache() {\n        this.assumeImmutableResults = false;\n        // Make sure we compute the same (===) fragment query document every\n        // time we receive the same fragment in readFragment.\n        this.getFragmentDoc = wrap(getFragmentQueryDocument, {\n            max: cacheSizes[\"cache.fragmentQueryDocuments\"] ||\n                1000 /* defaultCacheSizes[\"cache.fragmentQueryDocuments\"] */,\n            cache: WeakCache,\n        });\n    }\n    // Transactional API\n    // The batch method is intended to replace/subsume both performTransaction\n    // and recordOptimisticTransaction, but performTransaction came first, so we\n    // provide a default batch implementation that's just another way of calling\n    // performTransaction. Subclasses of ApolloCache (such as InMemoryCache) can\n    // override the batch method to do more interesting things with its options.\n    ApolloCache.prototype.batch = function (options) {\n        var _this = this;\n        var optimisticId = typeof options.optimistic === \"string\" ? options.optimistic\n            : options.optimistic === false ? null\n                : void 0;\n        var updateResult;\n        this.performTransaction(function () { return (updateResult = options.update(_this)); }, optimisticId);\n        return updateResult;\n    };\n    ApolloCache.prototype.recordOptimisticTransaction = function (transaction, optimisticId) {\n        this.performTransaction(transaction, optimisticId);\n    };\n    // Optional API\n    // Called once per input document, allowing the cache to make static changes\n    // to the query, such as adding __typename fields.\n    ApolloCache.prototype.transformDocument = function (document) {\n        return document;\n    };\n    // Called before each ApolloLink request, allowing the cache to make dynamic\n    // changes to the query, such as filling in missing fragment definitions.\n    ApolloCache.prototype.transformForLink = function (document) {\n        return document;\n    };\n    ApolloCache.prototype.identify = function (object) {\n        return;\n    };\n    ApolloCache.prototype.gc = function () {\n        return [];\n    };\n    ApolloCache.prototype.modify = function (options) {\n        return false;\n    };\n    // DataProxy API\n    ApolloCache.prototype.readQuery = function (options, optimistic) {\n        if (optimistic === void 0) { optimistic = !!options.optimistic; }\n        return this.read(__assign(__assign({}, options), { rootId: options.id || \"ROOT_QUERY\", optimistic: optimistic }));\n    };\n    /** {@inheritDoc @apollo/client!ApolloClient#watchFragment:member(1)} */\n    ApolloCache.prototype.watchFragment = function (options) {\n        var _this = this;\n        var fragment = options.fragment, fragmentName = options.fragmentName, from = options.from, _a = options.optimistic, optimistic = _a === void 0 ? true : _a, otherOptions = __rest(options, [\"fragment\", \"fragmentName\", \"from\", \"optimistic\"]);\n        var query = this.getFragmentDoc(fragment, fragmentName);\n        var diffOptions = __assign(__assign({}, otherOptions), { returnPartialData: true, id: \n            // While our TypeScript types do not allow for `undefined` as a valid\n            // `from`, its possible `useFragment` gives us an `undefined` since it\n            // calls` cache.identify` and provides that value to `from`. We are\n            // adding this fix here however to ensure those using plain JavaScript\n            // and using `cache.identify` themselves will avoid seeing the obscure\n            // warning.\n            typeof from === \"undefined\" || typeof from === \"string\" ?\n                from\n                : this.identify(from), query: query, optimistic: optimistic });\n        var latestDiff;\n        return new Observable(function (observer) {\n            return _this.watch(__assign(__assign({}, diffOptions), { immediate: true, callback: function (diff) {\n                    if (\n                    // Always ensure we deliver the first result\n                    latestDiff &&\n                        equalByQuery(query, { data: latestDiff === null || latestDiff === void 0 ? void 0 : latestDiff.result }, { data: diff.result })) {\n                        return;\n                    }\n                    var result = {\n                        data: diff.result,\n                        complete: !!diff.complete,\n                    };\n                    if (diff.missing) {\n                        result.missing = mergeDeepArray(diff.missing.map(function (error) { return error.missing; }));\n                    }\n                    latestDiff = diff;\n                    observer.next(result);\n                } }));\n        });\n    };\n    ApolloCache.prototype.readFragment = function (options, optimistic) {\n        if (optimistic === void 0) { optimistic = !!options.optimistic; }\n        return this.read(__assign(__assign({}, options), { query: this.getFragmentDoc(options.fragment, options.fragmentName), rootId: options.id, optimistic: optimistic }));\n    };\n    ApolloCache.prototype.writeQuery = function (_a) {\n        var id = _a.id, data = _a.data, options = __rest(_a, [\"id\", \"data\"]);\n        return this.write(Object.assign(options, {\n            dataId: id || \"ROOT_QUERY\",\n            result: data,\n        }));\n    };\n    ApolloCache.prototype.writeFragment = function (_a) {\n        var id = _a.id, data = _a.data, fragment = _a.fragment, fragmentName = _a.fragmentName, options = __rest(_a, [\"id\", \"data\", \"fragment\", \"fragmentName\"]);\n        return this.write(Object.assign(options, {\n            query: this.getFragmentDoc(fragment, fragmentName),\n            dataId: id,\n            result: data,\n        }));\n    };\n    ApolloCache.prototype.updateQuery = function (options, update) {\n        return this.batch({\n            update: function (cache) {\n                var value = cache.readQuery(options);\n                var data = update(value);\n                if (data === void 0 || data === null)\n                    return value;\n                cache.writeQuery(__assign(__assign({}, options), { data: data }));\n                return data;\n            },\n        });\n    };\n    ApolloCache.prototype.updateFragment = function (options, update) {\n        return this.batch({\n            update: function (cache) {\n                var value = cache.readFragment(options);\n                var data = update(value);\n                if (data === void 0 || data === null)\n                    return value;\n                cache.writeFragment(__assign(__assign({}, options), { data: data }));\n                return data;\n            },\n        });\n    };\n    return ApolloCache;\n}());\nexport { ApolloCache };\nif (globalThis.__DEV__ !== false) {\n    ApolloCache.prototype.getMemoryInternals = getApolloCacheMemoryInternals;\n}\n//# sourceMappingURL=cache.js.map","import { __extends } from \"tslib\";\nvar MissingFieldError = /** @class */ (function (_super) {\n    __extends(MissingFieldError, _super);\n    function MissingFieldError(message, path, query, variables) {\n        var _a;\n        // 'Error' breaks prototype chain here\n        var _this = _super.call(this, message) || this;\n        _this.message = message;\n        _this.path = path;\n        _this.query = query;\n        _this.variables = variables;\n        if (Array.isArray(_this.path)) {\n            _this.missing = _this.message;\n            for (var i = _this.path.length - 1; i >= 0; --i) {\n                _this.missing = (_a = {}, _a[_this.path[i]] = _this.missing, _a);\n            }\n        }\n        else {\n            _this.missing = _this.path;\n        }\n        // We're not using `Object.setPrototypeOf` here as it isn't fully supported\n        // on Android (see issue #3236).\n        _this.__proto__ = MissingFieldError.prototype;\n        return _this;\n    }\n    return MissingFieldError;\n}(Error));\nexport { MissingFieldError };\n//# sourceMappingURL=common.js.map","import { isReference, isField, DeepMerger, resultKeyNameFromField, shouldInclude, isNonNullObject, compact, createFragmentMap, getFragmentDefinitions, isArray, } from \"../../utilities/index.js\";\nexport var hasOwn = Object.prototype.hasOwnProperty;\nexport function isNullish(value) {\n    return value === null || value === void 0;\n}\nexport { isArray };\nexport function defaultDataIdFromObject(_a, context) {\n    var __typename = _a.__typename, id = _a.id, _id = _a._id;\n    if (typeof __typename === \"string\") {\n        if (context) {\n            context.keyObject =\n                !isNullish(id) ? { id: id }\n                    : !isNullish(_id) ? { _id: _id }\n                        : void 0;\n        }\n        // If there is no object.id, fall back to object._id.\n        if (isNullish(id) && !isNullish(_id)) {\n            id = _id;\n        }\n        if (!isNullish(id)) {\n            return \"\".concat(__typename, \":\").concat(typeof id === \"number\" || typeof id === \"string\" ?\n                id\n                : JSON.stringify(id));\n        }\n    }\n}\nvar defaultConfig = {\n    dataIdFromObject: defaultDataIdFromObject,\n    addTypename: true,\n    resultCaching: true,\n    // Thanks to the shouldCanonizeResults helper, this should be the only line\n    // you have to change to reenable canonization by default in the future.\n    canonizeResults: false,\n};\nexport function normalizeConfig(config) {\n    return compact(defaultConfig, config);\n}\nexport function shouldCanonizeResults(config) {\n    var value = config.canonizeResults;\n    return value === void 0 ? defaultConfig.canonizeResults : value;\n}\nexport function getTypenameFromStoreObject(store, objectOrReference) {\n    return isReference(objectOrReference) ?\n        store.get(objectOrReference.__ref, \"__typename\")\n        : objectOrReference && objectOrReference.__typename;\n}\nexport var TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i;\nexport function fieldNameFromStoreName(storeFieldName) {\n    var match = storeFieldName.match(TypeOrFieldNameRegExp);\n    return match ? match[0] : storeFieldName;\n}\nexport function selectionSetMatchesResult(selectionSet, result, variables) {\n    if (isNonNullObject(result)) {\n        return isArray(result) ?\n            result.every(function (item) {\n                return selectionSetMatchesResult(selectionSet, item, variables);\n            })\n            : selectionSet.selections.every(function (field) {\n                if (isField(field) && shouldInclude(field, variables)) {\n                    var key = resultKeyNameFromField(field);\n                    return (hasOwn.call(result, key) &&\n                        (!field.selectionSet ||\n                            selectionSetMatchesResult(field.selectionSet, result[key], variables)));\n                }\n                // If the selection has been skipped with @skip(true) or\n                // @include(false), it should not count against the matching. If\n                // the selection is not a field, it must be a fragment (inline or\n                // named). We will determine if selectionSetMatchesResult for that\n                // fragment when we get to it, so for now we return true.\n                return true;\n            });\n    }\n    return false;\n}\nexport function storeValueIsStoreObject(value) {\n    return isNonNullObject(value) && !isReference(value) && !isArray(value);\n}\nexport function makeProcessedFieldsMerger() {\n    return new DeepMerger();\n}\nexport function extractFragmentContext(document, fragments) {\n    // FragmentMap consisting only of fragments defined directly in document, not\n    // including other fragments registered in the FragmentRegistry.\n    var fragmentMap = createFragmentMap(getFragmentDefinitions(document));\n    return {\n        fragmentMap: fragmentMap,\n        lookupFragment: function (name) {\n            var def = fragmentMap[name];\n            if (!def && fragments) {\n                def = fragments.lookup(name);\n            }\n            return def || null;\n        },\n    };\n}\n//# sourceMappingURL=helpers.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { dep } from \"optimism\";\nimport { equal } from \"@wry/equality\";\nimport { Trie } from \"@wry/trie\";\nimport { isReference, makeReference, DeepMerger, maybeDeepFreeze, canUseWeakMap, isNonNullObject, } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName } from \"./helpers.js\";\nvar DELETE = Object.create(null);\nvar delModifier = function () { return DELETE; };\nvar INVALIDATE = Object.create(null);\nvar EntityStore = /** @class */ (function () {\n    function EntityStore(policies, group) {\n        var _this = this;\n        this.policies = policies;\n        this.group = group;\n        this.data = Object.create(null);\n        // Maps root entity IDs to the number of times they have been retained, minus\n        // the number of times they have been released. Retained entities keep other\n        // entities they reference (even indirectly) from being garbage collected.\n        this.rootIds = Object.create(null);\n        // Lazily tracks { __ref: <dataId> } strings contained by this.data[dataId].\n        this.refs = Object.create(null);\n        // Bound function that can be passed around to provide easy access to fields\n        // of Reference objects as well as ordinary objects.\n        this.getFieldValue = function (objectOrReference, storeFieldName) {\n            return maybeDeepFreeze(isReference(objectOrReference) ?\n                _this.get(objectOrReference.__ref, storeFieldName)\n                : objectOrReference && objectOrReference[storeFieldName]);\n        };\n        // Returns true for non-normalized StoreObjects and non-dangling\n        // References, indicating that readField(name, objOrRef) has a chance of\n        // working. Useful for filtering out dangling references from lists.\n        this.canRead = function (objOrRef) {\n            return isReference(objOrRef) ?\n                _this.has(objOrRef.__ref)\n                : typeof objOrRef === \"object\";\n        };\n        // Bound function that converts an id or an object with a __typename and\n        // primary key fields to a Reference object. If called with a Reference object,\n        // that same Reference object is returned. Pass true for mergeIntoStore to persist\n        // an object into the store.\n        this.toReference = function (objOrIdOrRef, mergeIntoStore) {\n            if (typeof objOrIdOrRef === \"string\") {\n                return makeReference(objOrIdOrRef);\n            }\n            if (isReference(objOrIdOrRef)) {\n                return objOrIdOrRef;\n            }\n            var id = _this.policies.identify(objOrIdOrRef)[0];\n            if (id) {\n                var ref = makeReference(id);\n                if (mergeIntoStore) {\n                    _this.merge(id, objOrIdOrRef);\n                }\n                return ref;\n            }\n        };\n    }\n    // Although the EntityStore class is abstract, it contains concrete\n    // implementations of the various NormalizedCache interface methods that\n    // are inherited by the Root and Layer subclasses.\n    EntityStore.prototype.toObject = function () {\n        return __assign({}, this.data);\n    };\n    EntityStore.prototype.has = function (dataId) {\n        return this.lookup(dataId, true) !== void 0;\n    };\n    EntityStore.prototype.get = function (dataId, fieldName) {\n        this.group.depend(dataId, fieldName);\n        if (hasOwn.call(this.data, dataId)) {\n            var storeObject = this.data[dataId];\n            if (storeObject && hasOwn.call(storeObject, fieldName)) {\n                return storeObject[fieldName];\n            }\n        }\n        if (fieldName === \"__typename\" &&\n            hasOwn.call(this.policies.rootTypenamesById, dataId)) {\n            return this.policies.rootTypenamesById[dataId];\n        }\n        if (this instanceof Layer) {\n            return this.parent.get(dataId, fieldName);\n        }\n    };\n    EntityStore.prototype.lookup = function (dataId, dependOnExistence) {\n        // The has method (above) calls lookup with dependOnExistence = true, so\n        // that it can later be invalidated when we add or remove a StoreObject for\n        // this dataId. Any consumer who cares about the contents of the StoreObject\n        // should not rely on this dependency, since the contents could change\n        // without the object being added or removed.\n        if (dependOnExistence)\n            this.group.depend(dataId, \"__exists\");\n        if (hasOwn.call(this.data, dataId)) {\n            return this.data[dataId];\n        }\n        if (this instanceof Layer) {\n            return this.parent.lookup(dataId, dependOnExistence);\n        }\n        if (this.policies.rootTypenamesById[dataId]) {\n            return Object.create(null);\n        }\n    };\n    EntityStore.prototype.merge = function (older, newer) {\n        var _this = this;\n        var dataId;\n        // Convert unexpected references to ID strings.\n        if (isReference(older))\n            older = older.__ref;\n        if (isReference(newer))\n            newer = newer.__ref;\n        var existing = typeof older === \"string\" ? this.lookup((dataId = older)) : older;\n        var incoming = typeof newer === \"string\" ? this.lookup((dataId = newer)) : newer;\n        // If newer was a string ID, but that ID was not defined in this store,\n        // then there are no fields to be merged, so we're done.\n        if (!incoming)\n            return;\n        invariant(typeof dataId === \"string\", 1);\n        var merged = new DeepMerger(storeObjectReconciler).merge(existing, incoming);\n        // Even if merged === existing, existing may have come from a lower\n        // layer, so we always need to set this.data[dataId] on this level.\n        this.data[dataId] = merged;\n        if (merged !== existing) {\n            delete this.refs[dataId];\n            if (this.group.caching) {\n                var fieldsToDirty_1 = Object.create(null);\n                // If we added a new StoreObject where there was previously none, dirty\n                // anything that depended on the existence of this dataId, such as the\n                // EntityStore#has method.\n                if (!existing)\n                    fieldsToDirty_1.__exists = 1;\n                // Now invalidate dependents who called getFieldValue for any fields\n                // that are changing as a result of this merge.\n                Object.keys(incoming).forEach(function (storeFieldName) {\n                    if (!existing ||\n                        existing[storeFieldName] !== merged[storeFieldName]) {\n                        // Always dirty the full storeFieldName, which may include\n                        // serialized arguments following the fieldName prefix.\n                        fieldsToDirty_1[storeFieldName] = 1;\n                        // Also dirty fieldNameFromStoreName(storeFieldName) if it's\n                        // different from storeFieldName and this field does not have\n                        // keyArgs configured, because that means the cache can't make\n                        // any assumptions about how field values with the same field\n                        // name but different arguments might be interrelated, so it\n                        // must err on the side of invalidating all field values that\n                        // share the same short fieldName, regardless of arguments.\n                        var fieldName = fieldNameFromStoreName(storeFieldName);\n                        if (fieldName !== storeFieldName &&\n                            !_this.policies.hasKeyArgs(merged.__typename, fieldName)) {\n                            fieldsToDirty_1[fieldName] = 1;\n                        }\n                        // If merged[storeFieldName] has become undefined, and this is the\n                        // Root layer, actually delete the property from the merged object,\n                        // which is guaranteed to have been created fresh in this method.\n                        if (merged[storeFieldName] === void 0 && !(_this instanceof Layer)) {\n                            delete merged[storeFieldName];\n                        }\n                    }\n                });\n                if (fieldsToDirty_1.__typename &&\n                    !(existing && existing.__typename) &&\n                    // Since we return default root __typename strings\n                    // automatically from store.get, we don't need to dirty the\n                    // ROOT_QUERY.__typename field if merged.__typename is equal\n                    // to the default string (usually \"Query\").\n                    this.policies.rootTypenamesById[dataId] === merged.__typename) {\n                    delete fieldsToDirty_1.__typename;\n                }\n                Object.keys(fieldsToDirty_1).forEach(function (fieldName) {\n                    return _this.group.dirty(dataId, fieldName);\n                });\n            }\n        }\n    };\n    EntityStore.prototype.modify = function (dataId, fields) {\n        var _this = this;\n        var storeObject = this.lookup(dataId);\n        if (storeObject) {\n            var changedFields_1 = Object.create(null);\n            var needToMerge_1 = false;\n            var allDeleted_1 = true;\n            var sharedDetails_1 = {\n                DELETE: DELETE,\n                INVALIDATE: INVALIDATE,\n                isReference: isReference,\n                toReference: this.toReference,\n                canRead: this.canRead,\n                readField: function (fieldNameOrOptions, from) {\n                    return _this.policies.readField(typeof fieldNameOrOptions === \"string\" ?\n                        {\n                            fieldName: fieldNameOrOptions,\n                            from: from || makeReference(dataId),\n                        }\n                        : fieldNameOrOptions, { store: _this });\n                },\n            };\n            Object.keys(storeObject).forEach(function (storeFieldName) {\n                var fieldName = fieldNameFromStoreName(storeFieldName);\n                var fieldValue = storeObject[storeFieldName];\n                if (fieldValue === void 0)\n                    return;\n                var modify = typeof fields === \"function\" ? fields : (fields[storeFieldName] || fields[fieldName]);\n                if (modify) {\n                    var newValue = modify === delModifier ? DELETE : (modify(maybeDeepFreeze(fieldValue), __assign(__assign({}, sharedDetails_1), { fieldName: fieldName, storeFieldName: storeFieldName, storage: _this.getStorage(dataId, storeFieldName) })));\n                    if (newValue === INVALIDATE) {\n                        _this.group.dirty(dataId, storeFieldName);\n                    }\n                    else {\n                        if (newValue === DELETE)\n                            newValue = void 0;\n                        if (newValue !== fieldValue) {\n                            changedFields_1[storeFieldName] = newValue;\n                            needToMerge_1 = true;\n                            fieldValue = newValue;\n                            if (globalThis.__DEV__ !== false) {\n                                var checkReference = function (ref) {\n                                    if (_this.lookup(ref.__ref) === undefined) {\n                                        globalThis.__DEV__ !== false && invariant.warn(2, ref);\n                                        return true;\n                                    }\n                                };\n                                if (isReference(newValue)) {\n                                    checkReference(newValue);\n                                }\n                                else if (Array.isArray(newValue)) {\n                                    // Warn about writing \"mixed\" arrays of Reference and non-Reference objects\n                                    var seenReference = false;\n                                    var someNonReference = void 0;\n                                    for (var _i = 0, newValue_1 = newValue; _i < newValue_1.length; _i++) {\n                                        var value = newValue_1[_i];\n                                        if (isReference(value)) {\n                                            seenReference = true;\n                                            if (checkReference(value))\n                                                break;\n                                        }\n                                        else {\n                                            // Do not warn on primitive values, since those could never be represented\n                                            // by a reference. This is a valid (albeit uncommon) use case.\n                                            if (typeof value === \"object\" && !!value) {\n                                                var id = _this.policies.identify(value)[0];\n                                                // check if object could even be referenced, otherwise we are not interested in it for this warning\n                                                if (id) {\n                                                    someNonReference = value;\n                                                }\n                                            }\n                                        }\n                                        if (seenReference && someNonReference !== undefined) {\n                                            globalThis.__DEV__ !== false && invariant.warn(3, someNonReference);\n                                            break;\n                                        }\n                                    }\n                                }\n                            }\n                        }\n                    }\n                }\n                if (fieldValue !== void 0) {\n                    allDeleted_1 = false;\n                }\n            });\n            if (needToMerge_1) {\n                this.merge(dataId, changedFields_1);\n                if (allDeleted_1) {\n                    if (this instanceof Layer) {\n                        this.data[dataId] = void 0;\n                    }\n                    else {\n                        delete this.data[dataId];\n                    }\n                    this.group.dirty(dataId, \"__exists\");\n                }\n                return true;\n            }\n        }\n        return false;\n    };\n    // If called with only one argument, removes the entire entity\n    // identified by dataId. If called with a fieldName as well, removes all\n    // fields of that entity whose names match fieldName according to the\n    // fieldNameFromStoreName helper function. If called with a fieldName\n    // and variables, removes all fields of that entity whose names match fieldName\n    // and whose arguments when cached exactly match the variables passed.\n    EntityStore.prototype.delete = function (dataId, fieldName, args) {\n        var _a;\n        var storeObject = this.lookup(dataId);\n        if (storeObject) {\n            var typename = this.getFieldValue(storeObject, \"__typename\");\n            var storeFieldName = fieldName && args ?\n                this.policies.getStoreFieldName({ typename: typename, fieldName: fieldName, args: args })\n                : fieldName;\n            return this.modify(dataId, storeFieldName ? (_a = {},\n                _a[storeFieldName] = delModifier,\n                _a) : delModifier);\n        }\n        return false;\n    };\n    EntityStore.prototype.evict = function (options, limit) {\n        var evicted = false;\n        if (options.id) {\n            if (hasOwn.call(this.data, options.id)) {\n                evicted = this.delete(options.id, options.fieldName, options.args);\n            }\n            if (this instanceof Layer && this !== limit) {\n                evicted = this.parent.evict(options, limit) || evicted;\n            }\n            // Always invalidate the field to trigger rereading of watched\n            // queries, even if no cache data was modified by the eviction,\n            // because queries may depend on computed fields with custom read\n            // functions, whose values are not stored in the EntityStore.\n            if (options.fieldName || evicted) {\n                this.group.dirty(options.id, options.fieldName || \"__exists\");\n            }\n        }\n        return evicted;\n    };\n    EntityStore.prototype.clear = function () {\n        this.replace(null);\n    };\n    EntityStore.prototype.extract = function () {\n        var _this = this;\n        var obj = this.toObject();\n        var extraRootIds = [];\n        this.getRootIdSet().forEach(function (id) {\n            if (!hasOwn.call(_this.policies.rootTypenamesById, id)) {\n                extraRootIds.push(id);\n            }\n        });\n        if (extraRootIds.length) {\n            obj.__META = { extraRootIds: extraRootIds.sort() };\n        }\n        return obj;\n    };\n    EntityStore.prototype.replace = function (newData) {\n        var _this = this;\n        Object.keys(this.data).forEach(function (dataId) {\n            if (!(newData && hasOwn.call(newData, dataId))) {\n                _this.delete(dataId);\n            }\n        });\n        if (newData) {\n            var __META = newData.__META, rest_1 = __rest(newData, [\"__META\"]);\n            Object.keys(rest_1).forEach(function (dataId) {\n                _this.merge(dataId, rest_1[dataId]);\n            });\n            if (__META) {\n                __META.extraRootIds.forEach(this.retain, this);\n            }\n        }\n    };\n    EntityStore.prototype.retain = function (rootId) {\n        return (this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1);\n    };\n    EntityStore.prototype.release = function (rootId) {\n        if (this.rootIds[rootId] > 0) {\n            var count = --this.rootIds[rootId];\n            if (!count)\n                delete this.rootIds[rootId];\n            return count;\n        }\n        return 0;\n    };\n    // Return a Set<string> of all the ID strings that have been retained by\n    // this layer/root *and* any layers/roots beneath it.\n    EntityStore.prototype.getRootIdSet = function (ids) {\n        if (ids === void 0) { ids = new Set(); }\n        Object.keys(this.rootIds).forEach(ids.add, ids);\n        if (this instanceof Layer) {\n            this.parent.getRootIdSet(ids);\n        }\n        else {\n            // Official singleton IDs like ROOT_QUERY and ROOT_MUTATION are\n            // always considered roots for garbage collection, regardless of\n            // their retainment counts in this.rootIds.\n            Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids);\n        }\n        return ids;\n    };\n    // The goal of garbage collection is to remove IDs from the Root layer of the\n    // store that are no longer reachable starting from any IDs that have been\n    // explicitly retained (see retain and release, above). Returns an array of\n    // dataId strings that were removed from the store.\n    EntityStore.prototype.gc = function () {\n        var _this = this;\n        var ids = this.getRootIdSet();\n        var snapshot = this.toObject();\n        ids.forEach(function (id) {\n            if (hasOwn.call(snapshot, id)) {\n                // Because we are iterating over an ECMAScript Set, the IDs we add here\n                // will be visited in later iterations of the forEach loop only if they\n                // were not previously contained by the Set.\n                Object.keys(_this.findChildRefIds(id)).forEach(ids.add, ids);\n                // By removing IDs from the snapshot object here, we protect them from\n                // getting removed from the root store layer below.\n                delete snapshot[id];\n            }\n        });\n        var idsToRemove = Object.keys(snapshot);\n        if (idsToRemove.length) {\n            var root_1 = this;\n            while (root_1 instanceof Layer)\n                root_1 = root_1.parent;\n            idsToRemove.forEach(function (id) { return root_1.delete(id); });\n        }\n        return idsToRemove;\n    };\n    EntityStore.prototype.findChildRefIds = function (dataId) {\n        if (!hasOwn.call(this.refs, dataId)) {\n            var found_1 = (this.refs[dataId] = Object.create(null));\n            var root = this.data[dataId];\n            if (!root)\n                return found_1;\n            var workSet_1 = new Set([root]);\n            // Within the store, only arrays and objects can contain child entity\n            // references, so we can prune the traversal using this predicate:\n            workSet_1.forEach(function (obj) {\n                if (isReference(obj)) {\n                    found_1[obj.__ref] = true;\n                    // In rare cases, a { __ref } Reference object may have other fields.\n                    // This often indicates a mismerging of References with StoreObjects,\n                    // but garbage collection should not be fooled by a stray __ref\n                    // property in a StoreObject (ignoring all the other fields just\n                    // because the StoreObject looks like a Reference). To avoid this\n                    // premature termination of findChildRefIds recursion, we fall through\n                    // to the code below, which will handle any other properties of obj.\n                }\n                if (isNonNullObject(obj)) {\n                    Object.keys(obj).forEach(function (key) {\n                        var child = obj[key];\n                        // No need to add primitive values to the workSet, since they cannot\n                        // contain reference objects.\n                        if (isNonNullObject(child)) {\n                            workSet_1.add(child);\n                        }\n                    });\n                }\n            });\n        }\n        return this.refs[dataId];\n    };\n    EntityStore.prototype.makeCacheKey = function () {\n        return this.group.keyMaker.lookupArray(arguments);\n    };\n    return EntityStore;\n}());\nexport { EntityStore };\n// A single CacheGroup represents a set of one or more EntityStore objects,\n// typically the Root store in a CacheGroup by itself, and all active Layer\n// stores in a group together. A single EntityStore object belongs to only\n// one CacheGroup, store.group. The CacheGroup is responsible for tracking\n// dependencies, so store.group is helpful for generating unique keys for\n// cached results that need to be invalidated when/if those dependencies\n// change. If we used the EntityStore objects themselves as cache keys (that\n// is, store rather than store.group), the cache would become unnecessarily\n// fragmented by all the different Layer objects. Instead, the CacheGroup\n// approach allows all optimistic Layer objects in the same linked list to\n// belong to one CacheGroup, with the non-optimistic Root object belonging\n// to another CacheGroup, allowing resultCaching dependencies to be tracked\n// separately for optimistic and non-optimistic entity data.\nvar CacheGroup = /** @class */ (function () {\n    function CacheGroup(caching, parent) {\n        if (parent === void 0) { parent = null; }\n        this.caching = caching;\n        this.parent = parent;\n        this.d = null;\n        this.resetCaching();\n    }\n    CacheGroup.prototype.resetCaching = function () {\n        this.d = this.caching ? dep() : null;\n        this.keyMaker = new Trie(canUseWeakMap);\n    };\n    CacheGroup.prototype.depend = function (dataId, storeFieldName) {\n        if (this.d) {\n            this.d(makeDepKey(dataId, storeFieldName));\n            var fieldName = fieldNameFromStoreName(storeFieldName);\n            if (fieldName !== storeFieldName) {\n                // Fields with arguments that contribute extra identifying\n                // information to the fieldName (thus forming the storeFieldName)\n                // depend not only on the full storeFieldName but also on the\n                // short fieldName, so the field can be invalidated using either\n                // level of specificity.\n                this.d(makeDepKey(dataId, fieldName));\n            }\n            if (this.parent) {\n                this.parent.depend(dataId, storeFieldName);\n            }\n        }\n    };\n    CacheGroup.prototype.dirty = function (dataId, storeFieldName) {\n        if (this.d) {\n            this.d.dirty(makeDepKey(dataId, storeFieldName), \n            // When storeFieldName === \"__exists\", that means the entity identified\n            // by dataId has either disappeared from the cache or was newly added,\n            // so the result caching system would do well to \"forget everything it\n            // knows\" about that object. To achieve that kind of invalidation, we\n            // not only dirty the associated result cache entry, but also remove it\n            // completely from the dependency graph. For the optimism implementation\n            // details, see https://github.com/benjamn/optimism/pull/195.\n            storeFieldName === \"__exists\" ? \"forget\" : \"setDirty\");\n        }\n    };\n    return CacheGroup;\n}());\nfunction makeDepKey(dataId, storeFieldName) {\n    // Since field names cannot have '#' characters in them, this method\n    // of joining the field name and the ID should be unambiguous, and much\n    // cheaper than JSON.stringify([dataId, fieldName]).\n    return storeFieldName + \"#\" + dataId;\n}\nexport function maybeDependOnExistenceOfEntity(store, entityId) {\n    if (supportsResultCaching(store)) {\n        // We use this pseudo-field __exists elsewhere in the EntityStore code to\n        // represent changes in the existence of the entity object identified by\n        // entityId. This dependency gets reliably dirtied whenever an object with\n        // this ID is deleted (or newly created) within this group, so any result\n        // cache entries (for example, StoreReader#executeSelectionSet results) that\n        // depend on __exists for this entityId will get dirtied as well, leading to\n        // the eventual recomputation (instead of reuse) of those result objects the\n        // next time someone reads them from the cache.\n        store.group.depend(entityId, \"__exists\");\n    }\n}\n(function (EntityStore) {\n    // Refer to this class as EntityStore.Root outside this namespace.\n    var Root = /** @class */ (function (_super) {\n        __extends(Root, _super);\n        function Root(_a) {\n            var policies = _a.policies, _b = _a.resultCaching, resultCaching = _b === void 0 ? true : _b, seed = _a.seed;\n            var _this = _super.call(this, policies, new CacheGroup(resultCaching)) || this;\n            _this.stump = new Stump(_this);\n            _this.storageTrie = new Trie(canUseWeakMap);\n            if (seed)\n                _this.replace(seed);\n            return _this;\n        }\n        Root.prototype.addLayer = function (layerId, replay) {\n            // Adding an optimistic Layer on top of the Root actually adds the Layer\n            // on top of the Stump, so the Stump always comes between the Root and\n            // any Layer objects that we've added.\n            return this.stump.addLayer(layerId, replay);\n        };\n        Root.prototype.removeLayer = function () {\n            // Never remove the root layer.\n            return this;\n        };\n        Root.prototype.getStorage = function () {\n            return this.storageTrie.lookupArray(arguments);\n        };\n        return Root;\n    }(EntityStore));\n    EntityStore.Root = Root;\n})(EntityStore || (EntityStore = {}));\n// Not exported, since all Layer instances are created by the addLayer method\n// of the EntityStore.Root class.\nvar Layer = /** @class */ (function (_super) {\n    __extends(Layer, _super);\n    function Layer(id, parent, replay, group) {\n        var _this = _super.call(this, parent.policies, group) || this;\n        _this.id = id;\n        _this.parent = parent;\n        _this.replay = replay;\n        _this.group = group;\n        replay(_this);\n        return _this;\n    }\n    Layer.prototype.addLayer = function (layerId, replay) {\n        return new Layer(layerId, this, replay, this.group);\n    };\n    Layer.prototype.removeLayer = function (layerId) {\n        var _this = this;\n        // Remove all instances of the given id, not just the first one.\n        var parent = this.parent.removeLayer(layerId);\n        if (layerId === this.id) {\n            if (this.group.caching) {\n                // Dirty every ID we're removing. Technically we might be able to avoid\n                // dirtying fields that have values in higher layers, but we don't have\n                // easy access to higher layers here, and we're about to recreate those\n                // layers anyway (see parent.addLayer below).\n                Object.keys(this.data).forEach(function (dataId) {\n                    var ownStoreObject = _this.data[dataId];\n                    var parentStoreObject = parent[\"lookup\"](dataId);\n                    if (!parentStoreObject) {\n                        // The StoreObject identified by dataId was defined in this layer\n                        // but will be undefined in the parent layer, so we can delete the\n                        // whole entity using this.delete(dataId). Since we're about to\n                        // throw this layer away, the only goal of this deletion is to dirty\n                        // the removed fields.\n                        _this.delete(dataId);\n                    }\n                    else if (!ownStoreObject) {\n                        // This layer had an entry for dataId but it was undefined, which\n                        // means the entity was deleted in this layer, and it's about to\n                        // become undeleted when we remove this layer, so we need to dirty\n                        // all fields that are about to be reexposed.\n                        _this.group.dirty(dataId, \"__exists\");\n                        Object.keys(parentStoreObject).forEach(function (storeFieldName) {\n                            _this.group.dirty(dataId, storeFieldName);\n                        });\n                    }\n                    else if (ownStoreObject !== parentStoreObject) {\n                        // If ownStoreObject is not exactly the same as parentStoreObject,\n                        // dirty any fields whose values will change as a result of this\n                        // removal.\n                        Object.keys(ownStoreObject).forEach(function (storeFieldName) {\n                            if (!equal(ownStoreObject[storeFieldName], parentStoreObject[storeFieldName])) {\n                                _this.group.dirty(dataId, storeFieldName);\n                            }\n                        });\n                    }\n                });\n            }\n            return parent;\n        }\n        // No changes are necessary if the parent chain remains identical.\n        if (parent === this.parent)\n            return this;\n        // Recreate this layer on top of the new parent.\n        return parent.addLayer(this.id, this.replay);\n    };\n    Layer.prototype.toObject = function () {\n        return __assign(__assign({}, this.parent.toObject()), this.data);\n    };\n    Layer.prototype.findChildRefIds = function (dataId) {\n        var fromParent = this.parent.findChildRefIds(dataId);\n        return hasOwn.call(this.data, dataId) ? __assign(__assign({}, fromParent), _super.prototype.findChildRefIds.call(this, dataId)) : fromParent;\n    };\n    Layer.prototype.getStorage = function () {\n        var p = this.parent;\n        while (p.parent)\n            p = p.parent;\n        return p.getStorage.apply(p, \n        // @ts-expect-error\n        arguments);\n    };\n    return Layer;\n}(EntityStore));\n// Represents a Layer permanently installed just above the Root, which allows\n// reading optimistically (and registering optimistic dependencies) even when\n// no optimistic layers are currently active. The stump.group CacheGroup object\n// is shared by any/all Layer objects added on top of the Stump.\nvar Stump = /** @class */ (function (_super) {\n    __extends(Stump, _super);\n    function Stump(root) {\n        return _super.call(this, \"EntityStore.Stump\", root, function () { }, new CacheGroup(root.group.caching, root.group)) || this;\n    }\n    Stump.prototype.removeLayer = function () {\n        // Never remove the Stump layer.\n        return this;\n    };\n    Stump.prototype.merge = function (older, newer) {\n        // We never want to write any data into the Stump, so we forward any merge\n        // calls to the Root instead. Another option here would be to throw an\n        // exception, but the toReference(object, true) function can sometimes\n        // trigger Stump writes (which used to be Root writes, before the Stump\n        // concept was introduced).\n        return this.parent.merge(older, newer);\n    };\n    return Stump;\n}(Layer));\nfunction storeObjectReconciler(existingObject, incomingObject, property) {\n    var existingValue = existingObject[property];\n    var incomingValue = incomingObject[property];\n    // Wherever there is a key collision, prefer the incoming value, unless\n    // it is deeply equal to the existing value. It's worth checking deep\n    // equality here (even though blindly returning incoming would be\n    // logically correct) because preserving the referential identity of\n    // existing data can prevent needless rereading and rerendering.\n    return equal(existingValue, incomingValue) ? existingValue : incomingValue;\n}\nexport function supportsResultCaching(store) {\n    // When result caching is disabled, store.depend will be null.\n    return !!(store instanceof EntityStore && store.group.caching);\n}\n//# sourceMappingURL=entityStore.js.map","import { __assign } from \"tslib\";\nimport { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet, isNonNullObject as isObjectOrArray, } from \"../../utilities/index.js\";\nimport { isArray } from \"./helpers.js\";\nfunction shallowCopy(value) {\n    if (isObjectOrArray(value)) {\n        return isArray(value) ?\n            value.slice(0)\n            : __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n    }\n    return value;\n}\n// When programmers talk about the \"canonical form\" of an object, they\n// usually have the following meaning in mind, which I've copied from\n// https://en.wiktionary.org/wiki/canonical_form:\n//\n// 1. A standard or normal presentation of a mathematical entity [or\n//    object]. A canonical form is an element of a set of representatives\n//    of equivalence classes of forms such that there is a function or\n//    procedure which projects every element of each equivalence class\n//    onto that one element, the canonical form of that equivalence\n//    class. The canonical form is expected to be simpler than the rest of\n//    the forms in some way.\n//\n// That's a long-winded way of saying any two objects that have the same\n// canonical form may be considered equivalent, even if they are !==,\n// which usually means the objects are structurally equivalent (deeply\n// equal), but don't necessarily use the same memory.\n//\n// Like a literary or musical canon, this ObjectCanon class represents a\n// collection of unique canonical items (JavaScript objects), with the\n// important property that canon.admit(a) === canon.admit(b) if a and b\n// are deeply equal to each other. In terms of the definition above, the\n// canon.admit method is the \"function or procedure which projects every\"\n// object \"onto that one element, the canonical form.\"\n//\n// In the worst case, the canonicalization process may involve looking at\n// every property in the provided object tree, so it takes the same order\n// of time as deep equality checking. Fortunately, already-canonicalized\n// objects are returned immediately from canon.admit, so the presence of\n// canonical subtrees tends to speed up canonicalization.\n//\n// Since consumers of canonical objects can check for deep equality in\n// constant time, canonicalizing cache results can massively improve the\n// performance of application code that skips re-rendering unchanged\n// results, such as \"pure\" UI components in a framework like React.\n//\n// Of course, since canonical objects may be shared widely between\n// unrelated consumers, it's important to think of them as immutable, even\n// though they are not actually frozen with Object.freeze in production,\n// due to the extra performance overhead that comes with frozen objects.\n//\n// Custom scalar objects whose internal class name is neither Array nor\n// Object can be included safely in the admitted tree, but they will not\n// be replaced with a canonical version (to put it another way, they are\n// assumed to be canonical already).\n//\n// If we ignore custom objects, no detection of cycles or repeated object\n// references is currently required by the StoreReader class, since\n// GraphQL result objects are JSON-serializable trees (and thus contain\n// neither cycles nor repeated subtrees), so we can avoid the complexity\n// of keeping track of objects we've already seen during the recursion of\n// the admit method.\n//\n// In the future, we may consider adding additional cases to the switch\n// statement to handle other common object types, such as \"[object Date]\"\n// objects, as needed.\nvar ObjectCanon = /** @class */ (function () {\n    function ObjectCanon() {\n        // Set of all canonical objects this ObjectCanon has admitted, allowing\n        // canon.admit to return previously-canonicalized objects immediately.\n        this.known = new (canUseWeakSet ? WeakSet : Set)();\n        // Efficient storage/lookup structure for canonical objects.\n        this.pool = new Trie(canUseWeakMap);\n        // Make the ObjectCanon assume this value has already been\n        // canonicalized.\n        this.passes = new WeakMap();\n        // Arrays that contain the same elements in a different order can share\n        // the same SortedKeysInfo object, to save memory.\n        this.keysByJSON = new Map();\n        // This has to come last because it depends on keysByJSON.\n        this.empty = this.admit({});\n    }\n    ObjectCanon.prototype.isKnown = function (value) {\n        return isObjectOrArray(value) && this.known.has(value);\n    };\n    ObjectCanon.prototype.pass = function (value) {\n        if (isObjectOrArray(value)) {\n            var copy = shallowCopy(value);\n            this.passes.set(copy, value);\n            return copy;\n        }\n        return value;\n    };\n    ObjectCanon.prototype.admit = function (value) {\n        var _this = this;\n        if (isObjectOrArray(value)) {\n            var original = this.passes.get(value);\n            if (original)\n                return original;\n            var proto = Object.getPrototypeOf(value);\n            switch (proto) {\n                case Array.prototype: {\n                    if (this.known.has(value))\n                        return value;\n                    var array = value.map(this.admit, this);\n                    // Arrays are looked up in the Trie using their recursively\n                    // canonicalized elements, and the known version of the array is\n                    // preserved as node.array.\n                    var node = this.pool.lookupArray(array);\n                    if (!node.array) {\n                        this.known.add((node.array = array));\n                        // Since canonical arrays may be shared widely between\n                        // unrelated consumers, it's important to regard them as\n                        // immutable, even if they are not frozen in production.\n                        if (globalThis.__DEV__ !== false) {\n                            Object.freeze(array);\n                        }\n                    }\n                    return node.array;\n                }\n                case null:\n                case Object.prototype: {\n                    if (this.known.has(value))\n                        return value;\n                    var proto_1 = Object.getPrototypeOf(value);\n                    var array_1 = [proto_1];\n                    var keys = this.sortedKeys(value);\n                    array_1.push(keys.json);\n                    var firstValueIndex_1 = array_1.length;\n                    keys.sorted.forEach(function (key) {\n                        array_1.push(_this.admit(value[key]));\n                    });\n                    // Objects are looked up in the Trie by their prototype (which\n                    // is *not* recursively canonicalized), followed by a JSON\n                    // representation of their (sorted) keys, followed by the\n                    // sequence of recursively canonicalized values corresponding to\n                    // those keys. To keep the final results unambiguous with other\n                    // sequences (such as arrays that just happen to contain [proto,\n                    // keys.json, value1, value2, ...]), the known version of the\n                    // object is stored as node.object.\n                    var node = this.pool.lookupArray(array_1);\n                    if (!node.object) {\n                        var obj_1 = (node.object = Object.create(proto_1));\n                        this.known.add(obj_1);\n                        keys.sorted.forEach(function (key, i) {\n                            obj_1[key] = array_1[firstValueIndex_1 + i];\n                        });\n                        // Since canonical objects may be shared widely between\n                        // unrelated consumers, it's important to regard them as\n                        // immutable, even if they are not frozen in production.\n                        if (globalThis.__DEV__ !== false) {\n                            Object.freeze(obj_1);\n                        }\n                    }\n                    return node.object;\n                }\n            }\n        }\n        return value;\n    };\n    // It's worthwhile to cache the sorting of arrays of strings, since the\n    // same initial unsorted arrays tend to be encountered many times.\n    // Fortunately, we can reuse the Trie machinery to look up the sorted\n    // arrays in linear time (which is faster than sorting large arrays).\n    ObjectCanon.prototype.sortedKeys = function (obj) {\n        var keys = Object.keys(obj);\n        var node = this.pool.lookupArray(keys);\n        if (!node.keys) {\n            keys.sort();\n            var json = JSON.stringify(keys);\n            if (!(node.keys = this.keysByJSON.get(json))) {\n                this.keysByJSON.set(json, (node.keys = { sorted: keys, json: json }));\n            }\n        }\n        return node.keys;\n    };\n    return ObjectCanon;\n}());\nexport { ObjectCanon };\n//# sourceMappingURL=object-canon.js.map","import { __assign } from \"tslib\";\nimport { invariant, newInvariantError } from \"../../utilities/globals/index.js\";\nimport { Kind } from \"graphql\";\nimport { wrap } from \"optimism\";\nimport { isField, resultKeyNameFromField, isReference, makeReference, shouldInclude, addTypenameToDocument, getDefaultValues, getMainDefinition, getQueryDefinition, getFragmentFromSelection, maybeDeepFreeze, mergeDeepArray, DeepMerger, isNonNullObject, canUseWeakMap, compact, canonicalStringify, cacheSizes, } from \"../../utilities/index.js\";\nimport { maybeDependOnExistenceOfEntity, supportsResultCaching, } from \"./entityStore.js\";\nimport { isArray, extractFragmentContext, getTypenameFromStoreObject, shouldCanonizeResults, } from \"./helpers.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { ObjectCanon } from \"./object-canon.js\";\nfunction execSelectionSetKeyArgs(options) {\n    return [\n        options.selectionSet,\n        options.objectOrReference,\n        options.context,\n        // We split out this property so we can pass different values\n        // independently without modifying options.context itself.\n        options.context.canonizeResults,\n    ];\n}\nvar StoreReader = /** @class */ (function () {\n    function StoreReader(config) {\n        var _this = this;\n        this.knownResults = new (canUseWeakMap ? WeakMap : Map)();\n        this.config = compact(config, {\n            addTypename: config.addTypename !== false,\n            canonizeResults: shouldCanonizeResults(config),\n        });\n        this.canon = config.canon || new ObjectCanon();\n        // memoized functions in this class will be \"garbage-collected\"\n        // by recreating the whole `StoreReader` in\n        // `InMemoryCache.resetResultsCache`\n        // (triggered from `InMemoryCache.gc` with `resetResultCache: true`)\n        this.executeSelectionSet = wrap(function (options) {\n            var _a;\n            var canonizeResults = options.context.canonizeResults;\n            var peekArgs = execSelectionSetKeyArgs(options);\n            // Negate this boolean option so we can find out if we've already read\n            // this result using the other boolean value.\n            peekArgs[3] = !canonizeResults;\n            var other = (_a = _this.executeSelectionSet).peek.apply(_a, peekArgs);\n            if (other) {\n                if (canonizeResults) {\n                    return __assign(__assign({}, other), { \n                        // If we previously read this result without canonizing it, we can\n                        // reuse that result simply by canonizing it now.\n                        result: _this.canon.admit(other.result) });\n                }\n                // If we previously read this result with canonization enabled, we can\n                // return that canonized result as-is.\n                return other;\n            }\n            maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n            // Finally, if we didn't find any useful previous results, run the real\n            // execSelectionSetImpl method with the given options.\n            return _this.execSelectionSetImpl(options);\n        }, {\n            max: this.config.resultCacheMaxSize ||\n                cacheSizes[\"inMemoryCache.executeSelectionSet\"] ||\n                50000 /* defaultCacheSizes[\"inMemoryCache.executeSelectionSet\"] */,\n            keyArgs: execSelectionSetKeyArgs,\n            // Note that the parameters of makeCacheKey are determined by the\n            // array returned by keyArgs.\n            makeCacheKey: function (selectionSet, parent, context, canonizeResults) {\n                if (supportsResultCaching(context.store)) {\n                    return context.store.makeCacheKey(selectionSet, isReference(parent) ? parent.__ref : parent, context.varString, canonizeResults);\n                }\n            },\n        });\n        this.executeSubSelectedArray = wrap(function (options) {\n            maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n            return _this.execSubSelectedArrayImpl(options);\n        }, {\n            max: this.config.resultCacheMaxSize ||\n                cacheSizes[\"inMemoryCache.executeSubSelectedArray\"] ||\n                10000 /* defaultCacheSizes[\"inMemoryCache.executeSubSelectedArray\"] */,\n            makeCacheKey: function (_a) {\n                var field = _a.field, array = _a.array, context = _a.context;\n                if (supportsResultCaching(context.store)) {\n                    return context.store.makeCacheKey(field, array, context.varString);\n                }\n            },\n        });\n    }\n    StoreReader.prototype.resetCanon = function () {\n        this.canon = new ObjectCanon();\n    };\n    /**\n     * Given a store and a query, return as much of the result as possible and\n     * identify if any data was missing from the store.\n     */\n    StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n        var store = _a.store, query = _a.query, _b = _a.rootId, rootId = _b === void 0 ? \"ROOT_QUERY\" : _b, variables = _a.variables, _c = _a.returnPartialData, returnPartialData = _c === void 0 ? true : _c, _d = _a.canonizeResults, canonizeResults = _d === void 0 ? this.config.canonizeResults : _d;\n        var policies = this.config.cache.policies;\n        variables = __assign(__assign({}, getDefaultValues(getQueryDefinition(query))), variables);\n        var rootRef = makeReference(rootId);\n        var execResult = this.executeSelectionSet({\n            selectionSet: getMainDefinition(query).selectionSet,\n            objectOrReference: rootRef,\n            enclosingRef: rootRef,\n            context: __assign({ store: store, query: query, policies: policies, variables: variables, varString: canonicalStringify(variables), canonizeResults: canonizeResults }, extractFragmentContext(query, this.config.fragments)),\n        });\n        var missing;\n        if (execResult.missing) {\n            // For backwards compatibility we still report an array of\n            // MissingFieldError objects, even though there will only ever be at most\n            // one of them, now that all missing field error messages are grouped\n            // together in the execResult.missing tree.\n            missing = [\n                new MissingFieldError(firstMissing(execResult.missing), execResult.missing, query, variables),\n            ];\n            if (!returnPartialData) {\n                throw missing[0];\n            }\n        }\n        return {\n            result: execResult.result,\n            complete: !missing,\n            missing: missing,\n        };\n    };\n    StoreReader.prototype.isFresh = function (result, parent, selectionSet, context) {\n        if (supportsResultCaching(context.store) &&\n            this.knownResults.get(result) === selectionSet) {\n            var latest = this.executeSelectionSet.peek(selectionSet, parent, context, \n            // If result is canonical, then it could only have been previously\n            // cached by the canonizing version of executeSelectionSet, so we can\n            // avoid checking both possibilities here.\n            this.canon.isKnown(result));\n            if (latest && result === latest.result) {\n                return true;\n            }\n        }\n        return false;\n    };\n    // Uncached version of executeSelectionSet.\n    StoreReader.prototype.execSelectionSetImpl = function (_a) {\n        var _this = this;\n        var selectionSet = _a.selectionSet, objectOrReference = _a.objectOrReference, enclosingRef = _a.enclosingRef, context = _a.context;\n        if (isReference(objectOrReference) &&\n            !context.policies.rootTypenamesById[objectOrReference.__ref] &&\n            !context.store.has(objectOrReference.__ref)) {\n            return {\n                result: this.canon.empty,\n                missing: \"Dangling reference to missing \".concat(objectOrReference.__ref, \" object\"),\n            };\n        }\n        var variables = context.variables, policies = context.policies, store = context.store;\n        var typename = store.getFieldValue(objectOrReference, \"__typename\");\n        var objectsToMerge = [];\n        var missing;\n        var missingMerger = new DeepMerger();\n        if (this.config.addTypename &&\n            typeof typename === \"string\" &&\n            !policies.rootIdsByTypename[typename]) {\n            // Ensure we always include a default value for the __typename\n            // field, if we have one, and this.config.addTypename is true. Note\n            // that this field can be overridden by other merged objects.\n            objectsToMerge.push({ __typename: typename });\n        }\n        function handleMissing(result, resultName) {\n            var _a;\n            if (result.missing) {\n                missing = missingMerger.merge(missing, (_a = {},\n                    _a[resultName] = result.missing,\n                    _a));\n            }\n            return result.result;\n        }\n        var workSet = new Set(selectionSet.selections);\n        workSet.forEach(function (selection) {\n            var _a, _b;\n            // Omit fields with directives @skip(if: <truthy value>) or\n            // @include(if: <falsy value>).\n            if (!shouldInclude(selection, variables))\n                return;\n            if (isField(selection)) {\n                var fieldValue = policies.readField({\n                    fieldName: selection.name.value,\n                    field: selection,\n                    variables: context.variables,\n                    from: objectOrReference,\n                }, context);\n                var resultName = resultKeyNameFromField(selection);\n                if (fieldValue === void 0) {\n                    if (!addTypenameToDocument.added(selection)) {\n                        missing = missingMerger.merge(missing, (_a = {},\n                            _a[resultName] = \"Can't find field '\".concat(selection.name.value, \"' on \").concat(isReference(objectOrReference) ?\n                                objectOrReference.__ref + \" object\"\n                                : \"object \" + JSON.stringify(objectOrReference, null, 2)),\n                            _a));\n                    }\n                }\n                else if (isArray(fieldValue)) {\n                    if (fieldValue.length > 0) {\n                        fieldValue = handleMissing(_this.executeSubSelectedArray({\n                            field: selection,\n                            array: fieldValue,\n                            enclosingRef: enclosingRef,\n                            context: context,\n                        }), resultName);\n                    }\n                }\n                else if (!selection.selectionSet) {\n                    // If the field does not have a selection set, then we handle it\n                    // as a scalar value. To keep this.canon from canonicalizing\n                    // this value, we use this.canon.pass to wrap fieldValue in a\n                    // Pass object that this.canon.admit will later unwrap as-is.\n                    if (context.canonizeResults) {\n                        fieldValue = _this.canon.pass(fieldValue);\n                    }\n                }\n                else if (fieldValue != null) {\n                    // In this case, because we know the field has a selection set,\n                    // it must be trying to query a GraphQLObjectType, which is why\n                    // fieldValue must be != null.\n                    fieldValue = handleMissing(_this.executeSelectionSet({\n                        selectionSet: selection.selectionSet,\n                        objectOrReference: fieldValue,\n                        enclosingRef: isReference(fieldValue) ? fieldValue : enclosingRef,\n                        context: context,\n                    }), resultName);\n                }\n                if (fieldValue !== void 0) {\n                    objectsToMerge.push((_b = {}, _b[resultName] = fieldValue, _b));\n                }\n            }\n            else {\n                var fragment = getFragmentFromSelection(selection, context.lookupFragment);\n                if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n                    throw newInvariantError(9, selection.name.value);\n                }\n                if (fragment && policies.fragmentMatches(fragment, typename)) {\n                    fragment.selectionSet.selections.forEach(workSet.add, workSet);\n                }\n            }\n        });\n        var result = mergeDeepArray(objectsToMerge);\n        var finalResult = { result: result, missing: missing };\n        var frozen = context.canonizeResults ?\n            this.canon.admit(finalResult)\n            // Since this.canon is normally responsible for freezing results (only in\n            // development), freeze them manually if canonization is disabled.\n            : maybeDeepFreeze(finalResult);\n        // Store this result with its selection set so that we can quickly\n        // recognize it again in the StoreReader#isFresh method.\n        if (frozen.result) {\n            this.knownResults.set(frozen.result, selectionSet);\n        }\n        return frozen;\n    };\n    // Uncached version of executeSubSelectedArray.\n    StoreReader.prototype.execSubSelectedArrayImpl = function (_a) {\n        var _this = this;\n        var field = _a.field, array = _a.array, enclosingRef = _a.enclosingRef, context = _a.context;\n        var missing;\n        var missingMerger = new DeepMerger();\n        function handleMissing(childResult, i) {\n            var _a;\n            if (childResult.missing) {\n                missing = missingMerger.merge(missing, (_a = {}, _a[i] = childResult.missing, _a));\n            }\n            return childResult.result;\n        }\n        if (field.selectionSet) {\n            array = array.filter(context.store.canRead);\n        }\n        array = array.map(function (item, i) {\n            // null value in array\n            if (item === null) {\n                return null;\n            }\n            // This is a nested array, recurse\n            if (isArray(item)) {\n                return handleMissing(_this.executeSubSelectedArray({\n                    field: field,\n                    array: item,\n                    enclosingRef: enclosingRef,\n                    context: context,\n                }), i);\n            }\n            // This is an object, run the selection set on it\n            if (field.selectionSet) {\n                return handleMissing(_this.executeSelectionSet({\n                    selectionSet: field.selectionSet,\n                    objectOrReference: item,\n                    enclosingRef: isReference(item) ? item : enclosingRef,\n                    context: context,\n                }), i);\n            }\n            if (globalThis.__DEV__ !== false) {\n                assertSelectionSetForIdValue(context.store, field, item);\n            }\n            return item;\n        });\n        return {\n            result: context.canonizeResults ? this.canon.admit(array) : array,\n            missing: missing,\n        };\n    };\n    return StoreReader;\n}());\nexport { StoreReader };\nfunction firstMissing(tree) {\n    try {\n        JSON.stringify(tree, function (_, value) {\n            if (typeof value === \"string\")\n                throw value;\n            return value;\n        });\n    }\n    catch (result) {\n        return result;\n    }\n}\nfunction assertSelectionSetForIdValue(store, field, fieldValue) {\n    if (!field.selectionSet) {\n        var workSet_1 = new Set([fieldValue]);\n        workSet_1.forEach(function (value) {\n            if (isNonNullObject(value)) {\n                invariant(\n                    !isReference(value),\n                    10,\n                    getTypenameFromStoreObject(store, value),\n                    field.name.value\n                );\n                Object.values(value).forEach(workSet_1.add, workSet_1);\n            }\n        });\n    }\n}\n//# sourceMappingURL=readFromStore.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nimport { argumentsObjectFromField, DeepMerger, isNonEmptyArray, isNonNullObject, } from \"../../utilities/index.js\";\nimport { hasOwn, isArray } from \"./helpers.js\";\n// Mapping from JSON-encoded KeySpecifier strings to associated information.\nvar specifierInfoCache = Object.create(null);\nfunction lookupSpecifierInfo(spec) {\n    // It's safe to encode KeySpecifier arrays with JSON.stringify, since they're\n    // just arrays of strings or nested KeySpecifier arrays, and the order of the\n    // array elements is important (and suitably preserved by JSON.stringify).\n    var cacheKey = JSON.stringify(spec);\n    return (specifierInfoCache[cacheKey] ||\n        (specifierInfoCache[cacheKey] = Object.create(null)));\n}\nexport function keyFieldsFnFromSpecifier(specifier) {\n    var info = lookupSpecifierInfo(specifier);\n    return (info.keyFieldsFn || (info.keyFieldsFn = function (object, context) {\n            var extract = function (from, key) {\n                return context.readField(key, from);\n            };\n            var keyObject = (context.keyObject = collectSpecifierPaths(specifier, function (schemaKeyPath) {\n                var extracted = extractKeyPath(context.storeObject, schemaKeyPath, \n                // Using context.readField to extract paths from context.storeObject\n                // allows the extraction to see through Reference objects and respect\n                // custom read functions.\n                extract);\n                if (extracted === void 0 &&\n                    object !== context.storeObject &&\n                    hasOwn.call(object, schemaKeyPath[0])) {\n                    // If context.storeObject fails to provide a value for the requested\n                    // path, fall back to the raw result object, if it has a top-level key\n                    // matching the first key in the path (schemaKeyPath[0]). This allows\n                    // key fields included in the written data to be saved in the cache\n                    // even if they are not selected explicitly in context.selectionSet.\n                    // Not being mentioned by context.selectionSet is convenient here,\n                    // since it means these extra fields cannot be affected by field\n                    // aliasing, which is why we can use extractKey instead of\n                    // context.readField for this extraction.\n                    extracted = extractKeyPath(object, schemaKeyPath, extractKey);\n                }\n                invariant(extracted !== void 0, 4, schemaKeyPath.join(\".\"), object);\n                return extracted;\n            }));\n            return \"\".concat(context.typename, \":\").concat(JSON.stringify(keyObject));\n        }));\n}\n// The keyArgs extraction process is roughly analogous to keyFields extraction,\n// but there are no aliases involved, missing fields are tolerated (by merely\n// omitting them from the key), and drawing from field.directives or variables\n// is allowed (in addition to drawing from the field's arguments object).\n// Concretely, these differences mean passing a different key path extractor\n// function to collectSpecifierPaths, reusing the shared extractKeyPath helper\n// wherever possible.\nexport function keyArgsFnFromSpecifier(specifier) {\n    var info = lookupSpecifierInfo(specifier);\n    return (info.keyArgsFn ||\n        (info.keyArgsFn = function (args, _a) {\n            var field = _a.field, variables = _a.variables, fieldName = _a.fieldName;\n            var collected = collectSpecifierPaths(specifier, function (keyPath) {\n                var firstKey = keyPath[0];\n                var firstChar = firstKey.charAt(0);\n                if (firstChar === \"@\") {\n                    if (field && isNonEmptyArray(field.directives)) {\n                        var directiveName_1 = firstKey.slice(1);\n                        // If the directive appears multiple times, only the first\n                        // occurrence's arguments will be used. TODO Allow repetition?\n                        // TODO Cache this work somehow, a la aliasMap?\n                        var d = field.directives.find(function (d) { return d.name.value === directiveName_1; });\n                        // Fortunately argumentsObjectFromField works for DirectiveNode!\n                        var directiveArgs = d && argumentsObjectFromField(d, variables);\n                        // For directives without arguments (d defined, but directiveArgs ===\n                        // null), the presence or absence of the directive still counts as\n                        // part of the field key, so we return null in those cases. If no\n                        // directive with this name was found for this field (d undefined and\n                        // thus directiveArgs undefined), we return undefined, which causes\n                        // this value to be omitted from the key object returned by\n                        // collectSpecifierPaths.\n                        return (directiveArgs &&\n                            extractKeyPath(directiveArgs, \n                            // If keyPath.length === 1, this code calls extractKeyPath with an\n                            // empty path, which works because it uses directiveArgs as the\n                            // extracted value.\n                            keyPath.slice(1)));\n                    }\n                    // If the key started with @ but there was no corresponding directive,\n                    // we want to omit this value from the key object, not fall through to\n                    // treating @whatever as a normal argument name.\n                    return;\n                }\n                if (firstChar === \"$\") {\n                    var variableName = firstKey.slice(1);\n                    if (variables && hasOwn.call(variables, variableName)) {\n                        var varKeyPath = keyPath.slice(0);\n                        varKeyPath[0] = variableName;\n                        return extractKeyPath(variables, varKeyPath);\n                    }\n                    // If the key started with $ but there was no corresponding variable, we\n                    // want to omit this value from the key object, not fall through to\n                    // treating $whatever as a normal argument name.\n                    return;\n                }\n                if (args) {\n                    return extractKeyPath(args, keyPath);\n                }\n            });\n            var suffix = JSON.stringify(collected);\n            // If no arguments were passed to this field, and it didn't have any other\n            // field key contributions from directives or variables, hide the empty\n            // :{} suffix from the field key. However, a field passed no arguments can\n            // still end up with a non-empty :{...} suffix if its key configuration\n            // refers to directives or variables.\n            if (args || suffix !== \"{}\") {\n                fieldName += \":\" + suffix;\n            }\n            return fieldName;\n        }));\n}\nexport function collectSpecifierPaths(specifier, extractor) {\n    // For each path specified by specifier, invoke the extractor, and repeatedly\n    // merge the results together, with appropriate ancestor context.\n    var merger = new DeepMerger();\n    return getSpecifierPaths(specifier).reduce(function (collected, path) {\n        var _a;\n        var toMerge = extractor(path);\n        if (toMerge !== void 0) {\n            // This path is not expected to contain array indexes, so the toMerge\n            // reconstruction will not contain arrays. TODO Fix this?\n            for (var i = path.length - 1; i >= 0; --i) {\n                toMerge = (_a = {}, _a[path[i]] = toMerge, _a);\n            }\n            collected = merger.merge(collected, toMerge);\n        }\n        return collected;\n    }, Object.create(null));\n}\nexport function getSpecifierPaths(spec) {\n    var info = lookupSpecifierInfo(spec);\n    if (!info.paths) {\n        var paths_1 = (info.paths = []);\n        var currentPath_1 = [];\n        spec.forEach(function (s, i) {\n            if (isArray(s)) {\n                getSpecifierPaths(s).forEach(function (p) { return paths_1.push(currentPath_1.concat(p)); });\n                currentPath_1.length = 0;\n            }\n            else {\n                currentPath_1.push(s);\n                if (!isArray(spec[i + 1])) {\n                    paths_1.push(currentPath_1.slice(0));\n                    currentPath_1.length = 0;\n                }\n            }\n        });\n    }\n    return info.paths;\n}\nfunction extractKey(object, key) {\n    return object[key];\n}\nexport function extractKeyPath(object, path, extract) {\n    // For each key in path, extract the corresponding child property from obj,\n    // flattening arrays if encountered (uncommon for keyFields and keyArgs, but\n    // possible). The final result of path.reduce is normalized so unexpected leaf\n    // objects have their keys safely sorted. That final result is difficult to\n    // type as anything other than any. You're welcome to try to improve the\n    // return type, but keep in mind extractKeyPath is not a public function\n    // (exported only for testing), so the effort may not be worthwhile unless the\n    // limited set of actual callers (see above) pass arguments that TypeScript\n    // can statically type. If we know only that path is some array of strings\n    // (and not, say, a specific tuple of statically known strings), any (or\n    // possibly unknown) is the honest answer.\n    extract = extract || extractKey;\n    return normalize(path.reduce(function reducer(obj, key) {\n        return isArray(obj) ?\n            obj.map(function (child) { return reducer(child, key); })\n            : obj && extract(obj, key);\n    }, object));\n}\nfunction normalize(value) {\n    // Usually the extracted value will be a scalar value, since most primary\n    // key fields are scalar, but just in case we get an object or an array, we\n    // need to do some normalization of the order of (nested) keys.\n    if (isNonNullObject(value)) {\n        if (isArray(value)) {\n            return value.map(normalize);\n        }\n        return collectSpecifierPaths(Object.keys(value).sort(), function (path) {\n            return extractKeyPath(value, path);\n        });\n    }\n    return value;\n}\n//# sourceMappingURL=key-extractor.js.map","import { __assign, __rest } from \"tslib\";\nimport { invariant, newInvariantError } from \"../../utilities/globals/index.js\";\nimport { storeKeyNameFromField, argumentsObjectFromField, isReference, getStoreKeyName, isNonNullObject, stringifyForDisplay, } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName, storeValueIsStoreObject, selectionSetMatchesResult, TypeOrFieldNameRegExp, defaultDataIdFromObject, isArray, } from \"./helpers.js\";\nimport { cacheSlot } from \"./reactiveVars.js\";\nimport { keyArgsFnFromSpecifier, keyFieldsFnFromSpecifier, } from \"./key-extractor.js\";\nfunction argsFromFieldSpecifier(spec) {\n    return (spec.args !== void 0 ? spec.args\n        : spec.field ? argumentsObjectFromField(spec.field, spec.variables)\n            : null);\n}\nvar nullKeyFieldsFn = function () { return void 0; };\nvar simpleKeyArgsFn = function (_args, context) { return context.fieldName; };\n// These merge functions can be selected by specifying merge:true or\n// merge:false in a field policy.\nvar mergeTrueFn = function (existing, incoming, _a) {\n    var mergeObjects = _a.mergeObjects;\n    return mergeObjects(existing, incoming);\n};\nvar mergeFalseFn = function (_, incoming) { return incoming; };\nvar Policies = /** @class */ (function () {\n    function Policies(config) {\n        this.config = config;\n        this.typePolicies = Object.create(null);\n        this.toBeAdded = Object.create(null);\n        // Map from subtype names to sets of supertype names. Note that this\n        // representation inverts the structure of possibleTypes (whose keys are\n        // supertypes and whose values are arrays of subtypes) because it tends\n        // to be much more efficient to search upwards than downwards.\n        this.supertypeMap = new Map();\n        // Any fuzzy subtypes specified by possibleTypes will be converted to\n        // RegExp objects and recorded here. Every key of this map can also be\n        // found in supertypeMap. In many cases this Map will be empty, which\n        // means no fuzzy subtype checking will happen in fragmentMatches.\n        this.fuzzySubtypes = new Map();\n        this.rootIdsByTypename = Object.create(null);\n        this.rootTypenamesById = Object.create(null);\n        this.usingPossibleTypes = false;\n        this.config = __assign({ dataIdFromObject: defaultDataIdFromObject }, config);\n        this.cache = this.config.cache;\n        this.setRootTypename(\"Query\");\n        this.setRootTypename(\"Mutation\");\n        this.setRootTypename(\"Subscription\");\n        if (config.possibleTypes) {\n            this.addPossibleTypes(config.possibleTypes);\n        }\n        if (config.typePolicies) {\n            this.addTypePolicies(config.typePolicies);\n        }\n    }\n    Policies.prototype.identify = function (object, partialContext) {\n        var _a;\n        var policies = this;\n        var typename = (partialContext &&\n            (partialContext.typename || ((_a = partialContext.storeObject) === null || _a === void 0 ? void 0 : _a.__typename))) ||\n            object.__typename;\n        // It should be possible to write root Query fields with writeFragment,\n        // using { __typename: \"Query\", ... } as the data, but it does not make\n        // sense to allow the same identification behavior for the Mutation and\n        // Subscription types, since application code should never be writing\n        // directly to (or reading directly from) those root objects.\n        if (typename === this.rootTypenamesById.ROOT_QUERY) {\n            return [\"ROOT_QUERY\"];\n        }\n        // Default context.storeObject to object if not otherwise provided.\n        var storeObject = (partialContext && partialContext.storeObject) || object;\n        var context = __assign(__assign({}, partialContext), { typename: typename, storeObject: storeObject, readField: (partialContext && partialContext.readField) ||\n                function () {\n                    var options = normalizeReadFieldOptions(arguments, storeObject);\n                    return policies.readField(options, {\n                        store: policies.cache[\"data\"],\n                        variables: options.variables,\n                    });\n                } });\n        var id;\n        var policy = typename && this.getTypePolicy(typename);\n        var keyFn = (policy && policy.keyFn) || this.config.dataIdFromObject;\n        while (keyFn) {\n            var specifierOrId = keyFn(__assign(__assign({}, object), storeObject), context);\n            if (isArray(specifierOrId)) {\n                keyFn = keyFieldsFnFromSpecifier(specifierOrId);\n            }\n            else {\n                id = specifierOrId;\n                break;\n            }\n        }\n        id = id ? String(id) : void 0;\n        return context.keyObject ? [id, context.keyObject] : [id];\n    };\n    Policies.prototype.addTypePolicies = function (typePolicies) {\n        var _this = this;\n        Object.keys(typePolicies).forEach(function (typename) {\n            var _a = typePolicies[typename], queryType = _a.queryType, mutationType = _a.mutationType, subscriptionType = _a.subscriptionType, incoming = __rest(_a, [\"queryType\", \"mutationType\", \"subscriptionType\"]);\n            // Though {query,mutation,subscription}Type configurations are rare,\n            // it's important to call setRootTypename as early as possible,\n            // since these configurations should apply consistently for the\n            // entire lifetime of the cache. Also, since only one __typename can\n            // qualify as one of these root types, these three properties cannot\n            // be inherited, unlike the rest of the incoming properties. That\n            // restriction is convenient, because the purpose of this.toBeAdded\n            // is to delay the processing of type/field policies until the first\n            // time they're used, allowing policies to be added in any order as\n            // long as all relevant policies (including policies for supertypes)\n            // have been added by the time a given policy is used for the first\n            // time. In other words, since inheritance doesn't matter for these\n            // properties, there's also no need to delay their processing using\n            // the this.toBeAdded queue.\n            if (queryType)\n                _this.setRootTypename(\"Query\", typename);\n            if (mutationType)\n                _this.setRootTypename(\"Mutation\", typename);\n            if (subscriptionType)\n                _this.setRootTypename(\"Subscription\", typename);\n            if (hasOwn.call(_this.toBeAdded, typename)) {\n                _this.toBeAdded[typename].push(incoming);\n            }\n            else {\n                _this.toBeAdded[typename] = [incoming];\n            }\n        });\n    };\n    Policies.prototype.updateTypePolicy = function (typename, incoming) {\n        var _this = this;\n        var existing = this.getTypePolicy(typename);\n        var keyFields = incoming.keyFields, fields = incoming.fields;\n        function setMerge(existing, merge) {\n            existing.merge =\n                typeof merge === \"function\" ? merge\n                    // Pass merge:true as a shorthand for a merge implementation\n                    // that returns options.mergeObjects(existing, incoming).\n                    : merge === true ? mergeTrueFn\n                        // Pass merge:false to make incoming always replace existing\n                        // without any warnings about data clobbering.\n                        : merge === false ? mergeFalseFn\n                            : existing.merge;\n        }\n        // Type policies can define merge functions, as an alternative to\n        // using field policies to merge child objects.\n        setMerge(existing, incoming.merge);\n        existing.keyFn =\n            // Pass false to disable normalization for this typename.\n            keyFields === false ? nullKeyFieldsFn\n                // Pass an array of strings to use those fields to compute a\n                // composite ID for objects of this typename.\n                : isArray(keyFields) ? keyFieldsFnFromSpecifier(keyFields)\n                    // Pass a function to take full control over identification.\n                    : typeof keyFields === \"function\" ? keyFields\n                        // Leave existing.keyFn unchanged if above cases fail.\n                        : existing.keyFn;\n        if (fields) {\n            Object.keys(fields).forEach(function (fieldName) {\n                var existing = _this.getFieldPolicy(typename, fieldName, true);\n                var incoming = fields[fieldName];\n                if (typeof incoming === \"function\") {\n                    existing.read = incoming;\n                }\n                else {\n                    var keyArgs = incoming.keyArgs, read = incoming.read, merge = incoming.merge;\n                    existing.keyFn =\n                        // Pass false to disable argument-based differentiation of\n                        // field identities.\n                        keyArgs === false ? simpleKeyArgsFn\n                            // Pass an array of strings to use named arguments to\n                            // compute a composite identity for the field.\n                            : isArray(keyArgs) ? keyArgsFnFromSpecifier(keyArgs)\n                                // Pass a function to take full control over field identity.\n                                : typeof keyArgs === \"function\" ? keyArgs\n                                    // Leave existing.keyFn unchanged if above cases fail.\n                                    : existing.keyFn;\n                    if (typeof read === \"function\") {\n                        existing.read = read;\n                    }\n                    setMerge(existing, merge);\n                }\n                if (existing.read && existing.merge) {\n                    // If we have both a read and a merge function, assume\n                    // keyArgs:false, because read and merge together can take\n                    // responsibility for interpreting arguments in and out. This\n                    // default assumption can always be overridden by specifying\n                    // keyArgs explicitly in the FieldPolicy.\n                    existing.keyFn = existing.keyFn || simpleKeyArgsFn;\n                }\n            });\n        }\n    };\n    Policies.prototype.setRootTypename = function (which, typename) {\n        if (typename === void 0) { typename = which; }\n        var rootId = \"ROOT_\" + which.toUpperCase();\n        var old = this.rootTypenamesById[rootId];\n        if (typename !== old) {\n            invariant(!old || old === which, 5, which);\n            // First, delete any old __typename associated with this rootId from\n            // rootIdsByTypename.\n            if (old)\n                delete this.rootIdsByTypename[old];\n            // Now make this the only __typename that maps to this rootId.\n            this.rootIdsByTypename[typename] = rootId;\n            // Finally, update the __typename associated with this rootId.\n            this.rootTypenamesById[rootId] = typename;\n        }\n    };\n    Policies.prototype.addPossibleTypes = function (possibleTypes) {\n        var _this = this;\n        this.usingPossibleTypes = true;\n        Object.keys(possibleTypes).forEach(function (supertype) {\n            // Make sure all types have an entry in this.supertypeMap, even if\n            // their supertype set is empty, so we can return false immediately\n            // from policies.fragmentMatches for unknown supertypes.\n            _this.getSupertypeSet(supertype, true);\n            possibleTypes[supertype].forEach(function (subtype) {\n                _this.getSupertypeSet(subtype, true).add(supertype);\n                var match = subtype.match(TypeOrFieldNameRegExp);\n                if (!match || match[0] !== subtype) {\n                    // TODO Don't interpret just any invalid typename as a RegExp.\n                    _this.fuzzySubtypes.set(subtype, new RegExp(subtype));\n                }\n            });\n        });\n    };\n    Policies.prototype.getTypePolicy = function (typename) {\n        var _this = this;\n        if (!hasOwn.call(this.typePolicies, typename)) {\n            var policy_1 = (this.typePolicies[typename] = Object.create(null));\n            policy_1.fields = Object.create(null);\n            // When the TypePolicy for typename is first accessed, instead of\n            // starting with an empty policy object, inherit any properties or\n            // fields from the type policies of the supertypes of typename.\n            //\n            // Any properties or fields defined explicitly within the TypePolicy\n            // for typename will take precedence, and if there are multiple\n            // supertypes, the properties of policies whose types were added\n            // later via addPossibleTypes will take precedence over those of\n            // earlier supertypes. TODO Perhaps we should warn about these\n            // conflicts in development, and recommend defining the property\n            // explicitly in the subtype policy?\n            //\n            // Field policy inheritance is atomic/shallow: you can't inherit a\n            // field policy and then override just its read function, since read\n            // and merge functions often need to cooperate, so changing only one\n            // of them would be a recipe for inconsistency.\n            //\n            // Once the TypePolicy for typename has been accessed, its properties can\n            // still be updated directly using addTypePolicies, but future changes to\n            // inherited supertype policies will not be reflected in this subtype\n            // policy, because this code runs at most once per typename.\n            var supertypes_1 = this.supertypeMap.get(typename);\n            if (!supertypes_1 && this.fuzzySubtypes.size) {\n                // To make the inheritance logic work for unknown typename strings that\n                // may have fuzzy supertypes, we give this typename an empty supertype\n                // set and then populate it with any fuzzy supertypes that match.\n                supertypes_1 = this.getSupertypeSet(typename, true);\n                // This only works for typenames that are directly matched by a fuzzy\n                // supertype. What if there is an intermediate chain of supertypes?\n                // While possible, that situation can only be solved effectively by\n                // specifying the intermediate relationships via possibleTypes, manually\n                // and in a non-fuzzy way.\n                this.fuzzySubtypes.forEach(function (regExp, fuzzy) {\n                    if (regExp.test(typename)) {\n                        // The fuzzy parameter is just the original string version of regExp\n                        // (not a valid __typename string), but we can look up the\n                        // associated supertype(s) in this.supertypeMap.\n                        var fuzzySupertypes = _this.supertypeMap.get(fuzzy);\n                        if (fuzzySupertypes) {\n                            fuzzySupertypes.forEach(function (supertype) {\n                                return supertypes_1.add(supertype);\n                            });\n                        }\n                    }\n                });\n            }\n            if (supertypes_1 && supertypes_1.size) {\n                supertypes_1.forEach(function (supertype) {\n                    var _a = _this.getTypePolicy(supertype), fields = _a.fields, rest = __rest(_a, [\"fields\"]);\n                    Object.assign(policy_1, rest);\n                    Object.assign(policy_1.fields, fields);\n                });\n            }\n        }\n        var inbox = this.toBeAdded[typename];\n        if (inbox && inbox.length) {\n            // Merge the pending policies into this.typePolicies, in the order they\n            // were originally passed to addTypePolicy.\n            inbox.splice(0).forEach(function (policy) {\n                _this.updateTypePolicy(typename, policy);\n            });\n        }\n        return this.typePolicies[typename];\n    };\n    Policies.prototype.getFieldPolicy = function (typename, fieldName, createIfMissing) {\n        if (typename) {\n            var fieldPolicies = this.getTypePolicy(typename).fields;\n            return (fieldPolicies[fieldName] ||\n                (createIfMissing && (fieldPolicies[fieldName] = Object.create(null))));\n        }\n    };\n    Policies.prototype.getSupertypeSet = function (subtype, createIfMissing) {\n        var supertypeSet = this.supertypeMap.get(subtype);\n        if (!supertypeSet && createIfMissing) {\n            this.supertypeMap.set(subtype, (supertypeSet = new Set()));\n        }\n        return supertypeSet;\n    };\n    Policies.prototype.fragmentMatches = function (fragment, typename, result, variables) {\n        var _this = this;\n        if (!fragment.typeCondition)\n            return true;\n        // If the fragment has a type condition but the object we're matching\n        // against does not have a __typename, the fragment cannot match.\n        if (!typename)\n            return false;\n        var supertype = fragment.typeCondition.name.value;\n        // Common case: fragment type condition and __typename are the same.\n        if (typename === supertype)\n            return true;\n        if (this.usingPossibleTypes && this.supertypeMap.has(supertype)) {\n            var typenameSupertypeSet = this.getSupertypeSet(typename, true);\n            var workQueue_1 = [typenameSupertypeSet];\n            var maybeEnqueue_1 = function (subtype) {\n                var supertypeSet = _this.getSupertypeSet(subtype, false);\n                if (supertypeSet &&\n                    supertypeSet.size &&\n                    workQueue_1.indexOf(supertypeSet) < 0) {\n                    workQueue_1.push(supertypeSet);\n                }\n            };\n            // We need to check fuzzy subtypes only if we encountered fuzzy\n            // subtype strings in addPossibleTypes, and only while writing to\n            // the cache, since that's when selectionSetMatchesResult gives a\n            // strong signal of fragment matching. The StoreReader class calls\n            // policies.fragmentMatches without passing a result object, so\n            // needToCheckFuzzySubtypes is always false while reading.\n            var needToCheckFuzzySubtypes = !!(result && this.fuzzySubtypes.size);\n            var checkingFuzzySubtypes = false;\n            // It's important to keep evaluating workQueue.length each time through\n            // the loop, because the queue can grow while we're iterating over it.\n            for (var i = 0; i < workQueue_1.length; ++i) {\n                var supertypeSet = workQueue_1[i];\n                if (supertypeSet.has(supertype)) {\n                    if (!typenameSupertypeSet.has(supertype)) {\n                        if (checkingFuzzySubtypes) {\n                            globalThis.__DEV__ !== false && invariant.warn(6, typename, supertype);\n                        }\n                        // Record positive results for faster future lookup.\n                        // Unfortunately, we cannot safely cache negative results,\n                        // because new possibleTypes data could always be added to the\n                        // Policies class.\n                        typenameSupertypeSet.add(supertype);\n                    }\n                    return true;\n                }\n                supertypeSet.forEach(maybeEnqueue_1);\n                if (needToCheckFuzzySubtypes &&\n                    // Start checking fuzzy subtypes only after exhausting all\n                    // non-fuzzy subtypes (after the final iteration of the loop).\n                    i === workQueue_1.length - 1 &&\n                    // We could wait to compare fragment.selectionSet to result\n                    // after we verify the supertype, but this check is often less\n                    // expensive than that search, and we will have to do the\n                    // comparison anyway whenever we find a potential match.\n                    selectionSetMatchesResult(fragment.selectionSet, result, variables)) {\n                    // We don't always need to check fuzzy subtypes (if no result\n                    // was provided, or !this.fuzzySubtypes.size), but, when we do,\n                    // we only want to check them once.\n                    needToCheckFuzzySubtypes = false;\n                    checkingFuzzySubtypes = true;\n                    // If we find any fuzzy subtypes that match typename, extend the\n                    // workQueue to search through the supertypes of those fuzzy\n                    // subtypes. Otherwise the for-loop will terminate and we'll\n                    // return false below.\n                    this.fuzzySubtypes.forEach(function (regExp, fuzzyString) {\n                        var match = typename.match(regExp);\n                        if (match && match[0] === typename) {\n                            maybeEnqueue_1(fuzzyString);\n                        }\n                    });\n                }\n            }\n        }\n        return false;\n    };\n    Policies.prototype.hasKeyArgs = function (typename, fieldName) {\n        var policy = this.getFieldPolicy(typename, fieldName, false);\n        return !!(policy && policy.keyFn);\n    };\n    Policies.prototype.getStoreFieldName = function (fieldSpec) {\n        var typename = fieldSpec.typename, fieldName = fieldSpec.fieldName;\n        var policy = this.getFieldPolicy(typename, fieldName, false);\n        var storeFieldName;\n        var keyFn = policy && policy.keyFn;\n        if (keyFn && typename) {\n            var context = {\n                typename: typename,\n                fieldName: fieldName,\n                field: fieldSpec.field || null,\n                variables: fieldSpec.variables,\n            };\n            var args = argsFromFieldSpecifier(fieldSpec);\n            while (keyFn) {\n                var specifierOrString = keyFn(args, context);\n                if (isArray(specifierOrString)) {\n                    keyFn = keyArgsFnFromSpecifier(specifierOrString);\n                }\n                else {\n                    // If the custom keyFn returns a falsy value, fall back to\n                    // fieldName instead.\n                    storeFieldName = specifierOrString || fieldName;\n                    break;\n                }\n            }\n        }\n        if (storeFieldName === void 0) {\n            storeFieldName =\n                fieldSpec.field ?\n                    storeKeyNameFromField(fieldSpec.field, fieldSpec.variables)\n                    : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec));\n        }\n        // Returning false from a keyArgs function is like configuring\n        // keyArgs: false, but more dynamic.\n        if (storeFieldName === false) {\n            return fieldName;\n        }\n        // Make sure custom field names start with the actual field.name.value\n        // of the field, so we can always figure out which properties of a\n        // StoreObject correspond to which original field names.\n        return fieldName === fieldNameFromStoreName(storeFieldName) ? storeFieldName\n            : fieldName + \":\" + storeFieldName;\n    };\n    Policies.prototype.readField = function (options, context) {\n        var objectOrReference = options.from;\n        if (!objectOrReference)\n            return;\n        var nameOrField = options.field || options.fieldName;\n        if (!nameOrField)\n            return;\n        if (options.typename === void 0) {\n            var typename = context.store.getFieldValue(objectOrReference, \"__typename\");\n            if (typename)\n                options.typename = typename;\n        }\n        var storeFieldName = this.getStoreFieldName(options);\n        var fieldName = fieldNameFromStoreName(storeFieldName);\n        var existing = context.store.getFieldValue(objectOrReference, storeFieldName);\n        var policy = this.getFieldPolicy(options.typename, fieldName, false);\n        var read = policy && policy.read;\n        if (read) {\n            var readOptions = makeFieldFunctionOptions(this, objectOrReference, options, context, context.store.getStorage(isReference(objectOrReference) ?\n                objectOrReference.__ref\n                : objectOrReference, storeFieldName));\n            // Call read(existing, readOptions) with cacheSlot holding this.cache.\n            return cacheSlot.withValue(this.cache, read, [\n                existing,\n                readOptions,\n            ]);\n        }\n        return existing;\n    };\n    Policies.prototype.getReadFunction = function (typename, fieldName) {\n        var policy = this.getFieldPolicy(typename, fieldName, false);\n        return policy && policy.read;\n    };\n    Policies.prototype.getMergeFunction = function (parentTypename, fieldName, childTypename) {\n        var policy = this.getFieldPolicy(parentTypename, fieldName, false);\n        var merge = policy && policy.merge;\n        if (!merge && childTypename) {\n            policy = this.getTypePolicy(childTypename);\n            merge = policy && policy.merge;\n        }\n        return merge;\n    };\n    Policies.prototype.runMergeFunction = function (existing, incoming, _a, context, storage) {\n        var field = _a.field, typename = _a.typename, merge = _a.merge;\n        if (merge === mergeTrueFn) {\n            // Instead of going to the trouble of creating a full\n            // FieldFunctionOptions object and calling mergeTrueFn, we can\n            // simply call mergeObjects, as mergeTrueFn would.\n            return makeMergeObjectsFunction(context.store)(existing, incoming);\n        }\n        if (merge === mergeFalseFn) {\n            // Likewise for mergeFalseFn, whose implementation is even simpler.\n            return incoming;\n        }\n        // If cache.writeQuery or cache.writeFragment was called with\n        // options.overwrite set to true, we still call merge functions, but\n        // the existing data is always undefined, so the merge function will\n        // not attempt to combine the incoming data with the existing data.\n        if (context.overwrite) {\n            existing = void 0;\n        }\n        return merge(existing, incoming, makeFieldFunctionOptions(this, \n        // Unlike options.readField for read functions, we do not fall\n        // back to the current object if no foreignObjOrRef is provided,\n        // because it's not clear what the current object should be for\n        // merge functions: the (possibly undefined) existing object, or\n        // the incoming object? If you think your merge function needs\n        // to read sibling fields in order to produce a new value for\n        // the current field, you might want to rethink your strategy,\n        // because that's a recipe for making merge behavior sensitive\n        // to the order in which fields are written into the cache.\n        // However, readField(name, ref) is useful for merge functions\n        // that need to deduplicate child objects and references.\n        void 0, {\n            typename: typename,\n            fieldName: field.name.value,\n            field: field,\n            variables: context.variables,\n        }, context, storage || Object.create(null)));\n    };\n    return Policies;\n}());\nexport { Policies };\nfunction makeFieldFunctionOptions(policies, objectOrReference, fieldSpec, context, storage) {\n    var storeFieldName = policies.getStoreFieldName(fieldSpec);\n    var fieldName = fieldNameFromStoreName(storeFieldName);\n    var variables = fieldSpec.variables || context.variables;\n    var _a = context.store, toReference = _a.toReference, canRead = _a.canRead;\n    return {\n        args: argsFromFieldSpecifier(fieldSpec),\n        field: fieldSpec.field || null,\n        fieldName: fieldName,\n        storeFieldName: storeFieldName,\n        variables: variables,\n        isReference: isReference,\n        toReference: toReference,\n        storage: storage,\n        cache: policies.cache,\n        canRead: canRead,\n        readField: function () {\n            return policies.readField(normalizeReadFieldOptions(arguments, objectOrReference, variables), context);\n        },\n        mergeObjects: makeMergeObjectsFunction(context.store),\n    };\n}\nexport function normalizeReadFieldOptions(readFieldArgs, objectOrReference, variables) {\n    var fieldNameOrOptions = readFieldArgs[0], from = readFieldArgs[1], argc = readFieldArgs.length;\n    var options;\n    if (typeof fieldNameOrOptions === \"string\") {\n        options = {\n            fieldName: fieldNameOrOptions,\n            // Default to objectOrReference only when no second argument was\n            // passed for the from parameter, not when undefined is explicitly\n            // passed as the second argument.\n            from: argc > 1 ? from : objectOrReference,\n        };\n    }\n    else {\n        options = __assign({}, fieldNameOrOptions);\n        // Default to objectOrReference only when fieldNameOrOptions.from is\n        // actually omitted, rather than just undefined.\n        if (!hasOwn.call(options, \"from\")) {\n            options.from = objectOrReference;\n        }\n    }\n    if (globalThis.__DEV__ !== false && options.from === void 0) {\n        globalThis.__DEV__ !== false && invariant.warn(7, stringifyForDisplay(Array.from(readFieldArgs)));\n    }\n    if (void 0 === options.variables) {\n        options.variables = variables;\n    }\n    return options;\n}\nfunction makeMergeObjectsFunction(store) {\n    return function mergeObjects(existing, incoming) {\n        if (isArray(existing) || isArray(incoming)) {\n            throw newInvariantError(8);\n        }\n        // These dynamic checks are necessary because the parameters of a\n        // custom merge function can easily have the any type, so the type\n        // system cannot always enforce the StoreObject | Reference parameter\n        // types of options.mergeObjects.\n        if (isNonNullObject(existing) && isNonNullObject(incoming)) {\n            var eType = store.getFieldValue(existing, \"__typename\");\n            var iType = store.getFieldValue(incoming, \"__typename\");\n            var typesDiffer = eType && iType && eType !== iType;\n            if (typesDiffer) {\n                return incoming;\n            }\n            if (isReference(existing) && storeValueIsStoreObject(incoming)) {\n                // Update the normalized EntityStore for the entity identified by\n                // existing.__ref, preferring/overwriting any fields contributed by the\n                // newer incoming StoreObject.\n                store.merge(existing.__ref, incoming);\n                return existing;\n            }\n            if (storeValueIsStoreObject(existing) && isReference(incoming)) {\n                // Update the normalized EntityStore for the entity identified by\n                // incoming.__ref, taking fields from the older existing object only if\n                // those fields are not already present in the newer StoreObject\n                // identified by incoming.__ref.\n                store.merge(existing, incoming.__ref);\n                return incoming;\n            }\n            if (storeValueIsStoreObject(existing) &&\n                storeValueIsStoreObject(incoming)) {\n                return __assign(__assign({}, existing), incoming);\n            }\n        }\n        return incoming;\n    };\n}\n//# sourceMappingURL=policies.js.map","import { __assign } from \"tslib\";\nimport { invariant, newInvariantError } from \"../../utilities/globals/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { Trie } from \"@wry/trie\";\nimport { Kind } from \"graphql\";\nimport { getFragmentFromSelection, getDefaultValues, getOperationDefinition, getTypenameFromResult, makeReference, isField, resultKeyNameFromField, isReference, shouldInclude, cloneDeep, addTypenameToDocument, isNonEmptyArray, argumentsObjectFromField, canonicalStringify, } from \"../../utilities/index.js\";\nimport { isArray, makeProcessedFieldsMerger, fieldNameFromStoreName, storeValueIsStoreObject, extractFragmentContext, } from \"./helpers.js\";\nimport { normalizeReadFieldOptions } from \"./policies.js\";\n// Since there are only four possible combinations of context.clientOnly and\n// context.deferred values, we should need at most four \"flavors\" of any given\n// WriteContext. To avoid creating multiple copies of the same context, we cache\n// the contexts in the context.flavors Map (shared by all flavors) according to\n// their clientOnly and deferred values (always in that order).\nfunction getContextFlavor(context, clientOnly, deferred) {\n    var key = \"\".concat(clientOnly).concat(deferred);\n    var flavored = context.flavors.get(key);\n    if (!flavored) {\n        context.flavors.set(key, (flavored =\n            context.clientOnly === clientOnly && context.deferred === deferred ?\n                context\n                : __assign(__assign({}, context), { clientOnly: clientOnly, deferred: deferred })));\n    }\n    return flavored;\n}\nvar StoreWriter = /** @class */ (function () {\n    function StoreWriter(cache, reader, fragments) {\n        this.cache = cache;\n        this.reader = reader;\n        this.fragments = fragments;\n    }\n    StoreWriter.prototype.writeToStore = function (store, _a) {\n        var _this = this;\n        var query = _a.query, result = _a.result, dataId = _a.dataId, variables = _a.variables, overwrite = _a.overwrite;\n        var operationDefinition = getOperationDefinition(query);\n        var merger = makeProcessedFieldsMerger();\n        variables = __assign(__assign({}, getDefaultValues(operationDefinition)), variables);\n        var context = __assign(__assign({ store: store, written: Object.create(null), merge: function (existing, incoming) {\n                return merger.merge(existing, incoming);\n            }, variables: variables, varString: canonicalStringify(variables) }, extractFragmentContext(query, this.fragments)), { overwrite: !!overwrite, incomingById: new Map(), clientOnly: false, deferred: false, flavors: new Map() });\n        var ref = this.processSelectionSet({\n            result: result || Object.create(null),\n            dataId: dataId,\n            selectionSet: operationDefinition.selectionSet,\n            mergeTree: { map: new Map() },\n            context: context,\n        });\n        if (!isReference(ref)) {\n            throw newInvariantError(11, result);\n        }\n        // So far, the store has not been modified, so now it's time to process\n        // context.incomingById and merge those incoming fields into context.store.\n        context.incomingById.forEach(function (_a, dataId) {\n            var storeObject = _a.storeObject, mergeTree = _a.mergeTree, fieldNodeSet = _a.fieldNodeSet;\n            var entityRef = makeReference(dataId);\n            if (mergeTree && mergeTree.map.size) {\n                var applied = _this.applyMerges(mergeTree, entityRef, storeObject, context);\n                if (isReference(applied)) {\n                    // Assume References returned by applyMerges have already been merged\n                    // into the store. See makeMergeObjectsFunction in policies.ts for an\n                    // example of how this can happen.\n                    return;\n                }\n                // Otherwise, applyMerges returned a StoreObject, whose fields we should\n                // merge into the store (see store.merge statement below).\n                storeObject = applied;\n            }\n            if (globalThis.__DEV__ !== false && !context.overwrite) {\n                var fieldsWithSelectionSets_1 = Object.create(null);\n                fieldNodeSet.forEach(function (field) {\n                    if (field.selectionSet) {\n                        fieldsWithSelectionSets_1[field.name.value] = true;\n                    }\n                });\n                var hasSelectionSet_1 = function (storeFieldName) {\n                    return fieldsWithSelectionSets_1[fieldNameFromStoreName(storeFieldName)] ===\n                        true;\n                };\n                var hasMergeFunction_1 = function (storeFieldName) {\n                    var childTree = mergeTree && mergeTree.map.get(storeFieldName);\n                    return Boolean(childTree && childTree.info && childTree.info.merge);\n                };\n                Object.keys(storeObject).forEach(function (storeFieldName) {\n                    // If a merge function was defined for this field, trust that it\n                    // did the right thing about (not) clobbering data. If the field\n                    // has no selection set, it's a scalar field, so it doesn't need\n                    // a merge function (even if it's an object, like JSON data).\n                    if (hasSelectionSet_1(storeFieldName) &&\n                        !hasMergeFunction_1(storeFieldName)) {\n                        warnAboutDataLoss(entityRef, storeObject, storeFieldName, context.store);\n                    }\n                });\n            }\n            store.merge(dataId, storeObject);\n        });\n        // Any IDs written explicitly to the cache will be retained as\n        // reachable root IDs for garbage collection purposes. Although this\n        // logic includes root IDs like ROOT_QUERY and ROOT_MUTATION, their\n        // retainment counts are effectively ignored because cache.gc() always\n        // includes them in its root ID set.\n        store.retain(ref.__ref);\n        return ref;\n    };\n    StoreWriter.prototype.processSelectionSet = function (_a) {\n        var _this = this;\n        var dataId = _a.dataId, result = _a.result, selectionSet = _a.selectionSet, context = _a.context, \n        // This object allows processSelectionSet to report useful information\n        // to its callers without explicitly returning that information.\n        mergeTree = _a.mergeTree;\n        var policies = this.cache.policies;\n        // This variable will be repeatedly updated using context.merge to\n        // accumulate all fields that need to be written into the store.\n        var incoming = Object.create(null);\n        // If typename was not passed in, infer it. Note that typename is\n        // always passed in for tricky-to-infer cases such as \"Query\" for\n        // ROOT_QUERY.\n        var typename = (dataId && policies.rootTypenamesById[dataId]) ||\n            getTypenameFromResult(result, selectionSet, context.fragmentMap) ||\n            (dataId && context.store.get(dataId, \"__typename\"));\n        if (\"string\" === typeof typename) {\n            incoming.__typename = typename;\n        }\n        // This readField function will be passed as context.readField in the\n        // KeyFieldsContext object created within policies.identify (called below).\n        // In addition to reading from the existing context.store (thanks to the\n        // policies.readField(options, context) line at the very bottom), this\n        // version of readField can read from Reference objects that are currently\n        // pending in context.incomingById, which is important whenever keyFields\n        // need to be extracted from a child object that processSelectionSet has\n        // turned into a Reference.\n        var readField = function () {\n            var options = normalizeReadFieldOptions(arguments, incoming, context.variables);\n            if (isReference(options.from)) {\n                var info = context.incomingById.get(options.from.__ref);\n                if (info) {\n                    var result_1 = policies.readField(__assign(__assign({}, options), { from: info.storeObject }), context);\n                    if (result_1 !== void 0) {\n                        return result_1;\n                    }\n                }\n            }\n            return policies.readField(options, context);\n        };\n        var fieldNodeSet = new Set();\n        this.flattenFields(selectionSet, result, \n        // This WriteContext will be the default context value for fields returned\n        // by the flattenFields method, but some fields may be assigned a modified\n        // context, depending on the presence of @client and other directives.\n        context, typename).forEach(function (context, field) {\n            var _a;\n            var resultFieldKey = resultKeyNameFromField(field);\n            var value = result[resultFieldKey];\n            fieldNodeSet.add(field);\n            if (value !== void 0) {\n                var storeFieldName = policies.getStoreFieldName({\n                    typename: typename,\n                    fieldName: field.name.value,\n                    field: field,\n                    variables: context.variables,\n                });\n                var childTree = getChildMergeTree(mergeTree, storeFieldName);\n                var incomingValue = _this.processFieldValue(value, field, \n                // Reset context.clientOnly and context.deferred to their default\n                // values before processing nested selection sets.\n                field.selectionSet ?\n                    getContextFlavor(context, false, false)\n                    : context, childTree);\n                // To determine if this field holds a child object with a merge function\n                // defined in its type policy (see PR #7070), we need to figure out the\n                // child object's __typename.\n                var childTypename = void 0;\n                // The field's value can be an object that has a __typename only if the\n                // field has a selection set. Otherwise incomingValue is scalar.\n                if (field.selectionSet &&\n                    (isReference(incomingValue) || storeValueIsStoreObject(incomingValue))) {\n                    childTypename = readField(\"__typename\", incomingValue);\n                }\n                var merge = policies.getMergeFunction(typename, field.name.value, childTypename);\n                if (merge) {\n                    childTree.info = {\n                        // TODO Check compatibility against any existing childTree.field?\n                        field: field,\n                        typename: typename,\n                        merge: merge,\n                    };\n                }\n                else {\n                    maybeRecycleChildMergeTree(mergeTree, storeFieldName);\n                }\n                incoming = context.merge(incoming, (_a = {},\n                    _a[storeFieldName] = incomingValue,\n                    _a));\n            }\n            else if (globalThis.__DEV__ !== false &&\n                !context.clientOnly &&\n                !context.deferred &&\n                !addTypenameToDocument.added(field) &&\n                // If the field has a read function, it may be a synthetic field or\n                // provide a default value, so its absence from the written data should\n                // not be cause for alarm.\n                !policies.getReadFunction(typename, field.name.value)) {\n                globalThis.__DEV__ !== false && invariant.error(12, resultKeyNameFromField(field), result);\n            }\n        });\n        // Identify the result object, even if dataId was already provided,\n        // since we always need keyObject below.\n        try {\n            var _b = policies.identify(result, {\n                typename: typename,\n                selectionSet: selectionSet,\n                fragmentMap: context.fragmentMap,\n                storeObject: incoming,\n                readField: readField,\n            }), id = _b[0], keyObject = _b[1];\n            // If dataId was not provided, fall back to the id just generated by\n            // policies.identify.\n            dataId = dataId || id;\n            // Write any key fields that were used during identification, even if\n            // they were not mentioned in the original query.\n            if (keyObject) {\n                // TODO Reverse the order of the arguments?\n                incoming = context.merge(incoming, keyObject);\n            }\n        }\n        catch (e) {\n            // If dataId was provided, tolerate failure of policies.identify.\n            if (!dataId)\n                throw e;\n        }\n        if (\"string\" === typeof dataId) {\n            var dataRef = makeReference(dataId);\n            // Avoid processing the same entity object using the same selection\n            // set more than once. We use an array instead of a Set since most\n            // entity IDs will be written using only one selection set, so the\n            // size of this array is likely to be very small, meaning indexOf is\n            // likely to be faster than Set.prototype.has.\n            var sets = context.written[dataId] || (context.written[dataId] = []);\n            if (sets.indexOf(selectionSet) >= 0)\n                return dataRef;\n            sets.push(selectionSet);\n            // If we're about to write a result object into the store, but we\n            // happen to know that the exact same (===) result object would be\n            // returned if we were to reread the result with the same inputs,\n            // then we can skip the rest of the processSelectionSet work for\n            // this object, and immediately return a Reference to it.\n            if (this.reader &&\n                this.reader.isFresh(result, dataRef, selectionSet, context)) {\n                return dataRef;\n            }\n            var previous_1 = context.incomingById.get(dataId);\n            if (previous_1) {\n                previous_1.storeObject = context.merge(previous_1.storeObject, incoming);\n                previous_1.mergeTree = mergeMergeTrees(previous_1.mergeTree, mergeTree);\n                fieldNodeSet.forEach(function (field) { return previous_1.fieldNodeSet.add(field); });\n            }\n            else {\n                context.incomingById.set(dataId, {\n                    storeObject: incoming,\n                    // Save a reference to mergeTree only if it is not empty, because\n                    // empty MergeTrees may be recycled by maybeRecycleChildMergeTree and\n                    // reused for entirely different parts of the result tree.\n                    mergeTree: mergeTreeIsEmpty(mergeTree) ? void 0 : mergeTree,\n                    fieldNodeSet: fieldNodeSet,\n                });\n            }\n            return dataRef;\n        }\n        return incoming;\n    };\n    StoreWriter.prototype.processFieldValue = function (value, field, context, mergeTree) {\n        var _this = this;\n        if (!field.selectionSet || value === null) {\n            // In development, we need to clone scalar values so that they can be\n            // safely frozen with maybeDeepFreeze in readFromStore.ts. In production,\n            // it's cheaper to store the scalar values directly in the cache.\n            return globalThis.__DEV__ !== false ? cloneDeep(value) : value;\n        }\n        if (isArray(value)) {\n            return value.map(function (item, i) {\n                var value = _this.processFieldValue(item, field, context, getChildMergeTree(mergeTree, i));\n                maybeRecycleChildMergeTree(mergeTree, i);\n                return value;\n            });\n        }\n        return this.processSelectionSet({\n            result: value,\n            selectionSet: field.selectionSet,\n            context: context,\n            mergeTree: mergeTree,\n        });\n    };\n    // Implements https://spec.graphql.org/draft/#sec-Field-Collection, but with\n    // some additions for tracking @client and @defer directives.\n    StoreWriter.prototype.flattenFields = function (selectionSet, result, context, typename) {\n        if (typename === void 0) { typename = getTypenameFromResult(result, selectionSet, context.fragmentMap); }\n        var fieldMap = new Map();\n        var policies = this.cache.policies;\n        var limitingTrie = new Trie(false); // No need for WeakMap, since limitingTrie does not escape.\n        (function flatten(selectionSet, inheritedContext) {\n            var visitedNode = limitingTrie.lookup(selectionSet, \n            // Because we take inheritedClientOnly and inheritedDeferred into\n            // consideration here (in addition to selectionSet), it's possible for\n            // the same selection set to be flattened more than once, if it appears\n            // in the query with different @client and/or @directive configurations.\n            inheritedContext.clientOnly, inheritedContext.deferred);\n            if (visitedNode.visited)\n                return;\n            visitedNode.visited = true;\n            selectionSet.selections.forEach(function (selection) {\n                if (!shouldInclude(selection, context.variables))\n                    return;\n                var clientOnly = inheritedContext.clientOnly, deferred = inheritedContext.deferred;\n                if (\n                // Since the presence of @client or @defer on this field can only\n                // cause clientOnly or deferred to become true, we can skip the\n                // forEach loop if both clientOnly and deferred are already true.\n                !(clientOnly && deferred) &&\n                    isNonEmptyArray(selection.directives)) {\n                    selection.directives.forEach(function (dir) {\n                        var name = dir.name.value;\n                        if (name === \"client\")\n                            clientOnly = true;\n                        if (name === \"defer\") {\n                            var args = argumentsObjectFromField(dir, context.variables);\n                            // The @defer directive takes an optional args.if boolean\n                            // argument, similar to @include(if: boolean). Note that\n                            // @defer(if: false) does not make context.deferred false, but\n                            // instead behaves as if there was no @defer directive.\n                            if (!args || args.if !== false) {\n                                deferred = true;\n                            }\n                            // TODO In the future, we may want to record args.label using\n                            // context.deferred, if a label is specified.\n                        }\n                    });\n                }\n                if (isField(selection)) {\n                    var existing = fieldMap.get(selection);\n                    if (existing) {\n                        // If this field has been visited along another recursive path\n                        // before, the final context should have clientOnly or deferred set\n                        // to true only if *all* paths have the directive (hence the &&).\n                        clientOnly = clientOnly && existing.clientOnly;\n                        deferred = deferred && existing.deferred;\n                    }\n                    fieldMap.set(selection, getContextFlavor(context, clientOnly, deferred));\n                }\n                else {\n                    var fragment = getFragmentFromSelection(selection, context.lookupFragment);\n                    if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n                        throw newInvariantError(13, selection.name.value);\n                    }\n                    if (fragment &&\n                        policies.fragmentMatches(fragment, typename, result, context.variables)) {\n                        flatten(fragment.selectionSet, getContextFlavor(context, clientOnly, deferred));\n                    }\n                }\n            });\n        })(selectionSet, context);\n        return fieldMap;\n    };\n    StoreWriter.prototype.applyMerges = function (mergeTree, existing, incoming, context, getStorageArgs) {\n        var _a;\n        var _this = this;\n        if (mergeTree.map.size && !isReference(incoming)) {\n            var e_1 = \n            // Items in the same position in different arrays are not\n            // necessarily related to each other, so when incoming is an array\n            // we process its elements as if there was no existing data.\n            (!isArray(incoming) &&\n                // Likewise, existing must be either a Reference or a StoreObject\n                // in order for its fields to be safe to merge with the fields of\n                // the incoming object.\n                (isReference(existing) || storeValueIsStoreObject(existing))) ?\n                existing\n                : void 0;\n            // This narrowing is implied by mergeTree.map.size > 0 and\n            // !isReference(incoming), though TypeScript understandably cannot\n            // hope to infer this type.\n            var i_1 = incoming;\n            // The options.storage objects provided to read and merge functions\n            // are derived from the identity of the parent object plus a\n            // sequence of storeFieldName strings/numbers identifying the nested\n            // field name path of each field value to be merged.\n            if (e_1 && !getStorageArgs) {\n                getStorageArgs = [isReference(e_1) ? e_1.__ref : e_1];\n            }\n            // It's possible that applying merge functions to this subtree will\n            // not change the incoming data, so this variable tracks the fields\n            // that did change, so we can create a new incoming object when (and\n            // only when) at least one incoming field has changed. We use a Map\n            // to preserve the type of numeric keys.\n            var changedFields_1;\n            var getValue_1 = function (from, name) {\n                return (isArray(from) ?\n                    typeof name === \"number\" ?\n                        from[name]\n                        : void 0\n                    : context.store.getFieldValue(from, String(name)));\n            };\n            mergeTree.map.forEach(function (childTree, storeFieldName) {\n                var eVal = getValue_1(e_1, storeFieldName);\n                var iVal = getValue_1(i_1, storeFieldName);\n                // If we have no incoming data, leave any existing data untouched.\n                if (void 0 === iVal)\n                    return;\n                if (getStorageArgs) {\n                    getStorageArgs.push(storeFieldName);\n                }\n                var aVal = _this.applyMerges(childTree, eVal, iVal, context, getStorageArgs);\n                if (aVal !== iVal) {\n                    changedFields_1 = changedFields_1 || new Map();\n                    changedFields_1.set(storeFieldName, aVal);\n                }\n                if (getStorageArgs) {\n                    invariant(getStorageArgs.pop() === storeFieldName);\n                }\n            });\n            if (changedFields_1) {\n                // Shallow clone i so we can add changed fields to it.\n                incoming = (isArray(i_1) ? i_1.slice(0) : __assign({}, i_1));\n                changedFields_1.forEach(function (value, name) {\n                    incoming[name] = value;\n                });\n            }\n        }\n        if (mergeTree.info) {\n            return this.cache.policies.runMergeFunction(existing, incoming, mergeTree.info, context, getStorageArgs && (_a = context.store).getStorage.apply(_a, getStorageArgs));\n        }\n        return incoming;\n    };\n    return StoreWriter;\n}());\nexport { StoreWriter };\nvar emptyMergeTreePool = [];\nfunction getChildMergeTree(_a, name) {\n    var map = _a.map;\n    if (!map.has(name)) {\n        map.set(name, emptyMergeTreePool.pop() || { map: new Map() });\n    }\n    return map.get(name);\n}\nfunction mergeMergeTrees(left, right) {\n    if (left === right || !right || mergeTreeIsEmpty(right))\n        return left;\n    if (!left || mergeTreeIsEmpty(left))\n        return right;\n    var info = left.info && right.info ? __assign(__assign({}, left.info), right.info) : left.info || right.info;\n    var needToMergeMaps = left.map.size && right.map.size;\n    var map = needToMergeMaps ? new Map()\n        : left.map.size ? left.map\n            : right.map;\n    var merged = { info: info, map: map };\n    if (needToMergeMaps) {\n        var remainingRightKeys_1 = new Set(right.map.keys());\n        left.map.forEach(function (leftTree, key) {\n            merged.map.set(key, mergeMergeTrees(leftTree, right.map.get(key)));\n            remainingRightKeys_1.delete(key);\n        });\n        remainingRightKeys_1.forEach(function (key) {\n            merged.map.set(key, mergeMergeTrees(right.map.get(key), left.map.get(key)));\n        });\n    }\n    return merged;\n}\nfunction mergeTreeIsEmpty(tree) {\n    return !tree || !(tree.info || tree.map.size);\n}\nfunction maybeRecycleChildMergeTree(_a, name) {\n    var map = _a.map;\n    var childTree = map.get(name);\n    if (childTree && mergeTreeIsEmpty(childTree)) {\n        emptyMergeTreePool.push(childTree);\n        map.delete(name);\n    }\n}\nvar warnings = new Set();\n// Note that this function is unused in production, and thus should be\n// pruned by any well-configured minifier.\nfunction warnAboutDataLoss(existingRef, incomingObj, storeFieldName, store) {\n    var getChild = function (objOrRef) {\n        var child = store.getFieldValue(objOrRef, storeFieldName);\n        return typeof child === \"object\" && child;\n    };\n    var existing = getChild(existingRef);\n    if (!existing)\n        return;\n    var incoming = getChild(incomingObj);\n    if (!incoming)\n        return;\n    // It's always safe to replace a reference, since it refers to data\n    // safely stored elsewhere.\n    if (isReference(existing))\n        return;\n    // If the values are structurally equivalent, we do not need to worry\n    // about incoming replacing existing.\n    if (equal(existing, incoming))\n        return;\n    // If we're replacing every key of the existing object, then the\n    // existing data would be overwritten even if the objects were\n    // normalized, so warning would not be helpful here.\n    if (Object.keys(existing).every(function (key) { return store.getFieldValue(incoming, key) !== void 0; })) {\n        return;\n    }\n    var parentType = store.getFieldValue(existingRef, \"__typename\") ||\n        store.getFieldValue(incomingObj, \"__typename\");\n    var fieldName = fieldNameFromStoreName(storeFieldName);\n    var typeDotName = \"\".concat(parentType, \".\").concat(fieldName);\n    // Avoid warning more than once for the same type and field name.\n    if (warnings.has(typeDotName))\n        return;\n    warnings.add(typeDotName);\n    var childTypenames = [];\n    // Arrays do not have __typename fields, and always need a custom merge\n    // function, even if their elements are normalized entities.\n    if (!isArray(existing) && !isArray(incoming)) {\n        [existing, incoming].forEach(function (child) {\n            var typename = store.getFieldValue(child, \"__typename\");\n            if (typeof typename === \"string\" && !childTypenames.includes(typename)) {\n                childTypenames.push(typename);\n            }\n        });\n    }\n    globalThis.__DEV__ !== false && invariant.warn(14, fieldName, parentType, childTypenames.length ?\n        \"either ensure all objects of type \" +\n            childTypenames.join(\" and \") +\n            \" have an ID or a custom merge function, or \"\n        : \"\", typeDotName, __assign({}, existing), __assign({}, incoming));\n}\n//# sourceMappingURL=writeToStore.js.map","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\n// Make builtins like Map and Set safe to use with non-extensible objects.\nimport \"./fixPolyfills.js\";\nimport { wrap } from \"optimism\";\nimport { equal } from \"@wry/equality\";\nimport { ApolloCache } from \"../core/cache.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { addTypenameToDocument, isReference, DocumentTransform, canonicalStringify, print, cacheSizes, } from \"../../utilities/index.js\";\nimport { StoreReader } from \"./readFromStore.js\";\nimport { StoreWriter } from \"./writeToStore.js\";\nimport { EntityStore, supportsResultCaching } from \"./entityStore.js\";\nimport { makeVar, forgetCache, recallCache } from \"./reactiveVars.js\";\nimport { Policies } from \"./policies.js\";\nimport { hasOwn, normalizeConfig, shouldCanonizeResults } from \"./helpers.js\";\nimport { getInMemoryCacheMemoryInternals } from \"../../utilities/caching/getMemoryInternals.js\";\nvar InMemoryCache = /** @class */ (function (_super) {\n    __extends(InMemoryCache, _super);\n    function InMemoryCache(config) {\n        if (config === void 0) { config = {}; }\n        var _this = _super.call(this) || this;\n        _this.watches = new Set();\n        _this.addTypenameTransform = new DocumentTransform(addTypenameToDocument);\n        // Override the default value, since InMemoryCache result objects are frozen\n        // in development and expected to remain logically immutable in production.\n        _this.assumeImmutableResults = true;\n        _this.makeVar = makeVar;\n        _this.txCount = 0;\n        _this.config = normalizeConfig(config);\n        _this.addTypename = !!_this.config.addTypename;\n        _this.policies = new Policies({\n            cache: _this,\n            dataIdFromObject: _this.config.dataIdFromObject,\n            possibleTypes: _this.config.possibleTypes,\n            typePolicies: _this.config.typePolicies,\n        });\n        _this.init();\n        return _this;\n    }\n    InMemoryCache.prototype.init = function () {\n        // Passing { resultCaching: false } in the InMemoryCache constructor options\n        // will completely disable dependency tracking, which will improve memory\n        // usage but worsen the performance of repeated reads.\n        var rootStore = (this.data = new EntityStore.Root({\n            policies: this.policies,\n            resultCaching: this.config.resultCaching,\n        }));\n        // When no optimistic writes are currently active, cache.optimisticData ===\n        // cache.data, so there are no additional layers on top of the actual data.\n        // When an optimistic update happens, this.optimisticData will become a\n        // linked list of EntityStore Layer objects that terminates with the\n        // original this.data cache object.\n        this.optimisticData = rootStore.stump;\n        this.resetResultCache();\n    };\n    InMemoryCache.prototype.resetResultCache = function (resetResultIdentities) {\n        var _this = this;\n        var previousReader = this.storeReader;\n        var fragments = this.config.fragments;\n        // The StoreWriter is mostly stateless and so doesn't really need to be\n        // reset, but it does need to have its writer.storeReader reference updated,\n        // so it's simpler to update this.storeWriter as well.\n        this.storeWriter = new StoreWriter(this, (this.storeReader = new StoreReader({\n            cache: this,\n            addTypename: this.addTypename,\n            resultCacheMaxSize: this.config.resultCacheMaxSize,\n            canonizeResults: shouldCanonizeResults(this.config),\n            canon: resetResultIdentities ? void 0 : (previousReader && previousReader.canon),\n            fragments: fragments,\n        })), fragments);\n        this.maybeBroadcastWatch = wrap(function (c, options) {\n            return _this.broadcastWatch(c, options);\n        }, {\n            max: this.config.resultCacheMaxSize ||\n                cacheSizes[\"inMemoryCache.maybeBroadcastWatch\"] ||\n                5000 /* defaultCacheSizes[\"inMemoryCache.maybeBroadcastWatch\"] */,\n            makeCacheKey: function (c) {\n                // Return a cache key (thus enabling result caching) only if we're\n                // currently using a data store that can track cache dependencies.\n                var store = c.optimistic ? _this.optimisticData : _this.data;\n                if (supportsResultCaching(store)) {\n                    var optimistic = c.optimistic, id = c.id, variables = c.variables;\n                    return store.makeCacheKey(c.query, \n                    // Different watches can have the same query, optimistic\n                    // status, rootId, and variables, but if their callbacks are\n                    // different, the (identical) result needs to be delivered to\n                    // each distinct callback. The easiest way to achieve that\n                    // separation is to include c.callback in the cache key for\n                    // maybeBroadcastWatch calls. See issue #5733.\n                    c.callback, canonicalStringify({ optimistic: optimistic, id: id, variables: variables }));\n                }\n            },\n        });\n        // Since we have thrown away all the cached functions that depend on the\n        // CacheGroup dependencies maintained by EntityStore, we should also reset\n        // all CacheGroup dependency information.\n        new Set([this.data.group, this.optimisticData.group]).forEach(function (group) {\n            return group.resetCaching();\n        });\n    };\n    InMemoryCache.prototype.restore = function (data) {\n        this.init();\n        // Since calling this.init() discards/replaces the entire StoreReader, along\n        // with the result caches it maintains, this.data.replace(data) won't have\n        // to bother deleting the old data.\n        if (data)\n            this.data.replace(data);\n        return this;\n    };\n    InMemoryCache.prototype.extract = function (optimistic) {\n        if (optimistic === void 0) { optimistic = false; }\n        return (optimistic ? this.optimisticData : this.data).extract();\n    };\n    InMemoryCache.prototype.read = function (options) {\n        var \n        // Since read returns data or null, without any additional metadata\n        // about whether/where there might have been missing fields, the\n        // default behavior cannot be returnPartialData = true (like it is\n        // for the diff method), since defaulting to true would violate the\n        // integrity of the T in the return type. However, partial data may\n        // be useful in some cases, so returnPartialData:true may be\n        // specified explicitly.\n        _a = options.returnPartialData, \n        // Since read returns data or null, without any additional metadata\n        // about whether/where there might have been missing fields, the\n        // default behavior cannot be returnPartialData = true (like it is\n        // for the diff method), since defaulting to true would violate the\n        // integrity of the T in the return type. However, partial data may\n        // be useful in some cases, so returnPartialData:true may be\n        // specified explicitly.\n        returnPartialData = _a === void 0 ? false : _a;\n        try {\n            return (this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), { store: options.optimistic ? this.optimisticData : this.data, config: this.config, returnPartialData: returnPartialData })).result || null);\n        }\n        catch (e) {\n            if (e instanceof MissingFieldError) {\n                // Swallow MissingFieldError and return null, so callers do not need to\n                // worry about catching \"normal\" exceptions resulting from incomplete\n                // cache data. Unexpected errors will be re-thrown. If you need more\n                // information about which fields were missing, use cache.diff instead,\n                // and examine diffResult.missing.\n                return null;\n            }\n            throw e;\n        }\n    };\n    InMemoryCache.prototype.write = function (options) {\n        try {\n            ++this.txCount;\n            return this.storeWriter.writeToStore(this.data, options);\n        }\n        finally {\n            if (!--this.txCount && options.broadcast !== false) {\n                this.broadcastWatches();\n            }\n        }\n    };\n    InMemoryCache.prototype.modify = function (options) {\n        if (hasOwn.call(options, \"id\") && !options.id) {\n            // To my knowledge, TypeScript does not currently provide a way to\n            // enforce that an optional property?:type must *not* be undefined\n            // when present. That ability would be useful here, because we want\n            // options.id to default to ROOT_QUERY only when no options.id was\n            // provided. If the caller attempts to pass options.id with a\n            // falsy/undefined value (perhaps because cache.identify failed), we\n            // should not assume the goal was to modify the ROOT_QUERY object.\n            // We could throw, but it seems natural to return false to indicate\n            // that nothing was modified.\n            return false;\n        }\n        var store = ((options.optimistic) // Defaults to false.\n        ) ?\n            this.optimisticData\n            : this.data;\n        try {\n            ++this.txCount;\n            return store.modify(options.id || \"ROOT_QUERY\", options.fields);\n        }\n        finally {\n            if (!--this.txCount && options.broadcast !== false) {\n                this.broadcastWatches();\n            }\n        }\n    };\n    InMemoryCache.prototype.diff = function (options) {\n        return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), { store: options.optimistic ? this.optimisticData : this.data, rootId: options.id || \"ROOT_QUERY\", config: this.config }));\n    };\n    InMemoryCache.prototype.watch = function (watch) {\n        var _this = this;\n        if (!this.watches.size) {\n            // In case we previously called forgetCache(this) because\n            // this.watches became empty (see below), reattach this cache to any\n            // reactive variables on which it previously depended. It might seem\n            // paradoxical that we're able to recall something we supposedly\n            // forgot, but the point of calling forgetCache(this) is to silence\n            // useless broadcasts while this.watches is empty, and to allow the\n            // cache to be garbage collected. If, however, we manage to call\n            // recallCache(this) here, this cache object must not have been\n            // garbage collected yet, and should resume receiving updates from\n            // reactive variables, now that it has a watcher to notify.\n            recallCache(this);\n        }\n        this.watches.add(watch);\n        if (watch.immediate) {\n            this.maybeBroadcastWatch(watch);\n        }\n        return function () {\n            // Once we remove the last watch from this.watches, cache.broadcastWatches\n            // no longer does anything, so we preemptively tell the reactive variable\n            // system to exclude this cache from future broadcasts.\n            if (_this.watches.delete(watch) && !_this.watches.size) {\n                forgetCache(_this);\n            }\n            // Remove this watch from the LRU cache managed by the\n            // maybeBroadcastWatch OptimisticWrapperFunction, to prevent memory\n            // leaks involving the closure of watch.callback.\n            _this.maybeBroadcastWatch.forget(watch);\n        };\n    };\n    InMemoryCache.prototype.gc = function (options) {\n        var _a;\n        canonicalStringify.reset();\n        print.reset();\n        this.addTypenameTransform.resetCache();\n        (_a = this.config.fragments) === null || _a === void 0 ? void 0 : _a.resetCaches();\n        var ids = this.optimisticData.gc();\n        if (options && !this.txCount) {\n            if (options.resetResultCache) {\n                this.resetResultCache(options.resetResultIdentities);\n            }\n            else if (options.resetResultIdentities) {\n                this.storeReader.resetCanon();\n            }\n        }\n        return ids;\n    };\n    // Call this method to ensure the given root ID remains in the cache after\n    // garbage collection, along with its transitive child entities. Note that\n    // the cache automatically retains all directly written entities. By default,\n    // the retainment persists after optimistic updates are removed. Pass true\n    // for the optimistic argument if you would prefer for the retainment to be\n    // discarded when the top-most optimistic layer is removed. Returns the\n    // resulting (non-negative) retainment count.\n    InMemoryCache.prototype.retain = function (rootId, optimistic) {\n        return (optimistic ? this.optimisticData : this.data).retain(rootId);\n    };\n    // Call this method to undo the effect of the retain method, above. Once the\n    // retainment count falls to zero, the given ID will no longer be preserved\n    // during garbage collection, though it may still be preserved by other safe\n    // entities that refer to it. Returns the resulting (non-negative) retainment\n    // count, in case that's useful.\n    InMemoryCache.prototype.release = function (rootId, optimistic) {\n        return (optimistic ? this.optimisticData : this.data).release(rootId);\n    };\n    // Returns the canonical ID for a given StoreObject, obeying typePolicies\n    // and keyFields (and dataIdFromObject, if you still use that). At minimum,\n    // the object must contain a __typename and any primary key fields required\n    // to identify entities of that type. If you pass a query result object, be\n    // sure that none of the primary key fields have been renamed by aliasing.\n    // If you pass a Reference object, its __ref ID string will be returned.\n    InMemoryCache.prototype.identify = function (object) {\n        if (isReference(object))\n            return object.__ref;\n        try {\n            return this.policies.identify(object)[0];\n        }\n        catch (e) {\n            globalThis.__DEV__ !== false && invariant.warn(e);\n        }\n    };\n    InMemoryCache.prototype.evict = function (options) {\n        if (!options.id) {\n            if (hasOwn.call(options, \"id\")) {\n                // See comment in modify method about why we return false when\n                // options.id exists but is falsy/undefined.\n                return false;\n            }\n            options = __assign(__assign({}, options), { id: \"ROOT_QUERY\" });\n        }\n        try {\n            // It's unlikely that the eviction will end up invoking any other\n            // cache update operations while it's running, but {in,de}crementing\n            // this.txCount still seems like a good idea, for uniformity with\n            // the other update methods.\n            ++this.txCount;\n            // Pass this.data as a limit on the depth of the eviction, so evictions\n            // during optimistic updates (when this.data is temporarily set equal to\n            // this.optimisticData) do not escape their optimistic Layer.\n            return this.optimisticData.evict(options, this.data);\n        }\n        finally {\n            if (!--this.txCount && options.broadcast !== false) {\n                this.broadcastWatches();\n            }\n        }\n    };\n    InMemoryCache.prototype.reset = function (options) {\n        var _this = this;\n        this.init();\n        canonicalStringify.reset();\n        if (options && options.discardWatches) {\n            // Similar to what happens in the unsubscribe function returned by\n            // cache.watch, applied to all current watches.\n            this.watches.forEach(function (watch) { return _this.maybeBroadcastWatch.forget(watch); });\n            this.watches.clear();\n            forgetCache(this);\n        }\n        else {\n            // Calling this.init() above unblocks all maybeBroadcastWatch caching, so\n            // this.broadcastWatches() triggers a broadcast to every current watcher\n            // (letting them know their data is now missing). This default behavior is\n            // convenient because it means the watches do not have to be manually\n            // reestablished after resetting the cache. To prevent this broadcast and\n            // cancel all watches, pass true for options.discardWatches.\n            this.broadcastWatches();\n        }\n        return Promise.resolve();\n    };\n    InMemoryCache.prototype.removeOptimistic = function (idToRemove) {\n        var newOptimisticData = this.optimisticData.removeLayer(idToRemove);\n        if (newOptimisticData !== this.optimisticData) {\n            this.optimisticData = newOptimisticData;\n            this.broadcastWatches();\n        }\n    };\n    InMemoryCache.prototype.batch = function (options) {\n        var _this = this;\n        var update = options.update, _a = options.optimistic, optimistic = _a === void 0 ? true : _a, removeOptimistic = options.removeOptimistic, onWatchUpdated = options.onWatchUpdated;\n        var updateResult;\n        var perform = function (layer) {\n            var _a = _this, data = _a.data, optimisticData = _a.optimisticData;\n            ++_this.txCount;\n            if (layer) {\n                _this.data = _this.optimisticData = layer;\n            }\n            try {\n                return (updateResult = update(_this));\n            }\n            finally {\n                --_this.txCount;\n                _this.data = data;\n                _this.optimisticData = optimisticData;\n            }\n        };\n        var alreadyDirty = new Set();\n        if (onWatchUpdated && !this.txCount) {\n            // If an options.onWatchUpdated callback is provided, we want to call it\n            // with only the Cache.WatchOptions objects affected by options.update,\n            // but there might be dirty watchers already waiting to be broadcast that\n            // have nothing to do with the update. To prevent including those watchers\n            // in the post-update broadcast, we perform this initial broadcast to\n            // collect the dirty watchers, so we can re-dirty them later, after the\n            // post-update broadcast, allowing them to receive their pending\n            // broadcasts the next time broadcastWatches is called, just as they would\n            // if we never called cache.batch.\n            this.broadcastWatches(__assign(__assign({}, options), { onWatchUpdated: function (watch) {\n                    alreadyDirty.add(watch);\n                    return false;\n                } }));\n        }\n        if (typeof optimistic === \"string\") {\n            // Note that there can be multiple layers with the same optimistic ID.\n            // When removeOptimistic(id) is called for that id, all matching layers\n            // will be removed, and the remaining layers will be reapplied.\n            this.optimisticData = this.optimisticData.addLayer(optimistic, perform);\n        }\n        else if (optimistic === false) {\n            // Ensure both this.data and this.optimisticData refer to the root\n            // (non-optimistic) layer of the cache during the update. Note that\n            // this.data could be a Layer if we are currently executing an optimistic\n            // update function, but otherwise will always be an EntityStore.Root\n            // instance.\n            perform(this.data);\n        }\n        else {\n            // Otherwise, leave this.data and this.optimisticData unchanged and run\n            // the update with broadcast batching.\n            perform();\n        }\n        if (typeof removeOptimistic === \"string\") {\n            this.optimisticData = this.optimisticData.removeLayer(removeOptimistic);\n        }\n        // Note: if this.txCount > 0, then alreadyDirty.size === 0, so this code\n        // takes the else branch and calls this.broadcastWatches(options), which\n        // does nothing when this.txCount > 0.\n        if (onWatchUpdated && alreadyDirty.size) {\n            this.broadcastWatches(__assign(__assign({}, options), { onWatchUpdated: function (watch, diff) {\n                    var result = onWatchUpdated.call(this, watch, diff);\n                    if (result !== false) {\n                        // Since onWatchUpdated did not return false, this diff is\n                        // about to be broadcast to watch.callback, so we don't need\n                        // to re-dirty it with the other alreadyDirty watches below.\n                        alreadyDirty.delete(watch);\n                    }\n                    return result;\n                } }));\n            // Silently re-dirty any watches that were already dirty before the update\n            // was performed, and were not broadcast just now.\n            if (alreadyDirty.size) {\n                alreadyDirty.forEach(function (watch) { return _this.maybeBroadcastWatch.dirty(watch); });\n            }\n        }\n        else {\n            // If alreadyDirty is empty or we don't have an onWatchUpdated\n            // function, we don't need to go to the trouble of wrapping\n            // options.onWatchUpdated.\n            this.broadcastWatches(options);\n        }\n        return updateResult;\n    };\n    InMemoryCache.prototype.performTransaction = function (update, optimisticId) {\n        return this.batch({\n            update: update,\n            optimistic: optimisticId || optimisticId !== null,\n        });\n    };\n    InMemoryCache.prototype.transformDocument = function (document) {\n        return this.addTypenameToDocument(this.addFragmentsToDocument(document));\n    };\n    InMemoryCache.prototype.broadcastWatches = function (options) {\n        var _this = this;\n        if (!this.txCount) {\n            this.watches.forEach(function (c) { return _this.maybeBroadcastWatch(c, options); });\n        }\n    };\n    InMemoryCache.prototype.addFragmentsToDocument = function (document) {\n        var fragments = this.config.fragments;\n        return fragments ? fragments.transform(document) : document;\n    };\n    InMemoryCache.prototype.addTypenameToDocument = function (document) {\n        if (this.addTypename) {\n            return this.addTypenameTransform.transformDocument(document);\n        }\n        return document;\n    };\n    // This method is wrapped by maybeBroadcastWatch, which is called by\n    // broadcastWatches, so that we compute and broadcast results only when\n    // the data that would be broadcast might have changed. It would be\n    // simpler to check for changes after recomputing a result but before\n    // broadcasting it, but this wrapping approach allows us to skip both\n    // the recomputation and the broadcast, in most cases.\n    InMemoryCache.prototype.broadcastWatch = function (c, options) {\n        var lastDiff = c.lastDiff;\n        // Both WatchOptions and DiffOptions extend ReadOptions, and DiffOptions\n        // currently requires no additional properties, so we can use c (a\n        // WatchOptions object) as DiffOptions, without having to allocate a new\n        // object, and without having to enumerate the relevant properties (query,\n        // variables, etc.) explicitly. There will be some additional properties\n        // (lastDiff, callback, etc.), but cache.diff ignores them.\n        var diff = this.diff(c);\n        if (options) {\n            if (c.optimistic && typeof options.optimistic === \"string\") {\n                diff.fromOptimisticTransaction = true;\n            }\n            if (options.onWatchUpdated &&\n                options.onWatchUpdated.call(this, c, diff, lastDiff) === false) {\n                // Returning false from the onWatchUpdated callback will prevent\n                // calling c.callback(diff) for this watcher.\n                return;\n            }\n        }\n        if (!lastDiff || !equal(lastDiff.result, diff.result)) {\n            c.callback((c.lastDiff = diff), lastDiff);\n        }\n    };\n    return InMemoryCache;\n}(ApolloCache));\nexport { InMemoryCache };\nif (globalThis.__DEV__ !== false) {\n    InMemoryCache.prototype.getMemoryInternals = getInMemoryCacheMemoryInternals;\n}\n//# sourceMappingURL=inMemoryCache.js.map","import { dep, Slot } from \"optimism\";\n// Contextual Slot that acquires its value when custom read functions are\n// called in Policies#readField.\nexport var cacheSlot = new Slot();\nvar cacheInfoMap = new WeakMap();\nfunction getCacheInfo(cache) {\n    var info = cacheInfoMap.get(cache);\n    if (!info) {\n        cacheInfoMap.set(cache, (info = {\n            vars: new Set(),\n            dep: dep(),\n        }));\n    }\n    return info;\n}\nexport function forgetCache(cache) {\n    getCacheInfo(cache).vars.forEach(function (rv) { return rv.forgetCache(cache); });\n}\n// Calling forgetCache(cache) serves to silence broadcasts and allows the\n// cache to be garbage collected. However, the varsByCache WeakMap\n// preserves the set of reactive variables that were previously associated\n// with this cache, which makes it possible to \"recall\" the cache at a\n// later time, by reattaching it to those variables. If the cache has been\n// garbage collected in the meantime, because it is no longer reachable,\n// you won't be able to call recallCache(cache), and the cache will\n// automatically disappear from the varsByCache WeakMap.\nexport function recallCache(cache) {\n    getCacheInfo(cache).vars.forEach(function (rv) { return rv.attachCache(cache); });\n}\nexport function makeVar(value) {\n    var caches = new Set();\n    var listeners = new Set();\n    var rv = function (newValue) {\n        if (arguments.length > 0) {\n            if (value !== newValue) {\n                value = newValue;\n                caches.forEach(function (cache) {\n                    // Invalidate any fields with custom read functions that\n                    // consumed this variable, so query results involving those\n                    // fields will be recomputed the next time we read them.\n                    getCacheInfo(cache).dep.dirty(rv);\n                    // Broadcast changes to any caches that have previously read\n                    // from this variable.\n                    broadcast(cache);\n                });\n                // Finally, notify any listeners added via rv.onNextChange.\n                var oldListeners = Array.from(listeners);\n                listeners.clear();\n                oldListeners.forEach(function (listener) { return listener(value); });\n            }\n        }\n        else {\n            // When reading from the variable, obtain the current cache from\n            // context via cacheSlot. This isn't entirely foolproof, but it's\n            // the same system that powers varDep.\n            var cache = cacheSlot.getValue();\n            if (cache) {\n                attach(cache);\n                getCacheInfo(cache).dep(rv);\n            }\n        }\n        return value;\n    };\n    rv.onNextChange = function (listener) {\n        listeners.add(listener);\n        return function () {\n            listeners.delete(listener);\n        };\n    };\n    var attach = (rv.attachCache = function (cache) {\n        caches.add(cache);\n        getCacheInfo(cache).vars.add(rv);\n        return rv;\n    });\n    rv.forgetCache = function (cache) { return caches.delete(cache); };\n    return rv;\n}\nfunction broadcast(cache) {\n    if (cache.broadcastWatches) {\n        cache.broadcastWatches();\n    }\n}\n//# sourceMappingURL=reactiveVars.js.map","import { ApolloLink } from \"./ApolloLink.js\";\nexport var execute = ApolloLink.execute;\n//# sourceMappingURL=execute.js.map","import { __extends } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { createHttpLink } from \"./createHttpLink.js\";\nvar HttpLink = /** @class */ (function (_super) {\n    __extends(HttpLink, _super);\n    function HttpLink(options) {\n        if (options === void 0) { options = {}; }\n        var _this = _super.call(this, createHttpLink(options).request) || this;\n        _this.options = options;\n        return _this;\n    }\n    return HttpLink;\n}(ApolloLink));\nexport { HttpLink };\n//# sourceMappingURL=HttpLink.js.map","import { Observable } from \"./Observable.js\";\n// Like Observable.prototype.map, except that the mapping function can\n// optionally return a Promise (or be async).\nexport function asyncMap(observable, mapFn, catchFn) {\n    return new Observable(function (observer) {\n        var promiseQueue = {\n            // Normally we would initialize promiseQueue to Promise.resolve(), but\n            // in this case, for backwards compatibility, we need to be careful to\n            // invoke the first callback synchronously.\n            then: function (callback) {\n                return new Promise(function (resolve) { return resolve(callback()); });\n            },\n        };\n        function makeCallback(examiner, key) {\n            return function (arg) {\n                if (examiner) {\n                    var both = function () {\n                        // If the observer is closed, we don't want to continue calling the\n                        // mapping function - it's result will be swallowed anyways.\n                        return observer.closed ?\n                            /* will be swallowed */ 0\n                            : examiner(arg);\n                    };\n                    promiseQueue = promiseQueue.then(both, both).then(function (result) { return observer.next(result); }, function (error) { return observer.error(error); });\n                }\n                else {\n                    observer[key](arg);\n                }\n            };\n        }\n        var handler = {\n            next: makeCallback(mapFn, \"next\"),\n            error: makeCallback(catchFn, \"error\"),\n            complete: function () {\n                // no need to reassign `promiseQueue`, after `observer.complete`,\n                // the observer will be closed and short-circuit everything anyways\n                /*promiseQueue = */ promiseQueue.then(function () { return observer.complete(); });\n            },\n        };\n        var sub = observable.subscribe(handler);\n        return function () { return sub.unsubscribe(); };\n    });\n}\n//# sourceMappingURL=asyncMap.js.map","import { isNonEmptyArray } from \"./arrays.js\";\nimport { isExecutionPatchIncrementalResult } from \"./incrementalResult.js\";\nexport function graphQLResultHasError(result) {\n    var errors = getGraphQLErrorsFromResult(result);\n    return isNonEmptyArray(errors);\n}\nexport function getGraphQLErrorsFromResult(result) {\n    var graphQLErrors = isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n    if (isExecutionPatchIncrementalResult(result) &&\n        isNonEmptyArray(result.incremental)) {\n        result.incremental.forEach(function (incrementalResult) {\n            if (incrementalResult.errors) {\n                graphQLErrors.push.apply(graphQLErrors, incrementalResult.errors);\n            }\n        });\n    }\n    return graphQLErrors;\n}\n//# sourceMappingURL=errorHandling.js.map","export function iterateObserversSafely(observers, method, argument) {\n    // In case observers is modified during iteration, we need to commit to the\n    // original elements, which also provides an opportunity to filter them down\n    // to just the observers with the given method.\n    var observersWithMethod = [];\n    observers.forEach(function (obs) { return obs[method] && observersWithMethod.push(obs); });\n    observersWithMethod.forEach(function (obs) { return obs[method](argument); });\n}\n//# sourceMappingURL=iteration.js.map","import { Observable } from \"./Observable.js\";\nimport { canUseSymbol } from \"../common/canUse.js\";\n// Generic implementations of Observable.prototype methods like map and\n// filter need to know how to create a new Observable from an Observable\n// subclass (like Concast or ObservableQuery). Those methods assume\n// (perhaps unwisely?) that they can call the subtype's constructor with a\n// Subscriber function, even though the subclass constructor might expect\n// different parameters. Defining this static Symbol.species property on\n// the subclass is a hint to generic Observable code to use the default\n// constructor instead of trying to do `new Subclass(observer => ...)`.\nexport function fixObservableSubclass(subclass) {\n    function set(key) {\n        // Object.defineProperty is necessary because the Symbol.species\n        // property is a getter by default in modern JS environments, so we\n        // can't assign to it with a normal assignment expression.\n        Object.defineProperty(subclass, key, { value: Observable });\n    }\n    if (canUseSymbol && Symbol.species) {\n        set(Symbol.species);\n    }\n    // The \"@@species\" string is used as a fake Symbol.species value in some\n    // polyfill systems (including the SymbolSpecies variable used by\n    // zen-observable), so we should set it as well, to be safe.\n    set(\"@@species\");\n    return subclass;\n}\n//# sourceMappingURL=subclassing.js.map","import { __extends } from \"tslib\";\nimport { Observable } from \"./Observable.js\";\nimport { iterateObserversSafely } from \"./iteration.js\";\nimport { fixObservableSubclass } from \"./subclassing.js\";\nfunction isPromiseLike(value) {\n    return value && typeof value.then === \"function\";\n}\n// A Concast<T> observable concatenates the given sources into a single\n// non-overlapping sequence of Ts, automatically unwrapping any promises,\n// and broadcasts the T elements of that sequence to any number of\n// subscribers, all without creating a bunch of intermediary Observable\n// wrapper objects.\n//\n// Even though any number of observers can subscribe to the Concast, each\n// source observable is guaranteed to receive at most one subscribe call,\n// and the results are multicast to all observers.\n//\n// In addition to broadcasting every next/error message to this.observers,\n// the Concast stores the most recent message using this.latest, so any\n// new observers can immediately receive the latest message, even if it\n// was originally delivered in the past. This behavior means we can assume\n// every active observer in this.observers has received the same most\n// recent message.\n//\n// With the exception of this.latest replay, a Concast is a \"hot\"\n// observable in the sense that it does not replay past results from the\n// beginning of time for each new observer.\n//\n// Could we have used some existing RxJS class instead? Concast<T> is\n// similar to a BehaviorSubject<T>, because it is multicast and redelivers\n// the latest next/error message to new subscribers. Unlike Subject<T>,\n// Concast<T> does not expose an Observer<T> interface (this.handlers is\n// intentionally private), since Concast<T> gets its inputs from the\n// concatenated sources. If we ever switch to RxJS, there may be some\n// value in reusing their code, but for now we use zen-observable, which\n// does not contain any Subject implementations.\nvar Concast = /** @class */ (function (_super) {\n    __extends(Concast, _super);\n    // Not only can the individual elements of the iterable be promises, but\n    // also the iterable itself can be wrapped in a promise.\n    function Concast(sources) {\n        var _this = _super.call(this, function (observer) {\n            _this.addObserver(observer);\n            return function () { return _this.removeObserver(observer); };\n        }) || this;\n        // Active observers receiving broadcast messages. Thanks to this.latest,\n        // we can assume all observers in this Set have received the same most\n        // recent message, though possibly at different times in the past.\n        _this.observers = new Set();\n        _this.promise = new Promise(function (resolve, reject) {\n            _this.resolve = resolve;\n            _this.reject = reject;\n        });\n        // Bound handler functions that can be reused for every internal\n        // subscription.\n        _this.handlers = {\n            next: function (result) {\n                if (_this.sub !== null) {\n                    _this.latest = [\"next\", result];\n                    _this.notify(\"next\", result);\n                    iterateObserversSafely(_this.observers, \"next\", result);\n                }\n            },\n            error: function (error) {\n                var sub = _this.sub;\n                if (sub !== null) {\n                    // Delay unsubscribing from the underlying subscription slightly,\n                    // so that immediately subscribing another observer can keep the\n                    // subscription active.\n                    if (sub)\n                        setTimeout(function () { return sub.unsubscribe(); });\n                    _this.sub = null;\n                    _this.latest = [\"error\", error];\n                    _this.reject(error);\n                    _this.notify(\"error\", error);\n                    iterateObserversSafely(_this.observers, \"error\", error);\n                }\n            },\n            complete: function () {\n                var _a = _this, sub = _a.sub, _b = _a.sources, sources = _b === void 0 ? [] : _b;\n                if (sub !== null) {\n                    // If complete is called before concast.start, this.sources may be\n                    // undefined, so we use a default value of [] for sources. That works\n                    // here because it falls into the if (!value) {...} block, which\n                    // appropriately terminates the Concast, even if this.sources might\n                    // eventually have been initialized to a non-empty array.\n                    var value = sources.shift();\n                    if (!value) {\n                        if (sub)\n                            setTimeout(function () { return sub.unsubscribe(); });\n                        _this.sub = null;\n                        if (_this.latest && _this.latest[0] === \"next\") {\n                            _this.resolve(_this.latest[1]);\n                        }\n                        else {\n                            _this.resolve();\n                        }\n                        _this.notify(\"complete\");\n                        // We do not store this.latest = [\"complete\"], because doing so\n                        // discards useful information about the previous next (or\n                        // error) message. Instead, if new observers subscribe after\n                        // this Concast has completed, they will receive the final\n                        // 'next' message (unless there was an error) immediately\n                        // followed by a 'complete' message (see addObserver).\n                        iterateObserversSafely(_this.observers, \"complete\");\n                    }\n                    else if (isPromiseLike(value)) {\n                        value.then(function (obs) { return (_this.sub = obs.subscribe(_this.handlers)); }, _this.handlers.error);\n                    }\n                    else {\n                        _this.sub = value.subscribe(_this.handlers);\n                    }\n                }\n            },\n        };\n        _this.nextResultListeners = new Set();\n        // A public way to abort observation and broadcast.\n        _this.cancel = function (reason) {\n            _this.reject(reason);\n            _this.sources = [];\n            _this.handlers.error(reason);\n        };\n        // Suppress rejection warnings for this.promise, since it's perfectly\n        // acceptable to pay no attention to this.promise if you're consuming\n        // the results through the normal observable API.\n        _this.promise.catch(function (_) { });\n        // If someone accidentally tries to create a Concast using a subscriber\n        // function, recover by creating an Observable from that subscriber and\n        // using it as the source.\n        if (typeof sources === \"function\") {\n            sources = [new Observable(sources)];\n        }\n        if (isPromiseLike(sources)) {\n            sources.then(function (iterable) { return _this.start(iterable); }, _this.handlers.error);\n        }\n        else {\n            _this.start(sources);\n        }\n        return _this;\n    }\n    Concast.prototype.start = function (sources) {\n        if (this.sub !== void 0)\n            return;\n        // In practice, sources is most often simply an Array of observables.\n        // TODO Consider using sources[Symbol.iterator]() to take advantage\n        // of the laziness of non-Array iterables.\n        this.sources = Array.from(sources);\n        // Calling this.handlers.complete() kicks off consumption of the first\n        // source observable. It's tempting to do this step lazily in\n        // addObserver, but this.promise can be accessed without calling\n        // addObserver, so consumption needs to begin eagerly.\n        this.handlers.complete();\n    };\n    Concast.prototype.deliverLastMessage = function (observer) {\n        if (this.latest) {\n            var nextOrError = this.latest[0];\n            var method = observer[nextOrError];\n            if (method) {\n                method.call(observer, this.latest[1]);\n            }\n            // If the subscription is already closed, and the last message was\n            // a 'next' message, simulate delivery of the final 'complete'\n            // message again.\n            if (this.sub === null && nextOrError === \"next\" && observer.complete) {\n                observer.complete();\n            }\n        }\n    };\n    Concast.prototype.addObserver = function (observer) {\n        if (!this.observers.has(observer)) {\n            // Immediately deliver the most recent message, so we can always\n            // be sure all observers have the latest information.\n            this.deliverLastMessage(observer);\n            this.observers.add(observer);\n        }\n    };\n    Concast.prototype.removeObserver = function (observer) {\n        if (this.observers.delete(observer) && this.observers.size < 1) {\n            // In case there are still any listeners in this.nextResultListeners, and\n            // no error or completion has been broadcast yet, make sure those\n            // observers have a chance to run and then remove themselves from\n            // this.observers.\n            this.handlers.complete();\n        }\n    };\n    Concast.prototype.notify = function (method, arg) {\n        var nextResultListeners = this.nextResultListeners;\n        if (nextResultListeners.size) {\n            // Replacing this.nextResultListeners first ensures it does not grow while\n            // we are iterating over it, potentially leading to infinite loops.\n            this.nextResultListeners = new Set();\n            nextResultListeners.forEach(function (listener) { return listener(method, arg); });\n        }\n    };\n    // We need a way to run callbacks just *before* the next result (or error or\n    // completion) is delivered by this Concast, so we can be sure any code that\n    // runs as a result of delivering that result/error observes the effects of\n    // running the callback(s). It was tempting to reuse the Observer type instead\n    // of introducing NextResultListener, but that messes with the sizing and\n    // maintenance of this.observers, and ends up being more code overall.\n    Concast.prototype.beforeNext = function (callback) {\n        var called = false;\n        this.nextResultListeners.add(function (method, arg) {\n            if (!called) {\n                called = true;\n                callback(method, arg);\n            }\n        });\n    };\n    return Concast;\n}(Observable));\nexport { Concast };\n// Necessary because the Concast constructor has a different signature\n// than the Observable constructor.\nfixObservableSubclass(Concast);\n//# sourceMappingURL=Concast.js.map","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { cloneDeep, compact, getOperationDefinition, Observable, iterateObserversSafely, fixObservableSubclass, getQueryDefinition, } from \"../utilities/index.js\";\nimport { ApolloError, isApolloError } from \"../errors/index.js\";\nimport { equalByQuery } from \"./equalByQuery.js\";\nvar assign = Object.assign, hasOwnProperty = Object.hasOwnProperty;\nvar ObservableQuery = /** @class */ (function (_super) {\n    __extends(ObservableQuery, _super);\n    function ObservableQuery(_a) {\n        var queryManager = _a.queryManager, queryInfo = _a.queryInfo, options = _a.options;\n        var _this = _super.call(this, function (observer) {\n            // Zen Observable has its own error function, so in order to log correctly\n            // we need to provide a custom error callback.\n            try {\n                var subObserver = observer._subscription._observer;\n                if (subObserver && !subObserver.error) {\n                    subObserver.error = defaultSubscriptionObserverErrorCallback;\n                }\n            }\n            catch (_a) { }\n            var first = !_this.observers.size;\n            _this.observers.add(observer);\n            // Deliver most recent error or result.\n            var last = _this.last;\n            if (last && last.error) {\n                observer.error && observer.error(last.error);\n            }\n            else if (last && last.result) {\n                observer.next && observer.next(last.result);\n            }\n            // Initiate observation of this query if it hasn't been reported to\n            // the QueryManager yet.\n            if (first) {\n                // Blindly catching here prevents unhandled promise rejections,\n                // and is safe because the ObservableQuery handles this error with\n                // this.observer.error, so we're not just swallowing the error by\n                // ignoring it here.\n                _this.reobserve().catch(function () { });\n            }\n            return function () {\n                if (_this.observers.delete(observer) && !_this.observers.size) {\n                    _this.tearDownQuery();\n                }\n            };\n        }) || this;\n        _this.observers = new Set();\n        _this.subscriptions = new Set();\n        // related classes\n        _this.queryInfo = queryInfo;\n        _this.queryManager = queryManager;\n        // active state\n        _this.waitForOwnResult = skipCacheDataFor(options.fetchPolicy);\n        _this.isTornDown = false;\n        _this.subscribeToMore = _this.subscribeToMore.bind(_this);\n        var _b = queryManager.defaultOptions.watchQuery, _c = _b === void 0 ? {} : _b, _d = _c.fetchPolicy, defaultFetchPolicy = _d === void 0 ? \"cache-first\" : _d;\n        var _e = options.fetchPolicy, fetchPolicy = _e === void 0 ? defaultFetchPolicy : _e, \n        // Make sure we don't store \"standby\" as the initialFetchPolicy.\n        _f = options.initialFetchPolicy, \n        // Make sure we don't store \"standby\" as the initialFetchPolicy.\n        initialFetchPolicy = _f === void 0 ? fetchPolicy === \"standby\" ? defaultFetchPolicy : (fetchPolicy) : _f;\n        _this.options = __assign(__assign({}, options), { \n            // Remember the initial options.fetchPolicy so we can revert back to this\n            // policy when variables change. This information can also be specified\n            // (or overridden) by providing options.initialFetchPolicy explicitly.\n            initialFetchPolicy: initialFetchPolicy, \n            // This ensures this.options.fetchPolicy always has a string value, in\n            // case options.fetchPolicy was not provided.\n            fetchPolicy: fetchPolicy });\n        _this.queryId = queryInfo.queryId || queryManager.generateQueryId();\n        var opDef = getOperationDefinition(_this.query);\n        _this.queryName = opDef && opDef.name && opDef.name.value;\n        return _this;\n    }\n    Object.defineProperty(ObservableQuery.prototype, \"query\", {\n        // The `query` computed property will always reflect the document transformed\n        // by the last run query. `this.options.query` will always reflect the raw\n        // untransformed query to ensure document transforms with runtime conditionals\n        // are run on the original document.\n        get: function () {\n            return this.lastQuery || this.options.query;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(ObservableQuery.prototype, \"variables\", {\n        // Computed shorthand for this.options.variables, preserved for\n        // backwards compatibility.\n        /**\n         * An object containing the variables that were provided for the query.\n         */\n        get: function () {\n            return this.options.variables;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ObservableQuery.prototype.result = function () {\n        var _this = this;\n        return new Promise(function (resolve, reject) {\n            // TODO: this code doesn’t actually make sense insofar as the observer\n            // will never exist in this.observers due how zen-observable wraps observables.\n            // https://github.com/zenparsing/zen-observable/blob/master/src/Observable.js#L169\n            var observer = {\n                next: function (result) {\n                    resolve(result);\n                    // Stop the query within the QueryManager if we can before\n                    // this function returns.\n                    //\n                    // We do this in order to prevent observers piling up within\n                    // the QueryManager. Notice that we only fully unsubscribe\n                    // from the subscription in a setTimeout(..., 0)  call. This call can\n                    // actually be handled by the browser at a much later time. If queries\n                    // are fired in the meantime, observers that should have been removed\n                    // from the QueryManager will continue to fire, causing an unnecessary\n                    // performance hit.\n                    _this.observers.delete(observer);\n                    if (!_this.observers.size) {\n                        _this.queryManager.removeQuery(_this.queryId);\n                    }\n                    setTimeout(function () {\n                        subscription.unsubscribe();\n                    }, 0);\n                },\n                error: reject,\n            };\n            var subscription = _this.subscribe(observer);\n        });\n    };\n    /** @internal */\n    ObservableQuery.prototype.resetDiff = function () {\n        this.queryInfo.resetDiff();\n    };\n    ObservableQuery.prototype.getCurrentResult = function (saveAsLastResult) {\n        if (saveAsLastResult === void 0) { saveAsLastResult = true; }\n        // Use the last result as long as the variables match this.variables.\n        var lastResult = this.getLastResult(true);\n        var networkStatus = this.queryInfo.networkStatus ||\n            (lastResult && lastResult.networkStatus) ||\n            NetworkStatus.ready;\n        var result = __assign(__assign({}, lastResult), { loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus });\n        var _a = this.options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a;\n        if (\n        // These fetch policies should never deliver data from the cache, unless\n        // redelivering a previously delivered result.\n        skipCacheDataFor(fetchPolicy) ||\n            // If this.options.query has @client(always: true) fields, we cannot\n            // trust diff.result, since it was read from the cache without running\n            // local resolvers (and it's too late to run resolvers now, since we must\n            // return a result synchronously).\n            this.queryManager.getDocumentInfo(this.query).hasForcedResolvers) {\n            // Fall through.\n        }\n        else if (this.waitForOwnResult) {\n            // This would usually be a part of `QueryInfo.getDiff()`.\n            // which we skip in the waitForOwnResult case since we are not\n            // interested in the diff.\n            this.queryInfo[\"updateWatch\"]();\n        }\n        else {\n            var diff = this.queryInfo.getDiff();\n            if (diff.complete || this.options.returnPartialData) {\n                result.data = diff.result;\n            }\n            if (equal(result.data, {})) {\n                result.data = void 0;\n            }\n            if (diff.complete) {\n                // Similar to setting result.partial to false, but taking advantage of the\n                // falsiness of missing fields.\n                delete result.partial;\n                // If the diff is complete, and we're using a FetchPolicy that\n                // terminates after a complete cache read, we can assume the next result\n                // we receive will have NetworkStatus.ready and !loading.\n                if (diff.complete &&\n                    result.networkStatus === NetworkStatus.loading &&\n                    (fetchPolicy === \"cache-first\" || fetchPolicy === \"cache-only\")) {\n                    result.networkStatus = NetworkStatus.ready;\n                    result.loading = false;\n                }\n            }\n            else {\n                result.partial = true;\n            }\n            if (globalThis.__DEV__ !== false &&\n                !diff.complete &&\n                !this.options.partialRefetch &&\n                !result.loading &&\n                !result.data &&\n                !result.error) {\n                logMissingFieldErrors(diff.missing);\n            }\n        }\n        if (saveAsLastResult) {\n            this.updateLastResult(result);\n        }\n        return result;\n    };\n    // Compares newResult to the snapshot we took of this.lastResult when it was\n    // first received.\n    ObservableQuery.prototype.isDifferentFromLastResult = function (newResult, variables) {\n        if (!this.last) {\n            return true;\n        }\n        var resultIsDifferent = this.queryManager.getDocumentInfo(this.query).hasNonreactiveDirective ?\n            !equalByQuery(this.query, this.last.result, newResult, this.variables)\n            : !equal(this.last.result, newResult);\n        return (resultIsDifferent || (variables && !equal(this.last.variables, variables)));\n    };\n    ObservableQuery.prototype.getLast = function (key, variablesMustMatch) {\n        var last = this.last;\n        if (last &&\n            last[key] &&\n            (!variablesMustMatch || equal(last.variables, this.variables))) {\n            return last[key];\n        }\n    };\n    ObservableQuery.prototype.getLastResult = function (variablesMustMatch) {\n        return this.getLast(\"result\", variablesMustMatch);\n    };\n    ObservableQuery.prototype.getLastError = function (variablesMustMatch) {\n        return this.getLast(\"error\", variablesMustMatch);\n    };\n    ObservableQuery.prototype.resetLastResults = function () {\n        delete this.last;\n        this.isTornDown = false;\n    };\n    ObservableQuery.prototype.resetQueryStoreErrors = function () {\n        this.queryManager.resetErrors(this.queryId);\n    };\n    /**\n     * Update the variables of this observable query, and fetch the new results.\n     * This method should be preferred over `setVariables` in most use cases.\n     *\n     * @param variables - The new set of variables. If there are missing variables,\n     * the previous values of those variables will be used.\n     */\n    ObservableQuery.prototype.refetch = function (variables) {\n        var _a;\n        var reobserveOptions = {\n            // Always disable polling for refetches.\n            pollInterval: 0,\n        };\n        // Unless the provided fetchPolicy always consults the network\n        // (no-cache, network-only, or cache-and-network), override it with\n        // network-only to force the refetch for this fetchQuery call.\n        var fetchPolicy = this.options.fetchPolicy;\n        if (fetchPolicy === \"cache-and-network\") {\n            reobserveOptions.fetchPolicy = fetchPolicy;\n        }\n        else if (fetchPolicy === \"no-cache\") {\n            reobserveOptions.fetchPolicy = \"no-cache\";\n        }\n        else {\n            reobserveOptions.fetchPolicy = \"network-only\";\n        }\n        if (globalThis.__DEV__ !== false && variables && hasOwnProperty.call(variables, \"variables\")) {\n            var queryDef = getQueryDefinition(this.query);\n            var vars = queryDef.variableDefinitions;\n            if (!vars || !vars.some(function (v) { return v.variable.name.value === \"variables\"; })) {\n                globalThis.__DEV__ !== false && invariant.warn(\n                    20,\n                    variables,\n                    ((_a = queryDef.name) === null || _a === void 0 ? void 0 : _a.value) || queryDef\n                );\n            }\n        }\n        if (variables && !equal(this.options.variables, variables)) {\n            // Update the existing options with new variables\n            reobserveOptions.variables = this.options.variables = __assign(__assign({}, this.options.variables), variables);\n        }\n        this.queryInfo.resetLastWrite();\n        return this.reobserve(reobserveOptions, NetworkStatus.refetch);\n    };\n    /**\n     * A function that helps you fetch the next set of results for a [paginated list field](https://www.apollographql.com/docs/react/pagination/core-api/).\n     */\n    ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n        var _this = this;\n        var combinedOptions = __assign(__assign({}, (fetchMoreOptions.query ? fetchMoreOptions : (__assign(__assign(__assign(__assign({}, this.options), { query: this.options.query }), fetchMoreOptions), { variables: __assign(__assign({}, this.options.variables), fetchMoreOptions.variables) })))), { \n            // The fetchMore request goes immediately to the network and does\n            // not automatically write its result to the cache (hence no-cache\n            // instead of network-only), because we allow the caller of\n            // fetchMore to provide an updateQuery callback that determines how\n            // the data gets written to the cache.\n            fetchPolicy: \"no-cache\" });\n        combinedOptions.query = this.transformDocument(combinedOptions.query);\n        var qid = this.queryManager.generateQueryId();\n        // If a temporary query is passed to `fetchMore`, we don't want to store\n        // it as the last query result since it may be an optimized query for\n        // pagination. We will however run the transforms on the original document\n        // as well as the document passed in `fetchMoreOptions` to ensure the cache\n        // uses the most up-to-date document which may rely on runtime conditionals.\n        this.lastQuery =\n            fetchMoreOptions.query ?\n                this.transformDocument(this.options.query)\n                : combinedOptions.query;\n        // Simulate a loading result for the original query with\n        // result.networkStatus === NetworkStatus.fetchMore.\n        var queryInfo = this.queryInfo;\n        var originalNetworkStatus = queryInfo.networkStatus;\n        queryInfo.networkStatus = NetworkStatus.fetchMore;\n        if (combinedOptions.notifyOnNetworkStatusChange) {\n            this.observe();\n        }\n        var updatedQuerySet = new Set();\n        var updateQuery = fetchMoreOptions === null || fetchMoreOptions === void 0 ? void 0 : fetchMoreOptions.updateQuery;\n        var isCached = this.options.fetchPolicy !== \"no-cache\";\n        if (!isCached) {\n            invariant(updateQuery, 21);\n        }\n        return this.queryManager\n            .fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore)\n            .then(function (fetchMoreResult) {\n            _this.queryManager.removeQuery(qid);\n            if (queryInfo.networkStatus === NetworkStatus.fetchMore) {\n                queryInfo.networkStatus = originalNetworkStatus;\n            }\n            if (isCached) {\n                // Performing this cache update inside a cache.batch transaction ensures\n                // any affected cache.watch watchers are notified at most once about any\n                // updates. Most watchers will be using the QueryInfo class, which\n                // responds to notifications by calling reobserveCacheFirst to deliver\n                // fetchMore cache results back to this ObservableQuery.\n                _this.queryManager.cache.batch({\n                    update: function (cache) {\n                        var updateQuery = fetchMoreOptions.updateQuery;\n                        if (updateQuery) {\n                            cache.updateQuery({\n                                query: _this.query,\n                                variables: _this.variables,\n                                returnPartialData: true,\n                                optimistic: false,\n                            }, function (previous) {\n                                return updateQuery(previous, {\n                                    fetchMoreResult: fetchMoreResult.data,\n                                    variables: combinedOptions.variables,\n                                });\n                            });\n                        }\n                        else {\n                            // If we're using a field policy instead of updateQuery, the only\n                            // thing we need to do is write the new data to the cache using\n                            // combinedOptions.variables (instead of this.variables, which is\n                            // what this.updateQuery uses, because it works by abusing the\n                            // original field value, keyed by the original variables).\n                            cache.writeQuery({\n                                query: combinedOptions.query,\n                                variables: combinedOptions.variables,\n                                data: fetchMoreResult.data,\n                            });\n                        }\n                    },\n                    onWatchUpdated: function (watch) {\n                        // Record the DocumentNode associated with any watched query whose\n                        // data were updated by the cache writes above.\n                        updatedQuerySet.add(watch.query);\n                    },\n                });\n            }\n            else {\n                // There is a possibility `lastResult` may not be set when\n                // `fetchMore` is called which would cause this to crash. This should\n                // only happen if we haven't previously reported a result. We don't\n                // quite know what the right behavior should be here since this block\n                // of code runs after the fetch result has executed on the network.\n                // We plan to let it crash in the meantime.\n                //\n                // If we get bug reports due to the `data` property access on\n                // undefined, this should give us a real-world scenario that we can\n                // use to test against and determine the right behavior. If we do end\n                // up changing this behavior, this may require, for example, an\n                // adjustment to the types on `updateQuery` since that function\n                // expects that the first argument always contains previous result\n                // data, but not `undefined`.\n                var lastResult = _this.getLast(\"result\");\n                var data = updateQuery(lastResult.data, {\n                    fetchMoreResult: fetchMoreResult.data,\n                    variables: combinedOptions.variables,\n                });\n                _this.reportResult(__assign(__assign({}, lastResult), { data: data }), _this.variables);\n            }\n            return fetchMoreResult;\n        })\n            .finally(function () {\n            // In case the cache writes above did not generate a broadcast\n            // notification (which would have been intercepted by onWatchUpdated),\n            // likely because the written data were the same as what was already in\n            // the cache, we still want fetchMore to deliver its final loading:false\n            // result with the unchanged data.\n            if (isCached && !updatedQuerySet.has(_this.query)) {\n                reobserveCacheFirst(_this);\n            }\n        });\n    };\n    // XXX the subscription variables are separate from the query variables.\n    // if you want to update subscription variables, right now you have to do that separately,\n    // and you can only do it by stopping the subscription and then subscribing again with new variables.\n    /**\n     * A function that enables you to execute a [subscription](https://www.apollographql.com/docs/react/data/subscriptions/), usually to subscribe to specific fields that were included in the query.\n     *\n     * This function returns _another_ function that you can call to terminate the subscription.\n     */\n    ObservableQuery.prototype.subscribeToMore = function (options) {\n        var _this = this;\n        var subscription = this.queryManager\n            .startGraphQLSubscription({\n            query: options.document,\n            variables: options.variables,\n            context: options.context,\n        })\n            .subscribe({\n            next: function (subscriptionData) {\n                var updateQuery = options.updateQuery;\n                if (updateQuery) {\n                    _this.updateQuery(function (previous, _a) {\n                        var variables = _a.variables;\n                        return updateQuery(previous, {\n                            subscriptionData: subscriptionData,\n                            variables: variables,\n                        });\n                    });\n                }\n            },\n            error: function (err) {\n                if (options.onError) {\n                    options.onError(err);\n                    return;\n                }\n                globalThis.__DEV__ !== false && invariant.error(22, err);\n            },\n        });\n        this.subscriptions.add(subscription);\n        return function () {\n            if (_this.subscriptions.delete(subscription)) {\n                subscription.unsubscribe();\n            }\n        };\n    };\n    ObservableQuery.prototype.setOptions = function (newOptions) {\n        return this.reobserve(newOptions);\n    };\n    ObservableQuery.prototype.silentSetOptions = function (newOptions) {\n        var mergedOptions = compact(this.options, newOptions || {});\n        assign(this.options, mergedOptions);\n    };\n    /**\n     * Update the variables of this observable query, and fetch the new results\n     * if they've changed. Most users should prefer `refetch` instead of\n     * `setVariables` in order to to be properly notified of results even when\n     * they come from the cache.\n     *\n     * Note: the `next` callback will *not* fire if the variables have not changed\n     * or if the result is coming from cache.\n     *\n     * Note: the promise will return the old results immediately if the variables\n     * have not changed.\n     *\n     * Note: the promise will return null immediately if the query is not active\n     * (there are no subscribers).\n     *\n     * @param variables - The new set of variables. If there are missing variables,\n     * the previous values of those variables will be used.\n     */\n    ObservableQuery.prototype.setVariables = function (variables) {\n        if (equal(this.variables, variables)) {\n            // If we have no observers, then we don't actually want to make a network\n            // request. As soon as someone observes the query, the request will kick\n            // off. For now, we just store any changes. (See #1077)\n            return this.observers.size ? this.result() : Promise.resolve();\n        }\n        this.options.variables = variables;\n        // See comment above\n        if (!this.observers.size) {\n            return Promise.resolve();\n        }\n        return this.reobserve({\n            // Reset options.fetchPolicy to its original value.\n            fetchPolicy: this.options.initialFetchPolicy,\n            variables: variables,\n        }, NetworkStatus.setVariables);\n    };\n    /**\n     * A function that enables you to update the query's cached result without executing a followup GraphQL operation.\n     *\n     * See [using updateQuery and updateFragment](https://www.apollographql.com/docs/react/caching/cache-interaction/#using-updatequery-and-updatefragment) for additional information.\n     */\n    ObservableQuery.prototype.updateQuery = function (mapFn) {\n        var queryManager = this.queryManager;\n        var result = queryManager.cache.diff({\n            query: this.options.query,\n            variables: this.variables,\n            returnPartialData: true,\n            optimistic: false,\n        }).result;\n        var newResult = mapFn(result, {\n            variables: this.variables,\n        });\n        if (newResult) {\n            queryManager.cache.writeQuery({\n                query: this.options.query,\n                data: newResult,\n                variables: this.variables,\n            });\n            queryManager.broadcastQueries();\n        }\n    };\n    /**\n     * A function that instructs the query to begin re-executing at a specified interval (in milliseconds).\n     */\n    ObservableQuery.prototype.startPolling = function (pollInterval) {\n        this.options.pollInterval = pollInterval;\n        this.updatePolling();\n    };\n    /**\n     * A function that instructs the query to stop polling after a previous call to `startPolling`.\n     */\n    ObservableQuery.prototype.stopPolling = function () {\n        this.options.pollInterval = 0;\n        this.updatePolling();\n    };\n    // Update options.fetchPolicy according to options.nextFetchPolicy.\n    ObservableQuery.prototype.applyNextFetchPolicy = function (reason, \n    // It's possible to use this method to apply options.nextFetchPolicy to\n    // options.fetchPolicy even if options !== this.options, though that happens\n    // most often when the options are temporary, used for only one request and\n    // then thrown away, so nextFetchPolicy may not end up mattering.\n    options) {\n        if (options.nextFetchPolicy) {\n            var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a, _b = options.initialFetchPolicy, initialFetchPolicy = _b === void 0 ? fetchPolicy : _b;\n            if (fetchPolicy === \"standby\") {\n                // Do nothing, leaving options.fetchPolicy unchanged.\n            }\n            else if (typeof options.nextFetchPolicy === \"function\") {\n                // When someone chooses \"cache-and-network\" or \"network-only\" as their\n                // initial FetchPolicy, they often do not want future cache updates to\n                // trigger unconditional network requests, which is what repeatedly\n                // applying the \"cache-and-network\" or \"network-only\" policies would\n                // seem to imply. Instead, when the cache reports an update after the\n                // initial network request, it may be desirable for subsequent network\n                // requests to be triggered only if the cache result is incomplete. To\n                // that end, the options.nextFetchPolicy option provides an easy way to\n                // update options.fetchPolicy after the initial network request, without\n                // having to call observableQuery.setOptions.\n                options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {\n                    reason: reason,\n                    options: options,\n                    observable: this,\n                    initialFetchPolicy: initialFetchPolicy,\n                });\n            }\n            else if (reason === \"variables-changed\") {\n                options.fetchPolicy = initialFetchPolicy;\n            }\n            else {\n                options.fetchPolicy = options.nextFetchPolicy;\n            }\n        }\n        return options.fetchPolicy;\n    };\n    ObservableQuery.prototype.fetch = function (options, newNetworkStatus, query) {\n        // TODO Make sure we update the networkStatus (and infer fetchVariables)\n        // before actually committing to the fetch.\n        this.queryManager.setObservableQuery(this);\n        return this.queryManager[\"fetchConcastWithInfo\"](this.queryId, options, newNetworkStatus, query);\n    };\n    // Turns polling on or off based on this.options.pollInterval.\n    ObservableQuery.prototype.updatePolling = function () {\n        var _this = this;\n        // Avoid polling in SSR mode\n        if (this.queryManager.ssrMode) {\n            return;\n        }\n        var _a = this, pollingInfo = _a.pollingInfo, pollInterval = _a.options.pollInterval;\n        if (!pollInterval || !this.hasObservers()) {\n            if (pollingInfo) {\n                clearTimeout(pollingInfo.timeout);\n                delete this.pollingInfo;\n            }\n            return;\n        }\n        if (pollingInfo && pollingInfo.interval === pollInterval) {\n            return;\n        }\n        invariant(pollInterval, 23);\n        var info = pollingInfo || (this.pollingInfo = {});\n        info.interval = pollInterval;\n        var maybeFetch = function () {\n            var _a, _b;\n            if (_this.pollingInfo) {\n                if (!isNetworkRequestInFlight(_this.queryInfo.networkStatus) &&\n                    !((_b = (_a = _this.options).skipPollAttempt) === null || _b === void 0 ? void 0 : _b.call(_a))) {\n                    _this.reobserve({\n                        // Most fetchPolicy options don't make sense to use in a polling context, as\n                        // users wouldn't want to be polling the cache directly. However, network-only and\n                        // no-cache are both useful for when the user wants to control whether or not the\n                        // polled results are written to the cache.\n                        fetchPolicy: _this.options.initialFetchPolicy === \"no-cache\" ?\n                            \"no-cache\"\n                            : \"network-only\",\n                    }, NetworkStatus.poll).then(poll, poll);\n                }\n                else {\n                    poll();\n                }\n            }\n        };\n        var poll = function () {\n            var info = _this.pollingInfo;\n            if (info) {\n                clearTimeout(info.timeout);\n                info.timeout = setTimeout(maybeFetch, info.interval);\n            }\n        };\n        poll();\n    };\n    ObservableQuery.prototype.updateLastResult = function (newResult, variables) {\n        if (variables === void 0) { variables = this.variables; }\n        var error = this.getLastError();\n        // Preserve this.last.error unless the variables have changed.\n        if (error && this.last && !equal(variables, this.last.variables)) {\n            error = void 0;\n        }\n        return (this.last = __assign({ result: this.queryManager.assumeImmutableResults ?\n                newResult\n                : cloneDeep(newResult), variables: variables }, (error ? { error: error } : null)));\n    };\n    ObservableQuery.prototype.reobserveAsConcast = function (newOptions, newNetworkStatus) {\n        var _this = this;\n        this.isTornDown = false;\n        var useDisposableConcast = \n        // Refetching uses a disposable Concast to allow refetches using different\n        // options/variables, without permanently altering the options of the\n        // original ObservableQuery.\n        newNetworkStatus === NetworkStatus.refetch ||\n            // The fetchMore method does not actually call the reobserve method, but,\n            // if it did, it would definitely use a disposable Concast.\n            newNetworkStatus === NetworkStatus.fetchMore ||\n            // Polling uses a disposable Concast so the polling options (which force\n            // fetchPolicy to be \"network-only\" or \"no-cache\") won't override the original options.\n            newNetworkStatus === NetworkStatus.poll;\n        // Save the old variables, since Object.assign may modify them below.\n        var oldVariables = this.options.variables;\n        var oldFetchPolicy = this.options.fetchPolicy;\n        var mergedOptions = compact(this.options, newOptions || {});\n        var options = useDisposableConcast ?\n            // Disposable Concast fetches receive a shallow copy of this.options\n            // (merged with newOptions), leaving this.options unmodified.\n            mergedOptions\n            : assign(this.options, mergedOptions);\n        // Don't update options.query with the transformed query to avoid\n        // overwriting this.options.query when we aren't using a disposable concast.\n        // We want to ensure we can re-run the custom document transforms the next\n        // time a request is made against the original query.\n        var query = this.transformDocument(options.query);\n        this.lastQuery = query;\n        if (!useDisposableConcast) {\n            // We can skip calling updatePolling if we're not changing this.options.\n            this.updatePolling();\n            // Reset options.fetchPolicy to its original value when variables change,\n            // unless a new fetchPolicy was provided by newOptions.\n            if (newOptions &&\n                newOptions.variables &&\n                !equal(newOptions.variables, oldVariables) &&\n                // Don't mess with the fetchPolicy if it's currently \"standby\".\n                options.fetchPolicy !== \"standby\" &&\n                // If we're changing the fetchPolicy anyway, don't try to change it here\n                // using applyNextFetchPolicy. The explicit options.fetchPolicy wins.\n                (options.fetchPolicy === oldFetchPolicy ||\n                    // A `nextFetchPolicy` function has even higher priority, though,\n                    // so in that case `applyNextFetchPolicy` must be called.\n                    typeof options.nextFetchPolicy === \"function\")) {\n                this.applyNextFetchPolicy(\"variables-changed\", options);\n                if (newNetworkStatus === void 0) {\n                    newNetworkStatus = NetworkStatus.setVariables;\n                }\n            }\n        }\n        this.waitForOwnResult && (this.waitForOwnResult = skipCacheDataFor(options.fetchPolicy));\n        var finishWaitingForOwnResult = function () {\n            if (_this.concast === concast) {\n                _this.waitForOwnResult = false;\n            }\n        };\n        var variables = options.variables && __assign({}, options.variables);\n        var _a = this.fetch(options, newNetworkStatus, query), concast = _a.concast, fromLink = _a.fromLink;\n        var observer = {\n            next: function (result) {\n                if (equal(_this.variables, variables)) {\n                    finishWaitingForOwnResult();\n                    _this.reportResult(result, variables);\n                }\n            },\n            error: function (error) {\n                if (equal(_this.variables, variables)) {\n                    // Coming from `getResultsFromLink`, `error` here should always be an `ApolloError`.\n                    // However, calling `concast.cancel` can inject another type of error, so we have to\n                    // wrap it again here.\n                    if (!isApolloError(error)) {\n                        error = new ApolloError({ networkError: error });\n                    }\n                    finishWaitingForOwnResult();\n                    _this.reportError(error, variables);\n                }\n            },\n        };\n        if (!useDisposableConcast && (fromLink || !this.concast)) {\n            // We use the {add,remove}Observer methods directly to avoid wrapping\n            // observer with an unnecessary SubscriptionObserver object.\n            if (this.concast && this.observer) {\n                this.concast.removeObserver(this.observer);\n            }\n            this.concast = concast;\n            this.observer = observer;\n        }\n        concast.addObserver(observer);\n        return concast;\n    };\n    ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {\n        return this.reobserveAsConcast(newOptions, newNetworkStatus)\n            .promise;\n    };\n    ObservableQuery.prototype.resubscribeAfterError = function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        // If `lastError` is set in the current when the subscription is re-created,\n        // the subscription will immediately receive the error, which will\n        // cause it to terminate again. To avoid this, we first clear\n        // the last error/result from the `observableQuery` before re-starting\n        // the subscription, and restore the last value afterwards so that the\n        // subscription has a chance to stay open.\n        var last = this.last;\n        this.resetLastResults();\n        var subscription = this.subscribe.apply(this, args);\n        this.last = last;\n        return subscription;\n    };\n    // (Re)deliver the current result to this.observers without applying fetch\n    // policies or making network requests.\n    ObservableQuery.prototype.observe = function () {\n        this.reportResult(\n        // Passing false is important so that this.getCurrentResult doesn't\n        // save the fetchMore result as this.lastResult, causing it to be\n        // ignored due to the this.isDifferentFromLastResult check in\n        // this.reportResult.\n        this.getCurrentResult(false), this.variables);\n    };\n    ObservableQuery.prototype.reportResult = function (result, variables) {\n        var lastError = this.getLastError();\n        var isDifferent = this.isDifferentFromLastResult(result, variables);\n        // Update the last result even when isDifferentFromLastResult returns false,\n        // because the query may be using the @nonreactive directive, and we want to\n        // save the the latest version of any nonreactive subtrees (in case\n        // getCurrentResult is called), even though we skip broadcasting changes.\n        if (lastError || !result.partial || this.options.returnPartialData) {\n            this.updateLastResult(result, variables);\n        }\n        if (lastError || isDifferent) {\n            iterateObserversSafely(this.observers, \"next\", result);\n        }\n    };\n    ObservableQuery.prototype.reportError = function (error, variables) {\n        // Since we don't get the current result on errors, only the error, we\n        // must mirror the updates that occur in QueryStore.markQueryError here\n        var errorResult = __assign(__assign({}, this.getLastResult()), { error: error, errors: error.graphQLErrors, networkStatus: NetworkStatus.error, loading: false });\n        this.updateLastResult(errorResult, variables);\n        iterateObserversSafely(this.observers, \"error\", (this.last.error = error));\n    };\n    ObservableQuery.prototype.hasObservers = function () {\n        return this.observers.size > 0;\n    };\n    ObservableQuery.prototype.tearDownQuery = function () {\n        if (this.isTornDown)\n            return;\n        if (this.concast && this.observer) {\n            this.concast.removeObserver(this.observer);\n            delete this.concast;\n            delete this.observer;\n        }\n        this.stopPolling();\n        // stop all active GraphQL subscriptions\n        this.subscriptions.forEach(function (sub) { return sub.unsubscribe(); });\n        this.subscriptions.clear();\n        this.queryManager.stopQuery(this.queryId);\n        this.observers.clear();\n        this.isTornDown = true;\n    };\n    ObservableQuery.prototype.transformDocument = function (document) {\n        return this.queryManager.transform(document);\n    };\n    return ObservableQuery;\n}(Observable));\nexport { ObservableQuery };\n// Necessary because the ObservableQuery constructor has a different\n// signature than the Observable constructor.\nfixObservableSubclass(ObservableQuery);\n// Reobserve with fetchPolicy effectively set to \"cache-first\", triggering\n// delivery of any new data from the cache, possibly falling back to the network\n// if any cache data are missing. This allows _complete_ cache results to be\n// delivered without also kicking off unnecessary network requests when\n// this.options.fetchPolicy is \"cache-and-network\" or \"network-only\". When\n// this.options.fetchPolicy is any other policy (\"cache-first\", \"cache-only\",\n// \"standby\", or \"no-cache\"), we call this.reobserve() as usual.\nexport function reobserveCacheFirst(obsQuery) {\n    var _a = obsQuery.options, fetchPolicy = _a.fetchPolicy, nextFetchPolicy = _a.nextFetchPolicy;\n    if (fetchPolicy === \"cache-and-network\" || fetchPolicy === \"network-only\") {\n        return obsQuery.reobserve({\n            fetchPolicy: \"cache-first\",\n            // Use a temporary nextFetchPolicy function that replaces itself with the\n            // previous nextFetchPolicy value and returns the original fetchPolicy.\n            nextFetchPolicy: function (currentFetchPolicy, context) {\n                // Replace this nextFetchPolicy function in the options object with the\n                // original this.options.nextFetchPolicy value.\n                this.nextFetchPolicy = nextFetchPolicy;\n                // If the original nextFetchPolicy value was a function, give it a\n                // chance to decide what happens here.\n                if (typeof this.nextFetchPolicy === \"function\") {\n                    return this.nextFetchPolicy(currentFetchPolicy, context);\n                }\n                // Otherwise go back to the original this.options.fetchPolicy.\n                return fetchPolicy;\n            },\n        });\n    }\n    return obsQuery.reobserve();\n}\nfunction defaultSubscriptionObserverErrorCallback(error) {\n    globalThis.__DEV__ !== false && invariant.error(24, error.message, error.stack);\n}\nexport function logMissingFieldErrors(missing) {\n    if (globalThis.__DEV__ !== false && missing) {\n        globalThis.__DEV__ !== false && invariant.debug(25, missing);\n    }\n}\nfunction skipCacheDataFor(fetchPolicy /* `undefined` would mean `\"cache-first\"` */) {\n    return (fetchPolicy === \"network-only\" ||\n        fetchPolicy === \"no-cache\" ||\n        fetchPolicy === \"standby\");\n}\n//# sourceMappingURL=ObservableQuery.js.map","import { __assign } from \"tslib\";\nimport { equal } from \"@wry/equality\";\nimport { DeepMerger } from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/index.js\";\nimport { reobserveCacheFirst } from \"./ObservableQuery.js\";\nimport { isNonEmptyArray, graphQLResultHasError, canUseWeakMap, } from \"../utilities/index.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nvar destructiveMethodCounts = new (canUseWeakMap ? WeakMap : Map)();\nfunction wrapDestructiveCacheMethod(cache, methodName) {\n    var original = cache[methodName];\n    if (typeof original === \"function\") {\n        // @ts-expect-error this is just too generic to be typed correctly\n        cache[methodName] = function () {\n            destructiveMethodCounts.set(cache, \n            // The %1e15 allows the count to wrap around to 0 safely every\n            // quadrillion evictions, so there's no risk of overflow. To be\n            // clear, this is more of a pedantic principle than something\n            // that matters in any conceivable practical scenario.\n            (destructiveMethodCounts.get(cache) + 1) % 1e15);\n            // @ts-expect-error this is just too generic to be typed correctly\n            return original.apply(this, arguments);\n        };\n    }\n}\nfunction cancelNotifyTimeout(info) {\n    if (info[\"notifyTimeout\"]) {\n        clearTimeout(info[\"notifyTimeout\"]);\n        info[\"notifyTimeout\"] = void 0;\n    }\n}\n// A QueryInfo object represents a single query managed by the\n// QueryManager, which tracks all QueryInfo objects by queryId in its\n// this.queries Map. QueryInfo objects store the latest results and errors\n// for the given query, and are responsible for reporting those results to\n// the corresponding ObservableQuery, via the QueryInfo.notify method.\n// Results are reported asynchronously whenever setDiff marks the\n// QueryInfo object as dirty, though a call to the QueryManager's\n// broadcastQueries method may trigger the notification before it happens\n// automatically. This class used to be a simple interface type without\n// any field privacy or meaningful methods, which is why it still has so\n// many public fields. The effort to lock down and simplify the QueryInfo\n// interface is ongoing, and further improvements are welcome.\nvar QueryInfo = /** @class */ (function () {\n    function QueryInfo(queryManager, queryId) {\n        if (queryId === void 0) { queryId = queryManager.generateQueryId(); }\n        this.queryId = queryId;\n        this.listeners = new Set();\n        this.document = null;\n        this.lastRequestId = 1;\n        this.stopped = false;\n        this.dirty = false;\n        this.observableQuery = null;\n        var cache = (this.cache = queryManager.cache);\n        // Track how often cache.evict is called, since we want eviction to\n        // override the feud-stopping logic in the markResult method, by\n        // causing shouldWrite to return true. Wrapping the cache.evict method\n        // is a bit of a hack, but it saves us from having to make eviction\n        // counting an official part of the ApolloCache API.\n        if (!destructiveMethodCounts.has(cache)) {\n            destructiveMethodCounts.set(cache, 0);\n            wrapDestructiveCacheMethod(cache, \"evict\");\n            wrapDestructiveCacheMethod(cache, \"modify\");\n            wrapDestructiveCacheMethod(cache, \"reset\");\n        }\n    }\n    QueryInfo.prototype.init = function (query) {\n        var networkStatus = query.networkStatus || NetworkStatus.loading;\n        if (this.variables &&\n            this.networkStatus !== NetworkStatus.loading &&\n            !equal(this.variables, query.variables)) {\n            networkStatus = NetworkStatus.setVariables;\n        }\n        if (!equal(query.variables, this.variables)) {\n            this.lastDiff = void 0;\n        }\n        Object.assign(this, {\n            document: query.document,\n            variables: query.variables,\n            networkError: null,\n            graphQLErrors: this.graphQLErrors || [],\n            networkStatus: networkStatus,\n        });\n        if (query.observableQuery) {\n            this.setObservableQuery(query.observableQuery);\n        }\n        if (query.lastRequestId) {\n            this.lastRequestId = query.lastRequestId;\n        }\n        return this;\n    };\n    QueryInfo.prototype.reset = function () {\n        cancelNotifyTimeout(this);\n        this.dirty = false;\n    };\n    QueryInfo.prototype.resetDiff = function () {\n        this.lastDiff = void 0;\n    };\n    QueryInfo.prototype.getDiff = function () {\n        var options = this.getDiffOptions();\n        if (this.lastDiff && equal(options, this.lastDiff.options)) {\n            return this.lastDiff.diff;\n        }\n        this.updateWatch(this.variables);\n        var oq = this.observableQuery;\n        if (oq && oq.options.fetchPolicy === \"no-cache\") {\n            return { complete: false };\n        }\n        var diff = this.cache.diff(options);\n        this.updateLastDiff(diff, options);\n        return diff;\n    };\n    QueryInfo.prototype.updateLastDiff = function (diff, options) {\n        this.lastDiff =\n            diff ?\n                {\n                    diff: diff,\n                    options: options || this.getDiffOptions(),\n                }\n                : void 0;\n    };\n    QueryInfo.prototype.getDiffOptions = function (variables) {\n        var _a;\n        if (variables === void 0) { variables = this.variables; }\n        return {\n            query: this.document,\n            variables: variables,\n            returnPartialData: true,\n            optimistic: true,\n            canonizeResults: (_a = this.observableQuery) === null || _a === void 0 ? void 0 : _a.options.canonizeResults,\n        };\n    };\n    QueryInfo.prototype.setDiff = function (diff) {\n        var _this = this;\n        var _a;\n        var oldDiff = this.lastDiff && this.lastDiff.diff;\n        // If we are trying to deliver an incomplete cache result, we avoid\n        // reporting it if the query has errored, otherwise we let the broadcast try\n        // and repair the partial result by refetching the query. This check avoids\n        // a situation where a query that errors and another succeeds with\n        // overlapping data does not report the partial data result to the errored\n        // query.\n        //\n        // See https://github.com/apollographql/apollo-client/issues/11400 for more\n        // information on this issue.\n        if (diff && !diff.complete && ((_a = this.observableQuery) === null || _a === void 0 ? void 0 : _a.getLastError())) {\n            return;\n        }\n        this.updateLastDiff(diff);\n        if (!this.dirty && !equal(oldDiff && oldDiff.result, diff && diff.result)) {\n            this.dirty = true;\n            if (!this.notifyTimeout) {\n                this.notifyTimeout = setTimeout(function () { return _this.notify(); }, 0);\n            }\n        }\n    };\n    QueryInfo.prototype.setObservableQuery = function (oq) {\n        var _this = this;\n        if (oq === this.observableQuery)\n            return;\n        if (this.oqListener) {\n            this.listeners.delete(this.oqListener);\n        }\n        this.observableQuery = oq;\n        if (oq) {\n            oq[\"queryInfo\"] = this;\n            this.listeners.add((this.oqListener = function () {\n                var diff = _this.getDiff();\n                if (diff.fromOptimisticTransaction) {\n                    // If this diff came from an optimistic transaction, deliver the\n                    // current cache data to the ObservableQuery, but don't perform a\n                    // reobservation, since oq.reobserveCacheFirst might make a network\n                    // request, and we never want to trigger network requests in the\n                    // middle of optimistic updates.\n                    oq[\"observe\"]();\n                }\n                else {\n                    // Otherwise, make the ObservableQuery \"reobserve\" the latest data\n                    // using a temporary fetch policy of \"cache-first\", so complete cache\n                    // results have a chance to be delivered without triggering additional\n                    // network requests, even when options.fetchPolicy is \"network-only\"\n                    // or \"cache-and-network\". All other fetch policies are preserved by\n                    // this method, and are handled by calling oq.reobserve(). If this\n                    // reobservation is spurious, isDifferentFromLastResult still has a\n                    // chance to catch it before delivery to ObservableQuery subscribers.\n                    reobserveCacheFirst(oq);\n                }\n            }));\n        }\n        else {\n            delete this.oqListener;\n        }\n    };\n    QueryInfo.prototype.notify = function () {\n        var _this = this;\n        cancelNotifyTimeout(this);\n        if (this.shouldNotify()) {\n            this.listeners.forEach(function (listener) { return listener(_this); });\n        }\n        this.dirty = false;\n    };\n    QueryInfo.prototype.shouldNotify = function () {\n        if (!this.dirty || !this.listeners.size) {\n            return false;\n        }\n        if (isNetworkRequestInFlight(this.networkStatus) && this.observableQuery) {\n            var fetchPolicy = this.observableQuery.options.fetchPolicy;\n            if (fetchPolicy !== \"cache-only\" && fetchPolicy !== \"cache-and-network\") {\n                return false;\n            }\n        }\n        return true;\n    };\n    QueryInfo.prototype.stop = function () {\n        if (!this.stopped) {\n            this.stopped = true;\n            // Cancel the pending notify timeout\n            this.reset();\n            this.cancel();\n            // Revert back to the no-op version of cancel inherited from\n            // QueryInfo.prototype.\n            this.cancel = QueryInfo.prototype.cancel;\n            var oq = this.observableQuery;\n            if (oq)\n                oq.stopPolling();\n        }\n    };\n    // This method is a no-op by default, until/unless overridden by the\n    // updateWatch method.\n    QueryInfo.prototype.cancel = function () { };\n    QueryInfo.prototype.updateWatch = function (variables) {\n        var _this = this;\n        if (variables === void 0) { variables = this.variables; }\n        var oq = this.observableQuery;\n        if (oq && oq.options.fetchPolicy === \"no-cache\") {\n            return;\n        }\n        var watchOptions = __assign(__assign({}, this.getDiffOptions(variables)), { watcher: this, callback: function (diff) { return _this.setDiff(diff); } });\n        if (!this.lastWatch || !equal(watchOptions, this.lastWatch)) {\n            this.cancel();\n            this.cancel = this.cache.watch((this.lastWatch = watchOptions));\n        }\n    };\n    QueryInfo.prototype.resetLastWrite = function () {\n        this.lastWrite = void 0;\n    };\n    QueryInfo.prototype.shouldWrite = function (result, variables) {\n        var lastWrite = this.lastWrite;\n        return !(lastWrite &&\n            // If cache.evict has been called since the last time we wrote this\n            // data into the cache, there's a chance writing this result into\n            // the cache will repair what was evicted.\n            lastWrite.dmCount === destructiveMethodCounts.get(this.cache) &&\n            equal(variables, lastWrite.variables) &&\n            equal(result.data, lastWrite.result.data));\n    };\n    QueryInfo.prototype.markResult = function (result, document, options, cacheWriteBehavior) {\n        var _this = this;\n        var merger = new DeepMerger();\n        var graphQLErrors = isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n        // Cancel the pending notify timeout (if it exists) to prevent extraneous network\n        // requests. To allow future notify timeouts, diff and dirty are reset as well.\n        this.reset();\n        if (\"incremental\" in result && isNonEmptyArray(result.incremental)) {\n            var mergedData = mergeIncrementalData(this.getDiff().result, result);\n            result.data = mergedData;\n            // Detect the first chunk of a deferred query and merge it with existing\n            // cache data. This ensures a `cache-first` fetch policy that returns\n            // partial cache data or a `cache-and-network` fetch policy that already\n            // has full data in the cache does not complain when trying to merge the\n            // initial deferred server data with existing cache data.\n        }\n        else if (\"hasNext\" in result && result.hasNext) {\n            var diff = this.getDiff();\n            result.data = merger.merge(diff.result, result.data);\n        }\n        this.graphQLErrors = graphQLErrors;\n        if (options.fetchPolicy === \"no-cache\") {\n            this.updateLastDiff({ result: result.data, complete: true }, this.getDiffOptions(options.variables));\n        }\n        else if (cacheWriteBehavior !== 0 /* CacheWriteBehavior.FORBID */) {\n            if (shouldWriteResult(result, options.errorPolicy)) {\n                // Using a transaction here so we have a chance to read the result\n                // back from the cache before the watch callback fires as a result\n                // of writeQuery, so we can store the new diff quietly and ignore\n                // it when we receive it redundantly from the watch callback.\n                this.cache.performTransaction(function (cache) {\n                    if (_this.shouldWrite(result, options.variables)) {\n                        cache.writeQuery({\n                            query: document,\n                            data: result.data,\n                            variables: options.variables,\n                            overwrite: cacheWriteBehavior === 1 /* CacheWriteBehavior.OVERWRITE */,\n                        });\n                        _this.lastWrite = {\n                            result: result,\n                            variables: options.variables,\n                            dmCount: destructiveMethodCounts.get(_this.cache),\n                        };\n                    }\n                    else {\n                        // If result is the same as the last result we received from\n                        // the network (and the variables match too), avoid writing\n                        // result into the cache again. The wisdom of skipping this\n                        // cache write is far from obvious, since any cache write\n                        // could be the one that puts the cache back into a desired\n                        // state, fixing corruption or missing data. However, if we\n                        // always write every network result into the cache, we enable\n                        // feuds between queries competing to update the same data in\n                        // incompatible ways, which can lead to an endless cycle of\n                        // cache broadcasts and useless network requests. As with any\n                        // feud, eventually one side must step back from the brink,\n                        // letting the other side(s) have the last word(s). There may\n                        // be other points where we could break this cycle, such as\n                        // silencing the broadcast for cache.writeQuery (not a good\n                        // idea, since it just delays the feud a bit) or somehow\n                        // avoiding the network request that just happened (also bad,\n                        // because the server could return useful new data). All\n                        // options considered, skipping this cache write seems to be\n                        // the least damaging place to break the cycle, because it\n                        // reflects the intuition that we recently wrote this exact\n                        // result into the cache, so the cache *should* already/still\n                        // contain this data. If some other query has clobbered that\n                        // data in the meantime, that's too bad, but there will be no\n                        // winners if every query blindly reverts to its own version\n                        // of the data. This approach also gives the network a chance\n                        // to return new data, which will be written into the cache as\n                        // usual, notifying only those queries that are directly\n                        // affected by the cache updates, as usual. In the future, an\n                        // even more sophisticated cache could perhaps prevent or\n                        // mitigate the clobbering somehow, but that would make this\n                        // particular cache write even less important, and thus\n                        // skipping it would be even safer than it is today.\n                        if (_this.lastDiff && _this.lastDiff.diff.complete) {\n                            // Reuse data from the last good (complete) diff that we\n                            // received, when possible.\n                            result.data = _this.lastDiff.diff.result;\n                            return;\n                        }\n                        // If the previous this.diff was incomplete, fall through to\n                        // re-reading the latest data with cache.diff, below.\n                    }\n                    var diffOptions = _this.getDiffOptions(options.variables);\n                    var diff = cache.diff(diffOptions);\n                    // In case the QueryManager stops this QueryInfo before its\n                    // results are delivered, it's important to avoid restarting the\n                    // cache watch when markResult is called. We also avoid updating\n                    // the watch if we are writing a result that doesn't match the current\n                    // variables to avoid race conditions from broadcasting the wrong\n                    // result.\n                    if (!_this.stopped && equal(_this.variables, options.variables)) {\n                        // Any time we're about to update this.diff, we need to make\n                        // sure we've started watching the cache.\n                        _this.updateWatch(options.variables);\n                    }\n                    // If we're allowed to write to the cache, and we can read a\n                    // complete result from the cache, update result.data to be the\n                    // result from the cache, rather than the raw network result.\n                    // Set without setDiff to avoid triggering a notify call, since\n                    // we have other ways of notifying for this result.\n                    _this.updateLastDiff(diff, diffOptions);\n                    if (diff.complete) {\n                        result.data = diff.result;\n                    }\n                });\n            }\n            else {\n                this.lastWrite = void 0;\n            }\n        }\n    };\n    QueryInfo.prototype.markReady = function () {\n        this.networkError = null;\n        return (this.networkStatus = NetworkStatus.ready);\n    };\n    QueryInfo.prototype.markError = function (error) {\n        this.networkStatus = NetworkStatus.error;\n        this.lastWrite = void 0;\n        this.reset();\n        if (error.graphQLErrors) {\n            this.graphQLErrors = error.graphQLErrors;\n        }\n        if (error.networkError) {\n            this.networkError = error.networkError;\n        }\n        return error;\n    };\n    return QueryInfo;\n}());\nexport { QueryInfo };\nexport function shouldWriteResult(result, errorPolicy) {\n    if (errorPolicy === void 0) { errorPolicy = \"none\"; }\n    var ignoreErrors = errorPolicy === \"ignore\" || errorPolicy === \"all\";\n    var writeWithErrors = !graphQLResultHasError(result);\n    if (!writeWithErrors && ignoreErrors && result.data) {\n        writeWithErrors = true;\n    }\n    return writeWithErrors;\n}\n//# sourceMappingURL=QueryInfo.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant, newInvariantError } from \"../utilities/globals/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { execute } from \"../link/core/index.js\";\nimport { hasDirectives, isExecutionPatchIncrementalResult, isExecutionPatchResult, removeDirectivesFromDocument, } from \"../utilities/index.js\";\nimport { canonicalStringify } from \"../cache/index.js\";\nimport { getDefaultValues, getOperationDefinition, getOperationName, hasClientExports, graphQLResultHasError, getGraphQLErrorsFromResult, Observable, asyncMap, isNonEmptyArray, Concast, makeUniqueId, isDocumentNode, isNonNullObject, DocumentTransform, } from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/common/incrementalResult.js\";\nimport { ApolloError, isApolloError, graphQLResultHasProtocolErrors, } from \"../errors/index.js\";\nimport { ObservableQuery, logMissingFieldErrors } from \"./ObservableQuery.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { QueryInfo, shouldWriteResult, } from \"./QueryInfo.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../errors/index.js\";\nimport { print } from \"../utilities/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar IGNORE = Object.create(null);\nimport { Trie } from \"@wry/trie\";\nimport { AutoCleanedWeakCache, cacheSizes } from \"../utilities/index.js\";\nvar QueryManager = /** @class */ (function () {\n    function QueryManager(options) {\n        var _this = this;\n        this.clientAwareness = {};\n        // All the queries that the QueryManager is currently managing (not\n        // including mutations and subscriptions).\n        this.queries = new Map();\n        // Maps from queryId strings to Promise rejection functions for\n        // currently active queries and fetches.\n        // Use protected instead of private field so\n        // @apollo/experimental-nextjs-app-support can access type info.\n        this.fetchCancelFns = new Map();\n        this.transformCache = new AutoCleanedWeakCache(cacheSizes[\"queryManager.getDocumentInfo\"] ||\n            2000 /* defaultCacheSizes[\"queryManager.getDocumentInfo\"] */);\n        this.queryIdCounter = 1;\n        this.requestIdCounter = 1;\n        this.mutationIdCounter = 1;\n        // Use protected instead of private field so\n        // @apollo/experimental-nextjs-app-support can access type info.\n        this.inFlightLinkObservables = new Trie(false);\n        var defaultDocumentTransform = new DocumentTransform(function (document) { return _this.cache.transformDocument(document); }, \n        // Allow the apollo cache to manage its own transform caches\n        { cache: false });\n        this.cache = options.cache;\n        this.link = options.link;\n        this.defaultOptions = options.defaultOptions;\n        this.queryDeduplication = options.queryDeduplication;\n        this.clientAwareness = options.clientAwareness;\n        this.localState = options.localState;\n        this.ssrMode = options.ssrMode;\n        this.assumeImmutableResults = options.assumeImmutableResults;\n        var documentTransform = options.documentTransform;\n        this.documentTransform =\n            documentTransform ?\n                defaultDocumentTransform\n                    .concat(documentTransform)\n                    // The custom document transform may add new fragment spreads or new\n                    // field selections, so we want to give the cache a chance to run\n                    // again. For example, the InMemoryCache adds __typename to field\n                    // selections and fragments from the fragment registry.\n                    .concat(defaultDocumentTransform)\n                : defaultDocumentTransform;\n        this.defaultContext = options.defaultContext || Object.create(null);\n        if ((this.onBroadcast = options.onBroadcast)) {\n            this.mutationStore = Object.create(null);\n        }\n    }\n    /**\n     * Call this method to terminate any active query processes, making it safe\n     * to dispose of this QueryManager instance.\n     */\n    QueryManager.prototype.stop = function () {\n        var _this = this;\n        this.queries.forEach(function (_info, queryId) {\n            _this.stopQueryNoBroadcast(queryId);\n        });\n        this.cancelPendingFetches(newInvariantError(26));\n    };\n    QueryManager.prototype.cancelPendingFetches = function (error) {\n        this.fetchCancelFns.forEach(function (cancel) { return cancel(error); });\n        this.fetchCancelFns.clear();\n    };\n    QueryManager.prototype.mutate = function (_a) {\n        return __awaiter(this, arguments, void 0, function (_b) {\n            var mutationId, hasClientExports, mutationStoreValue, isOptimistic, self;\n            var _c, _d;\n            var mutation = _b.mutation, variables = _b.variables, optimisticResponse = _b.optimisticResponse, updateQueries = _b.updateQueries, _e = _b.refetchQueries, refetchQueries = _e === void 0 ? [] : _e, _f = _b.awaitRefetchQueries, awaitRefetchQueries = _f === void 0 ? false : _f, updateWithProxyFn = _b.update, onQueryUpdated = _b.onQueryUpdated, _g = _b.fetchPolicy, fetchPolicy = _g === void 0 ? ((_c = this.defaultOptions.mutate) === null || _c === void 0 ? void 0 : _c.fetchPolicy) || \"network-only\" : _g, _h = _b.errorPolicy, errorPolicy = _h === void 0 ? ((_d = this.defaultOptions.mutate) === null || _d === void 0 ? void 0 : _d.errorPolicy) || \"none\" : _h, keepRootFields = _b.keepRootFields, context = _b.context;\n            return __generator(this, function (_j) {\n                switch (_j.label) {\n                    case 0:\n                        invariant(mutation, 27);\n                        invariant(fetchPolicy === \"network-only\" || fetchPolicy === \"no-cache\", 28);\n                        mutationId = this.generateMutationId();\n                        mutation = this.cache.transformForLink(this.transform(mutation));\n                        hasClientExports = this.getDocumentInfo(mutation).hasClientExports;\n                        variables = this.getVariables(mutation, variables);\n                        if (!hasClientExports) return [3 /*break*/, 2];\n                        return [4 /*yield*/, this.localState.addExportedVariables(mutation, variables, context)];\n                    case 1:\n                        variables = (_j.sent());\n                        _j.label = 2;\n                    case 2:\n                        mutationStoreValue = this.mutationStore &&\n                            (this.mutationStore[mutationId] = {\n                                mutation: mutation,\n                                variables: variables,\n                                loading: true,\n                                error: null,\n                            });\n                        isOptimistic = optimisticResponse &&\n                            this.markMutationOptimistic(optimisticResponse, {\n                                mutationId: mutationId,\n                                document: mutation,\n                                variables: variables,\n                                fetchPolicy: fetchPolicy,\n                                errorPolicy: errorPolicy,\n                                context: context,\n                                updateQueries: updateQueries,\n                                update: updateWithProxyFn,\n                                keepRootFields: keepRootFields,\n                            });\n                        this.broadcastQueries();\n                        self = this;\n                        return [2 /*return*/, new Promise(function (resolve, reject) {\n                                return asyncMap(self.getObservableFromLink(mutation, __assign(__assign({}, context), { optimisticResponse: isOptimistic ? optimisticResponse : void 0 }), variables, {}, false), function (result) {\n                                    if (graphQLResultHasError(result) && errorPolicy === \"none\") {\n                                        throw new ApolloError({\n                                            graphQLErrors: getGraphQLErrorsFromResult(result),\n                                        });\n                                    }\n                                    if (mutationStoreValue) {\n                                        mutationStoreValue.loading = false;\n                                        mutationStoreValue.error = null;\n                                    }\n                                    var storeResult = __assign({}, result);\n                                    if (typeof refetchQueries === \"function\") {\n                                        refetchQueries = refetchQueries(storeResult);\n                                    }\n                                    if (errorPolicy === \"ignore\" && graphQLResultHasError(storeResult)) {\n                                        delete storeResult.errors;\n                                    }\n                                    return self.markMutationResult({\n                                        mutationId: mutationId,\n                                        result: storeResult,\n                                        document: mutation,\n                                        variables: variables,\n                                        fetchPolicy: fetchPolicy,\n                                        errorPolicy: errorPolicy,\n                                        context: context,\n                                        update: updateWithProxyFn,\n                                        updateQueries: updateQueries,\n                                        awaitRefetchQueries: awaitRefetchQueries,\n                                        refetchQueries: refetchQueries,\n                                        removeOptimistic: isOptimistic ? mutationId : void 0,\n                                        onQueryUpdated: onQueryUpdated,\n                                        keepRootFields: keepRootFields,\n                                    });\n                                }).subscribe({\n                                    next: function (storeResult) {\n                                        self.broadcastQueries();\n                                        // Since mutations might receive multiple payloads from the\n                                        // ApolloLink chain (e.g. when used with @defer),\n                                        // we resolve with a SingleExecutionResult or after the final\n                                        // ExecutionPatchResult has arrived and we have assembled the\n                                        // multipart response into a single result.\n                                        if (!(\"hasNext\" in storeResult) || storeResult.hasNext === false) {\n                                            resolve(storeResult);\n                                        }\n                                    },\n                                    error: function (err) {\n                                        if (mutationStoreValue) {\n                                            mutationStoreValue.loading = false;\n                                            mutationStoreValue.error = err;\n                                        }\n                                        if (isOptimistic) {\n                                            self.cache.removeOptimistic(mutationId);\n                                        }\n                                        self.broadcastQueries();\n                                        reject(err instanceof ApolloError ? err : (new ApolloError({\n                                            networkError: err,\n                                        })));\n                                    },\n                                });\n                            })];\n                }\n            });\n        });\n    };\n    QueryManager.prototype.markMutationResult = function (mutation, cache) {\n        var _this = this;\n        if (cache === void 0) { cache = this.cache; }\n        var result = mutation.result;\n        var cacheWrites = [];\n        var skipCache = mutation.fetchPolicy === \"no-cache\";\n        if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n            if (!isExecutionPatchIncrementalResult(result)) {\n                cacheWrites.push({\n                    result: result.data,\n                    dataId: \"ROOT_MUTATION\",\n                    query: mutation.document,\n                    variables: mutation.variables,\n                });\n            }\n            if (isExecutionPatchIncrementalResult(result) &&\n                isNonEmptyArray(result.incremental)) {\n                var diff = cache.diff({\n                    id: \"ROOT_MUTATION\",\n                    // The cache complains if passed a mutation where it expects a\n                    // query, so we transform mutations and subscriptions to queries\n                    // (only once, thanks to this.transformCache).\n                    query: this.getDocumentInfo(mutation.document).asQuery,\n                    variables: mutation.variables,\n                    optimistic: false,\n                    returnPartialData: true,\n                });\n                var mergedData = void 0;\n                if (diff.result) {\n                    mergedData = mergeIncrementalData(diff.result, result);\n                }\n                if (typeof mergedData !== \"undefined\") {\n                    // cast the ExecutionPatchResult to FetchResult here since\n                    // ExecutionPatchResult never has `data` when returned from the server\n                    result.data = mergedData;\n                    cacheWrites.push({\n                        result: mergedData,\n                        dataId: \"ROOT_MUTATION\",\n                        query: mutation.document,\n                        variables: mutation.variables,\n                    });\n                }\n            }\n            var updateQueries_1 = mutation.updateQueries;\n            if (updateQueries_1) {\n                this.queries.forEach(function (_a, queryId) {\n                    var observableQuery = _a.observableQuery;\n                    var queryName = observableQuery && observableQuery.queryName;\n                    if (!queryName || !hasOwnProperty.call(updateQueries_1, queryName)) {\n                        return;\n                    }\n                    var updater = updateQueries_1[queryName];\n                    var _b = _this.queries.get(queryId), document = _b.document, variables = _b.variables;\n                    // Read the current query result from the store.\n                    var _c = cache.diff({\n                        query: document,\n                        variables: variables,\n                        returnPartialData: true,\n                        optimistic: false,\n                    }), currentQueryResult = _c.result, complete = _c.complete;\n                    if (complete && currentQueryResult) {\n                        // Run our reducer using the current query result and the mutation result.\n                        var nextQueryResult = updater(currentQueryResult, {\n                            mutationResult: result,\n                            queryName: (document && getOperationName(document)) || void 0,\n                            queryVariables: variables,\n                        });\n                        // Write the modified result back into the store if we got a new result.\n                        if (nextQueryResult) {\n                            cacheWrites.push({\n                                result: nextQueryResult,\n                                dataId: \"ROOT_QUERY\",\n                                query: document,\n                                variables: variables,\n                            });\n                        }\n                    }\n                });\n            }\n        }\n        if (cacheWrites.length > 0 ||\n            (mutation.refetchQueries || \"\").length > 0 ||\n            mutation.update ||\n            mutation.onQueryUpdated ||\n            mutation.removeOptimistic) {\n            var results_1 = [];\n            this.refetchQueries({\n                updateCache: function (cache) {\n                    if (!skipCache) {\n                        cacheWrites.forEach(function (write) { return cache.write(write); });\n                    }\n                    // If the mutation has some writes associated with it then we need to\n                    // apply those writes to the store by running this reducer again with\n                    // a write action.\n                    var update = mutation.update;\n                    // Determine whether result is a SingleExecutionResult,\n                    // or the final ExecutionPatchResult.\n                    var isFinalResult = !isExecutionPatchResult(result) ||\n                        (isExecutionPatchIncrementalResult(result) && !result.hasNext);\n                    if (update) {\n                        if (!skipCache) {\n                            // Re-read the ROOT_MUTATION data we just wrote into the cache\n                            // (the first cache.write call in the cacheWrites.forEach loop\n                            // above), so field read functions have a chance to run for\n                            // fields within mutation result objects.\n                            var diff = cache.diff({\n                                id: \"ROOT_MUTATION\",\n                                // The cache complains if passed a mutation where it expects a\n                                // query, so we transform mutations and subscriptions to queries\n                                // (only once, thanks to this.transformCache).\n                                query: _this.getDocumentInfo(mutation.document).asQuery,\n                                variables: mutation.variables,\n                                optimistic: false,\n                                returnPartialData: true,\n                            });\n                            if (diff.complete) {\n                                result = __assign(__assign({}, result), { data: diff.result });\n                                if (\"incremental\" in result) {\n                                    delete result.incremental;\n                                }\n                                if (\"hasNext\" in result) {\n                                    delete result.hasNext;\n                                }\n                            }\n                        }\n                        // If we've received the whole response,\n                        // either a SingleExecutionResult or the final ExecutionPatchResult,\n                        // call the update function.\n                        if (isFinalResult) {\n                            update(cache, result, {\n                                context: mutation.context,\n                                variables: mutation.variables,\n                            });\n                        }\n                    }\n                    // TODO Do this with cache.evict({ id: 'ROOT_MUTATION' }) but make it\n                    // shallow to allow rolling back optimistic evictions.\n                    if (!skipCache && !mutation.keepRootFields && isFinalResult) {\n                        cache.modify({\n                            id: \"ROOT_MUTATION\",\n                            fields: function (value, _a) {\n                                var fieldName = _a.fieldName, DELETE = _a.DELETE;\n                                return fieldName === \"__typename\" ? value : DELETE;\n                            },\n                        });\n                    }\n                },\n                include: mutation.refetchQueries,\n                // Write the final mutation.result to the root layer of the cache.\n                optimistic: false,\n                // Remove the corresponding optimistic layer at the same time as we\n                // write the final non-optimistic result.\n                removeOptimistic: mutation.removeOptimistic,\n                // Let the caller of client.mutate optionally determine the refetching\n                // behavior for watched queries after the mutation.update function runs.\n                // If no onQueryUpdated function was provided for this mutation, pass\n                // null instead of undefined to disable the default refetching behavior.\n                onQueryUpdated: mutation.onQueryUpdated || null,\n            }).forEach(function (result) { return results_1.push(result); });\n            if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n                // Returning a promise here makes the mutation await that promise, so we\n                // include results in that promise's work if awaitRefetchQueries or an\n                // onQueryUpdated function was specified.\n                return Promise.all(results_1).then(function () { return result; });\n            }\n        }\n        return Promise.resolve(result);\n    };\n    QueryManager.prototype.markMutationOptimistic = function (optimisticResponse, mutation) {\n        var _this = this;\n        var data = typeof optimisticResponse === \"function\" ?\n            optimisticResponse(mutation.variables, { IGNORE: IGNORE })\n            : optimisticResponse;\n        if (data === IGNORE) {\n            return false;\n        }\n        this.cache.recordOptimisticTransaction(function (cache) {\n            try {\n                _this.markMutationResult(__assign(__assign({}, mutation), { result: { data: data } }), cache);\n            }\n            catch (error) {\n                globalThis.__DEV__ !== false && invariant.error(error);\n            }\n        }, mutation.mutationId);\n        return true;\n    };\n    QueryManager.prototype.fetchQuery = function (queryId, options, networkStatus) {\n        return this.fetchConcastWithInfo(queryId, options, networkStatus).concast\n            .promise;\n    };\n    QueryManager.prototype.getQueryStore = function () {\n        var store = Object.create(null);\n        this.queries.forEach(function (info, queryId) {\n            store[queryId] = {\n                variables: info.variables,\n                networkStatus: info.networkStatus,\n                networkError: info.networkError,\n                graphQLErrors: info.graphQLErrors,\n            };\n        });\n        return store;\n    };\n    QueryManager.prototype.resetErrors = function (queryId) {\n        var queryInfo = this.queries.get(queryId);\n        if (queryInfo) {\n            queryInfo.networkError = undefined;\n            queryInfo.graphQLErrors = [];\n        }\n    };\n    QueryManager.prototype.transform = function (document) {\n        return this.documentTransform.transformDocument(document);\n    };\n    QueryManager.prototype.getDocumentInfo = function (document) {\n        var transformCache = this.transformCache;\n        if (!transformCache.has(document)) {\n            var cacheEntry = {\n                // TODO These three calls (hasClientExports, shouldForceResolvers, and\n                // usesNonreactiveDirective) are performing independent full traversals\n                // of the transformed document. We should consider merging these\n                // traversals into a single pass in the future, though the work is\n                // cached after the first time.\n                hasClientExports: hasClientExports(document),\n                hasForcedResolvers: this.localState.shouldForceResolvers(document),\n                hasNonreactiveDirective: hasDirectives([\"nonreactive\"], document),\n                clientQuery: this.localState.clientQuery(document),\n                serverQuery: removeDirectivesFromDocument([\n                    { name: \"client\", remove: true },\n                    { name: \"connection\" },\n                    { name: \"nonreactive\" },\n                ], document),\n                defaultVars: getDefaultValues(getOperationDefinition(document)),\n                // Transform any mutation or subscription operations to query operations\n                // so we can read/write them from/to the cache.\n                asQuery: __assign(__assign({}, document), { definitions: document.definitions.map(function (def) {\n                        if (def.kind === \"OperationDefinition\" &&\n                            def.operation !== \"query\") {\n                            return __assign(__assign({}, def), { operation: \"query\" });\n                        }\n                        return def;\n                    }) }),\n            };\n            transformCache.set(document, cacheEntry);\n        }\n        return transformCache.get(document);\n    };\n    QueryManager.prototype.getVariables = function (document, variables) {\n        return __assign(__assign({}, this.getDocumentInfo(document).defaultVars), variables);\n    };\n    QueryManager.prototype.watchQuery = function (options) {\n        var query = this.transform(options.query);\n        // assign variable default values if supplied\n        // NOTE: We don't modify options.query here with the transformed query to\n        // ensure observable.options.query is set to the raw untransformed query.\n        options = __assign(__assign({}, options), { variables: this.getVariables(query, options.variables) });\n        if (typeof options.notifyOnNetworkStatusChange === \"undefined\") {\n            options.notifyOnNetworkStatusChange = false;\n        }\n        var queryInfo = new QueryInfo(this);\n        var observable = new ObservableQuery({\n            queryManager: this,\n            queryInfo: queryInfo,\n            options: options,\n        });\n        observable[\"lastQuery\"] = query;\n        this.queries.set(observable.queryId, queryInfo);\n        // We give queryInfo the transformed query to ensure the first cache diff\n        // uses the transformed query instead of the raw query\n        queryInfo.init({\n            document: query,\n            observableQuery: observable,\n            variables: observable.variables,\n        });\n        return observable;\n    };\n    QueryManager.prototype.query = function (options, queryId) {\n        var _this = this;\n        if (queryId === void 0) { queryId = this.generateQueryId(); }\n        invariant(options.query, 29);\n        invariant(options.query.kind === \"Document\", 30);\n        invariant(!options.returnPartialData, 31);\n        invariant(!options.pollInterval, 32);\n        return this.fetchQuery(queryId, __assign(__assign({}, options), { query: this.transform(options.query) })).finally(function () { return _this.stopQuery(queryId); });\n    };\n    QueryManager.prototype.generateQueryId = function () {\n        return String(this.queryIdCounter++);\n    };\n    QueryManager.prototype.generateRequestId = function () {\n        return this.requestIdCounter++;\n    };\n    QueryManager.prototype.generateMutationId = function () {\n        return String(this.mutationIdCounter++);\n    };\n    QueryManager.prototype.stopQueryInStore = function (queryId) {\n        this.stopQueryInStoreNoBroadcast(queryId);\n        this.broadcastQueries();\n    };\n    QueryManager.prototype.stopQueryInStoreNoBroadcast = function (queryId) {\n        var queryInfo = this.queries.get(queryId);\n        if (queryInfo)\n            queryInfo.stop();\n    };\n    QueryManager.prototype.clearStore = function (options) {\n        if (options === void 0) { options = {\n            discardWatches: true,\n        }; }\n        // Before we have sent the reset action to the store, we can no longer\n        // rely on the results returned by in-flight requests since these may\n        // depend on values that previously existed in the data portion of the\n        // store. So, we cancel the promises and observers that we have issued\n        // so far and not yet resolved (in the case of queries).\n        this.cancelPendingFetches(newInvariantError(33));\n        this.queries.forEach(function (queryInfo) {\n            if (queryInfo.observableQuery) {\n                // Set loading to true so listeners don't trigger unless they want\n                // results with partial data.\n                queryInfo.networkStatus = NetworkStatus.loading;\n            }\n            else {\n                queryInfo.stop();\n            }\n        });\n        if (this.mutationStore) {\n            this.mutationStore = Object.create(null);\n        }\n        // begin removing data from the store\n        return this.cache.reset(options);\n    };\n    QueryManager.prototype.getObservableQueries = function (include) {\n        var _this = this;\n        if (include === void 0) { include = \"active\"; }\n        var queries = new Map();\n        var queryNamesAndDocs = new Map();\n        var legacyQueryOptions = new Set();\n        if (Array.isArray(include)) {\n            include.forEach(function (desc) {\n                if (typeof desc === \"string\") {\n                    queryNamesAndDocs.set(desc, false);\n                }\n                else if (isDocumentNode(desc)) {\n                    queryNamesAndDocs.set(_this.transform(desc), false);\n                }\n                else if (isNonNullObject(desc) && desc.query) {\n                    legacyQueryOptions.add(desc);\n                }\n            });\n        }\n        this.queries.forEach(function (_a, queryId) {\n            var oq = _a.observableQuery, document = _a.document;\n            if (oq) {\n                if (include === \"all\") {\n                    queries.set(queryId, oq);\n                    return;\n                }\n                var queryName = oq.queryName, fetchPolicy = oq.options.fetchPolicy;\n                if (fetchPolicy === \"standby\" ||\n                    (include === \"active\" && !oq.hasObservers())) {\n                    return;\n                }\n                if (include === \"active\" ||\n                    (queryName && queryNamesAndDocs.has(queryName)) ||\n                    (document && queryNamesAndDocs.has(document))) {\n                    queries.set(queryId, oq);\n                    if (queryName)\n                        queryNamesAndDocs.set(queryName, true);\n                    if (document)\n                        queryNamesAndDocs.set(document, true);\n                }\n            }\n        });\n        if (legacyQueryOptions.size) {\n            legacyQueryOptions.forEach(function (options) {\n                // We will be issuing a fresh network request for this query, so we\n                // pre-allocate a new query ID here, using a special prefix to enable\n                // cleaning up these temporary queries later, after fetching.\n                var queryId = makeUniqueId(\"legacyOneTimeQuery\");\n                var queryInfo = _this.getQuery(queryId).init({\n                    document: options.query,\n                    variables: options.variables,\n                });\n                var oq = new ObservableQuery({\n                    queryManager: _this,\n                    queryInfo: queryInfo,\n                    options: __assign(__assign({}, options), { fetchPolicy: \"network-only\" }),\n                });\n                invariant(oq.queryId === queryId);\n                queryInfo.setObservableQuery(oq);\n                queries.set(queryId, oq);\n            });\n        }\n        if (globalThis.__DEV__ !== false && queryNamesAndDocs.size) {\n            queryNamesAndDocs.forEach(function (included, nameOrDoc) {\n                if (!included) {\n                    globalThis.__DEV__ !== false && invariant.warn(typeof nameOrDoc === \"string\" ? 34 : 35, nameOrDoc);\n                }\n            });\n        }\n        return queries;\n    };\n    QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n        var _this = this;\n        if (includeStandby === void 0) { includeStandby = false; }\n        var observableQueryPromises = [];\n        this.getObservableQueries(includeStandby ? \"all\" : \"active\").forEach(function (observableQuery, queryId) {\n            var fetchPolicy = observableQuery.options.fetchPolicy;\n            observableQuery.resetLastResults();\n            if (includeStandby ||\n                (fetchPolicy !== \"standby\" && fetchPolicy !== \"cache-only\")) {\n                observableQueryPromises.push(observableQuery.refetch());\n            }\n            _this.getQuery(queryId).setDiff(null);\n        });\n        this.broadcastQueries();\n        return Promise.all(observableQueryPromises);\n    };\n    QueryManager.prototype.setObservableQuery = function (observableQuery) {\n        this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n    };\n    QueryManager.prototype.startGraphQLSubscription = function (_a) {\n        var _this = this;\n        var query = _a.query, fetchPolicy = _a.fetchPolicy, _b = _a.errorPolicy, errorPolicy = _b === void 0 ? \"none\" : _b, variables = _a.variables, _c = _a.context, context = _c === void 0 ? {} : _c, _d = _a.extensions, extensions = _d === void 0 ? {} : _d;\n        query = this.transform(query);\n        variables = this.getVariables(query, variables);\n        var makeObservable = function (variables) {\n            return _this.getObservableFromLink(query, context, variables, extensions).map(function (result) {\n                if (fetchPolicy !== \"no-cache\") {\n                    // the subscription interface should handle not sending us results we no longer subscribe to.\n                    // XXX I don't think we ever send in an object with errors, but we might in the future...\n                    if (shouldWriteResult(result, errorPolicy)) {\n                        _this.cache.write({\n                            query: query,\n                            result: result.data,\n                            dataId: \"ROOT_SUBSCRIPTION\",\n                            variables: variables,\n                        });\n                    }\n                    _this.broadcastQueries();\n                }\n                var hasErrors = graphQLResultHasError(result);\n                var hasProtocolErrors = graphQLResultHasProtocolErrors(result);\n                if (hasErrors || hasProtocolErrors) {\n                    var errors = {};\n                    if (hasErrors) {\n                        errors.graphQLErrors = result.errors;\n                    }\n                    if (hasProtocolErrors) {\n                        errors.protocolErrors = result.extensions[PROTOCOL_ERRORS_SYMBOL];\n                    }\n                    // `errorPolicy` is a mechanism for handling GraphQL errors, according\n                    // to our documentation, so we throw protocol errors regardless of the\n                    // set error policy.\n                    if (errorPolicy === \"none\" || hasProtocolErrors) {\n                        throw new ApolloError(errors);\n                    }\n                }\n                if (errorPolicy === \"ignore\") {\n                    delete result.errors;\n                }\n                return result;\n            });\n        };\n        if (this.getDocumentInfo(query).hasClientExports) {\n            var observablePromise_1 = this.localState\n                .addExportedVariables(query, variables, context)\n                .then(makeObservable);\n            return new Observable(function (observer) {\n                var sub = null;\n                observablePromise_1.then(function (observable) { return (sub = observable.subscribe(observer)); }, observer.error);\n                return function () { return sub && sub.unsubscribe(); };\n            });\n        }\n        return makeObservable(variables);\n    };\n    QueryManager.prototype.stopQuery = function (queryId) {\n        this.stopQueryNoBroadcast(queryId);\n        this.broadcastQueries();\n    };\n    QueryManager.prototype.stopQueryNoBroadcast = function (queryId) {\n        this.stopQueryInStoreNoBroadcast(queryId);\n        this.removeQuery(queryId);\n    };\n    QueryManager.prototype.removeQuery = function (queryId) {\n        // teardown all links\n        // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n        // that each add their reject functions to fetchCancelFns.\n        // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n        // The same queryId could have two rejection fns for two promises\n        this.fetchCancelFns.delete(queryId);\n        if (this.queries.has(queryId)) {\n            this.getQuery(queryId).stop();\n            this.queries.delete(queryId);\n        }\n    };\n    QueryManager.prototype.broadcastQueries = function () {\n        if (this.onBroadcast)\n            this.onBroadcast();\n        this.queries.forEach(function (info) { return info.notify(); });\n    };\n    QueryManager.prototype.getLocalState = function () {\n        return this.localState;\n    };\n    QueryManager.prototype.getObservableFromLink = function (query, context, variables, extensions, \n    // Prefer context.queryDeduplication if specified.\n    deduplication) {\n        var _this = this;\n        var _a;\n        if (deduplication === void 0) { deduplication = (_a = context === null || context === void 0 ? void 0 : context.queryDeduplication) !== null && _a !== void 0 ? _a : this.queryDeduplication; }\n        var observable;\n        var _b = this.getDocumentInfo(query), serverQuery = _b.serverQuery, clientQuery = _b.clientQuery;\n        if (serverQuery) {\n            var _c = this, inFlightLinkObservables_1 = _c.inFlightLinkObservables, link = _c.link;\n            var operation = {\n                query: serverQuery,\n                variables: variables,\n                operationName: getOperationName(serverQuery) || void 0,\n                context: this.prepareContext(__assign(__assign({}, context), { forceFetch: !deduplication })),\n                extensions: extensions,\n            };\n            context = operation.context;\n            if (deduplication) {\n                var printedServerQuery_1 = print(serverQuery);\n                var varJson_1 = canonicalStringify(variables);\n                var entry = inFlightLinkObservables_1.lookup(printedServerQuery_1, varJson_1);\n                observable = entry.observable;\n                if (!observable) {\n                    var concast = new Concast([\n                        execute(link, operation),\n                    ]);\n                    observable = entry.observable = concast;\n                    concast.beforeNext(function () {\n                        inFlightLinkObservables_1.remove(printedServerQuery_1, varJson_1);\n                    });\n                }\n            }\n            else {\n                observable = new Concast([\n                    execute(link, operation),\n                ]);\n            }\n        }\n        else {\n            observable = new Concast([Observable.of({ data: {} })]);\n            context = this.prepareContext(context);\n        }\n        if (clientQuery) {\n            observable = asyncMap(observable, function (result) {\n                return _this.localState.runResolvers({\n                    document: clientQuery,\n                    remoteResult: result,\n                    context: context,\n                    variables: variables,\n                });\n            });\n        }\n        return observable;\n    };\n    QueryManager.prototype.getResultsFromLink = function (queryInfo, cacheWriteBehavior, options) {\n        var requestId = (queryInfo.lastRequestId = this.generateRequestId());\n        // Performing transformForLink here gives this.cache a chance to fill in\n        // missing fragment definitions (for example) before sending this document\n        // through the link chain.\n        var linkDocument = this.cache.transformForLink(options.query);\n        return asyncMap(this.getObservableFromLink(linkDocument, options.context, options.variables), function (result) {\n            var graphQLErrors = getGraphQLErrorsFromResult(result);\n            var hasErrors = graphQLErrors.length > 0;\n            var errorPolicy = options.errorPolicy;\n            // If we interrupted this request by calling getResultsFromLink again\n            // with the same QueryInfo object, we ignore the old results.\n            if (requestId >= queryInfo.lastRequestId) {\n                if (hasErrors && errorPolicy === \"none\") {\n                    // Throwing here effectively calls observer.error.\n                    throw queryInfo.markError(new ApolloError({\n                        graphQLErrors: graphQLErrors,\n                    }));\n                }\n                // Use linkDocument rather than queryInfo.document so the\n                // operation/fragments used to write the result are the same as the\n                // ones used to obtain it from the link.\n                queryInfo.markResult(result, linkDocument, options, cacheWriteBehavior);\n                queryInfo.markReady();\n            }\n            var aqr = {\n                data: result.data,\n                loading: false,\n                networkStatus: NetworkStatus.ready,\n            };\n            // In the case we start multiple network requests simulatenously, we\n            // want to ensure we properly set `data` if we're reporting on an old\n            // result which will not be caught by the conditional above that ends up\n            // throwing the markError result.\n            if (hasErrors && errorPolicy === \"none\") {\n                aqr.data = void 0;\n            }\n            if (hasErrors && errorPolicy !== \"ignore\") {\n                aqr.errors = graphQLErrors;\n                aqr.networkStatus = NetworkStatus.error;\n            }\n            return aqr;\n        }, function (networkError) {\n            var error = isApolloError(networkError) ? networkError : (new ApolloError({ networkError: networkError }));\n            // Avoid storing errors from older interrupted queries.\n            if (requestId >= queryInfo.lastRequestId) {\n                queryInfo.markError(error);\n            }\n            throw error;\n        });\n    };\n    QueryManager.prototype.fetchConcastWithInfo = function (queryId, options, \n    // The initial networkStatus for this fetch, most often\n    // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n    // or setVariables.\n    networkStatus, query) {\n        var _this = this;\n        if (networkStatus === void 0) { networkStatus = NetworkStatus.loading; }\n        if (query === void 0) { query = options.query; }\n        var variables = this.getVariables(query, options.variables);\n        var queryInfo = this.getQuery(queryId);\n        var defaults = this.defaultOptions.watchQuery;\n        var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? (defaults && defaults.fetchPolicy) || \"cache-first\" : _a, _b = options.errorPolicy, errorPolicy = _b === void 0 ? (defaults && defaults.errorPolicy) || \"none\" : _b, _c = options.returnPartialData, returnPartialData = _c === void 0 ? false : _c, _d = options.notifyOnNetworkStatusChange, notifyOnNetworkStatusChange = _d === void 0 ? false : _d, _e = options.context, context = _e === void 0 ? {} : _e;\n        var normalized = Object.assign({}, options, {\n            query: query,\n            variables: variables,\n            fetchPolicy: fetchPolicy,\n            errorPolicy: errorPolicy,\n            returnPartialData: returnPartialData,\n            notifyOnNetworkStatusChange: notifyOnNetworkStatusChange,\n            context: context,\n        });\n        var fromVariables = function (variables) {\n            // Since normalized is always a fresh copy of options, it's safe to\n            // modify its properties here, rather than creating yet another new\n            // WatchQueryOptions object.\n            normalized.variables = variables;\n            var sourcesWithInfo = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);\n            if (\n            // If we're in standby, postpone advancing options.fetchPolicy using\n            // applyNextFetchPolicy.\n            normalized.fetchPolicy !== \"standby\" &&\n                // The \"standby\" policy currently returns [] from fetchQueryByPolicy, so\n                // this is another way to detect when nothing was done/fetched.\n                sourcesWithInfo.sources.length > 0 &&\n                queryInfo.observableQuery) {\n                queryInfo.observableQuery[\"applyNextFetchPolicy\"](\"after-fetch\", options);\n            }\n            return sourcesWithInfo;\n        };\n        // This cancel function needs to be set before the concast is created,\n        // in case concast creation synchronously cancels the request.\n        var cleanupCancelFn = function () { return _this.fetchCancelFns.delete(queryId); };\n        this.fetchCancelFns.set(queryId, function (reason) {\n            cleanupCancelFn();\n            // This delay ensures the concast variable has been initialized.\n            setTimeout(function () { return concast.cancel(reason); });\n        });\n        var concast, containsDataFromLink;\n        // If the query has @export(as: ...) directives, then we need to\n        // process those directives asynchronously. When there are no\n        // @export directives (the common case), we deliberately avoid\n        // wrapping the result of this.fetchQueryByPolicy in a Promise,\n        // since the timing of result delivery is (unfortunately) important\n        // for backwards compatibility. TODO This code could be simpler if\n        // we deprecated and removed LocalState.\n        if (this.getDocumentInfo(normalized.query).hasClientExports) {\n            concast = new Concast(this.localState\n                .addExportedVariables(normalized.query, normalized.variables, normalized.context)\n                .then(fromVariables)\n                .then(function (sourcesWithInfo) { return sourcesWithInfo.sources; }));\n            // there is just no way we can synchronously get the *right* value here,\n            // so we will assume `true`, which is the behaviour before the bug fix in\n            // #10597. This means that bug is not fixed in that case, and is probably\n            // un-fixable with reasonable effort for the edge case of @export as\n            // directives.\n            containsDataFromLink = true;\n        }\n        else {\n            var sourcesWithInfo = fromVariables(normalized.variables);\n            containsDataFromLink = sourcesWithInfo.fromLink;\n            concast = new Concast(sourcesWithInfo.sources);\n        }\n        concast.promise.then(cleanupCancelFn, cleanupCancelFn);\n        return {\n            concast: concast,\n            fromLink: containsDataFromLink,\n        };\n    };\n    QueryManager.prototype.refetchQueries = function (_a) {\n        var _this = this;\n        var updateCache = _a.updateCache, include = _a.include, _b = _a.optimistic, optimistic = _b === void 0 ? false : _b, _c = _a.removeOptimistic, removeOptimistic = _c === void 0 ? optimistic ? makeUniqueId(\"refetchQueries\") : void 0 : _c, onQueryUpdated = _a.onQueryUpdated;\n        var includedQueriesById = new Map();\n        if (include) {\n            this.getObservableQueries(include).forEach(function (oq, queryId) {\n                includedQueriesById.set(queryId, {\n                    oq: oq,\n                    lastDiff: _this.getQuery(queryId).getDiff(),\n                });\n            });\n        }\n        var results = new Map();\n        if (updateCache) {\n            this.cache.batch({\n                update: updateCache,\n                // Since you can perform any combination of cache reads and/or writes in\n                // the cache.batch update function, its optimistic option can be either\n                // a boolean or a string, representing three distinct modes of\n                // operation:\n                //\n                // * false: read/write only the root layer\n                // * true: read/write the topmost layer\n                // * string: read/write a fresh optimistic layer with that ID string\n                //\n                // When typeof optimistic === \"string\", a new optimistic layer will be\n                // temporarily created within cache.batch with that string as its ID. If\n                // we then pass that same string as the removeOptimistic option, we can\n                // make cache.batch immediately remove the optimistic layer after\n                // running the updateCache function, triggering only one broadcast.\n                //\n                // However, the refetchQueries method accepts only true or false for its\n                // optimistic option (not string). We interpret true to mean a temporary\n                // optimistic layer should be created, to allow efficiently rolling back\n                // the effect of the updateCache function, which involves passing a\n                // string instead of true as the optimistic option to cache.batch, when\n                // refetchQueries receives optimistic: true.\n                //\n                // In other words, we are deliberately not supporting the use case of\n                // writing to an *existing* optimistic layer (using the refetchQueries\n                // updateCache function), since that would potentially interfere with\n                // other optimistic updates in progress. Instead, you can read/write\n                // only the root layer by passing optimistic: false to refetchQueries,\n                // or you can read/write a brand new optimistic layer that will be\n                // automatically removed by passing optimistic: true.\n                optimistic: (optimistic && removeOptimistic) || false,\n                // The removeOptimistic option can also be provided by itself, even if\n                // optimistic === false, to remove some previously-added optimistic\n                // layer safely and efficiently, like we do in markMutationResult.\n                //\n                // If an explicit removeOptimistic string is provided with optimistic:\n                // true, the removeOptimistic string will determine the ID of the\n                // temporary optimistic layer, in case that ever matters.\n                removeOptimistic: removeOptimistic,\n                onWatchUpdated: function (watch, diff, lastDiff) {\n                    var oq = watch.watcher instanceof QueryInfo && watch.watcher.observableQuery;\n                    if (oq) {\n                        if (onQueryUpdated) {\n                            // Since we're about to handle this query now, remove it from\n                            // includedQueriesById, in case it was added earlier because of\n                            // options.include.\n                            includedQueriesById.delete(oq.queryId);\n                            var result = onQueryUpdated(oq, diff, lastDiff);\n                            if (result === true) {\n                                // The onQueryUpdated function requested the default refetching\n                                // behavior by returning true.\n                                result = oq.refetch();\n                            }\n                            // Record the result in the results Map, as long as onQueryUpdated\n                            // did not return false to skip/ignore this result.\n                            if (result !== false) {\n                                results.set(oq, result);\n                            }\n                            // Allow the default cache broadcast to happen, except when\n                            // onQueryUpdated returns false.\n                            return result;\n                        }\n                        if (onQueryUpdated !== null) {\n                            // If we don't have an onQueryUpdated function, and onQueryUpdated\n                            // was not disabled by passing null, make sure this query is\n                            // \"included\" like any other options.include-specified query.\n                            includedQueriesById.set(oq.queryId, { oq: oq, lastDiff: lastDiff, diff: diff });\n                        }\n                    }\n                },\n            });\n        }\n        if (includedQueriesById.size) {\n            includedQueriesById.forEach(function (_a, queryId) {\n                var oq = _a.oq, lastDiff = _a.lastDiff, diff = _a.diff;\n                var result;\n                // If onQueryUpdated is provided, we want to use it for all included\n                // queries, even the QueryOptions ones.\n                if (onQueryUpdated) {\n                    if (!diff) {\n                        var info = oq[\"queryInfo\"];\n                        info.reset(); // Force info.getDiff() to read from cache.\n                        diff = info.getDiff();\n                    }\n                    result = onQueryUpdated(oq, diff, lastDiff);\n                }\n                // Otherwise, we fall back to refetching.\n                if (!onQueryUpdated || result === true) {\n                    result = oq.refetch();\n                }\n                if (result !== false) {\n                    results.set(oq, result);\n                }\n                if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n                    _this.stopQueryNoBroadcast(queryId);\n                }\n            });\n        }\n        if (removeOptimistic) {\n            // In case no updateCache callback was provided (so cache.batch was not\n            // called above, and thus did not already remove the optimistic layer),\n            // remove it here. Since this is a no-op when the layer has already been\n            // removed, we do it even if we called cache.batch above, since it's\n            // possible this.cache is an instance of some ApolloCache subclass other\n            // than InMemoryCache, and does not fully support the removeOptimistic\n            // option for cache.batch.\n            this.cache.removeOptimistic(removeOptimistic);\n        }\n        return results;\n    };\n    QueryManager.prototype.fetchQueryByPolicy = function (queryInfo, _a, \n    // The initial networkStatus for this fetch, most often\n    // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n    // or setVariables.\n    networkStatus) {\n        var _this = this;\n        var query = _a.query, variables = _a.variables, fetchPolicy = _a.fetchPolicy, refetchWritePolicy = _a.refetchWritePolicy, errorPolicy = _a.errorPolicy, returnPartialData = _a.returnPartialData, context = _a.context, notifyOnNetworkStatusChange = _a.notifyOnNetworkStatusChange;\n        var oldNetworkStatus = queryInfo.networkStatus;\n        queryInfo.init({\n            document: query,\n            variables: variables,\n            networkStatus: networkStatus,\n        });\n        var readCache = function () { return queryInfo.getDiff(); };\n        var resultsFromCache = function (diff, networkStatus) {\n            if (networkStatus === void 0) { networkStatus = queryInfo.networkStatus || NetworkStatus.loading; }\n            var data = diff.result;\n            if (globalThis.__DEV__ !== false && !returnPartialData && !equal(data, {})) {\n                logMissingFieldErrors(diff.missing);\n            }\n            var fromData = function (data) {\n                return Observable.of(__assign({ data: data, loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus }, (diff.complete ? null : { partial: true })));\n            };\n            if (data && _this.getDocumentInfo(query).hasForcedResolvers) {\n                return _this.localState\n                    .runResolvers({\n                    document: query,\n                    remoteResult: { data: data },\n                    context: context,\n                    variables: variables,\n                    onlyRunForcedResolvers: true,\n                })\n                    .then(function (resolved) { return fromData(resolved.data || void 0); });\n            }\n            // Resolves https://github.com/apollographql/apollo-client/issues/10317.\n            // If errorPolicy is 'none' and notifyOnNetworkStatusChange is true,\n            // data was incorrectly returned from the cache on refetch:\n            // if diff.missing exists, we should not return cache data.\n            if (errorPolicy === \"none\" &&\n                networkStatus === NetworkStatus.refetch &&\n                Array.isArray(diff.missing)) {\n                return fromData(void 0);\n            }\n            return fromData(data);\n        };\n        var cacheWriteBehavior = fetchPolicy === \"no-cache\" ? 0 /* CacheWriteBehavior.FORBID */\n            // Watched queries must opt into overwriting existing data on refetch,\n            // by passing refetchWritePolicy: \"overwrite\" in their WatchQueryOptions.\n            : (networkStatus === NetworkStatus.refetch &&\n                refetchWritePolicy !== \"merge\") ?\n                1 /* CacheWriteBehavior.OVERWRITE */\n                : 2 /* CacheWriteBehavior.MERGE */;\n        var resultsFromLink = function () {\n            return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, {\n                query: query,\n                variables: variables,\n                context: context,\n                fetchPolicy: fetchPolicy,\n                errorPolicy: errorPolicy,\n            });\n        };\n        var shouldNotify = notifyOnNetworkStatusChange &&\n            typeof oldNetworkStatus === \"number\" &&\n            oldNetworkStatus !== networkStatus &&\n            isNetworkRequestInFlight(networkStatus);\n        switch (fetchPolicy) {\n            default:\n            case \"cache-first\": {\n                var diff = readCache();\n                if (diff.complete) {\n                    return {\n                        fromLink: false,\n                        sources: [resultsFromCache(diff, queryInfo.markReady())],\n                    };\n                }\n                if (returnPartialData || shouldNotify) {\n                    return {\n                        fromLink: true,\n                        sources: [resultsFromCache(diff), resultsFromLink()],\n                    };\n                }\n                return { fromLink: true, sources: [resultsFromLink()] };\n            }\n            case \"cache-and-network\": {\n                var diff = readCache();\n                if (diff.complete || returnPartialData || shouldNotify) {\n                    return {\n                        fromLink: true,\n                        sources: [resultsFromCache(diff), resultsFromLink()],\n                    };\n                }\n                return { fromLink: true, sources: [resultsFromLink()] };\n            }\n            case \"cache-only\":\n                return {\n                    fromLink: false,\n                    sources: [resultsFromCache(readCache(), queryInfo.markReady())],\n                };\n            case \"network-only\":\n                if (shouldNotify) {\n                    return {\n                        fromLink: true,\n                        sources: [resultsFromCache(readCache()), resultsFromLink()],\n                    };\n                }\n                return { fromLink: true, sources: [resultsFromLink()] };\n            case \"no-cache\":\n                if (shouldNotify) {\n                    return {\n                        fromLink: true,\n                        // Note that queryInfo.getDiff() for no-cache queries does not call\n                        // cache.diff, but instead returns a { complete: false } stub result\n                        // when there is no queryInfo.diff already defined.\n                        sources: [resultsFromCache(queryInfo.getDiff()), resultsFromLink()],\n                    };\n                }\n                return { fromLink: true, sources: [resultsFromLink()] };\n            case \"standby\":\n                return { fromLink: false, sources: [] };\n        }\n    };\n    QueryManager.prototype.getQuery = function (queryId) {\n        if (queryId && !this.queries.has(queryId)) {\n            this.queries.set(queryId, new QueryInfo(this, queryId));\n        }\n        return this.queries.get(queryId);\n    };\n    QueryManager.prototype.prepareContext = function (context) {\n        if (context === void 0) { context = {}; }\n        var newContext = this.localState.prepareContext(context);\n        return __assign(__assign(__assign({}, this.defaultContext), newContext), { clientAwareness: this.clientAwareness });\n    };\n    return QueryManager;\n}());\nexport { QueryManager };\n//# sourceMappingURL=QueryManager.js.map","import { Kind } from './kinds.mjs';\nexport function isDefinitionNode(node) {\n  return (\n    isExecutableDefinitionNode(node) ||\n    isTypeSystemDefinitionNode(node) ||\n    isTypeSystemExtensionNode(node)\n  );\n}\nexport function isExecutableDefinitionNode(node) {\n  return (\n    node.kind === Kind.OPERATION_DEFINITION ||\n    node.kind === Kind.FRAGMENT_DEFINITION\n  );\n}\nexport function isSelectionNode(node) {\n  return (\n    node.kind === Kind.FIELD ||\n    node.kind === Kind.FRAGMENT_SPREAD ||\n    node.kind === Kind.INLINE_FRAGMENT\n  );\n}\nexport function isValueNode(node) {\n  return (\n    node.kind === Kind.VARIABLE ||\n    node.kind === Kind.INT ||\n    node.kind === Kind.FLOAT ||\n    node.kind === Kind.STRING ||\n    node.kind === Kind.BOOLEAN ||\n    node.kind === Kind.NULL ||\n    node.kind === Kind.ENUM ||\n    node.kind === Kind.LIST ||\n    node.kind === Kind.OBJECT\n  );\n}\nexport function isConstValueNode(node) {\n  return (\n    isValueNode(node) &&\n    (node.kind === Kind.LIST\n      ? node.values.some(isConstValueNode)\n      : node.kind === Kind.OBJECT\n      ? node.fields.some((field) => isConstValueNode(field.value))\n      : node.kind !== Kind.VARIABLE)\n  );\n}\nexport function isTypeNode(node) {\n  return (\n    node.kind === Kind.NAMED_TYPE ||\n    node.kind === Kind.LIST_TYPE ||\n    node.kind === Kind.NON_NULL_TYPE\n  );\n}\nexport function isTypeSystemDefinitionNode(node) {\n  return (\n    node.kind === Kind.SCHEMA_DEFINITION ||\n    isTypeDefinitionNode(node) ||\n    node.kind === Kind.DIRECTIVE_DEFINITION\n  );\n}\nexport function isTypeDefinitionNode(node) {\n  return (\n    node.kind === Kind.SCALAR_TYPE_DEFINITION ||\n    node.kind === Kind.OBJECT_TYPE_DEFINITION ||\n    node.kind === Kind.INTERFACE_TYPE_DEFINITION ||\n    node.kind === Kind.UNION_TYPE_DEFINITION ||\n    node.kind === Kind.ENUM_TYPE_DEFINITION ||\n    node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION\n  );\n}\nexport function isTypeSystemExtensionNode(node) {\n  return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);\n}\nexport function isTypeExtensionNode(node) {\n  return (\n    node.kind === Kind.SCALAR_TYPE_EXTENSION ||\n    node.kind === Kind.OBJECT_TYPE_EXTENSION ||\n    node.kind === Kind.INTERFACE_TYPE_EXTENSION ||\n    node.kind === Kind.UNION_TYPE_EXTENSION ||\n    node.kind === Kind.ENUM_TYPE_EXTENSION ||\n    node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION\n  );\n}\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { visit, BREAK, isSelectionNode } from \"graphql\";\nimport { argumentsObjectFromField, buildQueryFromSelectionSet, createFragmentMap, getFragmentDefinitions, getMainDefinition, hasDirectives, isField, isInlineFragment, mergeDeep, mergeDeepArray, removeClientSetsFromDocument, resultKeyNameFromField, shouldInclude, } from \"../utilities/index.js\";\nimport { cacheSlot } from \"../cache/index.js\";\nvar LocalState = /** @class */ (function () {\n    function LocalState(_a) {\n        var cache = _a.cache, client = _a.client, resolvers = _a.resolvers, fragmentMatcher = _a.fragmentMatcher;\n        this.selectionsToResolveCache = new WeakMap();\n        this.cache = cache;\n        if (client) {\n            this.client = client;\n        }\n        if (resolvers) {\n            this.addResolvers(resolvers);\n        }\n        if (fragmentMatcher) {\n            this.setFragmentMatcher(fragmentMatcher);\n        }\n    }\n    LocalState.prototype.addResolvers = function (resolvers) {\n        var _this = this;\n        this.resolvers = this.resolvers || {};\n        if (Array.isArray(resolvers)) {\n            resolvers.forEach(function (resolverGroup) {\n                _this.resolvers = mergeDeep(_this.resolvers, resolverGroup);\n            });\n        }\n        else {\n            this.resolvers = mergeDeep(this.resolvers, resolvers);\n        }\n    };\n    LocalState.prototype.setResolvers = function (resolvers) {\n        this.resolvers = {};\n        this.addResolvers(resolvers);\n    };\n    LocalState.prototype.getResolvers = function () {\n        return this.resolvers || {};\n    };\n    // Run local client resolvers against the incoming query and remote data.\n    // Locally resolved field values are merged with the incoming remote data,\n    // and returned. Note that locally resolved fields will overwrite\n    // remote data using the same field name.\n    LocalState.prototype.runResolvers = function (_a) {\n        return __awaiter(this, arguments, void 0, function (_b) {\n            var document = _b.document, remoteResult = _b.remoteResult, context = _b.context, variables = _b.variables, _c = _b.onlyRunForcedResolvers, onlyRunForcedResolvers = _c === void 0 ? false : _c;\n            return __generator(this, function (_d) {\n                if (document) {\n                    return [2 /*return*/, this.resolveDocument(document, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function (localResult) { return (__assign(__assign({}, remoteResult), { data: localResult.result })); })];\n                }\n                return [2 /*return*/, remoteResult];\n            });\n        });\n    };\n    LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {\n        this.fragmentMatcher = fragmentMatcher;\n    };\n    LocalState.prototype.getFragmentMatcher = function () {\n        return this.fragmentMatcher;\n    };\n    // Client queries contain everything in the incoming document (if a @client\n    // directive is found).\n    LocalState.prototype.clientQuery = function (document) {\n        if (hasDirectives([\"client\"], document)) {\n            if (this.resolvers) {\n                return document;\n            }\n        }\n        return null;\n    };\n    // Server queries are stripped of all @client based selection sets.\n    LocalState.prototype.serverQuery = function (document) {\n        return removeClientSetsFromDocument(document);\n    };\n    LocalState.prototype.prepareContext = function (context) {\n        var cache = this.cache;\n        return __assign(__assign({}, context), { cache: cache, \n            // Getting an entry's cache key is useful for local state resolvers.\n            getCacheKey: function (obj) {\n                return cache.identify(obj);\n            } });\n    };\n    // To support `@client @export(as: \"someVar\")` syntax, we'll first resolve\n    // @client @export fields locally, then pass the resolved values back to be\n    // used alongside the original operation variables.\n    LocalState.prototype.addExportedVariables = function (document_1) {\n        return __awaiter(this, arguments, void 0, function (document, variables, context) {\n            if (variables === void 0) { variables = {}; }\n            if (context === void 0) { context = {}; }\n            return __generator(this, function (_a) {\n                if (document) {\n                    return [2 /*return*/, this.resolveDocument(document, this.buildRootValueFromCache(document, variables) || {}, this.prepareContext(context), variables).then(function (data) { return (__assign(__assign({}, variables), data.exportedVariables)); })];\n                }\n                return [2 /*return*/, __assign({}, variables)];\n            });\n        });\n    };\n    LocalState.prototype.shouldForceResolvers = function (document) {\n        var forceResolvers = false;\n        visit(document, {\n            Directive: {\n                enter: function (node) {\n                    if (node.name.value === \"client\" && node.arguments) {\n                        forceResolvers = node.arguments.some(function (arg) {\n                            return arg.name.value === \"always\" &&\n                                arg.value.kind === \"BooleanValue\" &&\n                                arg.value.value === true;\n                        });\n                        if (forceResolvers) {\n                            return BREAK;\n                        }\n                    }\n                },\n            },\n        });\n        return forceResolvers;\n    };\n    // Query the cache and return matching data.\n    LocalState.prototype.buildRootValueFromCache = function (document, variables) {\n        return this.cache.diff({\n            query: buildQueryFromSelectionSet(document),\n            variables: variables,\n            returnPartialData: true,\n            optimistic: false,\n        }).result;\n    };\n    LocalState.prototype.resolveDocument = function (document_1, rootValue_1) {\n        return __awaiter(this, arguments, void 0, function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {\n            var mainDefinition, fragments, fragmentMap, selectionsToResolve, definitionOperation, defaultOperationType, _a, cache, client, execContext, isClientFieldDescendant;\n            if (context === void 0) { context = {}; }\n            if (variables === void 0) { variables = {}; }\n            if (fragmentMatcher === void 0) { fragmentMatcher = function () { return true; }; }\n            if (onlyRunForcedResolvers === void 0) { onlyRunForcedResolvers = false; }\n            return __generator(this, function (_b) {\n                mainDefinition = getMainDefinition(document);\n                fragments = getFragmentDefinitions(document);\n                fragmentMap = createFragmentMap(fragments);\n                selectionsToResolve = this.collectSelectionsToResolve(mainDefinition, fragmentMap);\n                definitionOperation = mainDefinition.operation;\n                defaultOperationType = definitionOperation ?\n                    definitionOperation.charAt(0).toUpperCase() +\n                        definitionOperation.slice(1)\n                    : \"Query\";\n                _a = this, cache = _a.cache, client = _a.client;\n                execContext = {\n                    fragmentMap: fragmentMap,\n                    context: __assign(__assign({}, context), { cache: cache, client: client }),\n                    variables: variables,\n                    fragmentMatcher: fragmentMatcher,\n                    defaultOperationType: defaultOperationType,\n                    exportedVariables: {},\n                    selectionsToResolve: selectionsToResolve,\n                    onlyRunForcedResolvers: onlyRunForcedResolvers,\n                };\n                isClientFieldDescendant = false;\n                return [2 /*return*/, this.resolveSelectionSet(mainDefinition.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (result) { return ({\n                        result: result,\n                        exportedVariables: execContext.exportedVariables,\n                    }); })];\n            });\n        });\n    };\n    LocalState.prototype.resolveSelectionSet = function (selectionSet, isClientFieldDescendant, rootValue, execContext) {\n        return __awaiter(this, void 0, void 0, function () {\n            var fragmentMap, context, variables, resultsToMerge, execute;\n            var _this = this;\n            return __generator(this, function (_a) {\n                fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;\n                resultsToMerge = [rootValue];\n                execute = function (selection) { return __awaiter(_this, void 0, void 0, function () {\n                    var fragment, typeCondition;\n                    return __generator(this, function (_a) {\n                        if (!isClientFieldDescendant &&\n                            !execContext.selectionsToResolve.has(selection)) {\n                            // Skip selections without @client directives\n                            // (still processing if one of the ancestors or one of the child fields has @client directive)\n                            return [2 /*return*/];\n                        }\n                        if (!shouldInclude(selection, variables)) {\n                            // Skip this entirely.\n                            return [2 /*return*/];\n                        }\n                        if (isField(selection)) {\n                            return [2 /*return*/, this.resolveField(selection, isClientFieldDescendant, rootValue, execContext).then(function (fieldResult) {\n                                    var _a;\n                                    if (typeof fieldResult !== \"undefined\") {\n                                        resultsToMerge.push((_a = {},\n                                            _a[resultKeyNameFromField(selection)] = fieldResult,\n                                            _a));\n                                    }\n                                })];\n                        }\n                        if (isInlineFragment(selection)) {\n                            fragment = selection;\n                        }\n                        else {\n                            // This is a named fragment.\n                            fragment = fragmentMap[selection.name.value];\n                            invariant(fragment, 18, selection.name.value);\n                        }\n                        if (fragment && fragment.typeCondition) {\n                            typeCondition = fragment.typeCondition.name.value;\n                            if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n                                return [2 /*return*/, this.resolveSelectionSet(fragment.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (fragmentResult) {\n                                        resultsToMerge.push(fragmentResult);\n                                    })];\n                            }\n                        }\n                        return [2 /*return*/];\n                    });\n                }); };\n                return [2 /*return*/, Promise.all(selectionSet.selections.map(execute)).then(function () {\n                        return mergeDeepArray(resultsToMerge);\n                    })];\n            });\n        });\n    };\n    LocalState.prototype.resolveField = function (field, isClientFieldDescendant, rootValue, execContext) {\n        return __awaiter(this, void 0, void 0, function () {\n            var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;\n            var _this = this;\n            return __generator(this, function (_a) {\n                if (!rootValue) {\n                    return [2 /*return*/, null];\n                }\n                variables = execContext.variables;\n                fieldName = field.name.value;\n                aliasedFieldName = resultKeyNameFromField(field);\n                aliasUsed = fieldName !== aliasedFieldName;\n                defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n                resultPromise = Promise.resolve(defaultResult);\n                // Usually all local resolvers are run when passing through here, but\n                // if we've specifically identified that we only want to run forced\n                // resolvers (that is, resolvers for fields marked with\n                // `@client(always: true)`), then we'll skip running non-forced resolvers.\n                if (!execContext.onlyRunForcedResolvers ||\n                    this.shouldForceResolvers(field)) {\n                    resolverType = rootValue.__typename || execContext.defaultOperationType;\n                    resolverMap = this.resolvers && this.resolvers[resolverType];\n                    if (resolverMap) {\n                        resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n                        if (resolve) {\n                            resultPromise = Promise.resolve(\n                            // In case the resolve function accesses reactive variables,\n                            // set cacheSlot to the current cache instance.\n                            cacheSlot.withValue(this.cache, resolve, [\n                                rootValue,\n                                argumentsObjectFromField(field, variables),\n                                execContext.context,\n                                { field: field, fragmentMap: execContext.fragmentMap },\n                            ]));\n                        }\n                    }\n                }\n                return [2 /*return*/, resultPromise.then(function (result) {\n                        var _a, _b;\n                        if (result === void 0) { result = defaultResult; }\n                        // If an @export directive is associated with the current field, store\n                        // the `as` export variable name and current result for later use.\n                        if (field.directives) {\n                            field.directives.forEach(function (directive) {\n                                if (directive.name.value === \"export\" && directive.arguments) {\n                                    directive.arguments.forEach(function (arg) {\n                                        if (arg.name.value === \"as\" && arg.value.kind === \"StringValue\") {\n                                            execContext.exportedVariables[arg.value.value] = result;\n                                        }\n                                    });\n                                }\n                            });\n                        }\n                        // Handle all scalar types here.\n                        if (!field.selectionSet) {\n                            return result;\n                        }\n                        // From here down, the field has a selection set, which means it's trying\n                        // to query a GraphQLObjectType.\n                        if (result == null) {\n                            // Basically any field in a GraphQL response can be null, or missing\n                            return result;\n                        }\n                        var isClientField = (_b = (_a = field.directives) === null || _a === void 0 ? void 0 : _a.some(function (d) { return d.name.value === \"client\"; })) !== null && _b !== void 0 ? _b : false;\n                        if (Array.isArray(result)) {\n                            return _this.resolveSubSelectedArray(field, isClientFieldDescendant || isClientField, result, execContext);\n                        }\n                        // Returned value is an object, and the query has a sub-selection. Recurse.\n                        if (field.selectionSet) {\n                            return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant || isClientField, result, execContext);\n                        }\n                    })];\n            });\n        });\n    };\n    LocalState.prototype.resolveSubSelectedArray = function (field, isClientFieldDescendant, result, execContext) {\n        var _this = this;\n        return Promise.all(result.map(function (item) {\n            if (item === null) {\n                return null;\n            }\n            // This is a nested array, recurse.\n            if (Array.isArray(item)) {\n                return _this.resolveSubSelectedArray(field, isClientFieldDescendant, item, execContext);\n            }\n            // This is an object, run the selection set on it.\n            if (field.selectionSet) {\n                return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant, item, execContext);\n            }\n        }));\n    };\n    // Collect selection nodes on paths from document root down to all @client directives.\n    // This function takes into account transitive fragment spreads.\n    // Complexity equals to a single `visit` over the full document.\n    LocalState.prototype.collectSelectionsToResolve = function (mainDefinition, fragmentMap) {\n        var isSingleASTNode = function (node) { return !Array.isArray(node); };\n        var selectionsToResolveCache = this.selectionsToResolveCache;\n        function collectByDefinition(definitionNode) {\n            if (!selectionsToResolveCache.has(definitionNode)) {\n                var matches_1 = new Set();\n                selectionsToResolveCache.set(definitionNode, matches_1);\n                visit(definitionNode, {\n                    Directive: function (node, _, __, ___, ancestors) {\n                        if (node.name.value === \"client\") {\n                            ancestors.forEach(function (node) {\n                                if (isSingleASTNode(node) && isSelectionNode(node)) {\n                                    matches_1.add(node);\n                                }\n                            });\n                        }\n                    },\n                    FragmentSpread: function (spread, _, __, ___, ancestors) {\n                        var fragment = fragmentMap[spread.name.value];\n                        invariant(fragment, 19, spread.name.value);\n                        var fragmentSelections = collectByDefinition(fragment);\n                        if (fragmentSelections.size > 0) {\n                            // Fragment for this spread contains @client directive (either directly or transitively)\n                            // Collect selection nodes on paths from the root down to fields with the @client directive\n                            ancestors.forEach(function (node) {\n                                if (isSingleASTNode(node) && isSelectionNode(node)) {\n                                    matches_1.add(node);\n                                }\n                            });\n                            matches_1.add(spread);\n                            fragmentSelections.forEach(function (selection) {\n                                matches_1.add(selection);\n                            });\n                        }\n                    },\n                });\n            }\n            return selectionsToResolveCache.get(definitionNode);\n        }\n        return collectByDefinition(mainDefinition);\n    };\n    return LocalState;\n}());\nexport { LocalState };\n//# sourceMappingURL=LocalState.js.map","import { __assign } from \"tslib\";\nimport { invariant, newInvariantError } from \"../utilities/globals/index.js\";\nimport { ApolloLink, execute } from \"../link/core/index.js\";\nimport { version } from \"../version.js\";\nimport { HttpLink } from \"../link/http/index.js\";\nimport { QueryManager } from \"./QueryManager.js\";\nimport { LocalState } from \"./LocalState.js\";\nvar hasSuggestedDevtools = false;\n// Though mergeOptions now resides in @apollo/client/utilities, it was\n// previously declared and exported from this module, and then reexported from\n// @apollo/client/core. Since we need to preserve that API anyway, the easiest\n// solution is to reexport mergeOptions where it was previously declared (here).\nimport { mergeOptions } from \"../utilities/index.js\";\nimport { getApolloClientMemoryInternals } from \"../utilities/caching/getMemoryInternals.js\";\nexport { mergeOptions };\n/**\n * This is the primary Apollo Client class. It is used to send GraphQL documents (i.e. queries\n * and mutations) to a GraphQL spec-compliant server over an `ApolloLink` instance,\n * receive results from the server and cache the results in a store. It also delivers updates\n * to GraphQL queries through `Observable` instances.\n */\nvar ApolloClient = /** @class */ (function () {\n    /**\n     * Constructs an instance of `ApolloClient`.\n     *\n     * @example\n     * ```js\n     * import { ApolloClient, InMemoryCache } from '@apollo/client';\n     *\n     * const cache = new InMemoryCache();\n     *\n     * const client = new ApolloClient({\n     *   // Provide required constructor fields\n     *   cache: cache,\n     *   uri: 'http://localhost:4000/',\n     *\n     *   // Provide some optional constructor fields\n     *   name: 'react-web-client',\n     *   version: '1.3',\n     *   queryDeduplication: false,\n     *   defaultOptions: {\n     *     watchQuery: {\n     *       fetchPolicy: 'cache-and-network',\n     *     },\n     *   },\n     * });\n     * ```\n     */\n    function ApolloClient(options) {\n        var _this = this;\n        this.resetStoreCallbacks = [];\n        this.clearStoreCallbacks = [];\n        if (!options.cache) {\n            throw newInvariantError(15);\n        }\n        var uri = options.uri, credentials = options.credentials, headers = options.headers, cache = options.cache, documentTransform = options.documentTransform, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, \n        // Expose the client instance as window.__APOLLO_CLIENT__ and call\n        // onBroadcast in queryManager.broadcastQueries to enable browser\n        // devtools, but disable them by default in production.\n        connectToDevTools = options.connectToDevTools, _c = options.queryDeduplication, queryDeduplication = _c === void 0 ? true : _c, defaultOptions = options.defaultOptions, defaultContext = options.defaultContext, _d = options.assumeImmutableResults, assumeImmutableResults = _d === void 0 ? cache.assumeImmutableResults : _d, resolvers = options.resolvers, typeDefs = options.typeDefs, fragmentMatcher = options.fragmentMatcher, clientAwarenessName = options.name, clientAwarenessVersion = options.version, devtools = options.devtools;\n        var link = options.link;\n        if (!link) {\n            link =\n                uri ? new HttpLink({ uri: uri, credentials: credentials, headers: headers }) : ApolloLink.empty();\n        }\n        this.link = link;\n        this.cache = cache;\n        this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n        this.queryDeduplication = queryDeduplication;\n        this.defaultOptions = defaultOptions || Object.create(null);\n        this.typeDefs = typeDefs;\n        this.devtoolsConfig = __assign(__assign({}, devtools), { enabled: (devtools === null || devtools === void 0 ? void 0 : devtools.enabled) || connectToDevTools });\n        if (this.devtoolsConfig.enabled === undefined) {\n            this.devtoolsConfig.enabled = globalThis.__DEV__ !== false;\n        }\n        if (ssrForceFetchDelay) {\n            setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay);\n        }\n        this.watchQuery = this.watchQuery.bind(this);\n        this.query = this.query.bind(this);\n        this.mutate = this.mutate.bind(this);\n        this.watchFragment = this.watchFragment.bind(this);\n        this.resetStore = this.resetStore.bind(this);\n        this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n        this.version = version;\n        this.localState = new LocalState({\n            cache: cache,\n            client: this,\n            resolvers: resolvers,\n            fragmentMatcher: fragmentMatcher,\n        });\n        this.queryManager = new QueryManager({\n            cache: this.cache,\n            link: this.link,\n            defaultOptions: this.defaultOptions,\n            defaultContext: defaultContext,\n            documentTransform: documentTransform,\n            queryDeduplication: queryDeduplication,\n            ssrMode: ssrMode,\n            clientAwareness: {\n                name: clientAwarenessName,\n                version: clientAwarenessVersion,\n            },\n            localState: this.localState,\n            assumeImmutableResults: assumeImmutableResults,\n            onBroadcast: this.devtoolsConfig.enabled ?\n                function () {\n                    if (_this.devToolsHookCb) {\n                        _this.devToolsHookCb({\n                            action: {},\n                            state: {\n                                queries: _this.queryManager.getQueryStore(),\n                                mutations: _this.queryManager.mutationStore || {},\n                            },\n                            dataWithOptimisticResults: _this.cache.extract(true),\n                        });\n                    }\n                }\n                : void 0,\n        });\n        if (this.devtoolsConfig.enabled)\n            this.connectToDevTools();\n    }\n    ApolloClient.prototype.connectToDevTools = function () {\n        if (typeof window === \"undefined\") {\n            return;\n        }\n        var windowWithDevTools = window;\n        var devtoolsSymbol = Symbol.for(\"apollo.devtools\");\n        (windowWithDevTools[devtoolsSymbol] =\n            windowWithDevTools[devtoolsSymbol] || []).push(this);\n        windowWithDevTools.__APOLLO_CLIENT__ = this;\n        /**\n         * Suggest installing the devtools for developers who don't have them\n         */\n        if (!hasSuggestedDevtools && globalThis.__DEV__ !== false) {\n            hasSuggestedDevtools = true;\n            if (window.document &&\n                window.top === window.self &&\n                /^(https?|file):$/.test(window.location.protocol)) {\n                setTimeout(function () {\n                    if (!window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__) {\n                        var nav = window.navigator;\n                        var ua = nav && nav.userAgent;\n                        var url = void 0;\n                        if (typeof ua === \"string\") {\n                            if (ua.indexOf(\"Chrome/\") > -1) {\n                                url =\n                                    \"https://chrome.google.com/webstore/detail/\" +\n                                        \"apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm\";\n                            }\n                            else if (ua.indexOf(\"Firefox/\") > -1) {\n                                url =\n                                    \"https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/\";\n                            }\n                        }\n                        if (url) {\n                            globalThis.__DEV__ !== false && invariant.log(\"Download the Apollo DevTools for a better development \" +\n                                \"experience: %s\", url);\n                        }\n                    }\n                }, 10000);\n            }\n        }\n    };\n    Object.defineProperty(ApolloClient.prototype, \"documentTransform\", {\n        /**\n         * The `DocumentTransform` used to modify GraphQL documents before a request\n         * is made. If a custom `DocumentTransform` is not provided, this will be the\n         * default document transform.\n         */\n        get: function () {\n            return this.queryManager.documentTransform;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Call this method to terminate any active client processes, making it safe\n     * to dispose of this `ApolloClient` instance.\n     */\n    ApolloClient.prototype.stop = function () {\n        this.queryManager.stop();\n    };\n    /**\n     * This watches the cache store of the query according to the options specified and\n     * returns an `ObservableQuery`. We can subscribe to this `ObservableQuery` and\n     * receive updated results through an observer when the cache store changes.\n     *\n     * Note that this method is not an implementation of GraphQL subscriptions. Rather,\n     * it uses Apollo's store in order to reactively deliver updates to your query results.\n     *\n     * For example, suppose you call watchQuery on a GraphQL query that fetches a person's\n     * first and last name and this person has a particular object identifier, provided by\n     * dataIdFromObject. Later, a different query fetches that same person's\n     * first and last name and the first name has now changed. Then, any observers associated\n     * with the results of the first query will be updated with a new result object.\n     *\n     * Note that if the cache does not change, the subscriber will *not* be notified.\n     *\n     * See [here](https://medium.com/apollo-stack/the-concepts-of-graphql-bc68bd819be3#.3mb0cbcmc) for\n     * a description of store reactivity.\n     */\n    ApolloClient.prototype.watchQuery = function (options) {\n        if (this.defaultOptions.watchQuery) {\n            options = mergeOptions(this.defaultOptions.watchQuery, options);\n        }\n        // XXX Overwriting options is probably not the best way to do this long term...\n        if (this.disableNetworkFetches &&\n            (options.fetchPolicy === \"network-only\" ||\n                options.fetchPolicy === \"cache-and-network\")) {\n            options = __assign(__assign({}, options), { fetchPolicy: \"cache-first\" });\n        }\n        return this.queryManager.watchQuery(options);\n    };\n    /**\n     * This resolves a single query according to the options specified and\n     * returns a `Promise` which is either resolved with the resulting data\n     * or rejected with an error.\n     *\n     * @param options - An object of type `QueryOptions` that allows us to\n     * describe how this query should be treated e.g. whether it should hit the\n     * server at all or just resolve from the cache, etc.\n     */\n    ApolloClient.prototype.query = function (options) {\n        if (this.defaultOptions.query) {\n            options = mergeOptions(this.defaultOptions.query, options);\n        }\n        invariant(options.fetchPolicy !== \"cache-and-network\", 16);\n        if (this.disableNetworkFetches && options.fetchPolicy === \"network-only\") {\n            options = __assign(__assign({}, options), { fetchPolicy: \"cache-first\" });\n        }\n        return this.queryManager.query(options);\n    };\n    /**\n     * This resolves a single mutation according to the options specified and returns a\n     * Promise which is either resolved with the resulting data or rejected with an\n     * error. In some cases both `data` and `errors` might be undefined, for example\n     * when `errorPolicy` is set to `'ignore'`.\n     *\n     * It takes options as an object with the following keys and values:\n     */\n    ApolloClient.prototype.mutate = function (options) {\n        if (this.defaultOptions.mutate) {\n            options = mergeOptions(this.defaultOptions.mutate, options);\n        }\n        return this.queryManager.mutate(options);\n    };\n    /**\n     * This subscribes to a graphql subscription according to the options specified and returns an\n     * `Observable` which either emits received data or an error.\n     */\n    ApolloClient.prototype.subscribe = function (options) {\n        return this.queryManager.startGraphQLSubscription(options);\n    };\n    /**\n     * Tries to read some data from the store in the shape of the provided\n     * GraphQL query without making a network request. This method will start at\n     * the root query. To start at a specific id returned by `dataIdFromObject`\n     * use `readFragment`.\n     *\n     * @param optimistic - Set to `true` to allow `readQuery` to return\n     * optimistic results. Is `false` by default.\n     */\n    ApolloClient.prototype.readQuery = function (options, optimistic) {\n        if (optimistic === void 0) { optimistic = false; }\n        return this.cache.readQuery(options, optimistic);\n    };\n    /**\n     * Watches the cache store of the fragment according to the options specified\n     * and returns an `Observable`. We can subscribe to this\n     * `Observable` and receive updated results through an\n     * observer when the cache store changes.\n     *\n     * You must pass in a GraphQL document with a single fragment or a document\n     * with multiple fragments that represent what you are reading. If you pass\n     * in a document with multiple fragments then you must also specify a\n     * `fragmentName`.\n     *\n     * @since 3.10.0\n     * @param options - An object of type `WatchFragmentOptions` that allows\n     * the cache to identify the fragment and optionally specify whether to react\n     * to optimistic updates.\n     */\n    ApolloClient.prototype.watchFragment = function (options) {\n        return this.cache.watchFragment(options);\n    };\n    /**\n     * Tries to read some data from the store in the shape of the provided\n     * GraphQL fragment without making a network request. This method will read a\n     * GraphQL fragment from any arbitrary id that is currently cached, unlike\n     * `readQuery` which will only read from the root query.\n     *\n     * You must pass in a GraphQL document with a single fragment or a document\n     * with multiple fragments that represent what you are reading. If you pass\n     * in a document with multiple fragments then you must also specify a\n     * `fragmentName`.\n     *\n     * @param optimistic - Set to `true` to allow `readFragment` to return\n     * optimistic results. Is `false` by default.\n     */\n    ApolloClient.prototype.readFragment = function (options, optimistic) {\n        if (optimistic === void 0) { optimistic = false; }\n        return this.cache.readFragment(options, optimistic);\n    };\n    /**\n     * Writes some data in the shape of the provided GraphQL query directly to\n     * the store. This method will start at the root query. To start at a\n     * specific id returned by `dataIdFromObject` then use `writeFragment`.\n     */\n    ApolloClient.prototype.writeQuery = function (options) {\n        var ref = this.cache.writeQuery(options);\n        if (options.broadcast !== false) {\n            this.queryManager.broadcastQueries();\n        }\n        return ref;\n    };\n    /**\n     * Writes some data in the shape of the provided GraphQL fragment directly to\n     * the store. This method will write to a GraphQL fragment from any arbitrary\n     * id that is currently cached, unlike `writeQuery` which will only write\n     * from the root query.\n     *\n     * You must pass in a GraphQL document with a single fragment or a document\n     * with multiple fragments that represent what you are writing. If you pass\n     * in a document with multiple fragments then you must also specify a\n     * `fragmentName`.\n     */\n    ApolloClient.prototype.writeFragment = function (options) {\n        var ref = this.cache.writeFragment(options);\n        if (options.broadcast !== false) {\n            this.queryManager.broadcastQueries();\n        }\n        return ref;\n    };\n    ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n        this.devToolsHookCb = cb;\n    };\n    ApolloClient.prototype.__requestRaw = function (payload) {\n        return execute(this.link, payload);\n    };\n    /**\n     * Resets your entire store by clearing out your cache and then re-executing\n     * all of your active queries. This makes it so that you may guarantee that\n     * there is no data left in your store from a time before you called this\n     * method.\n     *\n     * `resetStore()` is useful when your user just logged out. You’ve removed the\n     * user session, and you now want to make sure that any references to data you\n     * might have fetched while the user session was active is gone.\n     *\n     * It is important to remember that `resetStore()` *will* refetch any active\n     * queries. This means that any components that might be mounted will execute\n     * their queries again using your network interface. If you do not want to\n     * re-execute any queries then you should make sure to stop watching any\n     * active queries.\n     */\n    ApolloClient.prototype.resetStore = function () {\n        var _this = this;\n        return Promise.resolve()\n            .then(function () {\n            return _this.queryManager.clearStore({\n                discardWatches: false,\n            });\n        })\n            .then(function () { return Promise.all(_this.resetStoreCallbacks.map(function (fn) { return fn(); })); })\n            .then(function () { return _this.reFetchObservableQueries(); });\n    };\n    /**\n     * Remove all data from the store. Unlike `resetStore`, `clearStore` will\n     * not refetch any active queries.\n     */\n    ApolloClient.prototype.clearStore = function () {\n        var _this = this;\n        return Promise.resolve()\n            .then(function () {\n            return _this.queryManager.clearStore({\n                discardWatches: true,\n            });\n        })\n            .then(function () { return Promise.all(_this.clearStoreCallbacks.map(function (fn) { return fn(); })); });\n    };\n    /**\n     * Allows callbacks to be registered that are executed when the store is\n     * reset. `onResetStore` returns an unsubscribe function that can be used\n     * to remove registered callbacks.\n     */\n    ApolloClient.prototype.onResetStore = function (cb) {\n        var _this = this;\n        this.resetStoreCallbacks.push(cb);\n        return function () {\n            _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) { return c !== cb; });\n        };\n    };\n    /**\n     * Allows callbacks to be registered that are executed when the store is\n     * cleared. `onClearStore` returns an unsubscribe function that can be used\n     * to remove registered callbacks.\n     */\n    ApolloClient.prototype.onClearStore = function (cb) {\n        var _this = this;\n        this.clearStoreCallbacks.push(cb);\n        return function () {\n            _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function (c) { return c !== cb; });\n        };\n    };\n    /**\n     * Refetches all of your active queries.\n     *\n     * `reFetchObservableQueries()` is useful if you want to bring the client back to proper state in case of a network outage\n     *\n     * It is important to remember that `reFetchObservableQueries()` *will* refetch any active\n     * queries. This means that any components that might be mounted will execute\n     * their queries again using your network interface. If you do not want to\n     * re-execute any queries then you should make sure to stop watching any\n     * active queries.\n     * Takes optional parameter `includeStandby` which will include queries in standby-mode when refetching.\n     */\n    ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n        return this.queryManager.reFetchObservableQueries(includeStandby);\n    };\n    /**\n     * Refetches specified active queries. Similar to \"reFetchObservableQueries()\" but with a specific list of queries.\n     *\n     * `refetchQueries()` is useful for use cases to imperatively refresh a selection of queries.\n     *\n     * It is important to remember that `refetchQueries()` *will* refetch specified active\n     * queries. This means that any components that might be mounted will execute\n     * their queries again using your network interface. If you do not want to\n     * re-execute any queries then you should make sure to stop watching any\n     * active queries.\n     */\n    ApolloClient.prototype.refetchQueries = function (options) {\n        var map = this.queryManager.refetchQueries(options);\n        var queries = [];\n        var results = [];\n        map.forEach(function (result, obsQuery) {\n            queries.push(obsQuery);\n            results.push(result);\n        });\n        var result = Promise.all(results);\n        // In case you need the raw results immediately, without awaiting\n        // Promise.all(results):\n        result.queries = queries;\n        result.results = results;\n        // If you decide to ignore the result Promise because you're using\n        // result.queries and result.results instead, you shouldn't have to worry\n        // about preventing uncaught rejections for the Promise.all result.\n        result.catch(function (error) {\n            globalThis.__DEV__ !== false && invariant.debug(17, error);\n        });\n        return result;\n    };\n    /**\n     * Get all currently active `ObservableQuery` objects, in a `Map` keyed by\n     * query ID strings.\n     *\n     * An \"active\" query is one that has observers and a `fetchPolicy` other than\n     * \"standby\" or \"cache-only\".\n     *\n     * You can include all `ObservableQuery` objects (including the inactive ones)\n     * by passing \"all\" instead of \"active\", or you can include just a subset of\n     * active queries by passing an array of query names or DocumentNode objects.\n     */\n    ApolloClient.prototype.getObservableQueries = function (include) {\n        if (include === void 0) { include = \"active\"; }\n        return this.queryManager.getObservableQueries(include);\n    };\n    /**\n     * Exposes the cache's complete state, in a serializable format for later restoration.\n     */\n    ApolloClient.prototype.extract = function (optimistic) {\n        return this.cache.extract(optimistic);\n    };\n    /**\n     * Replaces existing state in the cache (if any) with the values expressed by\n     * `serializedState`.\n     *\n     * Called when hydrating a cache (server side rendering, or offline storage),\n     * and also (potentially) during hot reloads.\n     */\n    ApolloClient.prototype.restore = function (serializedState) {\n        return this.cache.restore(serializedState);\n    };\n    /**\n     * Add additional local resolvers.\n     */\n    ApolloClient.prototype.addResolvers = function (resolvers) {\n        this.localState.addResolvers(resolvers);\n    };\n    /**\n     * Set (override existing) local resolvers.\n     */\n    ApolloClient.prototype.setResolvers = function (resolvers) {\n        this.localState.setResolvers(resolvers);\n    };\n    /**\n     * Get all registered local resolvers.\n     */\n    ApolloClient.prototype.getResolvers = function () {\n        return this.localState.getResolvers();\n    };\n    /**\n     * Set a custom local state fragment matcher.\n     */\n    ApolloClient.prototype.setLocalStateFragmentMatcher = function (fragmentMatcher) {\n        this.localState.setFragmentMatcher(fragmentMatcher);\n    };\n    /**\n     * Define a new ApolloLink (or link chain) that Apollo Client will use.\n     */\n    ApolloClient.prototype.setLink = function (newLink) {\n        this.link = this.queryManager.link = newLink;\n    };\n    Object.defineProperty(ApolloClient.prototype, \"defaultContext\", {\n        get: function () {\n            return this.queryManager.defaultContext;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return ApolloClient;\n}());\nexport { ApolloClient };\nif (globalThis.__DEV__ !== false) {\n    ApolloClient.prototype.getMemoryInternals = getApolloClientMemoryInternals;\n}\n//# sourceMappingURL=ApolloClient.js.map","import { __rest } from \"tslib\";\nimport equal from \"@wry/equality\";\nimport { createFragmentMap, getFragmentDefinitions, getFragmentFromSelection, getMainDefinition, isField, resultKeyNameFromField, shouldInclude, } from \"../utilities/index.js\";\n// Returns true if aResult and bResult are deeply equal according to the fields\n// selected by the given query, ignoring any fields marked as @nonreactive.\nexport function equalByQuery(query, _a, _b, variables) {\n    var aData = _a.data, aRest = __rest(_a, [\"data\"]);\n    var bData = _b.data, bRest = __rest(_b, [\"data\"]);\n    return (equal(aRest, bRest) &&\n        equalBySelectionSet(getMainDefinition(query).selectionSet, aData, bData, {\n            fragmentMap: createFragmentMap(getFragmentDefinitions(query)),\n            variables: variables,\n        }));\n}\nfunction equalBySelectionSet(selectionSet, aResult, bResult, context) {\n    if (aResult === bResult) {\n        return true;\n    }\n    var seenSelections = new Set();\n    // Returning true from this Array.prototype.every callback function skips the\n    // current field/subtree. Returning false aborts the entire traversal\n    // immediately, causing equalBySelectionSet to return false.\n    return selectionSet.selections.every(function (selection) {\n        // Avoid re-processing the same selection at the same level of recursion, in\n        // case the same field gets included via multiple indirect fragment spreads.\n        if (seenSelections.has(selection))\n            return true;\n        seenSelections.add(selection);\n        // Ignore @skip(if: true) and @include(if: false) fields.\n        if (!shouldInclude(selection, context.variables))\n            return true;\n        // If the field or (named) fragment spread has a @nonreactive directive on\n        // it, we don't care if it's different, so we pretend it's the same.\n        if (selectionHasNonreactiveDirective(selection))\n            return true;\n        if (isField(selection)) {\n            var resultKey = resultKeyNameFromField(selection);\n            var aResultChild = aResult && aResult[resultKey];\n            var bResultChild = bResult && bResult[resultKey];\n            var childSelectionSet = selection.selectionSet;\n            if (!childSelectionSet) {\n                // These are scalar values, so we can compare them with deep equal\n                // without redoing the main recursive work.\n                return equal(aResultChild, bResultChild);\n            }\n            var aChildIsArray = Array.isArray(aResultChild);\n            var bChildIsArray = Array.isArray(bResultChild);\n            if (aChildIsArray !== bChildIsArray)\n                return false;\n            if (aChildIsArray && bChildIsArray) {\n                var length_1 = aResultChild.length;\n                if (bResultChild.length !== length_1) {\n                    return false;\n                }\n                for (var i = 0; i < length_1; ++i) {\n                    if (!equalBySelectionSet(childSelectionSet, aResultChild[i], bResultChild[i], context)) {\n                        return false;\n                    }\n                }\n                return true;\n            }\n            return equalBySelectionSet(childSelectionSet, aResultChild, bResultChild, context);\n        }\n        else {\n            var fragment = getFragmentFromSelection(selection, context.fragmentMap);\n            if (fragment) {\n                // The fragment might === selection if it's an inline fragment, but\n                // could be !== if it's a named fragment ...spread.\n                if (selectionHasNonreactiveDirective(fragment))\n                    return true;\n                return equalBySelectionSet(fragment.selectionSet, \n                // Notice that we reuse the same aResult and bResult values here,\n                // since the fragment ...spread does not specify a field name, but\n                // consists of multiple fields (within the fragment's selection set)\n                // that should be applied to the current result value(s).\n                aResult, bResult, context);\n            }\n        }\n    });\n}\nfunction selectionHasNonreactiveDirective(selection) {\n    return (!!selection.directives && selection.directives.some(directiveIsNonreactive));\n}\nfunction directiveIsNonreactive(dir) {\n    return dir.name.value === \"nonreactive\";\n}\n//# sourceMappingURL=equalByQuery.js.map","/**\n * The current status of a query’s execution in our system.\n */\nexport var NetworkStatus;\n(function (NetworkStatus) {\n    /**\n     * The query has never been run before and the query is now currently running. A query will still\n     * have this network status even if a partial data result was returned from the cache, but a\n     * query was dispatched anyway.\n     */\n    NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n    /**\n     * If `setVariables` was called and a query was fired because of that then the network status\n     * will be `setVariables` until the result of that query comes back.\n     */\n    NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n    /**\n     * Indicates that `fetchMore` was called on this query and that the query created is currently in\n     * flight.\n     */\n    NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n    /**\n     * Similar to the `setVariables` network status. It means that `refetch` was called on a query\n     * and the refetch request is currently in flight.\n     */\n    NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n    /**\n     * Indicates that a polling query is currently in flight. So for example if you are polling a\n     * query every 10 seconds then the network status will switch to `poll` every 10 seconds whenever\n     * a poll request has been sent but not resolved.\n     */\n    NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n    /**\n     * No request is in flight for this query, and no errors happened. Everything is OK.\n     */\n    NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n    /**\n     * No request is in flight for this query, but one or more errors were detected.\n     */\n    NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\n/**\n * Returns true if there is currently a network request in flight according to a given network\n * status.\n */\nexport function isNetworkRequestInFlight(networkStatus) {\n    return networkStatus ? networkStatus < 7 : false;\n}\n/**\n * Returns true if the network request is in ready or error state according to a given network\n * status.\n */\nexport function isNetworkRequestSettled(networkStatus) {\n    return networkStatus === 7 || networkStatus === 8;\n}\n//# sourceMappingURL=networkStatus.js.map","import { __rest } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nexport function setContext(setter) {\n    return new ApolloLink(function (operation, forward) {\n        var request = __rest(operation, []);\n        return new Observable(function (observer) {\n            var handle;\n            var closed = false;\n            Promise.resolve(request)\n                .then(function (req) { return setter(req, operation.getContext()); })\n                .then(operation.setContext)\n                .then(function () {\n                // if the observer is already closed, no need to subscribe.\n                if (closed)\n                    return;\n                handle = forward(operation).subscribe({\n                    next: observer.next.bind(observer),\n                    error: observer.error.bind(observer),\n                    complete: observer.complete.bind(observer),\n                });\n            })\n                .catch(observer.error.bind(observer));\n            return function () {\n                closed = true;\n                if (handle)\n                    handle.unsubscribe();\n            };\n        });\n    });\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nexport function createOperation(starting, operation) {\n    var context = __assign({}, starting);\n    var setContext = function (next) {\n        if (typeof next === \"function\") {\n            context = __assign(__assign({}, context), next(context));\n        }\n        else {\n            context = __assign(__assign({}, context), next);\n        }\n    };\n    var getContext = function () { return (__assign({}, context)); };\n    Object.defineProperty(operation, \"setContext\", {\n        enumerable: false,\n        value: setContext,\n    });\n    Object.defineProperty(operation, \"getContext\", {\n        enumerable: false,\n        value: getContext,\n    });\n    return operation;\n}\n//# sourceMappingURL=createOperation.js.map","import { getOperationName } from \"../../utilities/index.js\";\nexport function transformOperation(operation) {\n    var transformedOperation = {\n        variables: operation.variables || {},\n        extensions: operation.extensions || {},\n        operationName: operation.operationName,\n        query: operation.query,\n    };\n    // Best guess at an operation name\n    if (!transformedOperation.operationName) {\n        transformedOperation.operationName =\n            typeof transformedOperation.query !== \"string\" ?\n                getOperationName(transformedOperation.query) || undefined\n                : \"\";\n    }\n    return transformedOperation;\n}\n//# sourceMappingURL=transformOperation.js.map","import { newInvariantError } from \"../../utilities/globals/index.js\";\nexport function validateOperation(operation) {\n    var OPERATION_FIELDS = [\n        \"query\",\n        \"operationName\",\n        \"variables\",\n        \"extensions\",\n        \"context\",\n    ];\n    for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n        var key = _a[_i];\n        if (OPERATION_FIELDS.indexOf(key) < 0) {\n            throw newInvariantError(44, key);\n        }\n    }\n    return operation;\n}\n//# sourceMappingURL=validateOperation.js.map","import { newInvariantError, invariant } from \"../../utilities/globals/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { validateOperation, createOperation, transformOperation, } from \"../utils/index.js\";\nfunction passthrough(op, forward) {\n    return (forward ? forward(op) : Observable.of());\n}\nfunction toLink(handler) {\n    return typeof handler === \"function\" ? new ApolloLink(handler) : handler;\n}\nfunction isTerminating(link) {\n    return link.request.length <= 1;\n}\nvar ApolloLink = /** @class */ (function () {\n    function ApolloLink(request) {\n        if (request)\n            this.request = request;\n    }\n    ApolloLink.empty = function () {\n        return new ApolloLink(function () { return Observable.of(); });\n    };\n    ApolloLink.from = function (links) {\n        if (links.length === 0)\n            return ApolloLink.empty();\n        return links.map(toLink).reduce(function (x, y) { return x.concat(y); });\n    };\n    ApolloLink.split = function (test, left, right) {\n        var leftLink = toLink(left);\n        var rightLink = toLink(right || new ApolloLink(passthrough));\n        var ret;\n        if (isTerminating(leftLink) && isTerminating(rightLink)) {\n            ret = new ApolloLink(function (operation) {\n                return test(operation) ?\n                    leftLink.request(operation) || Observable.of()\n                    : rightLink.request(operation) || Observable.of();\n            });\n        }\n        else {\n            ret = new ApolloLink(function (operation, forward) {\n                return test(operation) ?\n                    leftLink.request(operation, forward) || Observable.of()\n                    : rightLink.request(operation, forward) || Observable.of();\n            });\n        }\n        return Object.assign(ret, { left: leftLink, right: rightLink });\n    };\n    ApolloLink.execute = function (link, operation) {\n        return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());\n    };\n    ApolloLink.concat = function (first, second) {\n        var firstLink = toLink(first);\n        if (isTerminating(firstLink)) {\n            globalThis.__DEV__ !== false && invariant.warn(36, firstLink);\n            return firstLink;\n        }\n        var nextLink = toLink(second);\n        var ret;\n        if (isTerminating(nextLink)) {\n            ret = new ApolloLink(function (operation) {\n                return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();\n            });\n        }\n        else {\n            ret = new ApolloLink(function (operation, forward) {\n                return (firstLink.request(operation, function (op) {\n                    return nextLink.request(op, forward) || Observable.of();\n                }) || Observable.of());\n            });\n        }\n        return Object.assign(ret, { left: firstLink, right: nextLink });\n    };\n    ApolloLink.prototype.split = function (test, left, right) {\n        return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));\n    };\n    ApolloLink.prototype.concat = function (next) {\n        return ApolloLink.concat(this, next);\n    };\n    ApolloLink.prototype.request = function (operation, forward) {\n        throw newInvariantError(37);\n    };\n    ApolloLink.prototype.onError = function (error, observer) {\n        if (observer && observer.error) {\n            observer.error(error);\n            // Returning false indicates that observer.error does not need to be\n            // called again, since it was already called (on the previous line).\n            // Calling observer.error again would not cause any real problems,\n            // since only the first call matters, but custom onError functions\n            // might have other reasons for wanting to prevent the default\n            // behavior by returning false.\n            return false;\n        }\n        // Throw errors will be passed to observer.error.\n        throw error;\n    };\n    ApolloLink.prototype.setOnError = function (fn) {\n        this.onError = fn;\n        return this;\n    };\n    return ApolloLink;\n}());\nexport { ApolloLink };\n//# sourceMappingURL=ApolloLink.js.map","import { __extends } from \"tslib\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { ApolloLink } from \"../core/index.js\";\nexport function onError(errorHandler) {\n    return new ApolloLink(function (operation, forward) {\n        return new Observable(function (observer) {\n            var sub;\n            var retriedSub;\n            var retriedResult;\n            try {\n                sub = forward(operation).subscribe({\n                    next: function (result) {\n                        if (result.errors) {\n                            retriedResult = errorHandler({\n                                graphQLErrors: result.errors,\n                                response: result,\n                                operation: operation,\n                                forward: forward,\n                            });\n                            if (retriedResult) {\n                                retriedSub = retriedResult.subscribe({\n                                    next: observer.next.bind(observer),\n                                    error: observer.error.bind(observer),\n                                    complete: observer.complete.bind(observer),\n                                });\n                                return;\n                            }\n                        }\n                        observer.next(result);\n                    },\n                    error: function (networkError) {\n                        retriedResult = errorHandler({\n                            operation: operation,\n                            networkError: networkError,\n                            //Network errors can return GraphQL errors on for example a 403\n                            graphQLErrors: (networkError &&\n                                networkError.result &&\n                                networkError.result.errors) ||\n                                void 0,\n                            forward: forward,\n                        });\n                        if (retriedResult) {\n                            retriedSub = retriedResult.subscribe({\n                                next: observer.next.bind(observer),\n                                error: observer.error.bind(observer),\n                                complete: observer.complete.bind(observer),\n                            });\n                            return;\n                        }\n                        observer.error(networkError);\n                    },\n                    complete: function () {\n                        // disable the previous sub from calling complete on observable\n                        // if retry is in flight.\n                        if (!retriedResult) {\n                            observer.complete.bind(observer)();\n                        }\n                    },\n                });\n            }\n            catch (e) {\n                errorHandler({ networkError: e, operation: operation, forward: forward });\n                observer.error(e);\n            }\n            return function () {\n                if (sub)\n                    sub.unsubscribe();\n                if (retriedSub)\n                    sub.unsubscribe();\n            };\n        });\n    });\n}\nvar ErrorLink = /** @class */ (function (_super) {\n    __extends(ErrorLink, _super);\n    function ErrorLink(errorHandler) {\n        var _this = _super.call(this) || this;\n        _this.link = onError(errorHandler);\n        return _this;\n    }\n    ErrorLink.prototype.request = function (operation, forward) {\n        return this.link.request(operation, forward);\n    };\n    return ErrorLink;\n}(ApolloLink));\nexport { ErrorLink };\n//# sourceMappingURL=index.js.map","import { newInvariantError } from \"../../utilities/globals/index.js\";\nexport var serializeFetchParameter = function (p, label) {\n    var serialized;\n    try {\n        serialized = JSON.stringify(p);\n    }\n    catch (e) {\n        var parseError = newInvariantError(40, label, e.message);\n        parseError.parseError = e;\n        throw parseError;\n    }\n    return serialized;\n};\n//# sourceMappingURL=serializeFetchParameter.js.map","export var selectURI = function (operation, fallbackURI) {\n    var context = operation.getContext();\n    var contextURI = context.uri;\n    if (contextURI) {\n        return contextURI;\n    }\n    else if (typeof fallbackURI === \"function\") {\n        return fallbackURI(operation);\n    }\n    else {\n        return fallbackURI || \"/graphql\";\n    }\n};\n//# sourceMappingURL=selectURI.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/async.ts\n */\nexport default function asyncIterator(source) {\n    var _a;\n    var iterator = source[Symbol.asyncIterator]();\n    return _a = {\n            next: function () {\n                return iterator.next();\n            }\n        },\n        _a[Symbol.asyncIterator] = function () {\n            return this;\n        },\n        _a;\n}\n//# sourceMappingURL=async.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/nodeStream.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function nodeStreamIterator(stream) {\n    var cleanup = null;\n    var error = null;\n    var done = false;\n    var data = [];\n    var waiting = [];\n    function onData(chunk) {\n        if (error)\n            return;\n        if (waiting.length) {\n            var shiftedArr = waiting.shift();\n            if (Array.isArray(shiftedArr) && shiftedArr[0]) {\n                return shiftedArr[0]({ value: chunk, done: false });\n            }\n        }\n        data.push(chunk);\n    }\n    function onError(err) {\n        error = err;\n        var all = waiting.slice();\n        all.forEach(function (pair) {\n            pair[1](err);\n        });\n        !cleanup || cleanup();\n    }\n    function onEnd() {\n        done = true;\n        var all = waiting.slice();\n        all.forEach(function (pair) {\n            pair[0]({ value: undefined, done: true });\n        });\n        !cleanup || cleanup();\n    }\n    cleanup = function () {\n        cleanup = null;\n        stream.removeListener(\"data\", onData);\n        stream.removeListener(\"error\", onError);\n        stream.removeListener(\"end\", onEnd);\n        stream.removeListener(\"finish\", onEnd);\n        stream.removeListener(\"close\", onEnd);\n    };\n    stream.on(\"data\", onData);\n    stream.on(\"error\", onError);\n    stream.on(\"end\", onEnd);\n    stream.on(\"finish\", onEnd);\n    stream.on(\"close\", onEnd);\n    function getNext() {\n        return new Promise(function (resolve, reject) {\n            if (error)\n                return reject(error);\n            if (data.length)\n                return resolve({ value: data.shift(), done: false });\n            if (done)\n                return resolve({ value: undefined, done: true });\n            waiting.push([resolve, reject]);\n        });\n    }\n    var iterator = {\n        next: function () {\n            return getNext();\n        },\n    };\n    if (canUseAsyncIteratorSymbol) {\n        iterator[Symbol.asyncIterator] = function () {\n            return this;\n        };\n    }\n    return iterator;\n}\n//# sourceMappingURL=nodeStream.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/promise.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function promiseIterator(promise) {\n    var resolved = false;\n    var iterator = {\n        next: function () {\n            if (resolved)\n                return Promise.resolve({\n                    value: undefined,\n                    done: true,\n                });\n            resolved = true;\n            return new Promise(function (resolve, reject) {\n                promise\n                    .then(function (value) {\n                    resolve({ value: value, done: false });\n                })\n                    .catch(reject);\n            });\n        },\n    };\n    if (canUseAsyncIteratorSymbol) {\n        iterator[Symbol.asyncIterator] = function () {\n            return this;\n        };\n    }\n    return iterator;\n}\n//# sourceMappingURL=promise.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/reader.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function readerIterator(reader) {\n    var iterator = {\n        next: function () {\n            return reader.read();\n        },\n    };\n    if (canUseAsyncIteratorSymbol) {\n        iterator[Symbol.asyncIterator] = function () {\n            return this;\n        };\n    }\n    return iterator;\n}\n//# sourceMappingURL=reader.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/index.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../utilities/index.js\";\nimport asyncIterator from \"./iterators/async.js\";\nimport nodeStreamIterator from \"./iterators/nodeStream.js\";\nimport promiseIterator from \"./iterators/promise.js\";\nimport readerIterator from \"./iterators/reader.js\";\nfunction isNodeResponse(value) {\n    return !!value.body;\n}\nfunction isReadableStream(value) {\n    return !!value.getReader;\n}\nfunction isAsyncIterableIterator(value) {\n    return !!(canUseAsyncIteratorSymbol &&\n        value[Symbol.asyncIterator]);\n}\nfunction isStreamableBlob(value) {\n    return !!value.stream;\n}\nfunction isBlob(value) {\n    return !!value.arrayBuffer;\n}\nfunction isNodeReadableStream(value) {\n    return !!value.pipe;\n}\nexport function responseIterator(response) {\n    var body = response;\n    if (isNodeResponse(response))\n        body = response.body;\n    if (isAsyncIterableIterator(body))\n        return asyncIterator(body);\n    if (isReadableStream(body))\n        return readerIterator(body.getReader());\n    // this errors without casting to ReadableStream<T>\n    // because Blob.stream() returns a NodeJS ReadableStream\n    if (isStreamableBlob(body)) {\n        return readerIterator(body.stream().getReader());\n    }\n    if (isBlob(body))\n        return promiseIterator(body.arrayBuffer());\n    if (isNodeReadableStream(body))\n        return nodeStreamIterator(body);\n    throw new Error(\"Unknown body type for responseIterator. Please pass a streamable response.\");\n}\n//# sourceMappingURL=responseIterator.js.map","export var throwServerError = function (response, result, message) {\n    var error = new Error(message);\n    error.name = \"ServerError\";\n    error.response = response;\n    error.statusCode = response.status;\n    error.result = result;\n    throw error;\n};\n//# sourceMappingURL=throwServerError.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { responseIterator } from \"./responseIterator.js\";\nimport { throwServerError } from \"../utils/index.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../../errors/index.js\";\nimport { isApolloPayloadResult } from \"../../utilities/common/incrementalResult.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function readMultipartBody(response, nextValue) {\n    return __awaiter(this, void 0, void 0, function () {\n        var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _a, value, done, chunk, searchFrom, bi, message, i, headers, contentType_1, body, result, next;\n        var _b, _c;\n        var _d;\n        return __generator(this, function (_e) {\n            switch (_e.label) {\n                case 0:\n                    if (TextDecoder === undefined) {\n                        throw new Error(\"TextDecoder must be defined in the environment: please import a polyfill.\");\n                    }\n                    decoder = new TextDecoder(\"utf-8\");\n                    contentType = (_d = response.headers) === null || _d === void 0 ? void 0 : _d.get(\"content-type\");\n                    delimiter = \"boundary=\";\n                    boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter)) ?\n                        contentType === null || contentType === void 0 ? void 0 : contentType.substring((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(delimiter)) + delimiter.length).replace(/['\"]/g, \"\").replace(/\\;(.*)/gm, \"\").trim()\n                        : \"-\";\n                    boundary = \"\\r\\n--\".concat(boundaryVal);\n                    buffer = \"\";\n                    iterator = responseIterator(response);\n                    running = true;\n                    _e.label = 1;\n                case 1:\n                    if (!running) return [3 /*break*/, 3];\n                    return [4 /*yield*/, iterator.next()];\n                case 2:\n                    _a = _e.sent(), value = _a.value, done = _a.done;\n                    chunk = typeof value === \"string\" ? value : decoder.decode(value);\n                    searchFrom = buffer.length - boundary.length + 1;\n                    running = !done;\n                    buffer += chunk;\n                    bi = buffer.indexOf(boundary, searchFrom);\n                    while (bi > -1) {\n                        message = void 0;\n                        _b = [\n                            buffer.slice(0, bi),\n                            buffer.slice(bi + boundary.length),\n                        ], message = _b[0], buffer = _b[1];\n                        i = message.indexOf(\"\\r\\n\\r\\n\");\n                        headers = parseHeaders(message.slice(0, i));\n                        contentType_1 = headers[\"content-type\"];\n                        if (contentType_1 &&\n                            contentType_1.toLowerCase().indexOf(\"application/json\") === -1) {\n                            throw new Error(\"Unsupported patch content type: application/json is required.\");\n                        }\n                        body = message.slice(i);\n                        if (body) {\n                            result = parseJsonBody(response, body);\n                            if (Object.keys(result).length > 1 ||\n                                \"data\" in result ||\n                                \"incremental\" in result ||\n                                \"errors\" in result ||\n                                \"payload\" in result) {\n                                if (isApolloPayloadResult(result)) {\n                                    next = {};\n                                    if (\"payload\" in result) {\n                                        if (Object.keys(result).length === 1 && result.payload === null) {\n                                            return [2 /*return*/];\n                                        }\n                                        next = __assign({}, result.payload);\n                                    }\n                                    if (\"errors\" in result) {\n                                        next = __assign(__assign({}, next), { extensions: __assign(__assign({}, (\"extensions\" in next ? next.extensions : null)), (_c = {}, _c[PROTOCOL_ERRORS_SYMBOL] = result.errors, _c)) });\n                                    }\n                                    nextValue(next);\n                                }\n                                else {\n                                    // for the last chunk with only `hasNext: false`\n                                    // we don't need to call observer.next as there is no data/errors\n                                    nextValue(result);\n                                }\n                            }\n                            else if (\n                            // If the chunk contains only a \"hasNext: false\", we can call\n                            // observer.complete() immediately.\n                            Object.keys(result).length === 1 &&\n                                \"hasNext\" in result &&\n                                !result.hasNext) {\n                                return [2 /*return*/];\n                            }\n                        }\n                        bi = buffer.indexOf(boundary);\n                    }\n                    return [3 /*break*/, 1];\n                case 3: return [2 /*return*/];\n            }\n        });\n    });\n}\nexport function parseHeaders(headerText) {\n    var headersInit = {};\n    headerText.split(\"\\n\").forEach(function (line) {\n        var i = line.indexOf(\":\");\n        if (i > -1) {\n            // normalize headers to lowercase\n            var name_1 = line.slice(0, i).trim().toLowerCase();\n            var value = line.slice(i + 1).trim();\n            headersInit[name_1] = value;\n        }\n    });\n    return headersInit;\n}\nexport function parseJsonBody(response, bodyText) {\n    if (response.status >= 300) {\n        // Network error\n        var getResult = function () {\n            try {\n                return JSON.parse(bodyText);\n            }\n            catch (err) {\n                return bodyText;\n            }\n        };\n        throwServerError(response, getResult(), \"Response not successful: Received status code \".concat(response.status));\n    }\n    try {\n        return JSON.parse(bodyText);\n    }\n    catch (err) {\n        var parseError = err;\n        parseError.name = \"ServerParseError\";\n        parseError.response = response;\n        parseError.statusCode = response.status;\n        parseError.bodyText = bodyText;\n        throw parseError;\n    }\n}\nexport function handleError(err, observer) {\n    // if it is a network error, BUT there is graphql result info fire\n    // the next observer before calling error this gives apollo-client\n    // (and react-apollo) the `graphqlErrors` and `networkErrors` to\n    // pass to UI this should only happen if we *also* have data as\n    // part of the response key per the spec\n    if (err.result && err.result.errors && err.result.data) {\n        // if we don't call next, the UI can only show networkError\n        // because AC didn't get any graphqlErrors this is graphql\n        // execution result info (i.e errors and possibly data) this is\n        // because there is no formal spec how errors should translate to\n        // http status codes. So an auth error (401) could have both data\n        // from a public field, errors from a private field, and a status\n        // of 401\n        // {\n        //  user { // this will have errors\n        //    firstName\n        //  }\n        //  products { // this is public so will have data\n        //    cost\n        //  }\n        // }\n        //\n        // the result of above *could* look like this:\n        // {\n        //   data: { products: [{ cost: \"$10\" }] },\n        //   errors: [{\n        //      message: 'your session has timed out',\n        //      path: []\n        //   }]\n        // }\n        // status code of above would be a 401\n        // in the UI you want to show data where you can, errors as data where you can\n        // and use correct http status codes\n        observer.next(err.result);\n    }\n    observer.error(err);\n}\nexport function parseAndCheckHttpResponse(operations) {\n    return function (response) {\n        return response\n            .text()\n            .then(function (bodyText) { return parseJsonBody(response, bodyText); })\n            .then(function (result) {\n            if (!Array.isArray(result) &&\n                !hasOwnProperty.call(result, \"data\") &&\n                !hasOwnProperty.call(result, \"errors\")) {\n                // Data error\n                throwServerError(response, result, \"Server response was missing for query '\".concat(Array.isArray(operations) ?\n                    operations.map(function (op) { return op.operationName; })\n                    : operations.operationName, \"'.\"));\n            }\n            return result;\n        });\n    };\n}\n//# sourceMappingURL=parseAndCheckHttpResponse.js.map","import { newInvariantError } from \"../../utilities/globals/index.js\";\nexport var checkFetcher = function (fetcher) {\n    if (!fetcher && typeof fetch === \"undefined\") {\n        throw newInvariantError(38);\n    }\n};\n//# sourceMappingURL=checkFetcher.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { print } from \"../../utilities/index.js\";\nvar defaultHttpOptions = {\n    includeQuery: true,\n    includeExtensions: false,\n    preserveHeaderCase: false,\n};\nvar defaultHeaders = {\n    // headers are case insensitive (https://stackoverflow.com/a/5259004)\n    accept: \"*/*\",\n    // The content-type header describes the type of the body of the request, and\n    // so it typically only is sent with requests that actually have bodies. One\n    // could imagine that Apollo Client would remove this header when constructing\n    // a GET request (which has no body), but we historically have not done that.\n    // This means that browsers will preflight all Apollo Client requests (even\n    // GET requests). Apollo Server's CSRF prevention feature (introduced in\n    // AS3.7) takes advantage of this fact and does not block requests with this\n    // header. If you want to drop this header from GET requests, then you should\n    // probably replace it with a `apollo-require-preflight` header, or servers\n    // with CSRF prevention enabled might block your GET request. See\n    // https://www.apollographql.com/docs/apollo-server/security/cors/#preventing-cross-site-request-forgery-csrf\n    // for more details.\n    \"content-type\": \"application/json\",\n};\nvar defaultOptions = {\n    method: \"POST\",\n};\nexport var fallbackHttpConfig = {\n    http: defaultHttpOptions,\n    headers: defaultHeaders,\n    options: defaultOptions,\n};\nexport var defaultPrinter = function (ast, printer) { return printer(ast); };\nexport function selectHttpOptionsAndBody(operation, fallbackConfig) {\n    var configs = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        configs[_i - 2] = arguments[_i];\n    }\n    configs.unshift(fallbackConfig);\n    return selectHttpOptionsAndBodyInternal.apply(void 0, __spreadArray([operation,\n        defaultPrinter], configs, false));\n}\nexport function selectHttpOptionsAndBodyInternal(operation, printer) {\n    var configs = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        configs[_i - 2] = arguments[_i];\n    }\n    var options = {};\n    var http = {};\n    configs.forEach(function (config) {\n        options = __assign(__assign(__assign({}, options), config.options), { headers: __assign(__assign({}, options.headers), config.headers) });\n        if (config.credentials) {\n            options.credentials = config.credentials;\n        }\n        http = __assign(__assign({}, http), config.http);\n    });\n    if (options.headers) {\n        options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);\n    }\n    //The body depends on the http options\n    var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;\n    var body = { operationName: operationName, variables: variables };\n    if (http.includeExtensions)\n        body.extensions = extensions;\n    // not sending the query (i.e persisted queries)\n    if (http.includeQuery)\n        body.query = printer(query, print);\n    return {\n        options: options,\n        body: body,\n    };\n}\n// Remove potential duplicate header names, preserving last (by insertion order).\n// This is done to prevent unintentionally duplicating a header instead of\n// overwriting it (See #8447 and #8449).\nfunction removeDuplicateHeaders(headers, preserveHeaderCase) {\n    // If we're not preserving the case, just remove duplicates w/ normalization.\n    if (!preserveHeaderCase) {\n        var normalizedHeaders_1 = {};\n        Object.keys(Object(headers)).forEach(function (name) {\n            normalizedHeaders_1[name.toLowerCase()] = headers[name];\n        });\n        return normalizedHeaders_1;\n    }\n    // If we are preserving the case, remove duplicates w/ normalization,\n    // preserving the original name.\n    // This allows for non-http-spec-compliant servers that expect intentionally\n    // capitalized header names (See #6741).\n    var headerData = {};\n    Object.keys(Object(headers)).forEach(function (name) {\n        headerData[name.toLowerCase()] = {\n            originalName: name,\n            value: headers[name],\n        };\n    });\n    var normalizedHeaders = {};\n    Object.keys(headerData).forEach(function (name) {\n        normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n    });\n    return normalizedHeaders;\n}\n//# sourceMappingURL=selectHttpOptionsAndBody.js.map","import { serializeFetchParameter } from \"./serializeFetchParameter.js\";\n// For GET operations, returns the given URI rewritten with parameters, or a\n// parse error.\nexport function rewriteURIForGET(chosenURI, body) {\n    // Implement the standard HTTP GET serialization, plus 'extensions'. Note\n    // the extra level of JSON serialization!\n    var queryParams = [];\n    var addQueryParam = function (key, value) {\n        queryParams.push(\"\".concat(key, \"=\").concat(encodeURIComponent(value)));\n    };\n    if (\"query\" in body) {\n        addQueryParam(\"query\", body.query);\n    }\n    if (body.operationName) {\n        addQueryParam(\"operationName\", body.operationName);\n    }\n    if (body.variables) {\n        var serializedVariables = void 0;\n        try {\n            serializedVariables = serializeFetchParameter(body.variables, \"Variables map\");\n        }\n        catch (parseError) {\n            return { parseError: parseError };\n        }\n        addQueryParam(\"variables\", serializedVariables);\n    }\n    if (body.extensions) {\n        var serializedExtensions = void 0;\n        try {\n            serializedExtensions = serializeFetchParameter(body.extensions, \"Extensions map\");\n        }\n        catch (parseError) {\n            return { parseError: parseError };\n        }\n        addQueryParam(\"extensions\", serializedExtensions);\n    }\n    // Reconstruct the URI with added query params.\n    // XXX This assumes that the URI is well-formed and that it doesn't\n    //     already contain any of these query params. We could instead use the\n    //     URL API and take a polyfill (whatwg-url@6) for older browsers that\n    //     don't support URLSearchParams. Note that some browsers (and\n    //     versions of whatwg-url) support URL but not URLSearchParams!\n    var fragment = \"\", preFragment = chosenURI;\n    var fragmentStart = chosenURI.indexOf(\"#\");\n    if (fragmentStart !== -1) {\n        fragment = chosenURI.substr(fragmentStart);\n        preFragment = chosenURI.substr(0, fragmentStart);\n    }\n    var queryParamsPrefix = preFragment.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n    var newURI = preFragment + queryParamsPrefix + queryParams.join(\"&\") + fragment;\n    return { newURI: newURI };\n}\n//# sourceMappingURL=rewriteURIForGET.js.map","import { Observable } from \"../../utilities/index.js\";\nexport function fromError(errorValue) {\n    return new Observable(function (observer) {\n        observer.error(errorValue);\n    });\n}\n//# sourceMappingURL=fromError.js.map","import { __assign } from \"tslib\";\nimport { visit } from \"graphql\";\nexport function filterOperationVariables(variables, query) {\n    var result = __assign({}, variables);\n    var unusedNames = new Set(Object.keys(variables));\n    visit(query, {\n        Variable: function (node, _key, parent) {\n            // A variable type definition at the top level of a query is not\n            // enough to silence server-side errors about the variable being\n            // unused, so variable definitions do not count as usage.\n            // https://spec.graphql.org/draft/#sec-All-Variables-Used\n            if (parent &&\n                parent.kind !== \"VariableDefinition\") {\n                unusedNames.delete(node.name.value);\n            }\n        },\n    });\n    unusedNames.forEach(function (name) {\n        delete result[name];\n    });\n    return result;\n}\n//# sourceMappingURL=filterOperationVariables.js.map","import { __assign, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable, hasDirectives } from \"../../utilities/index.js\";\nimport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport { selectURI } from \"./selectURI.js\";\nimport { handleError, readMultipartBody, parseAndCheckHttpResponse, } from \"./parseAndCheckHttpResponse.js\";\nimport { checkFetcher } from \"./checkFetcher.js\";\nimport { selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig, } from \"./selectHttpOptionsAndBody.js\";\nimport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\nimport { fromError, filterOperationVariables } from \"../utils/index.js\";\nimport { maybe, getMainDefinition, removeClientSetsFromDocument, } from \"../../utilities/index.js\";\nvar backupFetch = maybe(function () { return fetch; });\nexport var createHttpLink = function (linkOptions) {\n    if (linkOptions === void 0) { linkOptions = {}; }\n    var _a = linkOptions.uri, uri = _a === void 0 ? \"/graphql\" : _a, \n    // use default global fetch if nothing passed in\n    preferredFetch = linkOptions.fetch, _b = linkOptions.print, print = _b === void 0 ? defaultPrinter : _b, includeExtensions = linkOptions.includeExtensions, preserveHeaderCase = linkOptions.preserveHeaderCase, useGETForQueries = linkOptions.useGETForQueries, _c = linkOptions.includeUnusedVariables, includeUnusedVariables = _c === void 0 ? false : _c, requestOptions = __rest(linkOptions, [\"uri\", \"fetch\", \"print\", \"includeExtensions\", \"preserveHeaderCase\", \"useGETForQueries\", \"includeUnusedVariables\"]);\n    if (globalThis.__DEV__ !== false) {\n        // Make sure at least one of preferredFetch, window.fetch, or backupFetch is\n        // defined, so requests won't fail at runtime.\n        checkFetcher(preferredFetch || backupFetch);\n    }\n    var linkConfig = {\n        http: { includeExtensions: includeExtensions, preserveHeaderCase: preserveHeaderCase },\n        options: requestOptions.fetchOptions,\n        credentials: requestOptions.credentials,\n        headers: requestOptions.headers,\n    };\n    return new ApolloLink(function (operation) {\n        var chosenURI = selectURI(operation, uri);\n        var context = operation.getContext();\n        // `apollographql-client-*` headers are automatically set if a\n        // `clientAwareness` object is found in the context. These headers are\n        // set first, followed by the rest of the headers pulled from\n        // `context.headers`. If desired, `apollographql-client-*` headers set by\n        // the `clientAwareness` object can be overridden by\n        // `apollographql-client-*` headers set in `context.headers`.\n        var clientAwarenessHeaders = {};\n        if (context.clientAwareness) {\n            var _a = context.clientAwareness, name_1 = _a.name, version = _a.version;\n            if (name_1) {\n                clientAwarenessHeaders[\"apollographql-client-name\"] = name_1;\n            }\n            if (version) {\n                clientAwarenessHeaders[\"apollographql-client-version\"] = version;\n            }\n        }\n        var contextHeaders = __assign(__assign({}, clientAwarenessHeaders), context.headers);\n        var contextConfig = {\n            http: context.http,\n            options: context.fetchOptions,\n            credentials: context.credentials,\n            headers: contextHeaders,\n        };\n        if (hasDirectives([\"client\"], operation.query)) {\n            var transformedQuery = removeClientSetsFromDocument(operation.query);\n            if (!transformedQuery) {\n                return fromError(new Error(\"HttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or set the `transformOptions.removeClientFields` option to `true`.\"));\n            }\n            operation.query = transformedQuery;\n        }\n        //uses fallback, link, and then context to build options\n        var _b = selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig), options = _b.options, body = _b.body;\n        if (body.variables && !includeUnusedVariables) {\n            body.variables = filterOperationVariables(body.variables, operation.query);\n        }\n        var controller;\n        if (!options.signal && typeof AbortController !== \"undefined\") {\n            controller = new AbortController();\n            options.signal = controller.signal;\n        }\n        // If requested, set method to GET if there are no mutations.\n        var definitionIsMutation = function (d) {\n            return d.kind === \"OperationDefinition\" && d.operation === \"mutation\";\n        };\n        var definitionIsSubscription = function (d) {\n            return d.kind === \"OperationDefinition\" && d.operation === \"subscription\";\n        };\n        var isSubscription = definitionIsSubscription(getMainDefinition(operation.query));\n        // does not match custom directives beginning with @defer\n        var hasDefer = hasDirectives([\"defer\"], operation.query);\n        if (useGETForQueries &&\n            !operation.query.definitions.some(definitionIsMutation)) {\n            options.method = \"GET\";\n        }\n        if (hasDefer || isSubscription) {\n            options.headers = options.headers || {};\n            var acceptHeader = \"multipart/mixed;\";\n            // Omit defer-specific headers if the user attempts to defer a selection\n            // set on a subscription and log a warning.\n            if (isSubscription && hasDefer) {\n                globalThis.__DEV__ !== false && invariant.warn(39);\n            }\n            if (isSubscription) {\n                acceptHeader +=\n                    \"boundary=graphql;subscriptionSpec=1.0,application/json\";\n            }\n            else if (hasDefer) {\n                acceptHeader += \"deferSpec=20220824,application/json\";\n            }\n            options.headers.accept = acceptHeader;\n        }\n        if (options.method === \"GET\") {\n            var _c = rewriteURIForGET(chosenURI, body), newURI = _c.newURI, parseError = _c.parseError;\n            if (parseError) {\n                return fromError(parseError);\n            }\n            chosenURI = newURI;\n        }\n        else {\n            try {\n                options.body = serializeFetchParameter(body, \"Payload\");\n            }\n            catch (parseError) {\n                return fromError(parseError);\n            }\n        }\n        return new Observable(function (observer) {\n            // Prefer linkOptions.fetch (preferredFetch) if provided, and otherwise\n            // fall back to the *current* global window.fetch function (see issue\n            // #7832), or (if all else fails) the backupFetch function we saved when\n            // this module was first evaluated. This last option protects against the\n            // removal of window.fetch, which is unlikely but not impossible.\n            var currentFetch = preferredFetch || maybe(function () { return fetch; }) || backupFetch;\n            var observerNext = observer.next.bind(observer);\n            currentFetch(chosenURI, options)\n                .then(function (response) {\n                var _a;\n                operation.setContext({ response: response });\n                var ctype = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get(\"content-type\");\n                if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n                    return readMultipartBody(response, observerNext);\n                }\n                else {\n                    return parseAndCheckHttpResponse(operation)(response).then(observerNext);\n                }\n            })\n                .then(function () {\n                controller = undefined;\n                observer.complete();\n            })\n                .catch(function (err) {\n                controller = undefined;\n                handleError(err, observer);\n            });\n            return function () {\n                // XXX support canceling this request\n                // https://developers.google.com/web/updates/2017/09/abortable-fetch\n                if (controller)\n                    controller.abort();\n            };\n        });\n    });\n};\n//# sourceMappingURL=createHttpLink.js.map","import { __assign } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from \"rehackt\";\nimport { getApolloContext } from \"./ApolloContext.js\";\nexport var ApolloProvider = function (_a) {\n    var client = _a.client, children = _a.children;\n    var ApolloContext = getApolloContext();\n    var parentContext = React.useContext(ApolloContext);\n    var context = React.useMemo(function () {\n        return __assign(__assign({}, parentContext), { client: client || parentContext.client });\n    }, [parentContext, client]);\n    invariant(context.client, 47);\n    return (React.createElement(ApolloContext.Provider, { value: context }, children));\n};\n//# sourceMappingURL=ApolloProvider.js.map","// A version of Array.isArray that works better with readonly arrays.\nexport var isArray = Array.isArray;\nexport function isNonEmptyArray(value) {\n    return Array.isArray(value) && value.length > 0;\n}\n//# sourceMappingURL=arrays.js.map","import { AutoCleanedStrongCache, cacheSizes, } from \"../../utilities/caching/index.js\";\nimport { registerGlobalCache } from \"../caching/getMemoryInternals.js\";\n/**\n * Like JSON.stringify, but with object keys always sorted in the same order.\n *\n * To achieve performant sorting, this function uses a Map from JSON-serialized\n * arrays of keys (in any order) to sorted arrays of the same keys, with a\n * single sorted array reference shared by all permutations of the keys.\n *\n * As a drawback, this function will add a little bit more memory for every\n * object encountered that has different (more, less, a different order of) keys\n * than in the past.\n *\n * In a typical application, this extra memory usage should not play a\n * significant role, as `canonicalStringify` will be called for only a limited\n * number of object shapes, and the cache will not grow beyond a certain point.\n * But in some edge cases, this could be a problem, so we provide\n * canonicalStringify.reset() as a way of clearing the cache.\n * */\nexport var canonicalStringify = Object.assign(function canonicalStringify(value) {\n    return JSON.stringify(value, stableObjectReplacer);\n}, {\n    reset: function () {\n        // Clearing the sortingMap will reclaim all cached memory, without\n        // affecting the logical results of canonicalStringify, but potentially\n        // sacrificing performance until the cache is refilled.\n        sortingMap = new AutoCleanedStrongCache(cacheSizes.canonicalStringify || 1000 /* defaultCacheSizes.canonicalStringify */);\n    },\n});\nif (globalThis.__DEV__ !== false) {\n    registerGlobalCache(\"canonicalStringify\", function () { return sortingMap.size; });\n}\n// Values are JSON-serialized arrays of object keys (in any order), and values\n// are sorted arrays of the same keys.\nvar sortingMap;\ncanonicalStringify.reset();\n// The JSON.stringify function takes an optional second argument called a\n// replacer function. This function is called for each key-value pair in the\n// object being stringified, and its return value is used instead of the\n// original value. If the replacer function returns a new value, that value is\n// stringified as JSON instead of the original value of the property.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#the_replacer_parameter\nfunction stableObjectReplacer(key, value) {\n    if (value && typeof value === \"object\") {\n        var proto = Object.getPrototypeOf(value);\n        // We don't want to mess with objects that are not \"plain\" objects, which\n        // means their prototype is either Object.prototype or null. This check also\n        // prevents needlessly rearranging the indices of arrays.\n        if (proto === Object.prototype || proto === null) {\n            var keys = Object.keys(value);\n            // If keys is already sorted, let JSON.stringify serialize the original\n            // value instead of creating a new object with keys in the same order.\n            if (keys.every(everyKeyInOrder))\n                return value;\n            var unsortedKey = JSON.stringify(keys);\n            var sortedKeys = sortingMap.get(unsortedKey);\n            if (!sortedKeys) {\n                keys.sort();\n                var sortedKey = JSON.stringify(keys);\n                // Checking for sortedKey in the sortingMap allows us to share the same\n                // sorted array reference for all permutations of the same set of keys.\n                sortedKeys = sortingMap.get(sortedKey) || keys;\n                sortingMap.set(unsortedKey, sortedKeys);\n                sortingMap.set(sortedKey, sortedKeys);\n            }\n            var sortedObject_1 = Object.create(proto);\n            // Reassigning the keys in sorted order will cause JSON.stringify to\n            // serialize them in sorted order.\n            sortedKeys.forEach(function (key) {\n                sortedObject_1[key] = value[key];\n            });\n            return sortedObject_1;\n        }\n    }\n    return value;\n}\n// Since everything that happens in stableObjectReplacer benefits from being as\n// efficient as possible, we use a static function as the callback for\n// keys.every in order to test if the provided keys are already sorted without\n// allocating extra memory for a callback.\nfunction everyKeyInOrder(key, i, keys) {\n    return i === 0 || keys[i - 1] <= key;\n}\n//# sourceMappingURL=canonicalStringify.js.map","var toString = Object.prototype.toString;\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep(value) {\n    return cloneDeepHelper(value);\n}\nfunction cloneDeepHelper(val, seen) {\n    switch (toString.call(val)) {\n        case \"[object Array]\": {\n            seen = seen || new Map();\n            if (seen.has(val))\n                return seen.get(val);\n            var copy_1 = val.slice(0);\n            seen.set(val, copy_1);\n            copy_1.forEach(function (child, i) {\n                copy_1[i] = cloneDeepHelper(child, seen);\n            });\n            return copy_1;\n        }\n        case \"[object Object]\": {\n            seen = seen || new Map();\n            if (seen.has(val))\n                return seen.get(val);\n            // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n            // possible in all JS environments, so we will assume they exist/work.\n            var copy_2 = Object.create(Object.getPrototypeOf(val));\n            seen.set(val, copy_2);\n            Object.keys(val).forEach(function (key) {\n                copy_2[key] = cloneDeepHelper(val[key], seen);\n            });\n            return copy_2;\n        }\n        default:\n            return val;\n    }\n}\n//# sourceMappingURL=cloneDeep.js.map","import { isNonNullObject } from \"./objects.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { DeepMerger } from \"./mergeDeep.js\";\nexport function isExecutionPatchIncrementalResult(value) {\n    return \"incremental\" in value;\n}\nexport function isExecutionPatchInitialResult(value) {\n    return \"hasNext\" in value && \"data\" in value;\n}\nexport function isExecutionPatchResult(value) {\n    return (isExecutionPatchIncrementalResult(value) ||\n        isExecutionPatchInitialResult(value));\n}\n// This function detects an Apollo payload result before it is transformed\n// into a FetchResult via HttpLink; it cannot detect an ApolloPayloadResult\n// once it leaves the link chain.\nexport function isApolloPayloadResult(value) {\n    return isNonNullObject(value) && \"payload\" in value;\n}\nexport function mergeIncrementalData(prevResult, result) {\n    var mergedData = prevResult;\n    var merger = new DeepMerger();\n    if (isExecutionPatchIncrementalResult(result) &&\n        isNonEmptyArray(result.incremental)) {\n        result.incremental.forEach(function (_a) {\n            var data = _a.data, path = _a.path;\n            for (var i = path.length - 1; i >= 0; --i) {\n                var key = path[i];\n                var isNumericKey = !isNaN(+key);\n                var parent_1 = isNumericKey ? [] : {};\n                parent_1[key] = data;\n                data = parent_1;\n            }\n            mergedData = merger.merge(mergedData, data);\n        });\n    }\n    return mergedData;\n}\n//# sourceMappingURL=incrementalResult.js.map","import { isNonNullObject } from \"./objects.js\";\nfunction deepFreeze(value) {\n    var workSet = new Set([value]);\n    workSet.forEach(function (obj) {\n        if (isNonNullObject(obj) && shallowFreeze(obj) === obj) {\n            Object.getOwnPropertyNames(obj).forEach(function (name) {\n                if (isNonNullObject(obj[name]))\n                    workSet.add(obj[name]);\n            });\n        }\n    });\n    return value;\n}\nfunction shallowFreeze(obj) {\n    if (globalThis.__DEV__ !== false && !Object.isFrozen(obj)) {\n        try {\n            Object.freeze(obj);\n        }\n        catch (e) {\n            // Some types like Uint8Array and Node.js's Buffer cannot be frozen, but\n            // they all throw a TypeError when you try, so we re-throw any exceptions\n            // that are not TypeErrors, since that would be unexpected.\n            if (e instanceof TypeError)\n                return null;\n            throw e;\n        }\n    }\n    return obj;\n}\nexport function maybeDeepFreeze(obj) {\n    if (globalThis.__DEV__ !== false) {\n        deepFreeze(obj);\n    }\n    return obj;\n}\n//# sourceMappingURL=maybeDeepFreeze.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { isNonNullObject } from \"./objects.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function mergeDeep() {\n    var sources = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        sources[_i] = arguments[_i];\n    }\n    return mergeDeepArray(sources);\n}\n// In almost any situation where you could succeed in getting the\n// TypeScript compiler to infer a tuple type for the sources array, you\n// could just use mergeDeep instead of mergeDeepArray, so instead of\n// trying to convert T[] to an intersection type we just infer the array\n// element type, which works perfectly when the sources array has a\n// consistent element type.\nexport function mergeDeepArray(sources) {\n    var target = sources[0] || {};\n    var count = sources.length;\n    if (count > 1) {\n        var merger = new DeepMerger();\n        for (var i = 1; i < count; ++i) {\n            target = merger.merge(target, sources[i]);\n        }\n    }\n    return target;\n}\nvar defaultReconciler = function (target, source, property) {\n    return this.merge(target[property], source[property]);\n};\nvar DeepMerger = /** @class */ (function () {\n    function DeepMerger(reconciler) {\n        if (reconciler === void 0) { reconciler = defaultReconciler; }\n        this.reconciler = reconciler;\n        this.isObject = isNonNullObject;\n        this.pastCopies = new Set();\n    }\n    DeepMerger.prototype.merge = function (target, source) {\n        var _this = this;\n        var context = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            context[_i - 2] = arguments[_i];\n        }\n        if (isNonNullObject(source) && isNonNullObject(target)) {\n            Object.keys(source).forEach(function (sourceKey) {\n                if (hasOwnProperty.call(target, sourceKey)) {\n                    var targetValue = target[sourceKey];\n                    if (source[sourceKey] !== targetValue) {\n                        var result = _this.reconciler.apply(_this, __spreadArray([target,\n                            source,\n                            sourceKey], context, false));\n                        // A well-implemented reconciler may return targetValue to indicate\n                        // the merge changed nothing about the structure of the target.\n                        if (result !== targetValue) {\n                            target = _this.shallowCopyForMerge(target);\n                            target[sourceKey] = result;\n                        }\n                    }\n                }\n                else {\n                    // If there is no collision, the target can safely share memory with\n                    // the source, and the recursion can terminate here.\n                    target = _this.shallowCopyForMerge(target);\n                    target[sourceKey] = source[sourceKey];\n                }\n            });\n            return target;\n        }\n        // If source (or target) is not an object, let source replace target.\n        return source;\n    };\n    DeepMerger.prototype.shallowCopyForMerge = function (value) {\n        if (isNonNullObject(value)) {\n            if (!this.pastCopies.has(value)) {\n                if (Array.isArray(value)) {\n                    value = value.slice(0);\n                }\n                else {\n                    value = __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n                }\n                this.pastCopies.add(value);\n            }\n        }\n        return value;\n    };\n    return DeepMerger;\n}());\nexport { DeepMerger };\n//# sourceMappingURL=mergeDeep.js.map","import { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet } from \"../common/canUse.js\";\nimport { checkDocument } from \"./getFromAST.js\";\nimport { invariant } from \"../globals/index.js\";\nimport { WeakCache } from \"@wry/caches\";\nimport { wrap } from \"optimism\";\nimport { cacheSizes } from \"../caching/index.js\";\nfunction identity(document) {\n    return document;\n}\nvar DocumentTransform = /** @class */ (function () {\n    function DocumentTransform(transform, options) {\n        if (options === void 0) { options = Object.create(null); }\n        this.resultCache = canUseWeakSet ? new WeakSet() : new Set();\n        this.transform = transform;\n        if (options.getCacheKey) {\n            // Override default `getCacheKey` function, which returns [document].\n            this.getCacheKey = options.getCacheKey;\n        }\n        this.cached = options.cache !== false;\n        this.resetCache();\n    }\n    // This default implementation of getCacheKey can be overridden by providing\n    // options.getCacheKey to the DocumentTransform constructor. In general, a\n    // getCacheKey function may either return an array of keys (often including\n    // the document) to be used as a cache key, or undefined to indicate the\n    // transform for this document should not be cached.\n    DocumentTransform.prototype.getCacheKey = function (document) {\n        return [document];\n    };\n    DocumentTransform.identity = function () {\n        // No need to cache this transform since it just returns the document\n        // unchanged. This should save a bit of memory that would otherwise be\n        // needed to populate the `documentCache` of this transform.\n        return new DocumentTransform(identity, { cache: false });\n    };\n    DocumentTransform.split = function (predicate, left, right) {\n        if (right === void 0) { right = DocumentTransform.identity(); }\n        return Object.assign(new DocumentTransform(function (document) {\n            var documentTransform = predicate(document) ? left : right;\n            return documentTransform.transformDocument(document);\n        }, \n        // Reasonably assume both `left` and `right` transforms handle their own caching\n        { cache: false }), { left: left, right: right });\n    };\n    /**\n     * Resets the internal cache of this transform, if it has one.\n     */\n    DocumentTransform.prototype.resetCache = function () {\n        var _this = this;\n        if (this.cached) {\n            var stableCacheKeys_1 = new Trie(canUseWeakMap);\n            this.performWork = wrap(DocumentTransform.prototype.performWork.bind(this), {\n                makeCacheKey: function (document) {\n                    var cacheKeys = _this.getCacheKey(document);\n                    if (cacheKeys) {\n                        invariant(Array.isArray(cacheKeys), 69);\n                        return stableCacheKeys_1.lookupArray(cacheKeys);\n                    }\n                },\n                max: cacheSizes[\"documentTransform.cache\"],\n                cache: (WeakCache),\n            });\n        }\n    };\n    DocumentTransform.prototype.performWork = function (document) {\n        checkDocument(document);\n        return this.transform(document);\n    };\n    DocumentTransform.prototype.transformDocument = function (document) {\n        // If a user passes an already transformed result back to this function,\n        // immediately return it.\n        if (this.resultCache.has(document)) {\n            return document;\n        }\n        var transformedDocument = this.performWork(document);\n        this.resultCache.add(transformedDocument);\n        return transformedDocument;\n    };\n    DocumentTransform.prototype.concat = function (otherTransform) {\n        var _this = this;\n        return Object.assign(new DocumentTransform(function (document) {\n            return otherTransform.transformDocument(_this.transformDocument(document));\n        }, \n        // Reasonably assume both transforms handle their own caching\n        { cache: false }), {\n            left: this,\n            right: otherTransform,\n        });\n    };\n    return DocumentTransform;\n}());\nexport { DocumentTransform };\n//# sourceMappingURL=DocumentTransform.js.map","import { invariant } from \"../globals/index.js\";\nimport { visit, BREAK } from \"graphql\";\nexport function shouldInclude(_a, variables) {\n    var directives = _a.directives;\n    if (!directives || !directives.length) {\n        return true;\n    }\n    return getInclusionDirectives(directives).every(function (_a) {\n        var directive = _a.directive, ifArgument = _a.ifArgument;\n        var evaledValue = false;\n        if (ifArgument.value.kind === \"Variable\") {\n            evaledValue =\n                variables && variables[ifArgument.value.name.value];\n            invariant(evaledValue !== void 0, 70, directive.name.value);\n        }\n        else {\n            evaledValue = ifArgument.value.value;\n        }\n        return directive.name.value === \"skip\" ? !evaledValue : evaledValue;\n    });\n}\nexport function getDirectiveNames(root) {\n    var names = [];\n    visit(root, {\n        Directive: function (node) {\n            names.push(node.name.value);\n        },\n    });\n    return names;\n}\nexport var hasAnyDirectives = function (names, root) {\n    return hasDirectives(names, root, false);\n};\nexport var hasAllDirectives = function (names, root) {\n    return hasDirectives(names, root, true);\n};\nexport function hasDirectives(names, root, all) {\n    var nameSet = new Set(names);\n    var uniqueCount = nameSet.size;\n    visit(root, {\n        Directive: function (node) {\n            if (nameSet.delete(node.name.value) && (!all || !nameSet.size)) {\n                return BREAK;\n            }\n        },\n    });\n    // If we found all the names, nameSet will be empty. If we only care about\n    // finding some of them, the < condition is sufficient.\n    return all ? !nameSet.size : nameSet.size < uniqueCount;\n}\nexport function hasClientExports(document) {\n    return document && hasDirectives([\"client\", \"export\"], document, true);\n}\nfunction isInclusionDirective(_a) {\n    var value = _a.name.value;\n    return value === \"skip\" || value === \"include\";\n}\nexport function getInclusionDirectives(directives) {\n    var result = [];\n    if (directives && directives.length) {\n        directives.forEach(function (directive) {\n            if (!isInclusionDirective(directive))\n                return;\n            var directiveArguments = directive.arguments;\n            var directiveName = directive.name.value;\n            invariant(directiveArguments && directiveArguments.length === 1, 71, directiveName);\n            var ifArgument = directiveArguments[0];\n            invariant(ifArgument.name && ifArgument.name.value === \"if\", 72, directiveName);\n            var ifValue = ifArgument.value;\n            // means it has to be a variable value if this is a valid @skip or @include directive\n            invariant(ifValue &&\n                (ifValue.kind === \"Variable\" || ifValue.kind === \"BooleanValue\"), 73, directiveName);\n            result.push({ directive: directive, ifArgument: ifArgument });\n        });\n    }\n    return result;\n}\n//# sourceMappingURL=directives.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant, newInvariantError } from \"../globals/index.js\";\n/**\n * Returns a query document which adds a single query operation that only\n * spreads the target fragment inside of it.\n *\n * So for example a document of:\n *\n * ```graphql\n * fragment foo on Foo { a b c }\n * ```\n *\n * Turns into:\n *\n * ```graphql\n * { ...foo }\n *\n * fragment foo on Foo { a b c }\n * ```\n *\n * The target fragment will either be the only fragment in the document, or a\n * fragment specified by the provided `fragmentName`. If there is more than one\n * fragment, but a `fragmentName` was not defined then an error will be thrown.\n */\nexport function getFragmentQueryDocument(document, fragmentName) {\n    var actualFragmentName = fragmentName;\n    // Build an array of all our fragment definitions that will be used for\n    // validations. We also do some validations on the other definitions in the\n    // document while building this list.\n    var fragments = [];\n    document.definitions.forEach(function (definition) {\n        // Throw an error if we encounter an operation definition because we will\n        // define our own operation definition later on.\n        if (definition.kind === \"OperationDefinition\") {\n            throw newInvariantError(\n                74,\n                definition.operation,\n                definition.name ? \" named '\".concat(definition.name.value, \"'\") : \"\"\n            );\n        }\n        // Add our definition to the fragments array if it is a fragment\n        // definition.\n        if (definition.kind === \"FragmentDefinition\") {\n            fragments.push(definition);\n        }\n    });\n    // If the user did not give us a fragment name then let us try to get a\n    // name from a single fragment in the definition.\n    if (typeof actualFragmentName === \"undefined\") {\n        invariant(fragments.length === 1, 75, fragments.length);\n        actualFragmentName = fragments[0].name.value;\n    }\n    // Generate a query document with an operation that simply spreads the\n    // fragment inside of it.\n    var query = __assign(__assign({}, document), { definitions: __spreadArray([\n            {\n                kind: \"OperationDefinition\",\n                // OperationTypeNode is an enum\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        ], document.definitions, true) });\n    return query;\n}\n// Utility function that takes a list of fragment definitions and makes a hash out of them\n// that maps the name of the fragment to the fragment definition.\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 getFragmentFromSelection(selection, fragmentMap) {\n    switch (selection.kind) {\n        case \"InlineFragment\":\n            return selection;\n        case \"FragmentSpread\": {\n            var fragmentName = selection.name.value;\n            if (typeof fragmentMap === \"function\") {\n                return fragmentMap(fragmentName);\n            }\n            var fragment = fragmentMap && fragmentMap[fragmentName];\n            invariant(fragment, 76, fragmentName);\n            return fragment || null;\n        }\n        default:\n            return null;\n    }\n}\n//# sourceMappingURL=fragments.js.map","import { invariant, newInvariantError } from \"../globals/index.js\";\nimport { valueToObjectRepresentation } from \"./storeUtils.js\";\n// Checks the document for errors and throws an exception if there is an error.\nexport function checkDocument(doc) {\n    invariant(doc && doc.kind === \"Document\", 77);\n    var operations = doc.definitions\n        .filter(function (d) { return d.kind !== \"FragmentDefinition\"; })\n        .map(function (definition) {\n        if (definition.kind !== \"OperationDefinition\") {\n            throw newInvariantError(78, definition.kind);\n        }\n        return definition;\n    });\n    invariant(operations.length <= 1, 79, operations.length);\n    return doc;\n}\nexport function getOperationDefinition(doc) {\n    checkDocument(doc);\n    return doc.definitions.filter(function (definition) {\n        return definition.kind === \"OperationDefinition\";\n    })[0];\n}\nexport function getOperationName(doc) {\n    return (doc.definitions\n        .filter(function (definition) {\n        return definition.kind === \"OperationDefinition\" && !!definition.name;\n    })\n        .map(function (x) { return x.name.value; })[0] || null);\n}\n// Returns the FragmentDefinitions from a particular document as an array\nexport function getFragmentDefinitions(doc) {\n    return doc.definitions.filter(function (definition) {\n        return definition.kind === \"FragmentDefinition\";\n    });\n}\nexport function getQueryDefinition(doc) {\n    var queryDef = getOperationDefinition(doc);\n    invariant(queryDef && queryDef.operation === \"query\", 80);\n    return queryDef;\n}\nexport function getFragmentDefinition(doc) {\n    invariant(doc.kind === \"Document\", 81);\n    invariant(doc.definitions.length <= 1, 82);\n    var fragmentDef = doc.definitions[0];\n    invariant(fragmentDef.kind === \"FragmentDefinition\", 83);\n    return fragmentDef;\n}\n/**\n * Returns the first operation definition found in this document.\n * If no operation definition is found, the first fragment definition will be returned.\n * If no definitions are found, an error will be thrown.\n */\nexport function getMainDefinition(queryDoc) {\n    checkDocument(queryDoc);\n    var fragmentDefinition;\n    for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n        var definition = _a[_i];\n        if (definition.kind === \"OperationDefinition\") {\n            var operation = definition.operation;\n            if (operation === \"query\" ||\n                operation === \"mutation\" ||\n                operation === \"subscription\") {\n                return definition;\n            }\n        }\n        if (definition.kind === \"FragmentDefinition\" && !fragmentDefinition) {\n            // we do this because we want to allow multiple fragment definitions\n            // to precede an operation definition.\n            fragmentDefinition = definition;\n        }\n    }\n    if (fragmentDefinition) {\n        return fragmentDefinition;\n    }\n    throw newInvariantError(84);\n}\nexport function getDefaultValues(definition) {\n    var defaultValues = Object.create(null);\n    var defs = definition && definition.variableDefinitions;\n    if (defs && defs.length) {\n        defs.forEach(function (def) {\n            if (def.defaultValue) {\n                valueToObjectRepresentation(defaultValues, def.variable.name, def.defaultValue);\n            }\n        });\n    }\n    return defaultValues;\n}\n//# sourceMappingURL=getFromAST.js.map","/**\n * Prints a string as a GraphQL StringValue literal. Replaces control characters\n * and excluded characters (\" U+0022 and \\\\ U+005C) with escape sequences.\n */\nexport function printString(str) {\n  return `\"${str.replace(escapedRegExp, escapedReplacer)}\"`;\n} // eslint-disable-next-line no-control-regex\n\nconst escapedRegExp = /[\\x00-\\x1f\\x22\\x5c\\x7f-\\x9f]/g;\n\nfunction escapedReplacer(str) {\n  return escapeSequences[str.charCodeAt(0)];\n} // prettier-ignore\n\nconst escapeSequences = [\n  '\\\\u0000',\n  '\\\\u0001',\n  '\\\\u0002',\n  '\\\\u0003',\n  '\\\\u0004',\n  '\\\\u0005',\n  '\\\\u0006',\n  '\\\\u0007',\n  '\\\\b',\n  '\\\\t',\n  '\\\\n',\n  '\\\\u000B',\n  '\\\\f',\n  '\\\\r',\n  '\\\\u000E',\n  '\\\\u000F',\n  '\\\\u0010',\n  '\\\\u0011',\n  '\\\\u0012',\n  '\\\\u0013',\n  '\\\\u0014',\n  '\\\\u0015',\n  '\\\\u0016',\n  '\\\\u0017',\n  '\\\\u0018',\n  '\\\\u0019',\n  '\\\\u001A',\n  '\\\\u001B',\n  '\\\\u001C',\n  '\\\\u001D',\n  '\\\\u001E',\n  '\\\\u001F',\n  '',\n  '',\n  '\\\\\"',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '', // 2F\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '', // 3F\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '', // 4F\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '\\\\\\\\',\n  '',\n  '',\n  '', // 5F\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '', // 6F\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '\\\\u007F',\n  '\\\\u0080',\n  '\\\\u0081',\n  '\\\\u0082',\n  '\\\\u0083',\n  '\\\\u0084',\n  '\\\\u0085',\n  '\\\\u0086',\n  '\\\\u0087',\n  '\\\\u0088',\n  '\\\\u0089',\n  '\\\\u008A',\n  '\\\\u008B',\n  '\\\\u008C',\n  '\\\\u008D',\n  '\\\\u008E',\n  '\\\\u008F',\n  '\\\\u0090',\n  '\\\\u0091',\n  '\\\\u0092',\n  '\\\\u0093',\n  '\\\\u0094',\n  '\\\\u0095',\n  '\\\\u0096',\n  '\\\\u0097',\n  '\\\\u0098',\n  '\\\\u0099',\n  '\\\\u009A',\n  '\\\\u009B',\n  '\\\\u009C',\n  '\\\\u009D',\n  '\\\\u009E',\n  '\\\\u009F',\n];\n","import { printBlockString } from './blockString.mjs';\nimport { printString } from './printString.mjs';\nimport { visit } from './visitor.mjs';\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n  return visit(ast, printDocASTReducer);\n}\nconst MAX_LINE_LENGTH = 80;\nconst printDocASTReducer = {\n  Name: {\n    leave: (node) => node.value,\n  },\n  Variable: {\n    leave: (node) => '$' + node.name,\n  },\n  // Document\n  Document: {\n    leave: (node) => join(node.definitions, '\\n\\n'),\n  },\n  OperationDefinition: {\n    leave(node) {\n      const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n      const prefix = join(\n        [\n          node.operation,\n          join([node.name, varDefs]),\n          join(node.directives, ' '),\n        ],\n        ' ',\n      ); // Anonymous queries with no directives or variable definitions can use\n      // the query short form.\n\n      return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet;\n    },\n  },\n  VariableDefinition: {\n    leave: ({ variable, type, defaultValue, directives }) =>\n      variable +\n      ': ' +\n      type +\n      wrap(' = ', defaultValue) +\n      wrap(' ', join(directives, ' ')),\n  },\n  SelectionSet: {\n    leave: ({ selections }) => block(selections),\n  },\n  Field: {\n    leave({ alias, name, arguments: args, directives, selectionSet }) {\n      const prefix = wrap('', alias, ': ') + name;\n      let argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n      if (argsLine.length > MAX_LINE_LENGTH) {\n        argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n      }\n\n      return join([argsLine, join(directives, ' '), selectionSet], ' ');\n    },\n  },\n  Argument: {\n    leave: ({ name, value }) => name + ': ' + value,\n  },\n  // Fragments\n  FragmentSpread: {\n    leave: ({ name, directives }) =>\n      '...' + name + wrap(' ', join(directives, ' ')),\n  },\n  InlineFragment: {\n    leave: ({ typeCondition, directives, selectionSet }) =>\n      join(\n        [\n          '...',\n          wrap('on ', typeCondition),\n          join(directives, ' '),\n          selectionSet,\n        ],\n        ' ',\n      ),\n  },\n  FragmentDefinition: {\n    leave: (\n      { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed\n    ) =>\n      // or removed in the future.\n      `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +\n      `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +\n      selectionSet,\n  },\n  // Value\n  IntValue: {\n    leave: ({ value }) => value,\n  },\n  FloatValue: {\n    leave: ({ value }) => value,\n  },\n  StringValue: {\n    leave: ({ value, block: isBlockString }) =>\n      isBlockString ? printBlockString(value) : printString(value),\n  },\n  BooleanValue: {\n    leave: ({ value }) => (value ? 'true' : 'false'),\n  },\n  NullValue: {\n    leave: () => 'null',\n  },\n  EnumValue: {\n    leave: ({ value }) => value,\n  },\n  ListValue: {\n    leave: ({ values }) => '[' + join(values, ', ') + ']',\n  },\n  ObjectValue: {\n    leave: ({ fields }) => '{' + join(fields, ', ') + '}',\n  },\n  ObjectField: {\n    leave: ({ name, value }) => name + ': ' + value,\n  },\n  // Directive\n  Directive: {\n    leave: ({ name, arguments: args }) =>\n      '@' + name + wrap('(', join(args, ', '), ')'),\n  },\n  // Type\n  NamedType: {\n    leave: ({ name }) => name,\n  },\n  ListType: {\n    leave: ({ type }) => '[' + type + ']',\n  },\n  NonNullType: {\n    leave: ({ type }) => type + '!',\n  },\n  // Type System Definitions\n  SchemaDefinition: {\n    leave: ({ description, directives, operationTypes }) =>\n      wrap('', description, '\\n') +\n      join(['schema', join(directives, ' '), block(operationTypes)], ' '),\n  },\n  OperationTypeDefinition: {\n    leave: ({ operation, type }) => operation + ': ' + type,\n  },\n  ScalarTypeDefinition: {\n    leave: ({ description, name, directives }) =>\n      wrap('', description, '\\n') +\n      join(['scalar', name, join(directives, ' ')], ' '),\n  },\n  ObjectTypeDefinition: {\n    leave: ({ description, name, interfaces, directives, fields }) =>\n      wrap('', description, '\\n') +\n      join(\n        [\n          'type',\n          name,\n          wrap('implements ', join(interfaces, ' & ')),\n          join(directives, ' '),\n          block(fields),\n        ],\n        ' ',\n      ),\n  },\n  FieldDefinition: {\n    leave: ({ description, name, arguments: args, type, directives }) =>\n      wrap('', description, '\\n') +\n      name +\n      (hasMultilineItems(args)\n        ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n        : wrap('(', join(args, ', '), ')')) +\n      ': ' +\n      type +\n      wrap(' ', join(directives, ' ')),\n  },\n  InputValueDefinition: {\n    leave: ({ description, name, type, defaultValue, directives }) =>\n      wrap('', description, '\\n') +\n      join(\n        [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],\n        ' ',\n      ),\n  },\n  InterfaceTypeDefinition: {\n    leave: ({ description, name, interfaces, directives, fields }) =>\n      wrap('', description, '\\n') +\n      join(\n        [\n          'interface',\n          name,\n          wrap('implements ', join(interfaces, ' & ')),\n          join(directives, ' '),\n          block(fields),\n        ],\n        ' ',\n      ),\n  },\n  UnionTypeDefinition: {\n    leave: ({ description, name, directives, types }) =>\n      wrap('', description, '\\n') +\n      join(\n        ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))],\n        ' ',\n      ),\n  },\n  EnumTypeDefinition: {\n    leave: ({ description, name, directives, values }) =>\n      wrap('', description, '\\n') +\n      join(['enum', name, join(directives, ' '), block(values)], ' '),\n  },\n  EnumValueDefinition: {\n    leave: ({ description, name, directives }) =>\n      wrap('', description, '\\n') + join([name, join(directives, ' ')], ' '),\n  },\n  InputObjectTypeDefinition: {\n    leave: ({ description, name, directives, fields }) =>\n      wrap('', description, '\\n') +\n      join(['input', name, join(directives, ' '), block(fields)], ' '),\n  },\n  DirectiveDefinition: {\n    leave: ({ description, name, arguments: args, repeatable, locations }) =>\n      wrap('', description, '\\n') +\n      'directive @' +\n      name +\n      (hasMultilineItems(args)\n        ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n        : wrap('(', join(args, ', '), ')')) +\n      (repeatable ? ' repeatable' : '') +\n      ' on ' +\n      join(locations, ' | '),\n  },\n  SchemaExtension: {\n    leave: ({ directives, operationTypes }) =>\n      join(\n        ['extend schema', join(directives, ' '), block(operationTypes)],\n        ' ',\n      ),\n  },\n  ScalarTypeExtension: {\n    leave: ({ name, directives }) =>\n      join(['extend scalar', name, join(directives, ' ')], ' '),\n  },\n  ObjectTypeExtension: {\n    leave: ({ name, interfaces, directives, fields }) =>\n      join(\n        [\n          'extend type',\n          name,\n          wrap('implements ', join(interfaces, ' & ')),\n          join(directives, ' '),\n          block(fields),\n        ],\n        ' ',\n      ),\n  },\n  InterfaceTypeExtension: {\n    leave: ({ name, interfaces, directives, fields }) =>\n      join(\n        [\n          'extend interface',\n          name,\n          wrap('implements ', join(interfaces, ' & ')),\n          join(directives, ' '),\n          block(fields),\n        ],\n        ' ',\n      ),\n  },\n  UnionTypeExtension: {\n    leave: ({ name, directives, types }) =>\n      join(\n        [\n          'extend union',\n          name,\n          join(directives, ' '),\n          wrap('= ', join(types, ' | ')),\n        ],\n        ' ',\n      ),\n  },\n  EnumTypeExtension: {\n    leave: ({ name, directives, values }) =>\n      join(['extend enum', name, join(directives, ' '), block(values)], ' '),\n  },\n  InputObjectTypeExtension: {\n    leave: ({ name, directives, fields }) =>\n      join(['extend input', name, join(directives, ' '), block(fields)], ' '),\n  },\n};\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\nfunction join(maybeArray, separator = '') {\n  var _maybeArray$filter$jo;\n\n  return (_maybeArray$filter$jo =\n    maybeArray === null || maybeArray === void 0\n      ? void 0\n      : maybeArray.filter((x) => x).join(separator)) !== null &&\n    _maybeArray$filter$jo !== void 0\n    ? _maybeArray$filter$jo\n    : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an indented `{ }` block.\n */\n\nfunction block(array) {\n  return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\nfunction wrap(start, maybeString, end = '') {\n  return maybeString != null && maybeString !== ''\n    ? start + maybeString + end\n    : '';\n}\n\nfunction indent(str) {\n  return wrap('  ', str.replace(/\\n/g, '\\n  '));\n}\n\nfunction hasMultilineItems(maybeArray) {\n  var _maybeArray$some;\n\n  // FIXME: https://github.com/graphql/graphql-js/issues/2203\n\n  /* c8 ignore next */\n  return (_maybeArray$some =\n    maybeArray === null || maybeArray === void 0\n      ? void 0\n      : maybeArray.some((str) => str.includes('\\n'))) !== null &&\n    _maybeArray$some !== void 0\n    ? _maybeArray$some\n    : false;\n}\n","import { print as origPrint } from \"graphql\";\nimport { AutoCleanedWeakCache, cacheSizes, } from \"../caching/index.js\";\nimport { registerGlobalCache } from \"../caching/getMemoryInternals.js\";\nvar printCache;\nexport var print = Object.assign(function (ast) {\n    var result = printCache.get(ast);\n    if (!result) {\n        result = origPrint(ast);\n        printCache.set(ast, result);\n    }\n    return result;\n}, {\n    reset: function () {\n        printCache = new AutoCleanedWeakCache(cacheSizes.print || 2000 /* defaultCacheSizes.print */);\n    },\n});\nprint.reset();\nif (globalThis.__DEV__ !== false) {\n    registerGlobalCache(\"print\", function () { return (printCache ? printCache.size : 0); });\n}\n//# sourceMappingURL=print.js.map","import { newInvariantError } from \"../globals/index.js\";\nimport { isNonNullObject } from \"../common/objects.js\";\nimport { getFragmentFromSelection } from \"./fragments.js\";\nimport { canonicalStringify } from \"../common/canonicalStringify.js\";\nexport function makeReference(id) {\n    return { __ref: String(id) };\n}\nexport function isReference(obj) {\n    return Boolean(obj && typeof obj === \"object\" && typeof obj.__ref === \"string\");\n}\nexport function isDocumentNode(value) {\n    return (isNonNullObject(value) &&\n        value.kind === \"Document\" &&\n        Array.isArray(value.definitions));\n}\nfunction 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}\nfunction isNullValue(value) {\n    return value.kind === \"NullValue\";\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 if (isNullValue(value)) {\n        argObj[name.value] = null;\n    }\n    else {\n        throw newInvariantError(85, name.value, value.kind);\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}\nvar KNOWN_DIRECTIVES = [\n    \"connection\",\n    \"include\",\n    \"skip\",\n    \"client\",\n    \"rest\",\n    \"export\",\n    \"nonreactive\",\n];\n// Default stable JSON.stringify implementation used by getStoreKeyName. Can be\n// updated/replaced with something better by calling\n// getStoreKeyName.setStringify(newStringifyFunction).\nvar storeKeyNameStringify = canonicalStringify;\nexport var getStoreKeyName = Object.assign(function (fieldName, args, directives) {\n    if (args &&\n        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 filteredArgs_1 = {};\n            filterKeys.forEach(function (key) {\n                filteredArgs_1[key] = args[key];\n            });\n            return \"\".concat(directives[\"connection\"][\"key\"], \"(\").concat(storeKeyNameStringify(filteredArgs_1), \")\");\n        }\n        else {\n            return directives[\"connection\"][\"key\"];\n        }\n    }\n    var completeFieldName = fieldName;\n    if (args) {\n        // We can't use `JSON.stringify` here since it's non-deterministic,\n        // and can lead to different store key names being created even though\n        // the `args` object used during creation has the same properties/values.\n        var stringifiedArgs = storeKeyNameStringify(args);\n        completeFieldName += \"(\".concat(stringifiedArgs, \")\");\n    }\n    if (directives) {\n        Object.keys(directives).forEach(function (key) {\n            if (KNOWN_DIRECTIVES.indexOf(key) !== -1)\n                return;\n            if (directives[key] && Object.keys(directives[key]).length) {\n                completeFieldName += \"@\".concat(key, \"(\").concat(storeKeyNameStringify(directives[key]), \")\");\n            }\n            else {\n                completeFieldName += \"@\".concat(key);\n            }\n        });\n    }\n    return completeFieldName;\n}, {\n    setStringify: function (s) {\n        var previous = storeKeyNameStringify;\n        storeKeyNameStringify = s;\n        return previous;\n    },\n});\nexport function argumentsObjectFromField(field, variables) {\n    if (field.arguments && field.arguments.length) {\n        var argObj_1 = {};\n        field.arguments.forEach(function (_a) {\n            var name = _a.name, value = _a.value;\n            return valueToObjectRepresentation(argObj_1, name, value, variables);\n        });\n        return argObj_1;\n    }\n    return null;\n}\nexport function resultKeyNameFromField(field) {\n    return field.alias ? field.alias.value : field.name.value;\n}\nexport function getTypenameFromResult(result, selectionSet, fragmentMap) {\n    var fragments;\n    for (var _i = 0, _a = selectionSet.selections; _i < _a.length; _i++) {\n        var selection = _a[_i];\n        if (isField(selection)) {\n            if (selection.name.value === \"__typename\") {\n                return result[resultKeyNameFromField(selection)];\n            }\n        }\n        else if (fragments) {\n            fragments.push(selection);\n        }\n        else {\n            fragments = [selection];\n        }\n    }\n    if (typeof result.__typename === \"string\") {\n        return result.__typename;\n    }\n    if (fragments) {\n        for (var _b = 0, fragments_1 = fragments; _b < fragments_1.length; _b++) {\n            var selection = fragments_1[_b];\n            var typename = getTypenameFromResult(result, getFragmentFromSelection(selection, fragmentMap).selectionSet, fragmentMap);\n            if (typeof typename === \"string\") {\n                return typename;\n            }\n        }\n    }\n}\nexport function isField(selection) {\n    return selection.kind === \"Field\";\n}\nexport function isInlineFragment(selection) {\n    return selection.kind === \"InlineFragment\";\n}\n//# sourceMappingURL=storeUtils.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant } from \"../globals/index.js\";\nimport { visit, Kind } from \"graphql\";\nimport { checkDocument, getOperationDefinition, getFragmentDefinition, getFragmentDefinitions, getMainDefinition, } from \"./getFromAST.js\";\nimport { isField } from \"./storeUtils.js\";\nimport { createFragmentMap } from \"./fragments.js\";\nimport { isArray, isNonEmptyArray } from \"../common/arrays.js\";\nvar TYPENAME_FIELD = {\n    kind: Kind.FIELD,\n    name: {\n        kind: Kind.NAME,\n        value: \"__typename\",\n    },\n};\nfunction isEmpty(op, fragmentMap) {\n    return (!op ||\n        op.selectionSet.selections.every(function (selection) {\n            return selection.kind === Kind.FRAGMENT_SPREAD &&\n                isEmpty(fragmentMap[selection.name.value], fragmentMap);\n        }));\n}\nfunction nullIfDocIsEmpty(doc) {\n    return (isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc)))) ?\n        null\n        : doc;\n}\nfunction getDirectiveMatcher(configs) {\n    var names = new Map();\n    var tests = new Map();\n    configs.forEach(function (directive) {\n        if (directive) {\n            if (directive.name) {\n                names.set(directive.name, directive);\n            }\n            else if (directive.test) {\n                tests.set(directive.test, directive);\n            }\n        }\n    });\n    return function (directive) {\n        var config = names.get(directive.name.value);\n        if (!config && tests.size) {\n            tests.forEach(function (testConfig, test) {\n                if (test(directive)) {\n                    config = testConfig;\n                }\n            });\n        }\n        return config;\n    };\n}\nfunction makeInUseGetterFunction(defaultKey) {\n    var map = new Map();\n    return function inUseGetterFunction(key) {\n        if (key === void 0) { key = defaultKey; }\n        var inUse = map.get(key);\n        if (!inUse) {\n            map.set(key, (inUse = {\n                // Variable and fragment spread names used directly within this\n                // operation or fragment definition, as identified by key. These sets\n                // will be populated during the first traversal of the document in\n                // removeDirectivesFromDocument below.\n                variables: new Set(),\n                fragmentSpreads: new Set(),\n            }));\n        }\n        return inUse;\n    };\n}\nexport function removeDirectivesFromDocument(directives, doc) {\n    checkDocument(doc);\n    // Passing empty strings to makeInUseGetterFunction means we handle anonymous\n    // operations as if their names were \"\". Anonymous fragment definitions are\n    // not supposed to be possible, but the same default naming strategy seems\n    // appropriate for that case as well.\n    var getInUseByOperationName = makeInUseGetterFunction(\"\");\n    var getInUseByFragmentName = makeInUseGetterFunction(\"\");\n    var getInUse = function (ancestors) {\n        for (var p = 0, ancestor = void 0; p < ancestors.length && (ancestor = ancestors[p]); ++p) {\n            if (isArray(ancestor))\n                continue;\n            if (ancestor.kind === Kind.OPERATION_DEFINITION) {\n                // If an operation is anonymous, we use the empty string as its key.\n                return getInUseByOperationName(ancestor.name && ancestor.name.value);\n            }\n            if (ancestor.kind === Kind.FRAGMENT_DEFINITION) {\n                return getInUseByFragmentName(ancestor.name.value);\n            }\n        }\n        globalThis.__DEV__ !== false && invariant.error(86);\n        return null;\n    };\n    var operationCount = 0;\n    for (var i = doc.definitions.length - 1; i >= 0; --i) {\n        if (doc.definitions[i].kind === Kind.OPERATION_DEFINITION) {\n            ++operationCount;\n        }\n    }\n    var directiveMatcher = getDirectiveMatcher(directives);\n    var shouldRemoveField = function (nodeDirectives) {\n        return isNonEmptyArray(nodeDirectives) &&\n            nodeDirectives\n                .map(directiveMatcher)\n                .some(function (config) { return config && config.remove; });\n    };\n    var originalFragmentDefsByPath = new Map();\n    // Any time the first traversal of the document below makes a change like\n    // removing a fragment (by returning null), this variable should be set to\n    // true. Once it becomes true, it should never be set to false again. If this\n    // variable remains false throughout the traversal, then we can return the\n    // original doc immediately without any modifications.\n    var firstVisitMadeChanges = false;\n    var fieldOrInlineFragmentVisitor = {\n        enter: function (node) {\n            if (shouldRemoveField(node.directives)) {\n                firstVisitMadeChanges = true;\n                return null;\n            }\n        },\n    };\n    var docWithoutDirectiveSubtrees = visit(doc, {\n        // These two AST node types share the same implementation, defined above.\n        Field: fieldOrInlineFragmentVisitor,\n        InlineFragment: fieldOrInlineFragmentVisitor,\n        VariableDefinition: {\n            enter: function () {\n                // VariableDefinition nodes do not count as variables in use, though\n                // they do contain Variable nodes that might be visited below. To avoid\n                // counting variable declarations as usages, we skip visiting the\n                // contents of this VariableDefinition node by returning false.\n                return false;\n            },\n        },\n        Variable: {\n            enter: function (node, _key, _parent, _path, ancestors) {\n                var inUse = getInUse(ancestors);\n                if (inUse) {\n                    inUse.variables.add(node.name.value);\n                }\n            },\n        },\n        FragmentSpread: {\n            enter: function (node, _key, _parent, _path, ancestors) {\n                if (shouldRemoveField(node.directives)) {\n                    firstVisitMadeChanges = true;\n                    return null;\n                }\n                var inUse = getInUse(ancestors);\n                if (inUse) {\n                    inUse.fragmentSpreads.add(node.name.value);\n                }\n                // We might like to remove this FragmentSpread by returning null here if\n                // the corresponding FragmentDefinition node is also going to be removed\n                // by the logic below, but we can't control the relative order of those\n                // events, so we have to postpone the removal of dangling FragmentSpread\n                // nodes until after the current visit of the document has finished.\n            },\n        },\n        FragmentDefinition: {\n            enter: function (node, _key, _parent, path) {\n                originalFragmentDefsByPath.set(JSON.stringify(path), node);\n            },\n            leave: function (node, _key, _parent, path) {\n                var originalNode = originalFragmentDefsByPath.get(JSON.stringify(path));\n                if (node === originalNode) {\n                    // If the FragmentNode received by this leave function is identical to\n                    // the one received by the corresponding enter function (above), then\n                    // the visitor must not have made any changes within this\n                    // FragmentDefinition node. This fragment definition may still be\n                    // removed if there are no ...spread references to it, but it won't be\n                    // removed just because it has only a __typename field.\n                    return node;\n                }\n                if (\n                // This logic applies only if the document contains one or more\n                // operations, since removing all fragments from a document containing\n                // only fragments makes the document useless.\n                operationCount > 0 &&\n                    node.selectionSet.selections.every(function (selection) {\n                        return selection.kind === Kind.FIELD &&\n                            selection.name.value === \"__typename\";\n                    })) {\n                    // This is a somewhat opinionated choice: if a FragmentDefinition ends\n                    // up having no fields other than __typename, we remove the whole\n                    // fragment definition, and later prune ...spread references to it.\n                    getInUseByFragmentName(node.name.value).removed = true;\n                    firstVisitMadeChanges = true;\n                    return null;\n                }\n            },\n        },\n        Directive: {\n            leave: function (node) {\n                // If a matching directive is found, remove the directive itself. Note\n                // that this does not remove the target (field, argument, etc) of the\n                // directive, but only the directive itself.\n                if (directiveMatcher(node)) {\n                    firstVisitMadeChanges = true;\n                    return null;\n                }\n            },\n        },\n    });\n    if (!firstVisitMadeChanges) {\n        // If our first pass did not change anything about the document, then there\n        // is no cleanup we need to do, and we can return the original doc.\n        return doc;\n    }\n    // Utility for making sure inUse.transitiveVars is recursively populated.\n    // Because this logic assumes inUse.fragmentSpreads has been completely\n    // populated and inUse.removed has been set if appropriate,\n    // populateTransitiveVars must be called after that information has been\n    // collected by the first traversal of the document.\n    var populateTransitiveVars = function (inUse) {\n        if (!inUse.transitiveVars) {\n            inUse.transitiveVars = new Set(inUse.variables);\n            if (!inUse.removed) {\n                inUse.fragmentSpreads.forEach(function (childFragmentName) {\n                    populateTransitiveVars(getInUseByFragmentName(childFragmentName)).transitiveVars.forEach(function (varName) {\n                        inUse.transitiveVars.add(varName);\n                    });\n                });\n            }\n        }\n        return inUse;\n    };\n    // Since we've been keeping track of fragment spreads used by particular\n    // operations and fragment definitions, we now need to compute the set of all\n    // spreads used (transitively) by any operations in the document.\n    var allFragmentNamesUsed = new Set();\n    docWithoutDirectiveSubtrees.definitions.forEach(function (def) {\n        if (def.kind === Kind.OPERATION_DEFINITION) {\n            populateTransitiveVars(getInUseByOperationName(def.name && def.name.value)).fragmentSpreads.forEach(function (childFragmentName) {\n                allFragmentNamesUsed.add(childFragmentName);\n            });\n        }\n        else if (def.kind === Kind.FRAGMENT_DEFINITION &&\n            // If there are no operations in the document, then all fragment\n            // definitions count as usages of their own fragment names. This heuristic\n            // prevents accidentally removing all fragment definitions from the\n            // document just because it contains no operations that use the fragments.\n            operationCount === 0 &&\n            !getInUseByFragmentName(def.name.value).removed) {\n            allFragmentNamesUsed.add(def.name.value);\n        }\n    });\n    // Now that we have added all fragment spreads used by operations to the\n    // allFragmentNamesUsed set, we can complete the set by transitively adding\n    // all fragment spreads used by those fragments, and so on.\n    allFragmentNamesUsed.forEach(function (fragmentName) {\n        // Once all the childFragmentName strings added here have been seen already,\n        // the top-level allFragmentNamesUsed.forEach loop will terminate.\n        populateTransitiveVars(getInUseByFragmentName(fragmentName)).fragmentSpreads.forEach(function (childFragmentName) {\n            allFragmentNamesUsed.add(childFragmentName);\n        });\n    });\n    var fragmentWillBeRemoved = function (fragmentName) {\n        return !!(\n        // A fragment definition will be removed if there are no spreads that refer\n        // to it, or the fragment was explicitly removed because it had no fields\n        // other than __typename.\n        (!allFragmentNamesUsed.has(fragmentName) ||\n            getInUseByFragmentName(fragmentName).removed));\n    };\n    var enterVisitor = {\n        enter: function (node) {\n            if (fragmentWillBeRemoved(node.name.value)) {\n                return null;\n            }\n        },\n    };\n    return nullIfDocIsEmpty(visit(docWithoutDirectiveSubtrees, {\n        // If the fragment is going to be removed, then leaving any dangling\n        // FragmentSpread nodes with the same name would be a mistake.\n        FragmentSpread: enterVisitor,\n        // This is where the fragment definition is actually removed.\n        FragmentDefinition: enterVisitor,\n        OperationDefinition: {\n            leave: function (node) {\n                // Upon leaving each operation in the depth-first AST traversal, prune\n                // any variables that are declared by the operation but unused within.\n                if (node.variableDefinitions) {\n                    var usedVariableNames_1 = populateTransitiveVars(\n                    // If an operation is anonymous, we use the empty string as its key.\n                    getInUseByOperationName(node.name && node.name.value)).transitiveVars;\n                    // According to the GraphQL spec, all variables declared by an\n                    // operation must either be used by that operation or used by some\n                    // fragment included transitively into that operation:\n                    // https://spec.graphql.org/draft/#sec-All-Variables-Used\n                    //\n                    // To stay on the right side of this validation rule, if/when we\n                    // remove the last $var references from an operation or its fragments,\n                    // we must also remove the corresponding $var declaration from the\n                    // enclosing operation. This pruning applies only to operations and\n                    // not fragment definitions, at the moment. Fragments may be able to\n                    // declare variables eventually, but today they can only consume them.\n                    if (usedVariableNames_1.size < node.variableDefinitions.length) {\n                        return __assign(__assign({}, node), { variableDefinitions: node.variableDefinitions.filter(function (varDef) {\n                                return usedVariableNames_1.has(varDef.variable.name.value);\n                            }) });\n                    }\n                }\n            },\n        },\n    }));\n}\nexport var addTypenameToDocument = Object.assign(function (doc) {\n    return visit(doc, {\n        SelectionSet: {\n            enter: function (node, _key, parent) {\n                // Don't add __typename to OperationDefinitions.\n                if (parent &&\n                    parent.kind ===\n                        Kind.OPERATION_DEFINITION) {\n                    return;\n                }\n                // No changes if no selections.\n                var selections = node.selections;\n                if (!selections) {\n                    return;\n                }\n                // If selections already have a __typename, or are part of an\n                // introspection query, do nothing.\n                var skip = selections.some(function (selection) {\n                    return (isField(selection) &&\n                        (selection.name.value === \"__typename\" ||\n                            selection.name.value.lastIndexOf(\"__\", 0) === 0));\n                });\n                if (skip) {\n                    return;\n                }\n                // If this SelectionSet is @export-ed as an input variable, it should\n                // not have a __typename field (see issue #4691).\n                var field = parent;\n                if (isField(field) &&\n                    field.directives &&\n                    field.directives.some(function (d) { return d.name.value === \"export\"; })) {\n                    return;\n                }\n                // Create and return a new SelectionSet with a __typename Field.\n                return __assign(__assign({}, node), { selections: __spreadArray(__spreadArray([], selections, true), [TYPENAME_FIELD], false) });\n            },\n        },\n    });\n}, {\n    added: function (field) {\n        return field === TYPENAME_FIELD;\n    },\n});\nvar connectionRemoveConfig = {\n    test: 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                globalThis.__DEV__ !== false && invariant.warn(87);\n            }\n        }\n        return willRemove;\n    },\n};\nexport function removeConnectionDirectiveFromDocument(doc) {\n    return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n    if (nestedCheck === void 0) { nestedCheck = true; }\n    return (!!selectionSet &&\n        selectionSet.selections &&\n        selectionSet.selections.some(function (selection) {\n            return hasDirectivesInSelection(directives, selection, nestedCheck);\n        }));\n}\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n    if (nestedCheck === void 0) { nestedCheck = true; }\n    if (!isField(selection)) {\n        return true;\n    }\n    if (!selection.directives) {\n        return false;\n    }\n    return (selection.directives.some(getDirectiveMatcher(directives)) ||\n        (nestedCheck &&\n            hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck)));\n}\nfunction getArgumentMatcher(config) {\n    return function argumentMatcher(argument) {\n        return config.some(function (aConfig) {\n            return argument.value &&\n                argument.value.kind === Kind.VARIABLE &&\n                argument.value.name &&\n                (aConfig.name === argument.value.name.value ||\n                    (aConfig.test && aConfig.test(argument)));\n        });\n    };\n}\nexport function removeArgumentsFromDocument(config, doc) {\n    var argMatcher = getArgumentMatcher(config);\n    return nullIfDocIsEmpty(visit(doc, {\n        OperationDefinition: {\n            enter: function (node) {\n                return __assign(__assign({}, node), { \n                    // Remove matching top level variables definitions.\n                    variableDefinitions: node.variableDefinitions ?\n                        node.variableDefinitions.filter(function (varDef) {\n                            return !config.some(function (arg) { return arg.name === varDef.variable.name.value; });\n                        })\n                        : [] });\n            },\n        },\n        Field: {\n            enter: function (node) {\n                // If `remove` is set to true for an argument, and an argument match\n                // is found for a field, remove the field as well.\n                var shouldRemoveField = config.some(function (argConfig) { return argConfig.remove; });\n                if (shouldRemoveField) {\n                    var argMatchCount_1 = 0;\n                    if (node.arguments) {\n                        node.arguments.forEach(function (arg) {\n                            if (argMatcher(arg)) {\n                                argMatchCount_1 += 1;\n                            }\n                        });\n                    }\n                    if (argMatchCount_1 === 1) {\n                        return null;\n                    }\n                }\n            },\n        },\n        Argument: {\n            enter: function (node) {\n                // Remove all matching arguments.\n                if (argMatcher(node)) {\n                    return null;\n                }\n            },\n        },\n    }));\n}\nexport function removeFragmentSpreadFromDocument(config, doc) {\n    function enter(node) {\n        if (config.some(function (def) { return def.name === node.name.value; })) {\n            return null;\n        }\n    }\n    return nullIfDocIsEmpty(visit(doc, {\n        FragmentSpread: { enter: enter },\n        FragmentDefinition: { enter: enter },\n    }));\n}\n// If the incoming document is a query, return it as is. Otherwise, build a\n// new document containing a query operation based on the selection set\n// of the previous main operation.\nexport function buildQueryFromSelectionSet(document) {\n    var definition = getMainDefinition(document);\n    var definitionOperation = definition.operation;\n    if (definitionOperation === \"query\") {\n        // Already a query, so return the existing document.\n        return document;\n    }\n    // Build a new query using the selection set of the main operation.\n    var modifiedDoc = visit(document, {\n        OperationDefinition: {\n            enter: function (node) {\n                return __assign(__assign({}, node), { operation: \"query\" });\n            },\n        },\n    });\n    return modifiedDoc;\n}\n// Remove fields / selection sets that include an @client directive.\nexport function removeClientSetsFromDocument(document) {\n    checkDocument(document);\n    var modifiedDoc = removeDirectivesFromDocument([\n        {\n            test: function (directive) { return directive.name.value === \"client\"; },\n            remove: true,\n        },\n    ], document);\n    return modifiedDoc;\n}\n//# sourceMappingURL=transform.js.map","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\n// object keys weakly, yet can also hold non-object keys, unlike the\n// native `WeakMap`.\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nconst defaultMakeData = () => Object.create(null);\n// Useful for processing arguments objects as well as arrays.\nconst { forEach, slice } = Array.prototype;\nconst { hasOwnProperty } = Object.prototype;\nexport class Trie {\n    constructor(weakness = true, makeData = defaultMakeData) {\n        this.weakness = weakness;\n        this.makeData = makeData;\n    }\n    lookup() {\n        return this.lookupArray(arguments);\n    }\n    lookupArray(array) {\n        let node = this;\n        forEach.call(array, key => node = node.getChildTrie(key));\n        return hasOwnProperty.call(node, \"data\")\n            ? node.data\n            : node.data = this.makeData(slice.call(array));\n    }\n    peek() {\n        return this.peekArray(arguments);\n    }\n    peekArray(array) {\n        let node = this;\n        for (let i = 0, len = array.length; node && i < len; ++i) {\n            const map = node.mapFor(array[i], false);\n            node = map && map.get(array[i]);\n        }\n        return node && node.data;\n    }\n    remove() {\n        return this.removeArray(arguments);\n    }\n    removeArray(array) {\n        let data;\n        if (array.length) {\n            const head = array[0];\n            const map = this.mapFor(head, false);\n            const child = map && map.get(head);\n            if (child) {\n                data = child.removeArray(slice.call(array, 1));\n                if (!child.data && !child.weak && !(child.strong && child.strong.size)) {\n                    map.delete(head);\n                }\n            }\n        }\n        else {\n            data = this.data;\n            delete this.data;\n        }\n        return data;\n    }\n    getChildTrie(key) {\n        const map = this.mapFor(key, true);\n        let child = map.get(key);\n        if (!child)\n            map.set(key, child = new Trie(this.weakness, this.makeData));\n        return child;\n    }\n    mapFor(key, create) {\n        return this.weakness && isObjRef(key)\n            ? this.weak || (create ? this.weak = new WeakMap : void 0)\n            : this.strong || (create ? this.strong = new Map : void 0);\n    }\n}\nfunction isObjRef(value) {\n    switch (typeof value) {\n        case \"object\":\n            if (value === null)\n                break;\n        // Fall through to return true...\n        case \"function\":\n            return true;\n    }\n    return false;\n}\n//# sourceMappingURL=index.js.map","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { isNode, QueryDocumentKeys } from './ast.mjs';\nimport { Kind } from './kinds.mjs';\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport const BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * ```ts\n * const editedAST = visit(ast, {\n *   enter(node, key, parent, path, ancestors) {\n *     // @return\n *     //   undefined: no action\n *     //   false: skip visiting this node\n *     //   visitor.BREAK: stop visiting altogether\n *     //   null: delete this node\n *     //   any value: replace this node with the returned value\n *   },\n *   leave(node, key, parent, path, ancestors) {\n *     // @return\n *     //   undefined: no action\n *     //   false: no action\n *     //   visitor.BREAK: stop visiting altogether\n *     //   null: delete this node\n *     //   any value: replace this node with the returned value\n *   }\n * });\n * ```\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to three permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n *   Kind(node) {\n *     // enter the \"Kind\" node\n *   }\n * })\n * ```\n *\n * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n *   Kind: {\n *     enter(node) {\n *       // enter the \"Kind\" node\n *     }\n *     leave(node) {\n *       // leave the \"Kind\" node\n *     }\n *   }\n * })\n * ```\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * ```ts\n * visit(ast, {\n *   enter(node) {\n *     // enter any node\n *   },\n *   leave(node) {\n *     // leave any node\n *   }\n * })\n * ```\n */\n\nexport function visit(root, visitor, visitorKeys = QueryDocumentKeys) {\n  const enterLeaveMap = new Map();\n\n  for (const kind of Object.values(Kind)) {\n    enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));\n  }\n  /* eslint-disable no-undef-init */\n\n  let stack = undefined;\n  let inArray = Array.isArray(root);\n  let keys = [root];\n  let index = -1;\n  let edits = [];\n  let node = root;\n  let key = undefined;\n  let parent = undefined;\n  const path = [];\n  const ancestors = [];\n  /* eslint-enable no-undef-init */\n\n  do {\n    index++;\n    const isLeaving = index === keys.length;\n    const isEdited = isLeaving && edits.length !== 0;\n\n    if (isLeaving) {\n      key = ancestors.length === 0 ? undefined : path[path.length - 1];\n      node = parent;\n      parent = ancestors.pop();\n\n      if (isEdited) {\n        if (inArray) {\n          node = node.slice();\n          let editOffset = 0;\n\n          for (const [editKey, editValue] of edits) {\n            const arrayKey = editKey - editOffset;\n\n            if (editValue === null) {\n              node.splice(arrayKey, 1);\n              editOffset++;\n            } else {\n              node[arrayKey] = editValue;\n            }\n          }\n        } else {\n          node = Object.defineProperties(\n            {},\n            Object.getOwnPropertyDescriptors(node),\n          );\n\n          for (const [editKey, editValue] of edits) {\n            node[editKey] = editValue;\n          }\n        }\n      }\n\n      index = stack.index;\n      keys = stack.keys;\n      edits = stack.edits;\n      inArray = stack.inArray;\n      stack = stack.prev;\n    } else if (parent) {\n      key = inArray ? index : keys[index];\n      node = parent[key];\n\n      if (node === null || node === undefined) {\n        continue;\n      }\n\n      path.push(key);\n    }\n\n    let result;\n\n    if (!Array.isArray(node)) {\n      var _enterLeaveMap$get, _enterLeaveMap$get2;\n\n      isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);\n      const visitFn = isLeaving\n        ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null ||\n          _enterLeaveMap$get === void 0\n          ? void 0\n          : _enterLeaveMap$get.leave\n        : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null ||\n          _enterLeaveMap$get2 === void 0\n        ? void 0\n        : _enterLeaveMap$get2.enter;\n      result =\n        visitFn === null || visitFn === void 0\n          ? void 0\n          : visitFn.call(visitor, node, key, parent, path, ancestors);\n\n      if (result === BREAK) {\n        break;\n      }\n\n      if (result === false) {\n        if (!isLeaving) {\n          path.pop();\n          continue;\n        }\n      } else if (result !== undefined) {\n        edits.push([key, result]);\n\n        if (!isLeaving) {\n          if (isNode(result)) {\n            node = result;\n          } else {\n            path.pop();\n            continue;\n          }\n        }\n      }\n    }\n\n    if (result === undefined && isEdited) {\n      edits.push([key, node]);\n    }\n\n    if (isLeaving) {\n      path.pop();\n    } else {\n      var _node$kind;\n\n      stack = {\n        inArray,\n        index,\n        keys,\n        edits,\n        prev: stack,\n      };\n      inArray = Array.isArray(node);\n      keys = inArray\n        ? node\n        : (_node$kind = visitorKeys[node.kind]) !== null &&\n          _node$kind !== void 0\n        ? _node$kind\n        : [];\n      index = -1;\n      edits = [];\n\n      if (parent) {\n        ancestors.push(parent);\n      }\n\n      parent = node;\n    }\n  } while (stack !== undefined);\n\n  if (edits.length !== 0) {\n    // New root\n    return edits[edits.length - 1][1];\n  }\n\n  return root;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n  const skipping = new Array(visitors.length).fill(null);\n  const mergedVisitor = Object.create(null);\n\n  for (const kind of Object.values(Kind)) {\n    let hasVisitor = false;\n    const enterList = new Array(visitors.length).fill(undefined);\n    const leaveList = new Array(visitors.length).fill(undefined);\n\n    for (let i = 0; i < visitors.length; ++i) {\n      const { enter, leave } = getEnterLeaveForKind(visitors[i], kind);\n      hasVisitor || (hasVisitor = enter != null || leave != null);\n      enterList[i] = enter;\n      leaveList[i] = leave;\n    }\n\n    if (!hasVisitor) {\n      continue;\n    }\n\n    const mergedEnterLeave = {\n      enter(...args) {\n        const node = args[0];\n\n        for (let i = 0; i < visitors.length; i++) {\n          if (skipping[i] === null) {\n            var _enterList$i;\n\n            const result =\n              (_enterList$i = enterList[i]) === null || _enterList$i === void 0\n                ? void 0\n                : _enterList$i.apply(visitors[i], args);\n\n            if (result === false) {\n              skipping[i] = node;\n            } else if (result === BREAK) {\n              skipping[i] = BREAK;\n            } else if (result !== undefined) {\n              return result;\n            }\n          }\n        }\n      },\n\n      leave(...args) {\n        const node = args[0];\n\n        for (let i = 0; i < visitors.length; i++) {\n          if (skipping[i] === null) {\n            var _leaveList$i;\n\n            const result =\n              (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0\n                ? void 0\n                : _leaveList$i.apply(visitors[i], args);\n\n            if (result === BREAK) {\n              skipping[i] = BREAK;\n            } else if (result !== undefined && result !== false) {\n              return result;\n            }\n          } else if (skipping[i] === node) {\n            skipping[i] = null;\n          }\n        }\n      },\n    };\n    mergedVisitor[kind] = mergedEnterLeave;\n  }\n\n  return mergedVisitor;\n}\n/**\n * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.\n */\n\nexport function getEnterLeaveForKind(visitor, kind) {\n  const kindVisitor = visitor[kind];\n\n  if (typeof kindVisitor === 'object') {\n    // { Kind: { enter() {}, leave() {} } }\n    return kindVisitor;\n  } else if (typeof kindVisitor === 'function') {\n    // { Kind() {} }\n    return {\n      enter: kindVisitor,\n      leave: undefined,\n    };\n  } // { enter() {}, leave() {} }\n\n  return {\n    enter: visitor.enter,\n    leave: visitor.leave,\n  };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n *\n * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17\n */\n\n/* c8 ignore next 8 */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n  const { enter, leave } = getEnterLeaveForKind(visitor, kind);\n  return isLeaving ? leave : enter;\n}\n","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\n// object keys weakly, yet can also hold non-object keys, unlike the\n// native `WeakMap`.\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nconst defaultMakeData = () => Object.create(null);\n// Useful for processing arguments objects as well as arrays.\nconst { forEach, slice } = Array.prototype;\nconst { hasOwnProperty } = Object.prototype;\nexport class Trie {\n    constructor(weakness = true, makeData = defaultMakeData) {\n        this.weakness = weakness;\n        this.makeData = makeData;\n    }\n    lookup(...array) {\n        return this.lookupArray(array);\n    }\n    lookupArray(array) {\n        let node = this;\n        forEach.call(array, key => node = node.getChildTrie(key));\n        return hasOwnProperty.call(node, \"data\")\n            ? node.data\n            : node.data = this.makeData(slice.call(array));\n    }\n    peek(...array) {\n        return this.peekArray(array);\n    }\n    peekArray(array) {\n        let node = this;\n        for (let i = 0, len = array.length; node && i < len; ++i) {\n            const map = this.weakness && isObjRef(array[i]) ? node.weak : node.strong;\n            node = map && map.get(array[i]);\n        }\n        return node && node.data;\n    }\n    getChildTrie(key) {\n        const map = this.weakness && isObjRef(key)\n            ? this.weak || (this.weak = new WeakMap())\n            : this.strong || (this.strong = new Map());\n        let child = map.get(key);\n        if (!child)\n            map.set(key, child = new Trie(this.weakness, this.makeData));\n        return child;\n    }\n}\nfunction isObjRef(value) {\n    switch (typeof value) {\n        case \"object\":\n            if (value === null)\n                break;\n        // Fall through to return true...\n        case \"function\":\n            return true;\n    }\n    return false;\n}\n//# sourceMappingURL=index.js.map","// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nlet currentContext = null;\n// This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\nconst MISSING_VALUE = {};\nlet idCounter = 1;\n// Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\nconst makeSlotClass = () => class Slot {\n    constructor() {\n        // If you have a Slot object, you can find out its slot.id, but you cannot\n        // guess the slot.id of a Slot you don't have access to, thanks to the\n        // randomized suffix.\n        this.id = [\n            \"slot\",\n            idCounter++,\n            Date.now(),\n            Math.random().toString(36).slice(2),\n        ].join(\":\");\n    }\n    hasValue() {\n        for (let context = currentContext; context; context = context.parent) {\n            // We use the Slot object iself as a key to its value, which means the\n            // value cannot be obtained without a reference to the Slot object.\n            if (this.id in context.slots) {\n                const value = context.slots[this.id];\n                if (value === MISSING_VALUE)\n                    break;\n                if (context !== currentContext) {\n                    // Cache the value in currentContext.slots so the next lookup will\n                    // be faster. This caching is safe because the tree of contexts and\n                    // the values of the slots are logically immutable.\n                    currentContext.slots[this.id] = value;\n                }\n                return true;\n            }\n        }\n        if (currentContext) {\n            // If a value was not found for this Slot, it's never going to be found\n            // no matter how many times we look it up, so we might as well cache\n            // the absence of the value, too.\n            currentContext.slots[this.id] = MISSING_VALUE;\n        }\n        return false;\n    }\n    getValue() {\n        if (this.hasValue()) {\n            return currentContext.slots[this.id];\n        }\n    }\n    withValue(value, callback, \n    // Given the prevalence of arrow functions, specifying arguments is likely\n    // to be much more common than specifying `this`, hence this ordering:\n    args, thisArg) {\n        const slots = {\n            __proto__: null,\n            [this.id]: value,\n        };\n        const parent = currentContext;\n        currentContext = { parent, slots };\n        try {\n            // Function.prototype.apply allows the arguments array argument to be\n            // omitted or undefined, so args! is fine here.\n            return callback.apply(thisArg, args);\n        }\n        finally {\n            currentContext = parent;\n        }\n    }\n    // Capture the current context and wrap a callback function so that it\n    // reestablishes the captured context when called.\n    static bind(callback) {\n        const context = currentContext;\n        return function () {\n            const saved = currentContext;\n            try {\n                currentContext = context;\n                return callback.apply(this, arguments);\n            }\n            finally {\n                currentContext = saved;\n            }\n        };\n    }\n    // Immediately run a callback function without any captured context.\n    static noContext(callback, \n    // Given the prevalence of arrow functions, specifying arguments is likely\n    // to be much more common than specifying `this`, hence this ordering:\n    args, thisArg) {\n        if (currentContext) {\n            const saved = currentContext;\n            try {\n                currentContext = null;\n                // Function.prototype.apply allows the arguments array argument to be\n                // omitted or undefined, so args! is fine here.\n                return callback.apply(thisArg, args);\n            }\n            finally {\n                currentContext = saved;\n            }\n        }\n        else {\n            return callback.apply(thisArg, args);\n        }\n    }\n};\nfunction maybe(fn) {\n    try {\n        return fn();\n    }\n    catch (ignored) { }\n}\n// We store a single global implementation of the Slot class as a permanent\n// non-enumerable property of the globalThis object. This obfuscation does\n// nothing to prevent access to the Slot class, but at least it ensures the\n// implementation (i.e. currentContext) cannot be tampered with, and all copies\n// of the @wry/context package (hopefully just one) will share the same Slot\n// implementation. Since the first copy of the @wry/context package to be\n// imported wins, this technique imposes a steep cost for any future breaking\n// changes to the Slot class.\nconst globalKey = \"@wry/context:Slot\";\nconst host = \n// Prefer globalThis when available.\n// https://github.com/benjamn/wryware/issues/347\nmaybe(() => globalThis) ||\n    // Fall back to global, which works in Node.js and may be converted by some\n    // bundlers to the appropriate identifier (window, self, ...) depending on the\n    // bundling target. https://github.com/endojs/endo/issues/576#issuecomment-1178515224\n    maybe(() => global) ||\n    // Otherwise, use a dummy host that's local to this module. We used to fall\n    // back to using the Array constructor as a namespace, but that was flagged in\n    // https://github.com/benjamn/wryware/issues/347, and can be avoided.\n    Object.create(null);\n// Whichever globalHost we're using, make TypeScript happy about the additional\n// globalKey property.\nconst globalHost = host;\nexport const Slot = globalHost[globalKey] ||\n    // Earlier versions of this package stored the globalKey property on the Array\n    // constructor, so we check there as well, to prevent Slot class duplication.\n    Array[globalKey] ||\n    (function (Slot) {\n        try {\n            Object.defineProperty(globalHost, globalKey, {\n                value: Slot,\n                enumerable: false,\n                writable: false,\n                // When it was possible for globalHost to be the Array constructor (a\n                // legacy Slot dedup strategy), it was important for the property to be\n                // configurable:true so it could be deleted. That does not seem to be as\n                // important when globalHost is the global object, but I don't want to\n                // cause similar problems again, and configurable:true seems safest.\n                // https://github.com/endojs/endo/issues/576#issuecomment-1178274008\n                configurable: true\n            });\n        }\n        finally {\n            return Slot;\n        }\n    })(makeSlotClass());\n//# sourceMappingURL=slot.js.map","import { Slot } from \"./slot.js\";\nexport { Slot };\nexport const { bind, noContext } = Slot;\n// Like global.setTimeout, except the callback runs with captured context.\nexport { setTimeoutWithContext as setTimeout };\nfunction setTimeoutWithContext(callback, delay) {\n    return setTimeout(bind(callback), delay);\n}\n// Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\nexport function asyncFromGen(genFn) {\n    return function () {\n        const gen = genFn.apply(this, arguments);\n        const boundNext = bind(gen.next);\n        const boundThrow = bind(gen.throw);\n        return new Promise((resolve, reject) => {\n            function invoke(method, argument) {\n                try {\n                    var result = method.call(gen, argument);\n                }\n                catch (error) {\n                    return reject(error);\n                }\n                const next = result.done ? resolve : invokeNext;\n                if (isPromiseLike(result.value)) {\n                    result.value.then(next, result.done ? reject : invokeThrow);\n                }\n                else {\n                    next(result.value);\n                }\n            }\n            const invokeNext = (value) => invoke(boundNext, value);\n            const invokeThrow = (error) => invoke(boundThrow, error);\n            invokeNext();\n        });\n    };\n}\nfunction isPromiseLike(value) {\n    return value && typeof value.then === \"function\";\n}\n// If you use the fibers npm package to implement coroutines in Node.js,\n// you should call this function at least once to ensure context management\n// remains coherent across any yields.\nconst wrappedFibers = [];\nexport function wrapYieldingFiberMethods(Fiber) {\n    // There can be only one implementation of Fiber per process, so this array\n    // should never grow longer than one element.\n    if (wrappedFibers.indexOf(Fiber) < 0) {\n        const wrap = (obj, method) => {\n            const fn = obj[method];\n            obj[method] = function () {\n                return noContext(fn, arguments, this);\n            };\n        };\n        // These methods can yield, according to\n        // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n        wrap(Fiber, \"yield\");\n        wrap(Fiber.prototype, \"run\");\n        wrap(Fiber.prototype, \"throwInto\");\n        wrappedFibers.push(Fiber);\n    }\n    return Fiber;\n}\n//# sourceMappingURL=index.js.map","import { Slot } from \"@wry/context\";\nexport const parentEntrySlot = new Slot();\nexport function nonReactive(fn) {\n    return parentEntrySlot.withValue(void 0, fn);\n}\nexport { Slot };\nexport { bind as bindContext, noContext, setTimeout, asyncFromGen, } from \"@wry/context\";\n//# sourceMappingURL=context.js.map","export const { hasOwnProperty, } = Object.prototype;\nexport const arrayFromSet = Array.from ||\n    function (set) {\n        const array = [];\n        set.forEach(item => array.push(item));\n        return array;\n    };\nexport function maybeUnsubscribe(entryOrDep) {\n    const { unsubscribe } = entryOrDep;\n    if (typeof unsubscribe === \"function\") {\n        entryOrDep.unsubscribe = void 0;\n        unsubscribe();\n    }\n}\n//# sourceMappingURL=helpers.js.map","import { parentEntrySlot } from \"./context.js\";\nimport { maybeUnsubscribe, arrayFromSet } from \"./helpers.js\";\nconst emptySetPool = [];\nconst POOL_TARGET_SIZE = 100;\n// Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\nfunction assert(condition, optionalMessage) {\n    if (!condition) {\n        throw new Error(optionalMessage || \"assertion failure\");\n    }\n}\nfunction valueIs(a, b) {\n    const len = a.length;\n    return (\n    // Unknown values are not equal to each other.\n    len > 0 &&\n        // Both values must be ordinary (or both exceptional) to be equal.\n        len === b.length &&\n        // The underlying value or exception must be the same.\n        a[len - 1] === b[len - 1]);\n}\nfunction valueGet(value) {\n    switch (value.length) {\n        case 0: throw new Error(\"unknown value\");\n        case 1: return value[0];\n        case 2: throw value[1];\n    }\n}\nfunction valueCopy(value) {\n    return value.slice(0);\n}\nexport class Entry {\n    constructor(fn) {\n        this.fn = fn;\n        this.parents = new Set();\n        this.childValues = new Map();\n        // When this Entry has children that are dirty, this property becomes\n        // a Set containing other Entry objects, borrowed from emptySetPool.\n        // When the set becomes empty, it gets recycled back to emptySetPool.\n        this.dirtyChildren = null;\n        this.dirty = true;\n        this.recomputing = false;\n        this.value = [];\n        this.deps = null;\n        ++Entry.count;\n    }\n    peek() {\n        if (this.value.length === 1 && !mightBeDirty(this)) {\n            rememberParent(this);\n            return this.value[0];\n        }\n    }\n    // This is the most important method of the Entry API, because it\n    // determines whether the cached this.value can be returned immediately,\n    // or must be recomputed. The overall performance of the caching system\n    // depends on the truth of the following observations: (1) this.dirty is\n    // usually false, (2) this.dirtyChildren is usually null/empty, and thus\n    // (3) valueGet(this.value) is usually returned without recomputation.\n    recompute(args) {\n        assert(!this.recomputing, \"already recomputing\");\n        rememberParent(this);\n        return mightBeDirty(this)\n            ? reallyRecompute(this, args)\n            : valueGet(this.value);\n    }\n    setDirty() {\n        if (this.dirty)\n            return;\n        this.dirty = true;\n        reportDirty(this);\n        // We can go ahead and unsubscribe here, since any further dirty\n        // notifications we receive will be redundant, and unsubscribing may\n        // free up some resources, e.g. file watchers.\n        maybeUnsubscribe(this);\n    }\n    dispose() {\n        this.setDirty();\n        // Sever any dependency relationships with our own children, so those\n        // children don't retain this parent Entry in their child.parents sets,\n        // thereby preventing it from being fully garbage collected.\n        forgetChildren(this);\n        // Because this entry has been kicked out of the cache (in index.js),\n        // we've lost the ability to find out if/when this entry becomes dirty,\n        // whether that happens through a subscription, because of a direct call\n        // to entry.setDirty(), or because one of its children becomes dirty.\n        // Because of this loss of future information, we have to assume the\n        // worst (that this entry might have become dirty very soon), so we must\n        // immediately mark this entry's parents as dirty. Normally we could\n        // just call entry.setDirty() rather than calling parent.setDirty() for\n        // each parent, but that would leave this entry in parent.childValues\n        // and parent.dirtyChildren, which would prevent the child from being\n        // truly forgotten.\n        eachParent(this, (parent, child) => {\n            parent.setDirty();\n            forgetChild(parent, this);\n        });\n    }\n    forget() {\n        // The code that creates Entry objects in index.ts will replace this method\n        // with one that actually removes the Entry from the cache, which will also\n        // trigger the entry.dispose method.\n        this.dispose();\n    }\n    dependOn(dep) {\n        dep.add(this);\n        if (!this.deps) {\n            this.deps = emptySetPool.pop() || new Set();\n        }\n        this.deps.add(dep);\n    }\n    forgetDeps() {\n        if (this.deps) {\n            arrayFromSet(this.deps).forEach(dep => dep.delete(this));\n            this.deps.clear();\n            emptySetPool.push(this.deps);\n            this.deps = null;\n        }\n    }\n}\nEntry.count = 0;\nfunction rememberParent(child) {\n    const parent = parentEntrySlot.getValue();\n    if (parent) {\n        child.parents.add(parent);\n        if (!parent.childValues.has(child)) {\n            parent.childValues.set(child, []);\n        }\n        if (mightBeDirty(child)) {\n            reportDirtyChild(parent, child);\n        }\n        else {\n            reportCleanChild(parent, child);\n        }\n        return parent;\n    }\n}\nfunction reallyRecompute(entry, args) {\n    forgetChildren(entry);\n    // Set entry as the parent entry while calling recomputeNewValue(entry).\n    parentEntrySlot.withValue(entry, recomputeNewValue, [entry, args]);\n    if (maybeSubscribe(entry, args)) {\n        // If we successfully recomputed entry.value and did not fail to\n        // (re)subscribe, then this Entry is no longer explicitly dirty.\n        setClean(entry);\n    }\n    return valueGet(entry.value);\n}\nfunction recomputeNewValue(entry, args) {\n    entry.recomputing = true;\n    const { normalizeResult } = entry;\n    let oldValueCopy;\n    if (normalizeResult && entry.value.length === 1) {\n        oldValueCopy = valueCopy(entry.value);\n    }\n    // Make entry.value an empty array, representing an unknown value.\n    entry.value.length = 0;\n    try {\n        // If entry.fn succeeds, entry.value will become a normal Value.\n        entry.value[0] = entry.fn.apply(null, args);\n        // If we have a viable oldValueCopy to compare with the (successfully\n        // recomputed) new entry.value, and they are not already === identical, give\n        // normalizeResult a chance to pick/choose/reuse parts of oldValueCopy[0]\n        // and/or entry.value[0] to determine the final cached entry.value.\n        if (normalizeResult && oldValueCopy && !valueIs(oldValueCopy, entry.value)) {\n            try {\n                entry.value[0] = normalizeResult(entry.value[0], oldValueCopy[0]);\n            }\n            catch (_a) {\n                // If normalizeResult throws, just use the newer value, rather than\n                // saving the exception as entry.value[1].\n            }\n        }\n    }\n    catch (e) {\n        // If entry.fn throws, entry.value will hold that exception.\n        entry.value[1] = e;\n    }\n    // Either way, this line is always reached.\n    entry.recomputing = false;\n}\nfunction mightBeDirty(entry) {\n    return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\nfunction setClean(entry) {\n    entry.dirty = false;\n    if (mightBeDirty(entry)) {\n        // This Entry may still have dirty children, in which case we can't\n        // let our parents know we're clean just yet.\n        return;\n    }\n    reportClean(entry);\n}\nfunction reportDirty(child) {\n    eachParent(child, reportDirtyChild);\n}\nfunction reportClean(child) {\n    eachParent(child, reportCleanChild);\n}\nfunction eachParent(child, callback) {\n    const parentCount = child.parents.size;\n    if (parentCount) {\n        const parents = arrayFromSet(child.parents);\n        for (let i = 0; i < parentCount; ++i) {\n            callback(parents[i], child);\n        }\n    }\n}\n// Let a parent Entry know that one of its children may be dirty.\nfunction reportDirtyChild(parent, child) {\n    // Must have called rememberParent(child) before calling\n    // reportDirtyChild(parent, child).\n    assert(parent.childValues.has(child));\n    assert(mightBeDirty(child));\n    const parentWasClean = !mightBeDirty(parent);\n    if (!parent.dirtyChildren) {\n        parent.dirtyChildren = emptySetPool.pop() || new Set;\n    }\n    else if (parent.dirtyChildren.has(child)) {\n        // If we already know this child is dirty, then we must have already\n        // informed our own parents that we are dirty, so we can terminate\n        // the recursion early.\n        return;\n    }\n    parent.dirtyChildren.add(child);\n    // If parent was clean before, it just became (possibly) dirty (according to\n    // mightBeDirty), since we just added child to parent.dirtyChildren.\n    if (parentWasClean) {\n        reportDirty(parent);\n    }\n}\n// Let a parent Entry know that one of its children is no longer dirty.\nfunction reportCleanChild(parent, child) {\n    // Must have called rememberChild(child) before calling\n    // reportCleanChild(parent, child).\n    assert(parent.childValues.has(child));\n    assert(!mightBeDirty(child));\n    const childValue = parent.childValues.get(child);\n    if (childValue.length === 0) {\n        parent.childValues.set(child, valueCopy(child.value));\n    }\n    else if (!valueIs(childValue, child.value)) {\n        parent.setDirty();\n    }\n    removeDirtyChild(parent, child);\n    if (mightBeDirty(parent)) {\n        return;\n    }\n    reportClean(parent);\n}\nfunction removeDirtyChild(parent, child) {\n    const dc = parent.dirtyChildren;\n    if (dc) {\n        dc.delete(child);\n        if (dc.size === 0) {\n            if (emptySetPool.length < POOL_TARGET_SIZE) {\n                emptySetPool.push(dc);\n            }\n            parent.dirtyChildren = null;\n        }\n    }\n}\n// Removes all children from this entry and returns an array of the\n// removed children.\nfunction forgetChildren(parent) {\n    if (parent.childValues.size > 0) {\n        parent.childValues.forEach((_value, child) => {\n            forgetChild(parent, child);\n        });\n    }\n    // Remove this parent Entry from any sets to which it was added by the\n    // addToSet method.\n    parent.forgetDeps();\n    // After we forget all our children, this.dirtyChildren must be empty\n    // and therefore must have been reset to null.\n    assert(parent.dirtyChildren === null);\n}\nfunction forgetChild(parent, child) {\n    child.parents.delete(parent);\n    parent.childValues.delete(child);\n    removeDirtyChild(parent, child);\n}\nfunction maybeSubscribe(entry, args) {\n    if (typeof entry.subscribe === \"function\") {\n        try {\n            maybeUnsubscribe(entry); // Prevent double subscriptions.\n            entry.unsubscribe = entry.subscribe.apply(null, args);\n        }\n        catch (e) {\n            // If this Entry has a subscribe function and it threw an exception\n            // (or an unsubscribe function it previously returned now throws),\n            // return false to indicate that we were not able to subscribe (or\n            // unsubscribe), and this Entry should remain dirty.\n            entry.setDirty();\n            return false;\n        }\n    }\n    // Returning true indicates either that there was no entry.subscribe\n    // function or that it succeeded.\n    return true;\n}\n//# sourceMappingURL=entry.js.map","import { parentEntrySlot } from \"./context.js\";\nimport { hasOwnProperty, maybeUnsubscribe, arrayFromSet, } from \"./helpers.js\";\nconst EntryMethods = {\n    setDirty: true,\n    dispose: true,\n    forget: true, // Fully remove parent Entry from LRU cache and computation graph\n};\nexport function dep(options) {\n    const depsByKey = new Map();\n    const subscribe = options && options.subscribe;\n    function depend(key) {\n        const parent = parentEntrySlot.getValue();\n        if (parent) {\n            let dep = depsByKey.get(key);\n            if (!dep) {\n                depsByKey.set(key, dep = new Set);\n            }\n            parent.dependOn(dep);\n            if (typeof subscribe === \"function\") {\n                maybeUnsubscribe(dep);\n                dep.unsubscribe = subscribe(key);\n            }\n        }\n    }\n    depend.dirty = function dirty(key, entryMethodName) {\n        const dep = depsByKey.get(key);\n        if (dep) {\n            const m = (entryMethodName &&\n                hasOwnProperty.call(EntryMethods, entryMethodName)) ? entryMethodName : \"setDirty\";\n            // We have to use arrayFromSet(dep).forEach instead of dep.forEach,\n            // because modifying a Set while iterating over it can cause elements in\n            // the Set to be removed from the Set before they've been iterated over.\n            arrayFromSet(dep).forEach(entry => entry[m]());\n            depsByKey.delete(key);\n            maybeUnsubscribe(dep);\n        }\n    };\n    return depend;\n}\n//# sourceMappingURL=dep.js.map","import { Trie } from \"@wry/trie\";\nimport { StrongCache } from \"@wry/caches\";\nimport { Entry } from \"./entry.js\";\nimport { parentEntrySlot } from \"./context.js\";\n// These helper functions are important for making optimism work with\n// asynchronous code. In order to register parent-child dependencies,\n// optimism needs to know about any currently active parent computations.\n// In ordinary synchronous code, the parent context is implicit in the\n// execution stack, but asynchronous code requires some extra guidance in\n// order to propagate context from one async task segment to the next.\nexport { bindContext, noContext, nonReactive, setTimeout, asyncFromGen, Slot, } from \"./context.js\";\n// A lighter-weight dependency, similar to OptimisticWrapperFunction, except\n// with only one argument, no makeCacheKey, no wrapped function to recompute,\n// and no result value. Useful for representing dependency leaves in the graph\n// of computation. Subscriptions are supported.\nexport { dep } from \"./dep.js\";\n// The defaultMakeCacheKey function is remarkably powerful, because it gives\n// a unique object for any shallow-identical list of arguments. If you need\n// to implement a custom makeCacheKey function, you may find it helpful to\n// delegate the final work to defaultMakeCacheKey, which is why we export it\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\n// does not support WeakMap, or you have the ability to return a string key.\n// In those cases, just write your own custom makeCacheKey functions.\nlet defaultKeyTrie;\nexport function defaultMakeCacheKey(...args) {\n    const trie = defaultKeyTrie || (defaultKeyTrie = new Trie(typeof WeakMap === \"function\"));\n    return trie.lookupArray(args);\n}\n// If you're paranoid about memory leaks, or you want to avoid using WeakMap\n// under the hood, but you still need the behavior of defaultMakeCacheKey,\n// import this constructor to create your own tries.\nexport { Trie as KeyTrie };\n;\nconst caches = new Set();\nexport function wrap(originalFunction, { max = Math.pow(2, 16), keyArgs, makeCacheKey = defaultMakeCacheKey, normalizeResult, subscribe, cache: cacheOption = StrongCache, } = Object.create(null)) {\n    const cache = typeof cacheOption === \"function\"\n        ? new cacheOption(max, entry => entry.dispose())\n        : cacheOption;\n    const optimistic = function () {\n        const key = makeCacheKey.apply(null, keyArgs ? keyArgs.apply(null, arguments) : arguments);\n        if (key === void 0) {\n            return originalFunction.apply(null, arguments);\n        }\n        let entry = cache.get(key);\n        if (!entry) {\n            cache.set(key, entry = new Entry(originalFunction));\n            entry.normalizeResult = normalizeResult;\n            entry.subscribe = subscribe;\n            // Give the Entry the ability to trigger cache.delete(key), even though\n            // the Entry itself does not know about key or cache.\n            entry.forget = () => cache.delete(key);\n        }\n        const value = entry.recompute(Array.prototype.slice.call(arguments));\n        // Move this entry to the front of the least-recently used queue,\n        // since we just finished computing its value.\n        cache.set(key, entry);\n        caches.add(cache);\n        // Clean up any excess entries in the cache, but only if there is no\n        // active parent entry, meaning we're not in the middle of a larger\n        // computation that might be flummoxed by the cleaning.\n        if (!parentEntrySlot.hasValue()) {\n            caches.forEach(cache => cache.clean());\n            caches.clear();\n        }\n        return value;\n    };\n    Object.defineProperty(optimistic, \"size\", {\n        get: () => cache.size,\n        configurable: false,\n        enumerable: false,\n    });\n    Object.freeze(optimistic.options = {\n        max,\n        keyArgs,\n        makeCacheKey,\n        normalizeResult,\n        subscribe,\n        cache,\n    });\n    function dirtyKey(key) {\n        const entry = key && cache.get(key);\n        if (entry) {\n            entry.setDirty();\n        }\n    }\n    optimistic.dirtyKey = dirtyKey;\n    optimistic.dirty = function dirty() {\n        dirtyKey(makeCacheKey.apply(null, arguments));\n    };\n    function peekKey(key) {\n        const entry = key && cache.get(key);\n        if (entry) {\n            return entry.peek();\n        }\n    }\n    optimistic.peekKey = peekKey;\n    optimistic.peek = function peek() {\n        return peekKey(makeCacheKey.apply(null, arguments));\n    };\n    function forgetKey(key) {\n        return key ? cache.delete(key) : false;\n    }\n    optimistic.forgetKey = forgetKey;\n    optimistic.forget = function forget() {\n        return forgetKey(makeCacheKey.apply(null, arguments));\n    };\n    optimistic.makeCacheKey = makeCacheKey;\n    optimistic.getKey = keyArgs ? function getKey() {\n        return makeCacheKey.apply(null, keyArgs.apply(null, arguments));\n    } : makeCacheKey;\n    return Object.freeze(optimistic);\n}\n//# sourceMappingURL=index.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// === Symbol Support ===\nvar hasSymbols = function () {\n  return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n  return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (name) {\n  return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n  Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n  var value = obj[key];\n  if (value == null) return undefined;\n  if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n  return value;\n}\n\nfunction getSpecies(obj) {\n  var ctor = obj.constructor;\n\n  if (ctor !== undefined) {\n    ctor = ctor[SymbolSpecies];\n\n    if (ctor === null) {\n      ctor = undefined;\n    }\n  }\n\n  return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n  return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n  if (hostReportError.log) {\n    hostReportError.log(e);\n  } else {\n    setTimeout(function () {\n      throw e;\n    });\n  }\n}\n\nfunction enqueue(fn) {\n  Promise.resolve().then(function () {\n    try {\n      fn();\n    } catch (e) {\n      hostReportError(e);\n    }\n  });\n}\n\nfunction cleanupSubscription(subscription) {\n  var cleanup = subscription._cleanup;\n  if (cleanup === undefined) return;\n  subscription._cleanup = undefined;\n\n  if (!cleanup) {\n    return;\n  }\n\n  try {\n    if (typeof cleanup === 'function') {\n      cleanup();\n    } else {\n      var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n      if (unsubscribe) {\n        unsubscribe.call(cleanup);\n      }\n    }\n  } catch (e) {\n    hostReportError(e);\n  }\n}\n\nfunction closeSubscription(subscription) {\n  subscription._observer = undefined;\n  subscription._queue = undefined;\n  subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n  var queue = subscription._queue;\n\n  if (!queue) {\n    return;\n  }\n\n  subscription._queue = undefined;\n  subscription._state = 'ready';\n\n  for (var i = 0; i < queue.length; ++i) {\n    notifySubscription(subscription, queue[i].type, queue[i].value);\n    if (subscription._state === 'closed') break;\n  }\n}\n\nfunction notifySubscription(subscription, type, value) {\n  subscription._state = 'running';\n  var observer = subscription._observer;\n\n  try {\n    var m = getMethod(observer, type);\n\n    switch (type) {\n      case 'next':\n        if (m) m.call(observer, value);\n        break;\n\n      case 'error':\n        closeSubscription(subscription);\n        if (m) m.call(observer, value);else throw value;\n        break;\n\n      case 'complete':\n        closeSubscription(subscription);\n        if (m) m.call(observer);\n        break;\n    }\n  } catch (e) {\n    hostReportError(e);\n  }\n\n  if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n  if (subscription._state === 'closed') return;\n\n  if (subscription._state === 'buffering') {\n    subscription._queue.push({\n      type: type,\n      value: value\n    });\n\n    return;\n  }\n\n  if (subscription._state !== 'ready') {\n    subscription._state = 'buffering';\n    subscription._queue = [{\n      type: type,\n      value: value\n    }];\n    enqueue(function () {\n      return flushSubscription(subscription);\n    });\n    return;\n  }\n\n  notifySubscription(subscription, type, value);\n}\n\nvar Subscription = /*#__PURE__*/function () {\n  function Subscription(observer, subscriber) {\n    // ASSERT: observer is an object\n    // ASSERT: subscriber is callable\n    this._cleanup = undefined;\n    this._observer = observer;\n    this._queue = undefined;\n    this._state = 'initializing';\n    var subscriptionObserver = new SubscriptionObserver(this);\n\n    try {\n      this._cleanup = subscriber.call(undefined, subscriptionObserver);\n    } catch (e) {\n      subscriptionObserver.error(e);\n    }\n\n    if (this._state === 'initializing') this._state = 'ready';\n  }\n\n  var _proto = Subscription.prototype;\n\n  _proto.unsubscribe = function unsubscribe() {\n    if (this._state !== 'closed') {\n      closeSubscription(this);\n      cleanupSubscription(this);\n    }\n  };\n\n  _createClass(Subscription, [{\n    key: \"closed\",\n    get: function () {\n      return this._state === 'closed';\n    }\n  }]);\n\n  return Subscription;\n}();\n\nvar SubscriptionObserver = /*#__PURE__*/function () {\n  function SubscriptionObserver(subscription) {\n    this._subscription = subscription;\n  }\n\n  var _proto2 = SubscriptionObserver.prototype;\n\n  _proto2.next = function next(value) {\n    onNotify(this._subscription, 'next', value);\n  };\n\n  _proto2.error = function error(value) {\n    onNotify(this._subscription, 'error', value);\n  };\n\n  _proto2.complete = function complete() {\n    onNotify(this._subscription, 'complete');\n  };\n\n  _createClass(SubscriptionObserver, [{\n    key: \"closed\",\n    get: function () {\n      return this._subscription._state === 'closed';\n    }\n  }]);\n\n  return SubscriptionObserver;\n}();\n\nvar Observable = /*#__PURE__*/function () {\n  function Observable(subscriber) {\n    if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n    if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n    this._subscriber = subscriber;\n  }\n\n  var _proto3 = Observable.prototype;\n\n  _proto3.subscribe = function subscribe(observer) {\n    if (typeof observer !== 'object' || observer === null) {\n      observer = {\n        next: observer,\n        error: arguments[1],\n        complete: arguments[2]\n      };\n    }\n\n    return new Subscription(observer, this._subscriber);\n  };\n\n  _proto3.forEach = function forEach(fn) {\n    var _this = this;\n\n    return new Promise(function (resolve, reject) {\n      if (typeof fn !== 'function') {\n        reject(new TypeError(fn + ' is not a function'));\n        return;\n      }\n\n      function done() {\n        subscription.unsubscribe();\n        resolve();\n      }\n\n      var subscription = _this.subscribe({\n        next: function (value) {\n          try {\n            fn(value, done);\n          } catch (e) {\n            reject(e);\n            subscription.unsubscribe();\n          }\n        },\n        error: reject,\n        complete: resolve\n      });\n    });\n  };\n\n  _proto3.map = function map(fn) {\n    var _this2 = this;\n\n    if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n    var C = getSpecies(this);\n    return new C(function (observer) {\n      return _this2.subscribe({\n        next: function (value) {\n          try {\n            value = fn(value);\n          } catch (e) {\n            return observer.error(e);\n          }\n\n          observer.next(value);\n        },\n        error: function (e) {\n          observer.error(e);\n        },\n        complete: function () {\n          observer.complete();\n        }\n      });\n    });\n  };\n\n  _proto3.filter = function filter(fn) {\n    var _this3 = this;\n\n    if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n    var C = getSpecies(this);\n    return new C(function (observer) {\n      return _this3.subscribe({\n        next: function (value) {\n          try {\n            if (!fn(value)) return;\n          } catch (e) {\n            return observer.error(e);\n          }\n\n          observer.next(value);\n        },\n        error: function (e) {\n          observer.error(e);\n        },\n        complete: function () {\n          observer.complete();\n        }\n      });\n    });\n  };\n\n  _proto3.reduce = function reduce(fn) {\n    var _this4 = this;\n\n    if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n    var C = getSpecies(this);\n    var hasSeed = arguments.length > 1;\n    var hasValue = false;\n    var seed = arguments[1];\n    var acc = seed;\n    return new C(function (observer) {\n      return _this4.subscribe({\n        next: function (value) {\n          var first = !hasValue;\n          hasValue = true;\n\n          if (!first || hasSeed) {\n            try {\n              acc = fn(acc, value);\n            } catch (e) {\n              return observer.error(e);\n            }\n          } else {\n            acc = value;\n          }\n        },\n        error: function (e) {\n          observer.error(e);\n        },\n        complete: function () {\n          if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n          observer.next(acc);\n          observer.complete();\n        }\n      });\n    });\n  };\n\n  _proto3.concat = function concat() {\n    var _this5 = this;\n\n    for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n      sources[_key] = arguments[_key];\n    }\n\n    var C = getSpecies(this);\n    return new C(function (observer) {\n      var subscription;\n      var index = 0;\n\n      function startNext(next) {\n        subscription = next.subscribe({\n          next: function (v) {\n            observer.next(v);\n          },\n          error: function (e) {\n            observer.error(e);\n          },\n          complete: function () {\n            if (index === sources.length) {\n              subscription = undefined;\n              observer.complete();\n            } else {\n              startNext(C.from(sources[index++]));\n            }\n          }\n        });\n      }\n\n      startNext(_this5);\n      return function () {\n        if (subscription) {\n          subscription.unsubscribe();\n          subscription = undefined;\n        }\n      };\n    });\n  };\n\n  _proto3.flatMap = function flatMap(fn) {\n    var _this6 = this;\n\n    if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n    var C = getSpecies(this);\n    return new C(function (observer) {\n      var subscriptions = [];\n\n      var outer = _this6.subscribe({\n        next: function (value) {\n          if (fn) {\n            try {\n              value = fn(value);\n            } catch (e) {\n              return observer.error(e);\n            }\n          }\n\n          var inner = C.from(value).subscribe({\n            next: function (value) {\n              observer.next(value);\n            },\n            error: function (e) {\n              observer.error(e);\n            },\n            complete: function () {\n              var i = subscriptions.indexOf(inner);\n              if (i >= 0) subscriptions.splice(i, 1);\n              completeIfDone();\n            }\n          });\n          subscriptions.push(inner);\n        },\n        error: function (e) {\n          observer.error(e);\n        },\n        complete: function () {\n          completeIfDone();\n        }\n      });\n\n      function completeIfDone() {\n        if (outer.closed && subscriptions.length === 0) observer.complete();\n      }\n\n      return function () {\n        subscriptions.forEach(function (s) {\n          return s.unsubscribe();\n        });\n        outer.unsubscribe();\n      };\n    });\n  };\n\n  _proto3[SymbolObservable] = function () {\n    return this;\n  };\n\n  Observable.from = function from(x) {\n    var C = typeof this === 'function' ? this : Observable;\n    if (x == null) throw new TypeError(x + ' is not an object');\n    var method = getMethod(x, SymbolObservable);\n\n    if (method) {\n      var observable = method.call(x);\n      if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n      if (isObservable(observable) && observable.constructor === C) return observable;\n      return new C(function (observer) {\n        return observable.subscribe(observer);\n      });\n    }\n\n    if (hasSymbol('iterator')) {\n      method = getMethod(x, SymbolIterator);\n\n      if (method) {\n        return new C(function (observer) {\n          enqueue(function () {\n            if (observer.closed) return;\n\n            for (var _iterator = _createForOfIteratorHelperLoose(method.call(x)), _step; !(_step = _iterator()).done;) {\n              var item = _step.value;\n              observer.next(item);\n              if (observer.closed) return;\n            }\n\n            observer.complete();\n          });\n        });\n      }\n    }\n\n    if (Array.isArray(x)) {\n      return new C(function (observer) {\n        enqueue(function () {\n          if (observer.closed) return;\n\n          for (var i = 0; i < x.length; ++i) {\n            observer.next(x[i]);\n            if (observer.closed) return;\n          }\n\n          observer.complete();\n        });\n      });\n    }\n\n    throw new TypeError(x + ' is not observable');\n  };\n\n  Observable.of = function of() {\n    for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      items[_key2] = arguments[_key2];\n    }\n\n    var C = typeof this === 'function' ? this : Observable;\n    return new C(function (observer) {\n      enqueue(function () {\n        if (observer.closed) return;\n\n        for (var i = 0; i < items.length; ++i) {\n          observer.next(items[i]);\n          if (observer.closed) return;\n        }\n\n        observer.complete();\n      });\n    });\n  };\n\n  _createClass(Observable, null, [{\n    key: SymbolSpecies,\n    get: function () {\n      return this;\n    }\n  }]);\n\n  return Observable;\n}();\n\nif (hasSymbols()) {\n  Object.defineProperty(Observable, Symbol('extensions'), {\n    value: {\n      symbol: SymbolObservable,\n      hostReportError: hostReportError\n    },\n    configurable: true\n  });\n}\n\nexport { Observable };\n"],"names":["NoopHead","Object","value","enumerable","get","exports","default","__esModule","defineProperty","assign","module","KEY_PREFIX","FLUSH","REHYDRATE","PAUSE","PERSIST","PURGE","REGISTER","_typeof","obj","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","autoMergeLevel1","inboundState","originalState","reducedState","_ref","debug","newState","_objectSpread","target","i","arguments","length","source","forEach","key","configurable","writable","getOwnPropertyDescriptors","defineProperties","defaultSerialize","data","JSON","stringify","getStoredState_getStoredState","config","deserialize","transforms","storageKey","concat","undefined","keyPrefix","storage","x","defaultDeserialize","getItem","then","serialized","state","rawState","reduceRight","subState","transformer","out","err","serial","parse","warnIfRemoveError","persistReducer_ownKeys","persistReducer_objectSpread","persistReducer","baseReducer","version","stateReconciler","getStoredState","timeout","_persistoid","_purge","_paused","conditionalUpdate","_persist","rehydrated","update","action","rest","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceKeys","indexOf","sourceSymbolKeys","propertyIsEnumerable","call","type","_sealed","_rehydrate","payload","rehydrate","setTimeout","createPersistoid","serialize","blacklist","whitelist","throttle","writeFailHandler","lastState","stagedState","keysToProcess","timeIterator","writePromise","processNextKey","clearInterval","shift","endState","reduce","in","console","error","setItem","catch","onWriteFail","passWhitelistBlacklist","setInterval","flush","Promise","resolve","register","restoredState","migrate","s","v","migratedState","migrateErr","result","removeItem","_toConsumableArray","arr","_arrayWithoutHoles","Array","isArray","arr2","_iterableToArray","iter","toString","from","_nonIterableSpread","persistStore_ownKeys","persistStore_objectSpread","initialState","registry","bootstrapped","persistorReducer","firstIndex","splice","persistStore","store","options","cb","boostrappedCb","_pStore","redux","MT","enhancer","dispatch","rehydrateAction","persistor","getState","purge","results","purgeResult","all","flushResult","pause","persist","manualPersist","_defineProperties","props","descriptor","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_assertThisInitialized","self","_setPrototypeOf","p","_defineProperty","PersistGate","_PureComponent","staticProps","_classCallCheck","instance","Constructor","_getPrototypeOf2","_this","_len","args","_key","_persistor$getState","onBeforeLift","finally","setState","_unsubscribe","_inherits","subClass","superClass","create","subscribe","handlePersistorState","children","loading","react__WEBPACK_IMPORTED_MODULE_0__","PureComponent","_getStorage","reject","item","__webpack_require__","noop","storageType","hasStorage","testKey","e","noopStorage","Z","_default","_createWebStorage","EntityStore","Root","ApolloCache","assumeImmutableResults","getFragmentDoc","lib","re","graphql_fragments","Yk","max","sizes","Q","cache","weak","k","batch","updateResult","optimisticId","optimistic","performTransaction","recordOptimisticTransaction","transaction","transformDocument","document","transformForLink","identify","gc","modify","readQuery","read","tslib_es6","__assign","rootId","id","watchFragment","latestDiff","fragment","fragmentName","_a","otherOptions","__rest","query","diffOptions","returnPartialData","zen_observable_ts_module","y","observer","watch","immediate","callback","diff","equalByQuery","W","complete","missing","mergeDeep","bw","map","next","readFragment","writeQuery","write","dataId","writeFragment","updateQuery","updateFragment","globalThis","__DEV__","getMemoryInternals","Kb","MissingFieldError","_super","message","path","variables","__extends","Error","hasOwn","hasOwnProperty","isNullish","defaultDataIdFromObject","context","__typename","_id","keyObject","defaultConfig","dataIdFromObject","addTypename","resultCaching","canonizeResults","shouldCanonizeResults","TypeOrFieldNameRegExp","fieldNameFromStoreName","storeFieldName","match","storeValueIsStoreObject","objects","storeUtils","arrays","extractFragmentContext","fragments","fragmentMap","F","getFromAST","kU","lookupFragment","name","def","lookup","DELETE","delModifier","INVALIDATE","policies","group","rootIds","refs","getFieldValue","objectOrReference","maybeDeepFreeze","J","__ref","canRead","objOrRef","has","toReference","objOrIdOrRef","mergeIntoStore","kQ","ref","merge","toObject","fieldName","depend","storeObject","rootTypenamesById","Layer","parent","dependOnExistence","older","newer","existing","incoming","globals","kG","merged","w0","storeObjectReconciler","caching","fieldsToDirty_1","__exists","hasKeyArgs","dirty","fields","changedFields_1","needToMerge_1","allDeleted_1","sharedDetails_1","isReference","readField","fieldNameOrOptions","fieldValue","newValue","getStorage","checkReference","warn","seenReference","someNonReference","_i","newValue_1","delete","typename","getStoreFieldName","evict","limit","evicted","clear","replace","extract","extraRootIds","getRootIdSet","__META","sort","newData","rest_1","retain","release","count","ids","Set","add","snapshot","findChildRefIds","idsToRemove","root_1","found_1","root","workSet_1","child","makeCacheKey","keyMaker","lookupArray","CacheGroup","d","resetCaching","dP","trie_lib","B","canUse","mr","maybeDependOnExistenceOfEntity","entityId","supportsResultCaching","_b","seed","stump","Stump","storageTrie","addLayer","layerId","replay","removeLayer","ownStoreObject","parentStoreObject","equality_lib","D","fromParent","existingObject","incomingObject","property","existingValue","incomingValue","ObjectCanon","known","sy","WeakSet","pool","passes","WeakMap","keysByJSON","Map","empty","admit","isKnown","pass","copy","slice","set","original","array","node","freeze","proto_1","array_1","sortedKeys","json","firstValueIndex_1","sorted","obj_1","execSelectionSetKeyArgs","selectionSet","StoreReader","knownResults","compact","canon","executeSelectionSet","peekArgs","other","peek","enclosingRef","execSelectionSetImpl","resultCacheMaxSize","keyArgs","varString","executeSubSelectedArray","execSubSelectedArrayImpl","field","resetCanon","diffQueryAgainstStore","_c","_d","O4","iW","rootRef","execResult","p$","canonicalStringify","firstMissing","tree","_","isFresh","latest","objectsToMerge","missingMerger","handleMissing","resultName","rootIdsByTypename","workSet","selections","selection","directives","LZ","My","u2","transform","Gw","added","hi","kind","kinds","h","FRAGMENT_SPREAD","_K","fragmentMatches","finalResult","frozen","childResult","assertSelectionSetForIdValue","values","specifierInfoCache","lookupSpecifierInfo","spec","cacheKey","keyFieldsFnFromSpecifier","specifier","info","keyFieldsFn","collectSpecifierPaths","schemaKeyPath","extracted","extractKeyPath","extractKey","join","keyArgsFnFromSpecifier","keyArgsFn","suffix","keyPath","firstKey","firstChar","charAt","O","directiveName_1","find","directiveArgs","NC","variableName","varKeyPath","extractor","merger","getSpecifierPaths","paths","paths_1","currentPath_1","collected","toMerge","normalize","reducer","argsFromFieldSpecifier","nullKeyFieldsFn","simpleKeyArgsFn","_args","mergeTrueFn","mergeObjects","mergeFalseFn","Policies","typePolicies","toBeAdded","supertypeMap","fuzzySubtypes","usingPossibleTypes","setRootTypename","possibleTypes","addPossibleTypes","addTypePolicies","partialContext","ROOT_QUERY","normalizeReadFieldOptions","policy","getTypePolicy","keyFn","specifierOrId","String","queryType","mutationType","subscriptionType","updateTypePolicy","keyFields","setMerge","getFieldPolicy","which","toUpperCase","old","supertype","getSupertypeSet","subtype","RegExp","policy_1","supertypes_1","size","regExp","fuzzy","test","fuzzySupertypes","inbox","createIfMissing","fieldPolicies","supertypeSet","typeCondition","typenameSupertypeSet","workQueue_1","maybeEnqueue_1","needToCheckFuzzySubtypes","checkingFuzzySubtypes","selectionSetMatchesResult","every","fuzzyString","fieldSpec","specifierOrString","vf","PT","readOptions","makeFieldFunctionOptions","reactiveVars","ab","withValue","getReadFunction","getMergeFunction","parentTypename","childTypename","runMergeFunction","makeMergeObjectsFunction","overwrite","readFieldArgs","argc","stringifyForDisplay","eType","iType","getContextFlavor","clientOnly","deferred","flavored","flavors","StoreWriter","reader","writeToStore","operationDefinition","getOperationDefinition","getDefaultValues","written","incomingById","processSelectionSet","mergeTree","newInvariantError","fieldNodeSet","entityRef","makeReference","applied","applyMerges","fieldsWithSelectionSets_1","hasMergeFunction_1","childTree","Boolean","warnAboutDataLoss","existingRef","incomingObj","getChild","equal","parentType","typeDotName","warnings","childTypenames","includes","invariant","getTypenameFromResult","result_1","flattenFields","resultKeyNameFromField","getChildMergeTree","processFieldValue","maybeRecycleChildMergeTree","addTypenameToDocument","dataRef","sets","previous_1","mergeMergeTrees","left","right","mergeTreeIsEmpty","needToMergeMaps","remainingRightKeys_1","leftTree","cloneDeep","fieldMap","limitingTrie","Trie","flatten","inheritedContext","visitedNode","visited","shouldInclude","isNonEmptyArray","dir","argumentsObjectFromField","if","isField","getFragmentFromSelection","Kind","getStorageArgs","e_1","i_1","getValue_1","eVal","iVal","aVal","pop","emptyMergeTreePool","InMemoryCache","watches","addTypenameTransform","DocumentTransform","A","makeVar","QS","txCount","init","rootStore","optimisticData","resetResultCache","resetResultIdentities","previousReader","storeReader","storeWriter","maybeBroadcastWatch","c","broadcastWatch","restore","broadcast","broadcastWatches","_v","li","forget","reset","print","S","resetCache","resetCaches","discardWatches","removeOptimistic","idToRemove","newOptimisticData","onWatchUpdated","perform","layer","alreadyDirty","addFragmentsToDocument","lastDiff","fromOptimisticTransaction","q4","cacheSlot","optimism__WEBPACK_IMPORTED_MODULE_0__","g7","cacheInfoMap","getCacheInfo","vars","dep","forgetCache","rv","recallCache","attachCache","caches","listeners","oldListeners","listener","getValue","attach","onNextChange","execute","ApolloLink","HttpLink","createHttpLink","L","request","asyncMap","observable","mapFn","catchFn","promiseQueue","makeCallback","examiner","arg","both","closed","handler","sub","unsubscribe","graphQLResultHasError","errors","getGraphQLErrorsFromResult","graphQLErrors","incrementalResult","GG","incremental","iterateObserversSafely","observers","method","argument","observersWithMethod","obs","fixObservableSubclass","subclass","aS","species","isPromiseLike","Concast","sources","addObserver","removeObserver","promise","handlers","notify","nextResultListeners","cancel","reason","iterable","start","deliverLastMessage","nextOrError","beforeNext","called","ObservableQuery_assign","ObservableQuery_hasOwnProperty","ObservableQuery","queryManager","queryInfo","subObserver","_subscription","_observer","defaultSubscriptionObserverErrorCallback","first","last","reobserve","tearDownQuery","subscriptions","waitForOwnResult","skipCacheDataFor","fetchPolicy","isTornDown","subscribeToMore","bind","defaultOptions","watchQuery","defaultFetchPolicy","_e","_f","initialFetchPolicy","queryId","generateQueryId","opDef","$H","queryName","lastQuery","removeQuery","subscription","resetDiff","getCurrentResult","saveAsLastResult","lastResult","getLastResult","networkStatus","core_networkStatus","Ie","ready","Oj","getDocumentInfo","hasForcedResolvers","getDiff","partial","partialRefetch","logMissingFieldErrors","updateLastResult","isDifferentFromLastResult","newResult","hasNonreactiveDirective","getLast","variablesMustMatch","getLastError","resetLastResults","resetQueryStoreErrors","resetErrors","refetch","reobserveOptions","pollInterval","queryDef","variableDefinitions","some","variable","resetLastWrite","fetchMore","fetchMoreOptions","combinedOptions","qid","originalNetworkStatus","notifyOnNetworkStatusChange","observe","updatedQuerySet","isCached","fetchQuery","fetchMoreResult","previous","reportResult","reobserveCacheFirst","startGraphQLSubscription","subscriptionData","onError","setOptions","newOptions","silentSetOptions","mergedOptions","setVariables","broadcastQueries","startPolling","updatePolling","stopPolling","applyNextFetchPolicy","nextFetchPolicy","fetch","newNetworkStatus","setObservableQuery","ssrMode","pollingInfo","hasObservers","clearTimeout","interval","maybeFetch","skipPollAttempt","poll","X","reobserveAsConcast","useDisposableConcast","oldVariables","oldFetchPolicy","finishWaitingForOwnResult","concast","fromLink","client_errors","MS","cA","networkError","reportError","resubscribeAfterError","lastError","isDifferent","errorResult","stopQuery","obsQuery","currentFetchPolicy","stack","destructiveMethodCounts","wrapDestructiveCacheMethod","methodName","cancelNotifyTimeout","QueryInfo","lastRequestId","stopped","observableQuery","getDiffOptions","updateWatch","oq","updateLastDiff","setDiff","oldDiff","notifyTimeout","oqListener","shouldNotify","stop","watchOptions","watcher","lastWatch","lastWrite","shouldWrite","dmCount","markResult","cacheWriteBehavior","mergedData","mT","hasNext","shouldWriteResult","errorPolicy","markReady","markError","ignoreErrors","writeWithErrors","QueryManager_hasOwnProperty","IGNORE","QueryManager","clientAwareness","queries","fetchCancelFns","transformCache","queryIdCounter","requestIdCounter","mutationIdCounter","inFlightLinkObservables","defaultDocumentTransform","link","queryDeduplication","localState","documentTransform","defaultContext","onBroadcast","mutationStore","_info","stopQueryNoBroadcast","cancelPendingFetches","mutate","__awaiter","mutationId","hasClientExports","mutationStoreValue","isOptimistic","mutation","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","onQueryUpdated","_g","_h","keepRootFields","__generator","_j","label","generateMutationId","getVariables","addExportedVariables","sent","markMutationOptimistic","getObservableFromLink","storeResult","markMutationResult","cacheWrites","skipCache","asQuery","updateQueries_1","updater","currentQueryResult","nextQueryResult","mutationResult","rY","queryVariables","results_1","updateCache","isFinalResult","M0","include","fetchConcastWithInfo","getQueryStore","cacheEntry","mj","shouldForceResolvers","FS","clientQuery","serverQuery","bi","remove","defaultVars","definitions","operation","generateRequestId","stopQueryInStore","stopQueryInStoreNoBroadcast","clearStore","getObservableQueries","queryNamesAndDocs","legacyQueryOptions","desc","JW","makeUniqueId","getQuery","included","nameOrDoc","reFetchObservableQueries","includeStandby","observableQueryPromises","extensions","makeObservable","hasErrors","hasProtocolErrors","ls","protocolErrors","YG","observablePromise_1","getLocalState","deduplication","inFlightLinkObservables_1","operationName","prepareContext","forceFetch","printedServerQuery_1","varJson_1","entry","of","runResolvers","remoteResult","getResultsFromLink","requestId","linkDocument","aqr","containsDataFromLink","defaults","normalized","fromVariables","sourcesWithInfo","fetchQueryByPolicy","cleanupCancelFn","includedQueriesById","refetchWritePolicy","oldNetworkStatus","readCache","resultsFromCache","fromData","onlyRunForcedResolvers","resolved","resultsFromLink","newContext","isSelectionNode","FIELD","INLINE_FRAGMENT","LocalState","client","resolvers","fragmentMatcher","selectionsToResolveCache","addResolvers","setFragmentMatcher","resolverGroup","Ee","setResolvers","getResolvers","resolveDocument","localResult","getFragmentMatcher","ob","getCacheKey","document_1","buildRootValueFromCache","exportedVariables","forceResolvers","visitor","Vn","Directive","enter","$_","aL","rootValue_1","rootValue","mainDefinition","selectionsToResolve","definitionOperation","defaultOperationType","execContext","collectSelectionsToResolve","resolveSelectionSet","isClientFieldDescendant","resultsToMerge","resolveField","fieldResult","Ao","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","directive","isClientField","resolveSubSelectedArray","isSingleASTNode","collectByDefinition","definitionNode","matches_1","__","___","ancestors","FragmentSpread","spread","fragmentSelections","hasSuggestedDevtools","ApolloClient","resetStoreCallbacks","clearStoreCallbacks","uri","credentials","headers","ssrForceFetchDelay","connectToDevTools","typeDefs","clientAwarenessName","clientAwarenessVersion","devtools","disableNetworkFetches","devtoolsConfig","enabled","resetStore","devToolsHookCb","mutations","dataWithOptimisticResults","window","windowWithDevTools","devtoolsSymbol","for","__APOLLO_CLIENT__","top","location","protocol","__APOLLO_DEVTOOLS_GLOBAL_HOOK__","nav","navigator","ua","userAgent","url","log","mergeOptions","__actionHookForDevTools","__requestRaw","fn","onResetStore","onClearStore","serializedState","setLocalStateFragmentMatcher","setLink","newLink","su","aData","aRest","tslib__WEBPACK_IMPORTED_MODULE_1__","bData","bRest","_wry_equality__WEBPACK_IMPORTED_MODULE_0__","equalBySelectionSet","aResult","bResult","seenSelections","_utilities_index_js__WEBPACK_IMPORTED_MODULE_4__","selectionHasNonreactiveDirective","_utilities_index_js__WEBPACK_IMPORTED_MODULE_5__","resultKey","aResultChild","bResultChild","childSelectionSet","aChildIsArray","bChildIsArray","length_1","_utilities_index_js__WEBPACK_IMPORTED_MODULE_3__","_utilities_index_js__WEBPACK_IMPORTED_MODULE_2__","directiveIsNonreactive","NetworkStatus","isNetworkRequestInFlight","setContext","setter","_core_index_js__WEBPACK_IMPORTED_MODULE_0__","forward","handle","req","getContext","passthrough","op","toLink","isTerminating","links","split","leftLink","rightLink","transformedOperation","starting","validateOperation","OPERATION_FIELDS","second","firstLink","nextLink","setOnError","errorHandler","_utilities_index_js__WEBPACK_IMPORTED_MODULE_1__","retriedSub","retriedResult","response","ErrorLink","tslib__WEBPACK_IMPORTED_MODULE_2__","serializeFetchParameter","parseError","readerIterator","DN","asyncIterator","throwServerError","statusCode","status","parseAndCheckHttpResponse_hasOwnProperty","parseJsonBody","bodyText","getResult","checkFetcher","fetcher","fallbackHttpConfig","http","includeQuery","includeExtensions","preserveHeaderCase","accept","defaultPrinter","ast","printer","fromError","errorValue","backupFetch","wY","linkOptions","preferredFetch","useGETForQueries","includeUnusedVariables","requestOptions","linkConfig","fetchOptions","fallbackURI","unusedNames","controller","chosenURI","clientAwarenessHeaders","name_1","contextHeaders","contextConfig","transformedQuery","selectHttpOptionsAndBodyInternal","configs","removeDuplicateHeaders","normalizedHeaders_1","toLowerCase","headerData","originalName","normalizedHeaders","body","Variable","signal","AbortController","isSubscription","hasDefer","acceptHeader","rewriteURIForGET","queryParams","addQueryParam","encodeURIComponent","serializedVariables","serializedExtensions","preFragment","fragmentStart","substr","queryParamsPrefix","newURI","currentFetch","observerNext","ctype","readMultipartBody","nextValue","decoder","contentType","delimiter","boundaryVal","boundary","buffer","running","done","chunk","searchFrom","contentType_1","TextDecoder","substring","trim","responseIterator","getReader","stream","arrayBuffer","pipe","nodeStreamIterator","cleanup","waiting","onData","shiftedArr","pair","onEnd","removeListener","on","decode","headerText","headersInit","line","yU","parseAndCheckHttpResponse","text","operations","abort","ApolloProvider","ApolloContext","_ApolloContext_js__WEBPACK_IMPORTED_MODULE_2__","K","parentContext","rehackt__WEBPACK_IMPORTED_MODULE_1__","useContext","useMemo","tslib__WEBPACK_IMPORTED_MODULE_3__","_utilities_globals_index_js__WEBPACK_IMPORTED_MODULE_0__","createElement","Provider","sortingMap","stableObjectReplacer","_utilities_caching_index_js__WEBPACK_IMPORTED_MODULE_0__","_utilities_caching_index_js__WEBPACK_IMPORTED_MODULE_1__","proto","everyKeyInOrder","unsortedKey","sortedKey","sortedObject_1","_caching_getMemoryInternals_js__WEBPACK_IMPORTED_MODULE_2__","zP","cloneDeepHelper","val","seen","copy_1","copy_2","isExecutionPatchIncrementalResult","isExecutionPatchResult","isApolloPayloadResult","_objects_js__WEBPACK_IMPORTED_MODULE_0__","mergeIncrementalData","prevResult","_mergeDeep_js__WEBPACK_IMPORTED_MODULE_1__","_arrays_js__WEBPACK_IMPORTED_MODULE_2__","parent_1","isNumericKey","shallowFreeze","isFrozen","TypeError","getOwnPropertyNames","mergeDeepArray","DeepMerger","defaultReconciler","reconciler","isObject","pastCopies","sourceKey","targetValue","__spreadArray","shallowCopyForMerge","identity","resultCache","_common_canUse_js__WEBPACK_IMPORTED_MODULE_3__","cached","predicate","stableCacheKeys_1","_wry_trie__WEBPACK_IMPORTED_MODULE_0__","performWork","optimism__WEBPACK_IMPORTED_MODULE_2__","cacheKeys","_globals_index_js__WEBPACK_IMPORTED_MODULE_1__","_caching_index_js__WEBPACK_IMPORTED_MODULE_4__","_wry_caches__WEBPACK_IMPORTED_MODULE_5__","_getFromAST_js__WEBPACK_IMPORTED_MODULE_6__","A$","transformedDocument","otherTransform","getInclusionDirectives","directiveArguments","directiveName","_globals_index_js__WEBPACK_IMPORTED_MODULE_0__","ifArgument","ifValue","evaledValue","hasDirectives","names","nameSet","uniqueCount","graphql__WEBPACK_IMPORTED_MODULE_1__","getFragmentQueryDocument","actualFragmentName","definition","createFragmentMap","symTable","checkDocument","doc","getOperationName","getFragmentDefinitions","getQueryDefinition","getFragmentDefinition","fragmentDef","getMainDefinition","queryDoc","fragmentDefinition","defaultValues","defs","defaultValue","_storeUtils_js__WEBPACK_IMPORTED_MODULE_1__","vb","printCache","escapedRegExp","escapedReplacer","str","escapeSequences","charCodeAt","printDocASTReducer","Name","leave","Document","OperationDefinition","varDefs","wrap","prefix","VariableDefinition","SelectionSet","block","Field","alias","argsLine","indent","Argument","InlineFragment","FragmentDefinition","IntValue","FloatValue","StringValue","isBlockString","blockString","BooleanValue","NullValue","EnumValue","ListValue","ObjectValue","ObjectField","NamedType","ListType","NonNullType","SchemaDefinition","description","operationTypes","OperationTypeDefinition","ScalarTypeDefinition","ObjectTypeDefinition","interfaces","FieldDefinition","hasMultilineItems","InputValueDefinition","InterfaceTypeDefinition","UnionTypeDefinition","types","EnumTypeDefinition","EnumValueDefinition","InputObjectTypeDefinition","DirectiveDefinition","repeatable","locations","SchemaExtension","ScalarTypeExtension","ObjectTypeExtension","InterfaceTypeExtension","UnionTypeExtension","EnumTypeExtension","InputObjectTypeExtension","maybeArray","separator","_maybeArray$filter$jo","maybeString","end","_maybeArray$some","print_print","fragments_1","_fragments_js__WEBPACK_IMPORTED_MODULE_3__","isDocumentNode","_common_objects_js__WEBPACK_IMPORTED_MODULE_1__","valueToObjectRepresentation","argObj","isIntValue","Number","isBooleanValue","nestedArgObj_1","variableValue","listValue","nestedArgArrayObj","storeKeyNameFromField","directivesObj","getStoreKeyName","KNOWN_DIRECTIVES","storeKeyNameStringify","_common_canonicalStringify_js__WEBPACK_IMPORTED_MODULE_2__","filterKeys","filteredArgs_1","completeFieldName","stringifiedArgs","setStringify","argObj_1","isInlineFragment","TYPENAME_FIELD","NAME","makeInUseGetterFunction","defaultKey","inUse","fragmentSpreads","removeDirectivesFromDocument","_getFromAST_js__WEBPACK_IMPORTED_MODULE_2__","tests","getInUseByOperationName","getInUseByFragmentName","getInUse","ancestor","_common_arrays_js__WEBPACK_IMPORTED_MODULE_4__","OPERATION_DEFINITION","FRAGMENT_DEFINITION","operationCount","directiveMatcher","testConfig","shouldRemoveField","nodeDirectives","originalFragmentDefsByPath","firstVisitMadeChanges","fieldOrInlineFragmentVisitor","docWithoutDirectiveSubtrees","graphql__WEBPACK_IMPORTED_MODULE_5__","_parent","_path","removed","populateTransitiveVars","transitiveVars","childFragmentName","varName","allFragmentNamesUsed","enterVisitor","usedVariableNames_1","tslib__WEBPACK_IMPORTED_MODULE_6__","varDef","isEmpty","pD","_storeUtils_js__WEBPACK_IMPORTED_MODULE_7__","lastIndexOf","buildQueryFromSelectionSet","removeClientSetsFromDocument","defaultMakeData","weakness","makeData","getChildTrie","peekArray","len","mapFor","removeArray","head","strong","isObjRef","BREAK","visit","visitorKeys","_ast_mjs__WEBPACK_IMPORTED_MODULE_0__","h8","enterLeaveMap","_kinds_mjs__WEBPACK_IMPORTED_MODULE_1__","getEnterLeaveForKind","kindVisitor","inArray","index","edits","_enterLeaveMap$get","_enterLeaveMap$get2","_node$kind","isLeaving","isEdited","editOffset","editKey","editValue","arrayKey","prev","UG","_jsutils_devAssert_mjs__WEBPACK_IMPORTED_MODULE_2__","a","_jsutils_inspect_mjs__WEBPACK_IMPORTED_MODULE_3__","visitFn","defaultKeyTrie","lib_hasOwnProperty","currentContext","MISSING_VALUE","idCounter","maybe","ignored","globalKey","host","global","Slot","globalHost","Date","now","Math","random","hasValue","slots","thisArg","saved","noContext","parentEntrySlot","helpers_hasOwnProperty","arrayFromSet","maybeUnsubscribe","entryOrDep","emptySetPool","assert","condition","optionalMessage","valueIs","b","valueGet","Entry","parents","childValues","dirtyChildren","recomputing","deps","mightBeDirty","rememberParent","recompute","forgetChildren","recomputeNewValue","maybeSubscribe","setDirty","eachParent","reportCleanChild","reportDirtyChild","dispose","forgetChild","dependOn","forgetDeps","oldValueCopy","normalizeResult","parentCount","parentWasClean","childValue","removeDirtyChild","dc","_value","EntryMethods","depsByKey","entryMethodName","m","defaultMakeCacheKey","trie","originalFunction","cacheOption","clean","dirtyKey","peekKey","forgetKey","getKey","_arrayLikeToArray","_createClass","protoProps","hasSymbols","hasSymbol","getSymbol","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","ctor","Observable","hostReportError","enqueue","cleanupSubscription","_cleanup","closeSubscription","_queue","_state","notifySubscription","onNotify","flushSubscription","queue","Subscription","subscriber","subscriptionObserver","SubscriptionObserver","_proto","_proto2","_subscriber","_proto3","_this2","_this3","_this4","C","hasSeed","acc","_this5","startNext","flatMap","_this6","outer","inner","completeIfDone","_step","_iterator","_createForOfIteratorHelperLoose","allowArrayLike","it","_unsupportedIterableToArray","minLen","n","_len2","items","_key2","symbol"],"sourceRoot":""}