{"version":3,"file":"static/js/31.470838b6.chunk.js","mappings":"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","sources":["../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@tanstack/query-core/src/focusManager.ts","../node_modules/@tanstack/query-core/src/notifyManager.ts","../node_modules/@tanstack/query-core/src/onlineManager.ts","../node_modules/@tanstack/query-core/src/logger.ts","../node_modules/@tanstack/query-core/src/removable.ts","../node_modules/@tanstack/query-core/src/query.ts","../node_modules/@tanstack/query-core/src/queryCache.ts","../node_modules/@tanstack/query-core/src/mutation.ts","../node_modules/@tanstack/query-core/src/mutationCache.ts","../node_modules/@tanstack/query-core/src/infiniteQueryBehavior.ts","../node_modules/@tanstack/query-core/src/queryClient.ts","../node_modules/@tanstack/query-core/src/retryer.ts","../node_modules/@tanstack/query-core/src/subscribable.ts","../node_modules/@tanstack/query-core/src/utils.ts","../node_modules/@tanstack/query-sync-storage-persister/src/index.ts","../node_modules/@tanstack/query-core/src/hydration.ts","../node_modules/@tanstack/query-persist-client-core/src/persist.ts","../node_modules/@tanstack/react-query-persist-client/src/PersistQueryClientProvider.tsx","../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx","../node_modules/@tanstack/react-query/src/isRestoring.tsx"],"sourcesContent":["export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setFocused: (focused?: boolean) => void,\n) => (() => void) | undefined\n\nexport class FocusManager extends Subscribable {\n private focused?: boolean\n private cleanup?: () => void\n\n private setup: SetupFn\n\n constructor() {\n super()\n this.setup = (onFocus) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus()\n // Listen to visibillitychange and focus\n window.addEventListener('visibilitychange', listener, false)\n window.addEventListener('focus', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener)\n window.removeEventListener('focus', listener)\n }\n }\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.cleanup) {\n this.setEventListener(this.setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.cleanup?.()\n this.cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.setup = setup\n this.cleanup?.()\n this.cleanup = setup((focused) => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused)\n } else {\n this.onFocus()\n }\n })\n }\n\n setFocused(focused?: boolean): void {\n this.focused = focused\n\n if (focused) {\n this.onFocus()\n }\n }\n\n onFocus(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isFocused(): boolean {\n if (typeof this.focused === 'boolean') {\n return this.focused\n }\n\n // document global can be unavailable in react native\n if (typeof document === 'undefined') {\n return true\n }\n\n return [undefined, 'visible', 'prerender'].includes(\n document.visibilityState,\n )\n }\n}\n\nexport const focusManager = new FocusManager()\n","import { scheduleMicrotask } from './utils'\n\n// TYPES\n\ntype NotifyCallback = () => void\n\ntype NotifyFunction = (callback: () => void) => void\n\ntype BatchNotifyFunction = (callback: () => void) => void\n\nexport function createNotifyManager() {\n let queue: NotifyCallback[] = []\n let transactions = 0\n let notifyFn: NotifyFunction = (callback) => {\n callback()\n }\n let batchNotifyFn: BatchNotifyFunction = (callback: () => void) => {\n callback()\n }\n\n const batch = (callback: () => T): T => {\n let result\n transactions++\n try {\n result = callback()\n } finally {\n transactions--\n if (!transactions) {\n flush()\n }\n }\n return result\n }\n\n const schedule = (callback: NotifyCallback): void => {\n if (transactions) {\n queue.push(callback)\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback)\n })\n }\n }\n\n /**\n * All calls to the wrapped function will be batched.\n */\n const batchCalls = (callback: T): T => {\n return ((...args: any[]) => {\n schedule(() => {\n callback(...args)\n })\n }) as any\n }\n\n const flush = (): void => {\n const originalQueue = queue\n queue = []\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback)\n })\n })\n })\n }\n }\n\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n const setNotifyFunction = (fn: NotifyFunction) => {\n notifyFn = fn\n }\n\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n const setBatchNotifyFunction = (fn: BatchNotifyFunction) => {\n batchNotifyFn = fn\n }\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction,\n } as const\n}\n\n// SINGLETON\nexport const notifyManager = createNotifyManager()\n","import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nexport class OnlineManager extends Subscribable {\n private online?: boolean\n private cleanup?: () => void\n\n private setup: SetupFn\n\n constructor() {\n super()\n this.setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n window.addEventListener('online', listener, false)\n window.addEventListener('offline', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener)\n window.removeEventListener('offline', listener)\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.cleanup) {\n this.setEventListener(this.setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.cleanup?.()\n this.cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.setup = setup\n this.cleanup?.()\n this.cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n this.online = online\n\n if (online) {\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.online === 'boolean') {\n return this.online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n","export interface Logger {\n log: LogFunction\n warn: LogFunction\n error: LogFunction\n}\n\ntype LogFunction = (...args: any[]) => void\n\nexport const defaultLogger: Logger = console\n","import { isServer, isValidTimeout } from './utils'\n\nexport abstract class Removable {\n cacheTime!: number\n private gcTimeout?: ReturnType\n\n destroy(): void {\n this.clearGcTimeout()\n }\n\n protected scheduleGc(): void {\n this.clearGcTimeout()\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove()\n }, this.cacheTime)\n }\n }\n\n protected updateCacheTime(newCacheTime: number | undefined): void {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(\n this.cacheTime || 0,\n newCacheTime ?? (isServer ? Infinity : 5 * 60 * 1000),\n )\n }\n\n protected clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout)\n this.gcTimeout = undefined\n }\n }\n\n protected abstract optionalRemove(): void\n}\n","import { getAbortController, noop, replaceData, timeUntilStale } from './utils'\nimport type {\n InitialDataFunction,\n QueryKey,\n QueryOptions,\n QueryStatus,\n QueryFunctionContext,\n QueryMeta,\n CancelOptions,\n SetDataOptions,\n FetchStatus,\n} from './types'\nimport type { QueryCache } from './queryCache'\nimport type { QueryObserver } from './queryObserver'\nimport type { Logger } from './logger'\nimport { defaultLogger } from './logger'\nimport { notifyManager } from './notifyManager'\nimport type { Retryer } from './retryer'\nimport { isCancelledError, canFetch, createRetryer } from './retryer'\nimport { Removable } from './removable'\n\n// TYPES\n\ninterface QueryConfig<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n cache: QueryCache\n queryKey: TQueryKey\n queryHash: string\n logger?: Logger\n options?: QueryOptions\n defaultOptions?: QueryOptions\n state?: QueryState\n}\n\nexport interface QueryState {\n data: TData | undefined\n dataUpdateCount: number\n dataUpdatedAt: number\n error: TError | null\n errorUpdateCount: number\n errorUpdatedAt: number\n fetchFailureCount: number\n fetchFailureReason: TError | null\n fetchMeta: any\n isInvalidated: boolean\n status: QueryStatus\n fetchStatus: FetchStatus\n}\n\nexport interface FetchContext<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n fetchFn: () => unknown | Promise\n fetchOptions?: FetchOptions\n signal?: AbortSignal\n options: QueryOptions\n queryKey: TQueryKey\n state: QueryState\n}\n\nexport interface QueryBehavior<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext,\n ) => void\n}\n\nexport interface FetchOptions {\n cancelRefetch?: boolean\n meta?: any\n}\n\ninterface FailedAction {\n type: 'failed'\n failureCount: number\n error: TError\n}\n\ninterface FetchAction {\n type: 'fetch'\n meta?: any\n}\n\ninterface SuccessAction {\n data: TData | undefined\n type: 'success'\n dataUpdatedAt?: number\n manual?: boolean\n}\n\ninterface ErrorAction {\n type: 'error'\n error: TError\n}\n\ninterface InvalidateAction {\n type: 'invalidate'\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction {\n type: 'setState'\n state: Partial>\n setStateOptions?: SetStateOptions\n}\n\nexport type Action =\n | ContinueAction\n | ErrorAction\n | FailedAction\n | FetchAction\n | InvalidateAction\n | PauseAction\n | SetStateAction\n | SuccessAction\n\nexport interface SetStateOptions {\n meta?: any\n}\n\n// CLASS\n\nexport class Query<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Removable {\n queryKey: TQueryKey\n queryHash: string\n options!: QueryOptions\n initialState: QueryState\n revertState?: QueryState\n state: QueryState\n isFetchingOptimistic?: boolean\n\n private cache: QueryCache\n private logger: Logger\n private promise?: Promise\n private retryer?: Retryer\n private observers: QueryObserver[]\n private defaultOptions?: QueryOptions\n private abortSignalConsumed: boolean\n\n constructor(config: QueryConfig) {\n super()\n\n this.abortSignalConsumed = false\n this.defaultOptions = config.defaultOptions\n this.setOptions(config.options)\n this.observers = []\n this.cache = config.cache\n this.logger = config.logger || defaultLogger\n this.queryKey = config.queryKey\n this.queryHash = config.queryHash\n this.initialState = config.state || getDefaultState(this.options)\n this.state = this.initialState\n this.scheduleGc()\n }\n\n get meta(): QueryMeta | undefined {\n return this.options.meta\n }\n\n private setOptions(\n options?: QueryOptions,\n ): void {\n this.options = { ...this.defaultOptions, ...options }\n\n this.updateCacheTime(this.options.cacheTime)\n }\n\n protected optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this)\n }\n }\n\n setData(\n newData: TData,\n options?: SetDataOptions & { manual: boolean },\n ): TData {\n const data = replaceData(this.state.data, newData, this.options)\n\n // Set data and mark it as cached\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual,\n })\n\n return data\n }\n\n setState(\n state: Partial>,\n setStateOptions?: SetStateOptions,\n ): void {\n this.dispatch({ type: 'setState', state, setStateOptions })\n }\n\n cancel(options?: CancelOptions): Promise {\n const promise = this.promise\n this.retryer?.cancel(options)\n return promise ? promise.then(noop).catch(noop) : Promise.resolve()\n }\n\n destroy(): void {\n super.destroy()\n\n this.cancel({ silent: true })\n }\n\n reset(): void {\n this.destroy()\n this.setState(this.initialState)\n }\n\n isActive(): boolean {\n return this.observers.some((observer) => observer.options.enabled !== false)\n }\n\n isDisabled(): boolean {\n return this.getObserversCount() > 0 && !this.isActive()\n }\n\n isStale(): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n this.observers.some((observer) => observer.getCurrentResult().isStale)\n )\n }\n\n isStaleByTime(staleTime = 0): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n !timeUntilStale(this.state.dataUpdatedAt, staleTime)\n )\n }\n\n onFocus(): void {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus())\n\n if (observer) {\n observer.refetch({ cancelRefetch: false })\n }\n\n // Continue fetch if currently paused\n this.retryer?.continue()\n }\n\n onOnline(): void {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect())\n\n if (observer) {\n observer.refetch({ cancelRefetch: false })\n }\n\n // Continue fetch if currently paused\n this.retryer?.continue()\n }\n\n addObserver(observer: QueryObserver): void {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer)\n\n // Stop the query from being garbage collected\n this.clearGcTimeout()\n\n this.cache.notify({ type: 'observerAdded', query: this, observer })\n }\n }\n\n removeObserver(observer: QueryObserver): void {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter((x) => x !== observer)\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({ revert: true })\n } else {\n this.retryer.cancelRetry()\n }\n }\n\n this.scheduleGc()\n }\n\n this.cache.notify({ type: 'observerRemoved', query: this, observer })\n }\n }\n\n getObserversCount(): number {\n return this.observers.length\n }\n\n invalidate(): void {\n if (!this.state.isInvalidated) {\n this.dispatch({ type: 'invalidate' })\n }\n }\n\n fetch(\n options?: QueryOptions,\n fetchOptions?: FetchOptions,\n ): Promise {\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions?.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({ silent: true })\n } else if (this.promise) {\n // make sure that retries that were potentially cancelled due to unmounts can continue\n this.retryer?.continueRetry()\n // Return current promise if we are already fetching\n return this.promise\n }\n }\n\n // Update config if passed, otherwise the config from the last execution is used\n if (options) {\n this.setOptions(options)\n }\n\n // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn)\n if (observer) {\n this.setOptions(observer.options)\n }\n }\n\n if (!Array.isArray(this.options.queryKey)) {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`,\n )\n }\n }\n\n const abortController = getAbortController()\n\n // Create query function context\n const queryFnContext: QueryFunctionContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta,\n }\n\n // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true\n return abortController.signal\n }\n return undefined\n },\n })\n }\n\n addSignalProperty(queryFnContext)\n\n // Create fetch function\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject('Missing queryFn')\n }\n this.abortSignalConsumed = false\n return this.options.queryFn(queryFnContext)\n }\n\n // Trigger behavior hook\n const context: FetchContext = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn,\n }\n\n addSignalProperty(context)\n\n this.options.behavior?.onFetch(context)\n\n // Store state in case the current fetch needs to be reverted\n this.revertState = this.state\n\n // Set to fetching state if not already in it\n if (\n this.state.fetchStatus === 'idle' ||\n this.state.fetchMeta !== context.fetchOptions?.meta\n ) {\n this.dispatch({ type: 'fetch', meta: context.fetchOptions?.meta })\n }\n\n const onError = (error: TError | { silent?: boolean }) => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error as TError,\n })\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n this.cache.config.onError?.(error, this as Query)\n this.cache.config.onSettled?.(\n this.state.data,\n error,\n this as Query,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n }\n\n // Try to fetch the data\n this.retryer = createRetryer({\n fn: context.fetchFn as () => TData,\n abort: abortController?.abort.bind(abortController),\n onSuccess: (data) => {\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,\n )\n }\n onError(new Error('undefined') as any)\n return\n }\n\n this.setData(data as TData)\n\n // Notify cache callback\n this.cache.config.onSuccess?.(data, this as Query)\n this.cache.config.onSettled?.(\n data,\n this.state.error,\n this as Query,\n )\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.dispatch({ type: 'continue' })\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n })\n\n this.promise = this.retryer.promise\n\n return this.promise\n }\n\n private dispatch(action: Action): void {\n const reducer = (\n state: QueryState,\n ): QueryState => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n fetchStatus: 'paused',\n }\n case 'continue':\n return {\n ...state,\n fetchStatus: 'fetching',\n }\n case 'fetch':\n return {\n ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: action.meta ?? null,\n fetchStatus: canFetch(this.options.networkMode)\n ? 'fetching'\n : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading',\n }),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null,\n }),\n }\n case 'error':\n const error = action.error as unknown\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState }\n }\n\n return {\n ...state,\n error: error as TError,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error as TError,\n fetchStatus: 'idle',\n status: 'error',\n }\n case 'invalidate':\n return {\n ...state,\n isInvalidated: true,\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate(action)\n })\n\n this.cache.notify({ query: this, type: 'updated', action })\n })\n }\n}\n\nfunction getDefaultState<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n options: QueryOptions,\n): QueryState {\n const data =\n typeof options.initialData === 'function'\n ? (options.initialData as InitialDataFunction)()\n : options.initialData\n\n const hasData = typeof data !== 'undefined'\n\n const initialDataUpdatedAt = hasData\n ? typeof options.initialDataUpdatedAt === 'function'\n ? (options.initialDataUpdatedAt as () => number | undefined)()\n : options.initialDataUpdatedAt\n : 0\n\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle',\n }\n}\n","import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type { NotifyEvent, QueryKey, QueryOptions } from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query) => void\n onSuccess?: (data: unknown, query: Query) => void\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n query: Query,\n ) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query\n action: Action\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query\n observer: QueryObserver\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query\n observer: QueryObserver\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query\n observer: QueryObserver\n}\n\ntype QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable {\n config: QueryCacheConfig\n\n private queries: Query[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build(\n client: QueryClient,\n options: QueryOptions,\n state?: QueryState,\n ): Query {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query | undefined {\n return this.queriesMap[queryHash]\n }\n\n getAll(): Query[] {\n return this.queries\n }\n\n find(\n arg1: QueryKey,\n arg2?: QueryFilters,\n ): Query | undefined {\n const [filters] = parseFilterArgs(arg1, arg2)\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.queries.find((query) => matchQuery(filters, query))\n }\n\n findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]\n findAll(filters?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[] {\n const [filters] = parseFilterArgs(arg1, arg2)\n return Object.keys(filters).length > 0\n ? this.queries.filter((query) => matchQuery(filters, query))\n : this.queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n","import type { MutationOptions, MutationStatus, MutationMeta } from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Logger } from './logger'\nimport { defaultLogger } from './logger'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport type { Retryer } from './retryer'\nimport { canFetch, createRetryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions\n logger?: Logger\n defaultOptions?: MutationOptions\n state?: MutationState\n meta?: MutationMeta\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n}\n\ninterface FailedAction {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface LoadingAction {\n type: 'loading'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction {\n type: 'setState'\n state: MutationState\n}\n\nexport type Action =\n | ContinueAction\n | ErrorAction\n | FailedAction\n | LoadingAction\n | PauseAction\n | SetStateAction\n | SuccessAction\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState\n options!: MutationOptions\n mutationId: number\n\n private observers: MutationObserver[]\n private defaultOptions?: MutationOptions\n private mutationCache: MutationCache\n private logger: Logger\n private retryer?: Retryer\n\n constructor(config: MutationConfig) {\n super()\n\n this.defaultOptions = config.defaultOptions\n this.mutationId = config.mutationId\n this.mutationCache = config.mutationCache\n this.logger = config.logger || defaultLogger\n this.observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions,\n ): void {\n this.options = { ...this.defaultOptions, ...options }\n\n this.updateCacheTime(this.options.cacheTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n setState(state: MutationState): void {\n this.dispatch({ type: 'setState', state })\n }\n\n addObserver(observer: MutationObserver): void {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver): void {\n this.observers = this.observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc()\n } else {\n this.mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise {\n return this.retryer?.continue() ?? this.execute()\n }\n\n async execute(): Promise {\n const executeMutation = () => {\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found')\n }\n return this.options.mutationFn(this.state.variables!)\n },\n onFail: (failureCount, error) => {\n this.dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.retryer.promise\n }\n\n const restored = this.state.status === 'loading'\n try {\n if (!restored) {\n this.dispatch({ type: 'loading', variables: this.options.variables! })\n // Notify cache callback\n await this.mutationCache.config.onMutate?.(\n this.state.variables,\n this as Mutation,\n )\n const context = await this.options.onMutate?.(this.state.variables!)\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.mutationCache.config.onSuccess?.(\n data,\n this.state.variables,\n this.state.context,\n this as Mutation,\n )\n\n await this.options.onSuccess?.(\n data,\n this.state.variables!,\n this.state.context!,\n )\n\n // Notify cache callback\n await this.mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n this.state.variables!,\n this.state.context,\n )\n\n this.dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.mutationCache.config.onError?.(\n error,\n this.state.variables,\n this.state.context,\n this as Mutation,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n\n await this.options.onError?.(\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n\n // Notify cache callback\n await this.mutationCache.config.onSettled?.(\n undefined,\n error,\n this.state.variables,\n this.state.context,\n this as Mutation,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n throw error\n } finally {\n this.dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n private dispatch(action: Action): void {\n const reducer = (\n state: MutationState,\n ): MutationState => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'loading':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables,\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n }\n}\n","import type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation,\n ) => Promise | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation,\n ) => Promise | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation,\n ) => Promise | unknown\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation,\n ) => Promise | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation\n observer: MutationObserver\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation\n observer: MutationObserver\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation\n observer: MutationObserver\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation\n action: Action\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable {\n config: MutationCacheConfig\n\n private mutations: Mutation[]\n private mutationId: number\n private resuming: Promise | undefined\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build(\n client: QueryClient,\n options: MutationOptions,\n state?: MutationState,\n ): Mutation {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find(\n filters: MutationFilters,\n ): Mutation | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise {\n this.resuming = (this.resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise,\n ),\n )\n })\n .then(() => {\n this.resuming = undefined\n })\n\n return this.resuming\n }\n}\n","import type { QueryBehavior } from './query'\n\nimport type {\n InfiniteData,\n QueryFunctionContext,\n QueryOptions,\n RefetchQueryFilters,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior> {\n return {\n onFetch: (context) => {\n context.fetchFn = () => {\n const refetchPage: RefetchQueryFilters['refetchPage'] | undefined =\n context.fetchOptions?.meta?.refetchPage\n const fetchMore = context.fetchOptions?.meta?.fetchMore\n const pageParam = fetchMore?.pageParam\n const isFetchingNextPage = fetchMore?.direction === 'forward'\n const isFetchingPreviousPage = fetchMore?.direction === 'backward'\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n let newPageParams = oldPageParams\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal?.aborted) {\n cancelled = true\n } else {\n context.signal?.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn || (() => Promise.reject('Missing queryFn'))\n\n const buildNewPages = (\n pages: unknown[],\n param: unknown,\n page: unknown,\n previous?: boolean,\n ) => {\n newPageParams = previous\n ? [param, ...newPageParams]\n : [...newPageParams, param]\n return previous ? [page, ...pages] : [...pages, page]\n }\n\n // Create function to fetch a page\n const fetchPage = (\n pages: unknown[],\n manual?: boolean,\n param?: unknown,\n previous?: boolean,\n ): Promise => {\n if (cancelled) {\n return Promise.reject('Cancelled')\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages)\n }\n\n const queryFnContext: QueryFunctionContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const queryFnResult = queryFn(queryFnContext)\n\n const promise = Promise.resolve(queryFnResult).then((page) =>\n buildNewPages(pages, param, page, previous),\n )\n\n return promise\n }\n\n let promise: Promise\n\n // Fetch first page?\n if (!oldPages.length) {\n promise = fetchPage([])\n }\n\n // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined'\n const param = manual\n ? pageParam\n : getNextPageParam(context.options, oldPages)\n promise = fetchPage(oldPages, manual, param)\n }\n\n // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined'\n const param = manual\n ? pageParam\n : getPreviousPageParam(context.options, oldPages)\n promise = fetchPage(oldPages, manual, param, true)\n }\n\n // Refetch pages\n else {\n newPageParams = []\n\n const manual = typeof context.options.getNextPageParam === 'undefined'\n\n const shouldFetchFirstPage =\n refetchPage && oldPages[0]\n ? refetchPage(oldPages[0], 0, oldPages)\n : true\n\n // Fetch first page\n promise = shouldFetchFirstPage\n ? fetchPage([], manual, oldPageParams[0])\n : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0]))\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then((pages) => {\n const shouldFetchNextPage =\n refetchPage && oldPages[i]\n ? refetchPage(oldPages[i], i, oldPages)\n : true\n\n if (shouldFetchNextPage) {\n const param = manual\n ? oldPageParams[i]\n : getNextPageParam(context.options, pages)\n return fetchPage(pages, manual, param)\n }\n return Promise.resolve(\n buildNewPages(pages, oldPageParams[i], oldPages[i]),\n )\n })\n }\n }\n\n const finalPromise = promise.then((pages) => ({\n pages,\n pageParams: newPageParams,\n }))\n\n return finalPromise\n }\n },\n }\n}\n\nexport function getNextPageParam(\n options: QueryOptions,\n pages: unknown[],\n): unknown | undefined {\n return options.getNextPageParam?.(pages[pages.length - 1], pages)\n}\n\nexport function getPreviousPageParam(\n options: QueryOptions,\n pages: unknown[],\n): unknown | undefined {\n return options.getPreviousPageParam?.(pages[0], pages)\n}\n\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\nexport function hasNextPage(\n options: QueryOptions,\n pages?: unknown,\n): boolean | undefined {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages)\n return (\n typeof nextPageParam !== 'undefined' &&\n nextPageParam !== null &&\n nextPageParam !== false\n )\n }\n return\n}\n\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\nexport function hasPreviousPage(\n options: QueryOptions,\n pages?: unknown,\n): boolean | undefined {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages)\n return (\n typeof previousPageParam !== 'undefined' &&\n previousPageParam !== null &&\n previousPageParam !== false\n )\n }\n return\n}\n","import type { QueryFilters, Updater, MutationFilters } from './utils'\nimport {\n hashQueryKey,\n noop,\n parseFilterArgs,\n parseQueryArgs,\n partialMatchKey,\n hashQueryKeyByOptions,\n functionalUpdate,\n} from './utils'\nimport type {\n QueryClientConfig,\n DefaultOptions,\n FetchInfiniteQueryOptions,\n FetchQueryOptions,\n InfiniteData,\n InvalidateOptions,\n InvalidateQueryFilters,\n MutationKey,\n MutationObserverOptions,\n MutationOptions,\n QueryFunction,\n QueryKey,\n QueryObserverOptions,\n QueryOptions,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n ResetQueryFilters,\n SetDataOptions,\n WithRequired,\n} from './types'\nimport type { QueryState } from './query'\nimport { QueryCache } from './queryCache'\nimport { MutationCache } from './mutationCache'\nimport { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { notifyManager } from './notifyManager'\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior'\nimport type { CancelOptions, DefaultedQueryObserverOptions } from './types'\nimport type { Logger } from './logger'\nimport { defaultLogger } from './logger'\n\n// TYPES\n\ninterface QueryDefaults {\n queryKey: QueryKey\n defaultOptions: QueryOptions\n}\n\ninterface MutationDefaults {\n mutationKey: MutationKey\n defaultOptions: MutationOptions\n}\n\n// CLASS\n\nexport class QueryClient {\n private queryCache: QueryCache\n private mutationCache: MutationCache\n private logger: Logger\n private defaultOptions: DefaultOptions\n private queryDefaults: QueryDefaults[]\n private mutationDefaults: MutationDefaults[]\n private mountCount: number\n private unsubscribeFocus?: () => void\n private unsubscribeOnline?: () => void\n\n constructor(config: QueryClientConfig = {}) {\n this.queryCache = config.queryCache || new QueryCache()\n this.mutationCache = config.mutationCache || new MutationCache()\n this.logger = config.logger || defaultLogger\n this.defaultOptions = config.defaultOptions || {}\n this.queryDefaults = []\n this.mutationDefaults = []\n this.mountCount = 0\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\n `Passing a custom logger has been deprecated and will be removed in the next major version.`,\n )\n }\n }\n\n mount(): void {\n this.mountCount++\n if (this.mountCount !== 1) return\n\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations()\n this.queryCache.onFocus()\n }\n })\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations()\n this.queryCache.onOnline()\n }\n })\n }\n\n unmount(): void {\n this.mountCount--\n if (this.mountCount !== 0) return\n\n this.unsubscribeFocus?.()\n this.unsubscribeFocus = undefined\n\n this.unsubscribeOnline?.()\n this.unsubscribeOnline = undefined\n }\n\n isFetching(filters?: QueryFilters): number\n isFetching(queryKey?: QueryKey, filters?: QueryFilters): number\n isFetching(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): number {\n const [filters] = parseFilterArgs(arg1, arg2)\n filters.fetchStatus = 'fetching'\n return this.queryCache.findAll(filters).length\n }\n\n isMutating(filters?: MutationFilters): number {\n return this.mutationCache.findAll({ ...filters, fetching: true }).length\n }\n\n getQueryData(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): TQueryFnData | undefined {\n return this.queryCache.find(queryKey, filters)?.state.data\n }\n\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: WithRequired<\n FetchQueryOptions,\n 'queryKey'\n >,\n ): Promise\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: Omit<\n FetchQueryOptions,\n 'queryKey'\n >,\n ): Promise\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction,\n options?: Omit<\n FetchQueryOptions,\n 'queryKey' | 'queryFn'\n >,\n ): Promise\n ensureQueryData<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | WithRequired<\n FetchQueryOptions,\n 'queryKey'\n >,\n arg2?:\n | QueryFunction\n | FetchQueryOptions,\n arg3?: FetchQueryOptions,\n ): Promise {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n const cachedData = this.getQueryData(parsedOptions.queryKey!)\n\n return cachedData\n ? Promise.resolve(cachedData)\n : this.fetchQuery(parsedOptions)\n }\n\n getQueriesData(\n queryKey: QueryKey,\n ): [QueryKey, TQueryFnData | undefined][]\n getQueriesData(\n filters: QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][]\n getQueriesData(\n queryKeyOrFilters: QueryKey | QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][] {\n return this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey, state }) => {\n const data = state.data as TQueryFnData | undefined\n return [queryKey, data]\n })\n }\n\n setQueryData(\n queryKey: QueryKey,\n updater: Updater,\n options?: SetDataOptions,\n ): TQueryFnData | undefined {\n const query = this.queryCache.find(queryKey)\n const prevData = query?.state.data\n const data = functionalUpdate(updater, prevData)\n\n if (typeof data === 'undefined') {\n return undefined\n }\n\n const parsedOptions = parseQueryArgs(queryKey)\n const defaultedOptions = this.defaultQueryOptions(parsedOptions)\n return this.queryCache\n .build(this, defaultedOptions)\n .setData(data, { ...options, manual: true })\n }\n\n setQueriesData(\n queryKey: QueryKey,\n updater: Updater,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][]\n\n setQueriesData(\n filters: QueryFilters,\n updater: Updater,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][]\n\n setQueriesData(\n queryKeyOrFilters: QueryKey | QueryFilters,\n updater: Updater,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): QueryState | undefined {\n return this.queryCache.find(queryKey, filters)?.state\n }\n\n removeQueries(filters?: QueryFilters): void\n removeQueries(queryKey?: QueryKey, filters?: QueryFilters): void\n removeQueries(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): void {\n const [filters] = parseFilterArgs(arg1, arg2)\n const queryCache = this.queryCache\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query)\n })\n })\n }\n\n resetQueries(\n filters?: ResetQueryFilters,\n options?: ResetOptions,\n ): Promise\n resetQueries(\n queryKey?: QueryKey,\n filters?: ResetQueryFilters,\n options?: ResetOptions,\n ): Promise\n resetQueries(\n arg1?: QueryKey | ResetQueryFilters,\n arg2?: ResetQueryFilters | ResetOptions,\n arg3?: ResetOptions,\n ): Promise {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n const queryCache = this.queryCache\n\n const refetchFilters: RefetchQueryFilters = {\n type: 'active',\n ...filters,\n }\n\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset()\n })\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n cancelQueries(filters?: QueryFilters, options?: CancelOptions): Promise\n cancelQueries(\n queryKey?: QueryKey,\n filters?: QueryFilters,\n options?: CancelOptions,\n ): Promise\n cancelQueries(\n arg1?: QueryKey | QueryFilters,\n arg2?: QueryFilters | CancelOptions,\n arg3?: CancelOptions,\n ): Promise {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3)\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true\n }\n\n const promises = notifyManager.batch(() =>\n this.queryCache\n .findAll(filters)\n .map((query) => query.cancel(cancelOptions)),\n )\n\n return Promise.all(promises).then(noop).catch(noop)\n }\n\n invalidateQueries(\n filters?: InvalidateQueryFilters,\n options?: InvalidateOptions,\n ): Promise\n invalidateQueries(\n queryKey?: QueryKey,\n filters?: InvalidateQueryFilters,\n options?: InvalidateOptions,\n ): Promise\n invalidateQueries(\n arg1?: QueryKey | InvalidateQueryFilters,\n arg2?: InvalidateQueryFilters | InvalidateOptions,\n arg3?: InvalidateOptions,\n ): Promise {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n\n return notifyManager.batch(() => {\n this.queryCache.findAll(filters).forEach((query) => {\n query.invalidate()\n })\n\n if (filters.refetchType === 'none') {\n return Promise.resolve()\n }\n const refetchFilters: RefetchQueryFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? 'active',\n }\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n refetchQueries(\n filters?: RefetchQueryFilters,\n options?: RefetchOptions,\n ): Promise\n refetchQueries(\n queryKey?: QueryKey,\n filters?: RefetchQueryFilters,\n options?: RefetchOptions,\n ): Promise\n refetchQueries(\n arg1?: QueryKey | RefetchQueryFilters,\n arg2?: RefetchQueryFilters | RefetchOptions,\n arg3?: RefetchOptions,\n ): Promise {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n\n const promises = notifyManager.batch(() =>\n this.queryCache\n .findAll(filters)\n .filter((query) => !query.isDisabled())\n .map((query) =>\n query.fetch(undefined, {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true,\n meta: { refetchPage: filters.refetchPage },\n }),\n ),\n )\n\n let promise = Promise.all(promises).then(noop)\n\n if (!options?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions,\n ): Promise\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchQueryOptions,\n ): Promise\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction,\n options?: FetchQueryOptions,\n ): Promise\n fetchQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1: TQueryKey | FetchQueryOptions,\n arg2?:\n | QueryFunction\n | FetchQueryOptions,\n arg3?: FetchQueryOptions,\n ): Promise {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n const defaultedOptions = this.defaultQueryOptions(parsedOptions)\n\n // https://github.com/tannerlinsley/react-query/issues/652\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false\n }\n\n const query = this.queryCache.build(this, defaultedOptions)\n\n return query.isStaleByTime(defaultedOptions.staleTime)\n ? query.fetch(defaultedOptions)\n : Promise.resolve(query.state.data as TData)\n }\n\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions,\n ): Promise\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchQueryOptions,\n ): Promise\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction,\n options?: FetchQueryOptions,\n ): Promise\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1: TQueryKey | FetchQueryOptions,\n arg2?:\n | QueryFunction\n | FetchQueryOptions,\n arg3?: FetchQueryOptions,\n ): Promise {\n return this.fetchQuery(arg1 as any, arg2 as any, arg3)\n .then(noop)\n .catch(noop)\n }\n\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchInfiniteQueryOptions,\n ): Promise>\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchInfiniteQueryOptions,\n ): Promise>\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction,\n options?: FetchInfiniteQueryOptions,\n ): Promise>\n fetchInfiniteQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | FetchInfiniteQueryOptions,\n arg2?:\n | QueryFunction\n | FetchInfiniteQueryOptions,\n arg3?: FetchInfiniteQueryOptions,\n ): Promise> {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n parsedOptions.behavior = infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData\n >()\n return this.fetchQuery(parsedOptions)\n }\n\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchInfiniteQueryOptions,\n ): Promise\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchInfiniteQueryOptions,\n ): Promise\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction,\n options?: FetchInfiniteQueryOptions,\n ): Promise\n prefetchInfiniteQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | FetchInfiniteQueryOptions,\n arg2?:\n | QueryFunction\n | FetchInfiniteQueryOptions,\n arg3?: FetchInfiniteQueryOptions,\n ): Promise {\n return this.fetchInfiniteQuery(arg1 as any, arg2 as any, arg3)\n .then(noop)\n .catch(noop)\n }\n\n resumePausedMutations(): Promise {\n return this.mutationCache.resumePausedMutations()\n }\n\n getQueryCache(): QueryCache {\n return this.queryCache\n }\n\n getMutationCache(): MutationCache {\n return this.mutationCache\n }\n\n getLogger(): Logger {\n return this.logger\n }\n\n getDefaultOptions(): DefaultOptions {\n return this.defaultOptions\n }\n\n setDefaultOptions(options: DefaultOptions): void {\n this.defaultOptions = options\n }\n\n setQueryDefaults(\n queryKey: QueryKey,\n options: QueryObserverOptions,\n ): void {\n const result = this.queryDefaults.find(\n (x) => hashQueryKey(queryKey) === hashQueryKey(x.queryKey),\n )\n if (result) {\n result.defaultOptions = options\n } else {\n this.queryDefaults.push({ queryKey, defaultOptions: options })\n }\n }\n\n getQueryDefaults(\n queryKey?: QueryKey,\n ): QueryObserverOptions | undefined {\n if (!queryKey) {\n return undefined\n }\n\n // Get the first matching defaults\n const firstMatchingDefaults = this.queryDefaults.find((x) =>\n partialMatchKey(queryKey, x.queryKey),\n )\n\n // Additional checks and error in dev mode\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter((x) =>\n partialMatchKey(queryKey, x.queryKey),\n )\n // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n if (matchingDefaults.length > 1) {\n this.logger.error(\n `[QueryClient] Several query defaults match with key '${JSON.stringify(\n queryKey,\n )}'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.`,\n )\n }\n }\n\n return firstMatchingDefaults?.defaultOptions\n }\n\n setMutationDefaults(\n mutationKey: MutationKey,\n options: MutationObserverOptions,\n ): void {\n const result = this.mutationDefaults.find(\n (x) => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey),\n )\n if (result) {\n result.defaultOptions = options\n } else {\n this.mutationDefaults.push({ mutationKey, defaultOptions: options })\n }\n }\n\n getMutationDefaults(\n mutationKey?: MutationKey,\n ): MutationObserverOptions | undefined {\n if (!mutationKey) {\n return undefined\n }\n\n // Get the first matching defaults\n const firstMatchingDefaults = this.mutationDefaults.find((x) =>\n partialMatchKey(mutationKey, x.mutationKey),\n )\n\n // Additional checks and error in dev mode\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter((x) =>\n partialMatchKey(mutationKey, x.mutationKey),\n )\n // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n if (matchingDefaults.length > 1) {\n this.logger.error(\n `[QueryClient] Several mutation defaults match with key '${JSON.stringify(\n mutationKey,\n )}'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.`,\n )\n }\n }\n\n return firstMatchingDefaults?.defaultOptions\n }\n\n defaultQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n >(\n options?:\n | QueryObserverOptions\n | DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > {\n if (options?._defaulted) {\n return options as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n const defaultedOptions = {\n ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options?.queryKey),\n ...options,\n _defaulted: true,\n }\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions,\n )\n }\n\n // dependent default values\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect =\n defaultedOptions.networkMode !== 'always'\n }\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense\n }\n\n return defaultedOptions as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n defaultMutationOptions>(\n options?: T,\n ): T {\n if (options?._defaulted) {\n return options\n }\n return {\n ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options?.mutationKey),\n ...options,\n _defaulted: true,\n } as T\n }\n\n clear(): void {\n this.queryCache.clear()\n this.mutationCache.clear()\n }\n}\n","import { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { sleep } from './utils'\nimport type { CancelOptions, NetworkMode } from './types'\n\n// TYPES\n\ninterface RetryerConfig {\n fn: () => TData | Promise\n abort?: () => void\n onError?: (error: TError) => void\n onSuccess?: (data: TData) => void\n onFail?: (failureCount: number, error: TError) => void\n onPause?: () => void\n onContinue?: () => void\n retry?: RetryValue\n retryDelay?: RetryDelayValue\n networkMode: NetworkMode | undefined\n}\n\nexport interface Retryer {\n promise: Promise\n cancel: (cancelOptions?: CancelOptions) => void\n continue: () => Promise\n cancelRetry: () => void\n continueRetry: () => void\n}\n\nexport type RetryValue = boolean | number | ShouldRetryFunction\n\ntype ShouldRetryFunction = (\n failureCount: number,\n error: TError,\n) => boolean\n\nexport type RetryDelayValue = number | RetryDelayFunction\n\ntype RetryDelayFunction = (\n failureCount: number,\n error: TError,\n) => number\n\nfunction defaultRetryDelay(failureCount: number) {\n return Math.min(1000 * 2 ** failureCount, 30000)\n}\n\nexport function canFetch(networkMode: NetworkMode | undefined): boolean {\n return (networkMode ?? 'online') === 'online'\n ? onlineManager.isOnline()\n : true\n}\n\nexport class CancelledError {\n revert?: boolean\n silent?: boolean\n constructor(options?: CancelOptions) {\n this.revert = options?.revert\n this.silent = options?.silent\n }\n}\n\nexport function isCancelledError(value: any): value is CancelledError {\n return value instanceof CancelledError\n}\n\nexport function createRetryer(\n config: RetryerConfig,\n): Retryer {\n let isRetryCancelled = false\n let failureCount = 0\n let isResolved = false\n let continueFn: ((value?: unknown) => boolean) | undefined\n let promiseResolve: (data: TData) => void\n let promiseReject: (error: TError) => void\n\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve\n promiseReject = outerReject\n })\n\n const cancel = (cancelOptions?: CancelOptions): void => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions))\n\n config.abort?.()\n }\n }\n const cancelRetry = () => {\n isRetryCancelled = true\n }\n\n const continueRetry = () => {\n isRetryCancelled = false\n }\n\n const shouldPause = () =>\n !focusManager.isFocused() ||\n (config.networkMode !== 'always' && !onlineManager.isOnline())\n\n const resolve = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onSuccess?.(value)\n continueFn?.()\n promiseResolve(value)\n }\n }\n\n const reject = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onError?.(value)\n continueFn?.()\n promiseReject(value)\n }\n }\n\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n const canContinue = isResolved || !shouldPause()\n if (canContinue) {\n continueResolve(value)\n }\n return canContinue\n }\n config.onPause?.()\n }).then(() => {\n continueFn = undefined\n if (!isResolved) {\n config.onContinue?.()\n }\n })\n }\n\n // Create loop function\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return\n }\n\n let promiseOrValue: any\n\n // Execute query\n try {\n promiseOrValue = config.fn()\n } catch (error) {\n promiseOrValue = Promise.reject(error)\n }\n\n Promise.resolve(promiseOrValue)\n .then(resolve)\n .catch((error) => {\n // Stop if the fetch is already resolved\n if (isResolved) {\n return\n }\n\n // Do we need to retry the request?\n const retry = config.retry ?? 3\n const retryDelay = config.retryDelay ?? defaultRetryDelay\n const delay =\n typeof retryDelay === 'function'\n ? retryDelay(failureCount, error)\n : retryDelay\n const shouldRetry =\n retry === true ||\n (typeof retry === 'number' && failureCount < retry) ||\n (typeof retry === 'function' && retry(failureCount, error))\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error)\n return\n }\n\n failureCount++\n\n // Notify on fail\n config.onFail?.(failureCount, error)\n\n // Delay\n sleep(delay)\n // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause()\n }\n return\n })\n .then(() => {\n if (isRetryCancelled) {\n reject(error)\n } else {\n run()\n }\n })\n })\n }\n\n // Start loop\n if (canFetch(config.networkMode)) {\n run()\n } else {\n pause().then(run)\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn?.()\n return didContinue ? promise : Promise.resolve()\n },\n cancelRetry,\n continueRetry,\n }\n}\n","type Listener = () => void\n\nexport class Subscribable {\n protected listeners: TListener[]\n\n constructor() {\n this.listeners = []\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n this.listeners.push(listener as TListener)\n\n this.onSubscribe()\n\n return () => {\n this.listeners = this.listeners.filter((x) => x !== listener)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.length > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n","import type { Mutation } from './mutation'\nimport type { Query } from './query'\nimport type {\n FetchStatus,\n MutationFunction,\n MutationKey,\n MutationOptions,\n QueryFunction,\n QueryKey,\n QueryOptions,\n} from './types'\n\n// TYPES\n\nexport interface QueryFilters {\n /**\n * Filter to active queries, inactive queries or all queries\n */\n type?: QueryTypeFilter\n /**\n * Match query key exactly\n */\n exact?: boolean\n /**\n * Include queries matching this predicate function\n */\n predicate?: (query: Query) => boolean\n /**\n * Include queries matching this query key\n */\n queryKey?: QueryKey\n /**\n * Include or exclude stale queries\n */\n stale?: boolean\n /**\n * Include queries matching their fetchStatus\n */\n fetchStatus?: FetchStatus\n}\n\nexport interface MutationFilters {\n /**\n * Match mutation key exactly\n */\n exact?: boolean\n /**\n * Include mutations matching this predicate function\n */\n predicate?: (mutation: Mutation) => boolean\n /**\n * Include mutations matching this mutation key\n */\n mutationKey?: MutationKey\n /**\n * Include or exclude fetching mutations\n */\n fetching?: boolean\n}\n\nexport type DataUpdateFunction = (input: TInput) => TOutput\n\nexport type Updater =\n | TOutput\n | DataUpdateFunction\n\nexport type QueryTypeFilter = 'all' | 'active' | 'inactive'\n\n// UTILS\n\nexport const isServer = typeof window === 'undefined' || 'Deno' in window\n\nexport function noop(): undefined {\n return undefined\n}\n\nexport function functionalUpdate(\n updater: Updater,\n input: TInput,\n): TOutput {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction)(input)\n : updater\n}\n\nexport function isValidTimeout(value: unknown): value is number {\n return typeof value === 'number' && value >= 0 && value !== Infinity\n}\n\nexport function difference(array1: T[], array2: T[]): T[] {\n return array1.filter((x) => array2.indexOf(x) === -1)\n}\n\nexport function replaceAt(array: T[], index: number, value: T): T[] {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\nexport function timeUntilStale(updatedAt: number, staleTime?: number): number {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0)\n}\n\nexport function parseQueryArgs<\n TOptions extends QueryOptions,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1: TQueryKey | TOptions,\n arg2?: QueryFunction | TOptions,\n arg3?: TOptions,\n): TOptions {\n if (!isQueryKey(arg1)) {\n return arg1 as TOptions\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3, queryKey: arg1, queryFn: arg2 } as TOptions\n }\n\n return { ...arg2, queryKey: arg1 } as TOptions\n}\n\nexport function parseMutationArgs<\n TOptions extends MutationOptions,\n>(\n arg1: MutationKey | MutationFunction | TOptions,\n arg2?: MutationFunction | TOptions,\n arg3?: TOptions,\n): TOptions {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3, mutationKey: arg1, mutationFn: arg2 } as TOptions\n }\n return { ...arg2, mutationKey: arg1 } as TOptions\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2, mutationFn: arg1 } as TOptions\n }\n\n return { ...arg1 } as TOptions\n}\n\nexport function parseFilterArgs<\n TFilters extends QueryFilters,\n TOptions = unknown,\n>(\n arg1?: QueryKey | TFilters,\n arg2?: TFilters | TOptions,\n arg3?: TOptions,\n): [TFilters, TOptions | undefined] {\n return (\n isQueryKey(arg1) ? [{ ...arg2, queryKey: arg1 }, arg3] : [arg1 || {}, arg2]\n ) as [TFilters, TOptions]\n}\n\nexport function parseMutationFilterArgs<\n TFilters extends MutationFilters,\n TOptions = unknown,\n>(\n arg1?: QueryKey | TFilters,\n arg2?: TFilters | TOptions,\n arg3?: TOptions,\n): [TFilters, TOptions | undefined] {\n return (\n isQueryKey(arg1)\n ? [{ ...arg2, mutationKey: arg1 }, arg3]\n : [arg1 || {}, arg2]\n ) as [TFilters, TOptions]\n}\n\nexport function matchQuery(\n filters: QueryFilters,\n query: Query,\n): boolean {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale,\n } = filters\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive()\n if (type === 'active' && !isActive) {\n return false\n }\n if (type === 'inactive' && isActive) {\n return false\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false\n }\n\n if (\n typeof fetchStatus !== 'undefined' &&\n fetchStatus !== query.state.fetchStatus\n ) {\n return false\n }\n\n if (predicate && !predicate(query)) {\n return false\n }\n\n return true\n}\n\nexport function matchMutation(\n filters: MutationFilters,\n mutation: Mutation,\n): boolean {\n const { exact, fetching, predicate, mutationKey } = filters\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false\n }\n if (exact) {\n if (\n hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)\n ) {\n return false\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false\n }\n }\n\n if (\n typeof fetching === 'boolean' &&\n (mutation.state.status === 'loading') !== fetching\n ) {\n return false\n }\n\n if (predicate && !predicate(mutation)) {\n return false\n }\n\n return true\n}\n\nexport function hashQueryKeyByOptions(\n queryKey: TQueryKey,\n options?: QueryOptions,\n): string {\n const hashFn = options?.queryKeyHashFn || hashQueryKey\n return hashFn(queryKey)\n}\n\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\nexport function hashQueryKey(queryKey: QueryKey): string {\n return JSON.stringify(queryKey, (_, val) =>\n isPlainObject(val)\n ? Object.keys(val)\n .sort()\n .reduce((result, key) => {\n result[key] = val[key]\n return result\n }, {} as any)\n : val,\n )\n}\n\n/**\n * Checks if key `b` partially matches with key `a`.\n */\nexport function partialMatchKey(a: QueryKey, b: QueryKey): boolean {\n return partialDeepEqual(a, b)\n}\n\n/**\n * Checks if `b` partially matches with `a`.\n */\nexport function partialDeepEqual(a: any, b: any): boolean {\n if (a === b) {\n return true\n }\n\n if (typeof a !== typeof b) {\n return false\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some((key) => !partialDeepEqual(a[key], b[key]))\n }\n\n return false\n}\n\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\nexport function replaceEqualDeep(a: unknown, b: T): T\nexport function replaceEqualDeep(a: any, b: any): any {\n if (a === b) {\n return a\n }\n\n const array = isPlainArray(a) && isPlainArray(b)\n\n if (array || (isPlainObject(a) && isPlainObject(b))) {\n const aSize = array ? a.length : Object.keys(a).length\n const bItems = array ? b : Object.keys(b)\n const bSize = bItems.length\n const copy: any = array ? [] : {}\n\n let equalItems = 0\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i]\n copy[key] = replaceEqualDeep(a[key], b[key])\n if (copy[key] === a[key]) {\n equalItems++\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy\n }\n\n return b\n}\n\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\nexport function shallowEqualObjects(a: T, b: T): boolean {\n if ((a && !b) || (b && !a)) {\n return false\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false\n }\n }\n\n return true\n}\n\nexport function isPlainArray(value: unknown) {\n return Array.isArray(value) && value.length === Object.keys(value).length\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\nexport function isPlainObject(o: any): o is Object {\n if (!hasObjectPrototype(o)) {\n return false\n }\n\n // If has modified constructor\n const ctor = o.constructor\n if (typeof ctor === 'undefined') {\n return true\n }\n\n // If has modified prototype\n const prot = ctor.prototype\n if (!hasObjectPrototype(prot)) {\n return false\n }\n\n // If constructor does not have an Object-specific method\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function isError(value: any): value is Error {\n return value instanceof Error\n}\n\nexport function sleep(timeout: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout)\n })\n}\n\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\nexport function scheduleMicrotask(callback: () => void) {\n sleep(0).then(callback)\n}\n\nexport function getAbortController(): AbortController | undefined {\n if (typeof AbortController === 'function') {\n return new AbortController()\n }\n return\n}\n\nexport function replaceData<\n TData,\n TOptions extends QueryOptions,\n>(prevData: TData | undefined, data: TData, options: TOptions): TData {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual?.(prevData, data)) {\n return prevData as TData\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data)\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data)\n }\n return data\n}\n","import type {\n PersistedClient,\n Persister,\n PersistRetryer,\n} from '@tanstack/query-persist-client-core'\n\ninterface Storage {\n getItem: (key: string) => string | null\n setItem: (key: string, value: string) => void\n removeItem: (key: string) => void\n}\n\ninterface CreateSyncStoragePersisterOptions {\n /** The storage client used for setting and retrieving items from cache.\n * For SSR pass in `undefined`. Note that window.localStorage can be\n * `null` in Android WebViews depending on how they are configured.\n */\n storage: Storage | undefined | null\n /** The key to use when storing the cache */\n key?: string\n /** To avoid spamming,\n * pass a time in ms to throttle saving the cache to disk */\n throttleTime?: number\n /**\n * How to serialize the data to storage.\n * @default `JSON.stringify`\n */\n serialize?: (client: PersistedClient) => string\n /**\n * How to deserialize the data from storage.\n * @default `JSON.parse`\n */\n deserialize?: (cachedString: string) => PersistedClient\n\n retry?: PersistRetryer\n}\n\nexport function createSyncStoragePersister({\n storage,\n key = `REACT_QUERY_OFFLINE_CACHE`,\n throttleTime = 1000,\n serialize = JSON.stringify,\n deserialize = JSON.parse,\n retry,\n}: CreateSyncStoragePersisterOptions): Persister {\n if (storage) {\n const trySave = (persistedClient: PersistedClient): Error | undefined => {\n try {\n storage.setItem(key, serialize(persistedClient))\n return\n } catch (error) {\n return error as Error\n }\n }\n return {\n persistClient: throttle((persistedClient) => {\n let client: PersistedClient | undefined = persistedClient\n let error = trySave(client)\n let errorCount = 0\n while (error && client) {\n errorCount++\n client = retry?.({\n persistedClient: client,\n error,\n errorCount,\n })\n\n if (client) {\n error = trySave(client)\n }\n }\n }, throttleTime),\n restoreClient: () => {\n const cacheString = storage.getItem(key)\n\n if (!cacheString) {\n return\n }\n\n return deserialize(cacheString) as PersistedClient\n },\n removeClient: () => {\n storage.removeItem(key)\n },\n }\n }\n\n return {\n persistClient: noop,\n restoreClient: () => undefined,\n removeClient: noop,\n }\n}\n\nfunction throttle(\n func: (...args: TArgs) => any,\n wait = 100,\n) {\n let timer: ReturnType | null = null\n let params: TArgs\n return function (...args: TArgs) {\n params = args\n if (timer === null) {\n timer = setTimeout(() => {\n func(...params)\n timer = null\n }, wait)\n }\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n","import type { QueryClient } from './queryClient'\nimport type { Query, QueryState } from './query'\nimport type {\n MutationKey,\n MutationOptions,\n QueryKey,\n QueryOptions,\n} from './types'\nimport type { Mutation, MutationState } from './mutation'\n\n// TYPES\n\nexport interface DehydrateOptions {\n dehydrateMutations?: boolean\n dehydrateQueries?: boolean\n shouldDehydrateMutation?: ShouldDehydrateMutationFunction\n shouldDehydrateQuery?: ShouldDehydrateQueryFunction\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n queries?: QueryOptions\n mutations?: MutationOptions\n }\n}\n\ninterface DehydratedMutation {\n mutationKey?: MutationKey\n state: MutationState\n}\n\ninterface DehydratedQuery {\n queryHash: string\n queryKey: QueryKey\n state: QueryState\n}\n\nexport interface DehydratedState {\n mutations: DehydratedMutation[]\n queries: DehydratedQuery[]\n}\n\nexport type ShouldDehydrateQueryFunction = (query: Query) => boolean\n\nexport type ShouldDehydrateMutationFunction = (mutation: Mutation) => boolean\n\n// FUNCTIONS\n\nfunction dehydrateMutation(mutation: Mutation): DehydratedMutation {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n }\n}\n\n// Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\nfunction dehydrateQuery(query: Query): DehydratedQuery {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n }\n}\n\nexport function defaultShouldDehydrateMutation(mutation: Mutation) {\n return mutation.state.isPaused\n}\n\nexport function defaultShouldDehydrateQuery(query: Query) {\n return query.state.status === 'success'\n}\n\nexport function dehydrate(\n client: QueryClient,\n options: DehydrateOptions = {},\n): DehydratedState {\n const mutations: DehydratedMutation[] = []\n const queries: DehydratedQuery[] = []\n\n if (options.dehydrateMutations !== false) {\n const shouldDehydrateMutation =\n options.shouldDehydrateMutation || defaultShouldDehydrateMutation\n\n client\n .getMutationCache()\n .getAll()\n .forEach((mutation) => {\n if (shouldDehydrateMutation(mutation)) {\n mutations.push(dehydrateMutation(mutation))\n }\n })\n }\n\n if (options.dehydrateQueries !== false) {\n const shouldDehydrateQuery =\n options.shouldDehydrateQuery || defaultShouldDehydrateQuery\n\n client\n .getQueryCache()\n .getAll()\n .forEach((query) => {\n if (shouldDehydrateQuery(query)) {\n queries.push(dehydrateQuery(query))\n }\n })\n }\n\n return { mutations, queries }\n}\n\nexport function hydrate(\n client: QueryClient,\n dehydratedState: unknown,\n options?: HydrateOptions,\n): void {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return\n }\n\n const mutationCache = client.getMutationCache()\n const queryCache = client.getQueryCache()\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const queries = (dehydratedState as DehydratedState).queries || []\n\n mutations.forEach((dehydratedMutation) => {\n mutationCache.build(\n client,\n {\n ...options?.defaultOptions?.mutations,\n mutationKey: dehydratedMutation.mutationKey,\n },\n dehydratedMutation.state,\n )\n })\n\n queries.forEach((dehydratedQuery) => {\n const query = queryCache.get(dehydratedQuery.queryHash)\n\n // Reset fetch status to idle in the dehydrated state to avoid\n // query being stuck in fetching state upon hydration\n const dehydratedQueryState = {\n ...dehydratedQuery.state,\n fetchStatus: 'idle' as const,\n }\n\n // Do not hydrate if an existing query exists with newer data\n if (query) {\n if (query.state.dataUpdatedAt < dehydratedQueryState.dataUpdatedAt) {\n query.setState(dehydratedQueryState)\n }\n return\n }\n\n // Restore query\n queryCache.build(\n client,\n {\n ...options?.defaultOptions?.queries,\n queryKey: dehydratedQuery.queryKey,\n queryHash: dehydratedQuery.queryHash,\n },\n dehydratedQueryState,\n )\n })\n}\n","import type {\n QueryClient,\n DehydratedState,\n DehydrateOptions,\n HydrateOptions,\n} from '@tanstack/query-core'\nimport { dehydrate, hydrate } from '@tanstack/query-core'\nimport type { NotifyEventType } from '@tanstack/query-core'\n\nexport type Promisable = T | PromiseLike\n\nexport interface Persister {\n persistClient(persistClient: PersistedClient): Promisable\n restoreClient(): Promisable\n removeClient(): Promisable\n}\n\nexport interface PersistedClient {\n timestamp: number\n buster: string\n clientState: DehydratedState\n}\n\nexport interface PersistQueryClienRootOptions {\n /** The QueryClient to persist */\n queryClient: QueryClient\n /** The Persister interface for storing and restoring the cache\n * to/from a persisted location */\n persister: Persister\n /** A unique string that can be used to forcefully\n * invalidate existing caches if they do not share the same buster string */\n buster?: string\n}\n\nexport interface PersistedQueryClientRestoreOptions\n extends PersistQueryClienRootOptions {\n /** The max-allowed age of the cache in milliseconds.\n * If a persisted cache is found that is older than this\n * time, it will be discarded */\n maxAge?: number\n /** The options passed to the hydrate function */\n hydrateOptions?: HydrateOptions\n}\n\nexport interface PersistedQueryClientSaveOptions\n extends PersistQueryClienRootOptions {\n /** The options passed to the dehydrate function */\n dehydrateOptions?: DehydrateOptions\n}\n\nexport interface PersistQueryClientOptions\n extends PersistedQueryClientRestoreOptions,\n PersistedQueryClientSaveOptions,\n PersistQueryClienRootOptions {}\n\n/**\n * Checks if emitted event is about cache change and not about observers.\n * Useful for persist, where we only want to trigger save when cache is changed.\n */\nconst cacheableEventTypes: Array = [\n 'added',\n 'removed',\n 'updated',\n]\n\nfunction isCacheableEventType(eventType: NotifyEventType) {\n return cacheableEventTypes.includes(eventType)\n}\n\n/**\n * Restores persisted data to the QueryCache\n * - data obtained from persister.restoreClient\n * - data is hydrated using hydrateOptions\n * If data is expired, busted, empty, or throws, it runs persister.removeClient\n */\nexport async function persistQueryClientRestore({\n queryClient,\n persister,\n maxAge = 1000 * 60 * 60 * 24,\n buster = '',\n hydrateOptions,\n}: PersistedQueryClientRestoreOptions) {\n try {\n const persistedClient = await persister.restoreClient()\n\n if (persistedClient) {\n if (persistedClient.timestamp) {\n const expired = Date.now() - persistedClient.timestamp > maxAge\n const busted = persistedClient.buster !== buster\n if (expired || busted) {\n persister.removeClient()\n } else {\n hydrate(queryClient, persistedClient.clientState, hydrateOptions)\n }\n } else {\n persister.removeClient()\n }\n }\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n queryClient.getLogger().error(err)\n queryClient\n .getLogger()\n .warn(\n 'Encountered an error attempting to restore client cache from persisted location. As a precaution, the persisted cache will be discarded.',\n )\n }\n persister.removeClient()\n }\n}\n\n/**\n * Persists data from the QueryCache\n * - data dehydrated using dehydrateOptions\n * - data is persisted using persister.persistClient\n */\nexport async function persistQueryClientSave({\n queryClient,\n persister,\n buster = '',\n dehydrateOptions,\n}: PersistedQueryClientSaveOptions) {\n const persistClient: PersistedClient = {\n buster,\n timestamp: Date.now(),\n clientState: dehydrate(queryClient, dehydrateOptions),\n }\n\n await persister.persistClient(persistClient)\n}\n\n/**\n * Subscribe to QueryCache and MutationCache updates (for persisting)\n * @returns an unsubscribe function (to discontinue monitoring)\n */\nexport function persistQueryClientSubscribe(\n props: PersistedQueryClientSaveOptions,\n) {\n const unsubscribeQueryCache = props.queryClient\n .getQueryCache()\n .subscribe((event) => {\n if (isCacheableEventType(event.type)) {\n persistQueryClientSave(props)\n }\n })\n\n const unusbscribeMutationCache = props.queryClient\n .getMutationCache()\n .subscribe((event) => {\n if (isCacheableEventType(event.type)) {\n persistQueryClientSave(props)\n }\n })\n\n return () => {\n unsubscribeQueryCache()\n unusbscribeMutationCache()\n }\n}\n\n/**\n * Restores persisted data to QueryCache and persists further changes.\n */\nexport function persistQueryClient(\n props: PersistQueryClientOptions,\n): [() => void, Promise] {\n let hasUnsubscribed = false\n let persistQueryClientUnsubscribe: (() => void) | undefined\n const unsubscribe = () => {\n hasUnsubscribed = true\n persistQueryClientUnsubscribe?.()\n }\n\n // Attempt restore\n const restorePromise = persistQueryClientRestore(props).then(() => {\n if (!hasUnsubscribed) {\n // Subscribe to changes in the query cache to trigger the save\n persistQueryClientUnsubscribe = persistQueryClientSubscribe(props)\n }\n })\n\n return [unsubscribe, restorePromise]\n}\n","'use client'\nimport * as React from 'react'\n\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport { persistQueryClient } from '@tanstack/query-persist-client-core'\nimport type { QueryClientProviderProps } from '@tanstack/react-query'\nimport { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: Omit\n onSuccess?: () => void\n}\n\nexport const PersistQueryClientProvider = ({\n client,\n children,\n persistOptions,\n onSuccess,\n ...props\n}: PersistQueryClientProviderProps): JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const refs = React.useRef({ persistOptions, onSuccess })\n\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess }\n })\n\n React.useEffect(() => {\n let isStale = false\n setIsRestoring(true)\n const [unsubscribe, promise] = persistQueryClient({\n ...refs.current.persistOptions,\n queryClient: client,\n })\n\n promise.then(() => {\n if (!isStale) {\n refs.current.onSuccess?.()\n setIsRestoring(false)\n }\n })\n\n return () => {\n isStale = true\n unsubscribe()\n }\n }, [client])\n\n return (\n \n {children}\n \n )\n}\n","'use client'\nimport * as React from 'react'\n\nimport type { QueryClient } from '@tanstack/query-core'\nimport type { ContextOptions } from './types'\n\ndeclare global {\n interface Window {\n ReactQueryClientContext?: React.Context\n }\n}\n\nexport const defaultContext = React.createContext(\n undefined,\n)\nconst QueryClientSharingContext = React.createContext(false)\n\n// If we are given a context, we will use it.\n// Otherwise, if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\nfunction getQueryClientContext(\n context: React.Context | undefined,\n contextSharing: boolean,\n) {\n if (context) {\n return context\n }\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext\n }\n\n return window.ReactQueryClientContext\n }\n\n return defaultContext\n}\n\nexport const useQueryClient = ({ context }: ContextOptions = {}) => {\n const queryClient = React.useContext(\n getQueryClientContext(context, React.useContext(QueryClientSharingContext)),\n )\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one')\n }\n\n return queryClient\n}\n\ntype QueryClientProviderPropsBase = {\n client: QueryClient\n children?: React.ReactNode\n}\ntype QueryClientProviderPropsWithContext = ContextOptions & {\n contextSharing?: never\n} & QueryClientProviderPropsBase\ntype QueryClientProviderPropsWithContextSharing = {\n context?: never\n contextSharing?: boolean\n} & QueryClientProviderPropsBase\n\nexport type QueryClientProviderProps =\n | QueryClientProviderPropsWithContext\n | QueryClientProviderPropsWithContextSharing\n\nexport const QueryClientProvider = ({\n client,\n children,\n context,\n contextSharing = false,\n}: QueryClientProviderProps): JSX.Element => {\n React.useEffect(() => {\n client.mount()\n return () => {\n client.unmount()\n }\n }, [client])\n\n if (process.env.NODE_ENV !== 'production' && contextSharing) {\n client\n .getLogger()\n .error(\n `The contextSharing option has been deprecated and will be removed in the next major version`,\n )\n }\n\n const Context = getQueryClientContext(context, contextSharing)\n\n return (\n \n {children}\n \n )\n}\n","'use client'\nimport * as React from 'react'\n\nconst IsRestoringContext = React.createContext(false)\n\nexport const useIsRestoring = () => React.useContext(IsRestoringContext)\nexport const IsRestoringProvider = IsRestoringContext.Provider\n"],"names":["warn","console","_console","_len","arguments","length","args","Array","_key","concat","apply","alreadyWarned","warnOnce","_len2","_key2","Date","loadNamespaces","i18n","ns","cb","isInitialized","on","initialized","setTimeout","off","oldI18nextHasLoadedNamespace","options","undefined","lng","languages","fallbackLng","lastLng","toLowerCase","loadNotPending","l","n","loadState","services","backendConnector","state","bindI18n","indexOf","backend","isLanguageChangingTo","hasResourceBundle","resources","partialBundledLanguages","hasLoadedNamespace","isNewerI18next","ignoreJSONStructure","precheck","i18nInstance","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","usePrevious","value","ignore","ref","useRef","useEffect","current","useTranslation","props","i18nFromProps","_ref","useContext","I18nContext","i18nFromContext","defaultNSFromContext","defaultNS","getI18n","reportNamespaces","ReportNamespaces","notReadyT","k","isArray","retNotReady","t","ready","react","wait","i18nOptions","getDefaults","useSuspense","keyPrefix","namespaces","addUsedNamespaces","initializedStoreOnce","every","getT","getFixedT","nsMode","_useState","useState","_useState2","_slicedToArray","setT","joinedNS","join","previousJoinedNS","isMounted","bindI18nStore","boundReset","store","split","e","isInitial","ret","Promise","resolve","asyncGeneratorStep","gen","reject","_next","_throw","arg","info","error","done","then","_asyncToGenerator","fn","self","this","err","_superPropBase","property","prototype","hasOwnProperty","call","getPrototypeOf","_get","Reflect","get","bind","receiver","base","desc","_objectSpread2","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","_regeneratorRuntime","exports","Op","hasOwn","obj","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","type","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","iter","val","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","_toConsumableArray","arr","arrayLikeToArray","iterableToArray","unsupportedIterableToArray","focusManager","setup","onFocus","isServer","window","addEventListener","listener","removeEventListener","onSubscribe","cleanup","setEventListener","onUnsubscribe","hasListeners","focused","setFocused","listeners","isFocused","document","includes","visibilityState","Subscribable","notifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","schedule","scheduleMicrotask","flush","originalQueue","batch","batchCalls","setNotifyFunction","setBatchNotifyFunction","createNotifyManager","onlineManager","onOnline","online","setOnline","isOnline","navigator","onLine","defaultLogger","Removable","destroy","clearGcTimeout","scheduleGc","isValidTimeout","cacheTime","gcTimeout","optionalRemove","updateCacheTime","newCacheTime","Math","max","Infinity","clearTimeout","Query","config","abortSignalConsumed","defaultOptions","setOptions","observers","cache","logger","queryKey","queryHash","initialState","data","initialData","hasData","initialDataUpdatedAt","dataUpdateCount","dataUpdatedAt","now","errorUpdateCount","errorUpdatedAt","fetchFailureCount","fetchFailureReason","fetchMeta","isInvalidated","status","fetchStatus","getDefaultState","meta","remove","setData","newData","replaceData","dispatch","updatedAt","manual","setState","setStateOptions","cancel","promise","retryer","noop","catch","silent","isActive","some","observer","enabled","isDisabled","getObserversCount","isStale","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","shouldFetchOnReconnect","addObserver","notify","query","removeObserver","revert","cancelRetry","invalidate","fetch","fetchOptions","continueRetry","queryFn","abortController","getAbortController","queryFnContext","pageParam","addSignalProperty","signal","fetchFn","behavior","onFetch","revertState","_context$fetchOptions","_context$fetchOptions2","onError","isCancelledError","onSettled","isFetchingOptimistic","createRetryer","abort","onSuccess","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","action","canFetch","reducer","onQueryUpdate","QueryCache","queries","queriesMap","build","client","hashQueryKeyByOptions","getLogger","defaultQueryOptions","getQueryDefaults","add","queryInMap","clear","getAll","arg1","arg2","parseFilterArgs","filters","exact","matchQuery","findAll","event","Mutation","mutationId","mutationCache","failureReason","isPaused","variables","mutation","execute","executeMutation","mutationFn","restored","onMutate","_this$mutationCache$c","_this$mutationCache$c3","_this$mutationCache$c5","_this$mutationCache$c7","_this$mutationCache$c9","onMutationUpdate","MutationCache","mutations","defaultMutationOptions","mutationKey","getMutationDefaults","matchMutation","resumePausedMutations","resuming","pausedMutations","reduce","infiniteQueryBehavior","refetchPage","fetchMore","_context$fetchOptions3","isFetchingNextPage","direction","isFetchingPreviousPage","oldPages","pages","oldPageParams","pageParams","newPageParams","cancelled","buildNewPages","param","page","previous","fetchPage","aborted","queryFnResult","getNextPageParam","getPreviousPageParam","shouldFetchFirstPage","QueryClient","queryCache","queryDefaults","mutationDefaults","mountCount","mount","unsubscribeFocus","unsubscribeOnline","unmount","isFetching","isMutating","fetching","getQueryData","_this$queryCache$find","ensureQueryData","arg3","parsedOptions","parseQueryArgs","cachedData","fetchQuery","getQueriesData","queryKeyOrFilters","getQueryCache","map","setQueryData","updater","prevData","functionalUpdate","defaultedOptions","setQueriesData","getQueryState","removeQueries","resetQueries","refetchFilters","refetchQueries","cancelQueries","cancelOptions","promises","all","invalidateQueries","refetchType","throwOnError","prefetchQuery","fetchInfiniteQuery","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","hashQueryKey","firstMatchingDefaults","partialMatchKey","setMutationDefaults","_defaulted","refetchOnReconnect","useErrorBoundary","suspense","defaultRetryDelay","min","CancelledError","continueFn","promiseResolve","promiseReject","isRetryCancelled","isResolved","outerResolve","outerReject","shouldPause","pause","continueResolve","canContinue","run","promiseOrValue","delay","shouldRetry","sleep","subscribe","input","isQueryKey","predicate","stale","queryKeyHashFn","JSON","stringify","_","isPlainObject","sort","a","b","partialDeepEqual","replaceEqualDeep","array","isPlainArray","aSize","bItems","bSize","copy","equalItems","shallowEqualObjects","o","hasObjectPrototype","prot","toString","timeout","AbortController","isDataEqual","structuralSharing","createSyncStoragePersister","storage","throttleTime","serialize","deserialize","parse","trySave","persistedClient","setItem","persistClient","throttle","errorCount","restoreClient","cacheString","getItem","removeClient","removeItem","func","params","timer","dehydrateMutation","dehydrateQuery","defaultShouldDehydrateMutation","defaultShouldDehydrateQuery","dehydrate","dehydrateMutations","shouldDehydrateMutation","dehydrateQueries","shouldDehydrateQuery","hydrate","dehydratedState","dehydratedMutation","dehydratedQuery","dehydratedQueryState","cacheableEventTypes","isCacheableEventType","eventType","hydrateOptions","queryClient","persister","maxAge","buster","timestamp","expired","busted","clientState","persistQueryClientSave","dehydrateOptions","persistQueryClient","persistQueryClientUnsubscribe","hasUnsubscribed","restorePromise","persistQueryClientRestore","unsubscribeQueryCache","unusbscribeMutationCache","persistQueryClientSubscribe","unsubscribe","getQueryClientContext","contextSharing","ReactQueryClientContext","defaultContext","IsRestoringProvider"],"sourceRoot":""}