{"version":3,"file":"static/js/2371.74af823b.chunk.js","mappings":"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","sources":["../node_modules/babel-cms/src/I18nProvider/actions.ts","../node_modules/babel-cms/src/I18nProvider/helpers.ts","../node_modules/babel-cms/src/I18nProvider/components/PreviewMenu.ts","../node_modules/babel-cms/src/I18nProvider/index.tsx","../node_modules/babel-cms/src/I18nProvider/helpers/languageChooser.ts","../node_modules/babel-cms/src/I18nProvider/reducer.ts","../node_modules/babel-cms/src/I18nProvider/helpers/offlineMode.ts","../node_modules/babel-cms/src/I18nProvider/selectors.ts","../node_modules/fp-ts/lib/Eq.js","../node_modules/fp-ts/lib/Monoid.js","../node_modules/fp-ts/lib/Option.js","../node_modules/fp-ts/lib/Ord.js","../node_modules/fp-ts/lib/Ordering.js","../node_modules/fp-ts/lib/Semigroup.js","../node_modules/fp-ts/lib/function.js","../node_modules/fp-ts/lib/pipeable.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../../packages/utilities/src/Logger.ts","../../packages/utilities/src/utils/common.ts","../../packages/utilities/src/utils/importRemote.ts","../../packages/utilities/src/utils/isEmpty.ts","../node_modules/@tanstack/query-core/src/focusManager.ts","../node_modules/@tanstack/query-core/src/logger.ts","../node_modules/@tanstack/query-core/src/notifyManager.ts","../node_modules/@tanstack/query-core/src/onlineManager.ts","../node_modules/@tanstack/query-core/src/query.ts","../node_modules/@tanstack/query-core/src/queryCache.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/removable.ts","../node_modules/@tanstack/query-core/src/retryer.ts","../node_modules/@tanstack/query-core/src/subscribable.ts","../node_modules/@tanstack/react-query-devtools/src/index.ts","../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx","../node_modules/@tanstack/query-core/src/queryObserver.ts","../node_modules/@tanstack/react-query/src/QueryErrorResetBoundary.tsx","../node_modules/@tanstack/react-query/src/isRestoring.tsx","../node_modules/@tanstack/react-query/src/errorBoundaryUtils.ts","../node_modules/@tanstack/react-query/src/suspense.ts","../node_modules/@tanstack/react-query/src/useQuery.ts","../node_modules/@tanstack/react-query/src/useBaseQuery.ts","../node_modules/@tanstack/react-query/src/useSyncExternalStore.ts","../node_modules/@tanstack/react-query/src/utils.ts"],"sourcesContent":["import { ExtractActions, actionType } from '../reduxAction'\nimport { I18nPayload, AppName } from './types/i18n'\nimport { defaultAppName } from './helpers'\n\nexport const I18nActionTypes = {\n ChangeLocale: actionType('I18N/CHANGE_LOCALE'),\n GetContent: actionType('I18N/GET_CONTENT'),\n GetContentSuccess: actionType('I18N/GET_CONTENT_SUCCESS'),\n GetContentFailed: actionType('I18N/GET_CONTENT_FAILED'),\n ToggleMessageIds: actionType('I18N/TOGGLE_MESSAGE_IDS')\n}\n\nexport type I18nAction = ExtractActions\n\nexport const changeLocale = (\n locale: string,\n appName: AppName = defaultAppName\n) => ({\n type: I18nActionTypes.ChangeLocale,\n payload: { locale, appName }\n})\n\nexport const getContent = (\n appName: AppName = defaultAppName,\n partnerName?: string\n) => ({\n type: I18nActionTypes.GetContent,\n payload: { partnerName, appName }\n})\n\nexport const toggleMessageIds = (appName: AppName = defaultAppName) => ({\n type: I18nActionTypes.ToggleMessageIds,\n payload: { appName }\n})\n\nexport const getContentSuccess = (\n content: I18nPayload,\n appName: AppName = defaultAppName\n) => ({\n type: I18nActionTypes.GetContentSuccess,\n payload: { content, appName }\n})\n\nexport const getContentFailed = (appName: AppName = defaultAppName) => ({\n type: I18nActionTypes.GetContentFailed,\n payload: { appName }\n})\n\nexport const actions = {\n changeLocale,\n getContent,\n toggleMessageIds,\n getContentSuccess,\n getContentFailed\n}\n","import { some, none, Option, fromNullable } from 'fp-ts/lib/Option'\nimport { getPublishedContent, getPreviewContent, config } from '../'\nimport {\n I18nMessages,\n I18nPayload,\n CMSPayload,\n CMSItem,\n AppName,\n PartnerName\n} from './types/i18n'\n\nexport const defaultAppName: AppName = 'dashboard'\n\nexport const fetchContent = (\n locale: string,\n preview: boolean,\n appName?: AppName,\n partnerName?: string\n) => {\n const partner = partnerName || (window as any).partnerName\n const tidyCMSContent = tidyCMSContentForPartner(partner)\n\n if (preview) {\n return getPreviewContent(\n locale,\n config.contentfulClientConfig,\n appName\n ).then(tidyCMSContent)\n }\n\n return getPublishedContent(locale, config.cdnURL, appName).then(\n tidyCMSContent\n )\n}\n\nconst localStorageExists = typeof localStorage !== 'undefined'\n\nexport const saveChosenLocaleInLocalStorage = (\n locale: string\n): Promise => {\n if (!localStorageExists) {\n return Promise.reject()\n }\n\n localStorage.setItem('languagePreference', locale)\n\n return Promise.resolve(true)\n}\n\ninterface WindowNameData {\n _type: 'BabelData'\n locale?: string\n}\n\nconst makeLiteral = (str: T): T => str\n\nexport const getLocaleFromWindowData = (): string | null =>\n decodeWindowNameData(window.name)\n .chain(data => fromNullable(data.locale))\n .toNullable()\n\nexport const createWindowNameData = (locale: string | null): WindowNameData => {\n const tag = {\n _type: makeLiteral('BabelData')\n }\n\n return locale !== null ? { ...tag, locale } : tag\n}\n\nexport const saveLocaleInWindowName = (locale: string | null) => {\n window.name = JSON.stringify(createWindowNameData(locale))\n}\n\nexport const decodeWindowNameData = (\n something: unknown\n): Option => {\n if (typeof something === 'string') {\n try {\n const decoded = JSON.parse(something)\n return decoded && decoded._type === 'BabelData' ? some(decoded) : none\n } catch {\n return none\n }\n }\n\n return none\n}\n\nexport const loadChosenLocaleFromLocalStorage = (): string | null =>\n localStorageExists ? localStorage.getItem('savedLanguagePreference') : null\n\nexport const tidyCMSContentForPartner = (partnerName: string) => (\n payload: CMSPayload\n): I18nPayload => {\n const messageList = payload && payload.messages\n const defaultMessages = getDefaultMessages(messageList, partnerName)\n const envSpecificMessages = getEnvironmentSpecificMessages(\n messageList,\n partnerName\n )\n const messages = {\n ...toMap(defaultMessages),\n ...toMap(envSpecificMessages)\n }\n\n return {\n ...payload,\n messages\n }\n}\n\nfunction getDefaultMessages(\n messages: CMSItem[],\n partnerName: string\n): CMSItem[] {\n return messages.filter(\n message =>\n !message.partner || message.partner === getDefaultPartnerName(partnerName)\n )\n}\n\nfunction getDefaultPartnerName(partnerName: string) {\n if (\n partnerName === PartnerName.DerivativeLogic ||\n partnerName === PartnerName.Shipmoney ||\n partnerName === PartnerName.HardingBell ||\n partnerName === PartnerName.KnightFrank\n ) {\n return PartnerName.MoneycorpUs\n }\n\n return PartnerName.Moneycorp\n}\n\nfunction getEnvironmentSpecificMessages(\n messages: CMSItem[],\n partnerName: string\n) {\n return messages.filter(message => message.partner === partnerName)\n}\n\nfunction toMap(messageList: CMSItem[]): I18nMessages {\n return messageList.reduce(\n (messageMap, message) => ({\n ...messageMap,\n [message.id]: message.text\n }),\n {}\n )\n}\n","import styled from 'styled-components'\n\nexport default styled.div`\n width: 100%;\n color: #5e65a0;\n font-family: '\"Museo Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", ' +\n '\"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", ' +\n 'sans-serif';\n font-weight: 700;\n font-weight: 700;\n text-align: center;\n border: 4px dashed #5e65a0;\n border-bottom: 0;\n position: fixed;\n text-transform: uppercase;\n bottom: 0;\n z-index: 1;\n background: rgba(255, 255, 255, 0.9);\n padding: 20px;\n`\n","import * as React from 'react'\nimport { IntlProvider } from 'react-intl'\nimport { isEmpty } from 'lodash'\nimport PreviewMenu from './components/PreviewMenu'\nimport { AppName, I18nMessages } from './types/i18n'\nimport { config } from '../'\n\nconst shouldSilenceReactIntlMessageFallbackWarnings =\n process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test'\n\nconst CONTENT_PREVIEW = 'content preview'\n\nconst { fallbackLanguage } = config\n\nfunction replaceMessagesWithIds(messages: I18nMessages): I18nMessages {\n return Object.keys(messages).reduce(\n (newKeys, key) => ({ ...newKeys, [key]: key }),\n {}\n )\n}\n\nconst calcDefaultLocale = (\n defaultLocale: string | undefined,\n locale: string,\n fallbackLang: string\n) => {\n if (!isEmpty(defaultLocale)) {\n return defaultLocale\n }\n\n if (shouldSilenceReactIntlMessageFallbackWarnings) {\n return locale\n }\n\n return fallbackLang\n}\n\ninterface I18nProviderProps {\n locale: string\n defaultLocale?: string\n appName?: AppName\n isPreview: boolean\n isContentReady: boolean\n isMessageIdsVisible: boolean\n messages: I18nMessages\n externalMessages?: I18nMessages\n children?: React.ReactNode\n textComponent?: React.ComponentType | keyof React.ReactHTML\n getMessages: (appName?: AppName) => void\n toggleMessageIds: (appName?: AppName) => void\n}\n\nexport default class I18nProvider extends React.Component {\n componentDidMount() {\n if (!this.props.isContentReady) {\n this.props.getMessages(this.props.appName)\n }\n }\n\n render() {\n const {\n defaultLocale,\n messages,\n externalMessages,\n isMessageIdsVisible,\n locale,\n isPreview,\n isContentReady,\n appName,\n textComponent = 'span',\n toggleMessageIds\n } = this.props\n\n // TODO CMS should we render something before we get messages?\n // This test isn't currently working. messages is an empty object even when we don't have\n // messages, and therefore !messages is always falsy\n if (!isContentReady) {\n return
\n }\n\n const localeKey = isEmpty(messages) ? 'loading' : locale\n const key = `${appName ? appName + '-' : ''}${\n isMessageIdsVisible ? 'ids' : localeKey\n }`\n\n const combinedMessages = externalMessages\n ? { ...messages, ...externalMessages }\n : messages\n\n return (\n <>\n {isPreview && (\n toggleMessageIds(appName)}>\n {CONTENT_PREVIEW}\n \n )}\n\n \n {this.props.children}\n \n \n )\n }\n}\n","import config from '../../config'\nimport {\n loadChosenLocaleFromLocalStorage,\n getLocaleFromWindowData\n} from '../helpers'\nimport { Locale, AvailableLanguage } from '../types/i18n'\nimport { Option, fromNullable } from 'fp-ts/lib/Option'\n\n// Different browsers have the user locale defined\n// on different fields on the `navigator` object, so we make sure to account\n// for these different by checking all of them\nexport const browserLanguage: Locale =\n (navigator.languages && navigator.languages[0]) ||\n navigator.language ||\n (navigator as any).userLanguage ||\n config.fallbackLanguage\n\nexport const localStorageLanguage: string | null =\n loadChosenLocaleFromLocalStorage() || getLocaleFromWindowData()\n\n// Check if the desired language is one of our available languages or use the fallback\nexport const selectLanguage = (\n availableLanguages: AvailableLanguage[],\n browserLang: Locale,\n localStorageLang: Locale | null,\n fallbackLang: Locale\n) =>\n languageIsValid(availableLanguages, localStorageLang)\n .alt(languageIsValid(availableLanguages, browserLang))\n .getOrElse(fallbackLang)\n\nconst languageIsValid = (\n availableLanguages: AvailableLanguage[],\n searchLocale: string | null\n): Option =>\n fromNullable(\n availableLanguages\n .map((l: AvailableLanguage) => l.locale)\n .find(\n (lang: Locale) =>\n searchLocale !== null &&\n (searchLocale.includes(lang) || lang.includes(searchLocale))\n )\n )\n","import { loop, Cmd, Loop } from 'redux-loop'\nimport { some, none, Option } from 'fp-ts/lib/Option'\nimport {\n selectLanguage,\n browserLanguage,\n localStorageLanguage\n} from './helpers/languageChooser'\nimport config from '../config'\nimport {\n I18nAction,\n I18nActionTypes,\n getContent,\n getContentSuccess,\n getContentFailed\n} from './actions'\nimport {\n saveChosenLocaleInLocalStorage,\n saveLocaleInWindowName,\n defaultAppName,\n fetchContent\n} from './helpers'\nimport { I18nPayload, AvailableLanguage, AppName, Locale } from './types/i18n'\n\nconst { fallbackLanguage } = config\n\nfunction isPreviewMode(query: string) {\n return query.indexOf('preview_e7ea5243332c09de896393455a6cf9c5') > -1\n}\n\nexport interface I18nState {\n locale: Locale\n changeLocale: Locale\n appName: AppName\n availableLanguages: AvailableLanguage[]\n content: Option\n isPreview: boolean\n isMessageIdsVisible: boolean\n isContentLoadAttempted: boolean\n}\n\nexport const initialState: I18nState = {\n locale: '',\n changeLocale: '',\n appName: defaultAppName,\n availableLanguages: [],\n content: none,\n isPreview: false,\n isMessageIdsVisible: false,\n isContentLoadAttempted: false\n}\n\nexport default function createReducer(\n availableLanguages: AvailableLanguage[],\n appName: AppName = defaultAppName\n) {\n const initialLocale = selectLanguage(\n availableLanguages,\n browserLanguage,\n localStorageLanguage,\n fallbackLanguage\n )\n const derivedState: I18nState = {\n ...initialState,\n locale: initialLocale,\n changeLocale: initialLocale,\n availableLanguages,\n appName,\n isPreview: isPreviewMode(window.location.search)\n }\n\n return function I18nReducer(\n state: I18nState = derivedState,\n action: I18nAction\n ): I18nState | Loop {\n switch (action.type) {\n case I18nActionTypes.ChangeLocale: {\n const { locale, appName: payloadAppName } = action.payload\n\n if (payloadAppName !== appName) {\n return state\n }\n\n return loop(\n { ...state, changeLocale: locale },\n Cmd.list([\n Cmd.action(getContent(payloadAppName)),\n Cmd.run(saveChosenLocaleInLocalStorage, {\n args: [locale]\n }),\n Cmd.run(saveLocaleInWindowName, { args: [locale] })\n ])\n )\n }\n\n case I18nActionTypes.GetContent: {\n const { partnerName, appName: payloadAppName } = action.payload\n const { changeLocale, isPreview } = state\n\n if (payloadAppName !== appName) {\n return state\n }\n\n return loop(\n state,\n Cmd.run(fetchContent, {\n args: [changeLocale, isPreview, appName, partnerName],\n successActionCreator: (content: I18nPayload) =>\n getContentSuccess(content, payloadAppName),\n failActionCreator: () => getContentFailed(payloadAppName)\n })\n )\n }\n\n case I18nActionTypes.GetContentSuccess: {\n const { content, appName: payloadAppName } = action.payload\n const { changeLocale } = state\n\n if (payloadAppName !== appName) {\n return state\n }\n\n return {\n ...state,\n content: some(content),\n locale: changeLocale,\n isContentLoadAttempted: true\n }\n }\n\n case I18nActionTypes.GetContentFailed: {\n const { appName: payloadAppName } = action.payload\n const { locale } = state\n\n if (payloadAppName !== appName) {\n return state\n }\n\n return {\n ...state,\n changeLocale: locale,\n isContentLoadAttempted: true\n }\n }\n\n case I18nActionTypes.ToggleMessageIds: {\n const { appName: payloadAppName } = action.payload\n const { isMessageIdsVisible } = state\n\n if (payloadAppName !== appName) {\n return state\n }\n\n return { ...state, isMessageIdsVisible: !isMessageIdsVisible }\n }\n\n default:\n return state\n }\n }\n}\n","export const isOffline = (_window: any): boolean => {\n return Boolean(\n _window &&\n _window.location &&\n _window.location.origin &&\n typeof (_window.location.origin === 'string') &&\n _window.location.origin.indexOf('localhost') !== -1\n )\n}\n","import { fromNullable } from 'fp-ts/lib/Option'\nimport { I18nState, initialState } from './reducer'\nimport { Locale, AvailableLanguage, AppName } from './types/i18n'\nimport { isOffline } from './helpers/offlineMode'\n\ntype State = Record\n\nconst getI18nState = (state: State, appName?: AppName): I18nState => {\n if (appName) {\n const i18nState = state.get\n ? state.get(`${appName}I18n`)\n : state[`${appName}I18n`]\n\n return i18nState || initialState\n }\n\n return (state.get ? state.get('i18n') : state.i18n) || initialState\n}\n\nexport const getLocale = (state: State, appName?: AppName): Locale =>\n getI18nState(state, appName).locale\n\nexport const getAppName = (state: State, appName?: AppName) =>\n getI18nState(state, appName).appName\n\nexport const getMessages = (state: State, appName?: AppName) =>\n getI18nState(state, appName).content.fold({}, content => content.messages)\n\nexport const getAvailableLanguages = (\n state: State,\n appName?: AppName\n): AvailableLanguage[] => getI18nState(state, appName).availableLanguages || []\n\nexport const isPreview = (state: State, appName?: AppName) =>\n getI18nState(state, appName).isPreview\n\nexport const isMessageIdsVisible = (state: State, appName?: AppName) =>\n getI18nState(state, appName).isMessageIdsVisible\n\nexport const isContentReady = (state: State, appName?: AppName) =>\n getI18nState(state, appName).content.isSome()\n\n// defaults to gb flag, but theoretically should not happen\nexport const getFlagCodeForLocale = (\n state: State,\n localeString: Locale,\n appName?: AppName\n) =>\n fromNullable(\n getAvailableLanguages(state, appName).find(\n lang =>\n typeof lang === 'object' &&\n 'locale' in lang &&\n lang.locale.toLowerCase() === localeString.toLowerCase()\n )\n ).fold('gb', locale => locale.flagCode)\n\n// tells us whether content is ready\n// in prod this is when the data is loaded\n// in dev this is when it has at least tried\nexport const getContentIsReady = (state: State, appName?: AppName) =>\n internalContentIsReady(state, isOffline(window), appName)\n\n// exported for testing - use getContentIsReady in apps please\nexport const internalContentIsReady = (\n state: State,\n devMode: boolean,\n appName?: AppName\n) =>\n getI18nState(state, appName).content.isSome() ||\n (getI18nState(state, appName).isContentLoadAttempted && devMode)\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar pipeable_1 = require(\"./pipeable\");\n/**\n * @since 1.19.0\n */\nexports.URI = 'Eq';\n/**\n * @since 1.19.0\n */\nfunction fromEquals(equals) {\n return {\n equals: function (x, y) { return x === y || equals(x, y); }\n };\n}\nexports.fromEquals = fromEquals;\n/**\n * @since 1.19.0\n */\nfunction strictEqual(a, b) {\n return a === b;\n}\nexports.strictEqual = strictEqual;\nvar eqStrict = { equals: strictEqual };\n/**\n * @since 1.19.0\n */\nexports.eqString = eqStrict;\n/**\n * @since 1.19.0\n */\nexports.eqNumber = eqStrict;\n/**\n * @since 1.19.0\n */\nexports.eqBoolean = eqStrict;\n/**\n * @since 1.19.0\n */\nfunction getStructEq(eqs) {\n return fromEquals(function (x, y) {\n for (var k in eqs) {\n if (!eqs[k].equals(x[k], y[k])) {\n return false;\n }\n }\n return true;\n });\n}\nexports.getStructEq = getStructEq;\n/**\n * Given a tuple of `Eq`s returns a `Eq` for the tuple\n *\n * @example\n * import { getTupleEq, eqString, eqNumber, eqBoolean } from 'fp-ts/lib/Eq'\n *\n * const E = getTupleEq(eqString, eqNumber, eqBoolean)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, true]), true)\n * assert.strictEqual(E.equals(['a', 1, true], ['b', 1, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 2, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, false]), false)\n *\n * @since 1.19.0\n */\nfunction getTupleEq() {\n var eqs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n eqs[_i] = arguments[_i];\n }\n return fromEquals(function (x, y) { return eqs.every(function (E, i) { return E.equals(x[i], y[i]); }); });\n}\nexports.getTupleEq = getTupleEq;\n/**\n * @since 1.19.0\n */\nexports.eq = {\n URI: exports.URI,\n contramap: function (fa, f) { return fromEquals(function (x, y) { return fa.equals(f(x), f(y)); }); }\n};\nvar contramap = pipeable_1.pipeable(exports.eq).contramap;\nexports.contramap = contramap;\n/**\n * @since 1.19.0\n */\nexports.eqDate = exports.eq.contramap(exports.eqNumber, function (date) { return date.valueOf(); });\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar function_1 = require(\"./function\");\nvar Semigroup_1 = require(\"./Semigroup\");\n/**\n * @since 1.0.0\n */\nexports.fold = function (M) {\n return Semigroup_1.fold(M)(M.empty);\n};\n/**\n * Given a tuple of monoids returns a monoid for the tuple\n *\n * @example\n * import { getTupleMonoid, monoidString, monoidSum, monoidAll } from 'fp-ts/lib/Monoid'\n *\n * const M1 = getTupleMonoid(monoidString, monoidSum)\n * assert.deepStrictEqual(M1.concat(['a', 1], ['b', 2]), ['ab', 3])\n *\n * const M2 = getTupleMonoid(monoidString, monoidSum, monoidAll)\n * assert.deepStrictEqual(M2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false])\n *\n * @since 1.0.0\n */\nexports.getTupleMonoid = function () {\n var monoids = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n monoids[_i] = arguments[_i];\n }\n return __assign({}, Semigroup_1.getTupleSemigroup.apply(void 0, monoids), { empty: monoids.map(function (m) { return m.empty; }) });\n};\n/**\n * Use `getTupleMonoid` instead\n * @since 1.0.0\n * @deprecated\n */\nexports.getProductMonoid = function (MA, MB) {\n return exports.getTupleMonoid(MA, MB);\n};\n/**\n * @since 1.0.0\n */\nexports.getDualMonoid = function (M) {\n return __assign({}, Semigroup_1.getDualSemigroup(M), { empty: M.empty });\n};\n/**\n * Boolean monoid under conjunction\n * @since 1.0.0\n */\nexports.monoidAll = __assign({}, Semigroup_1.semigroupAll, { empty: true });\n/**\n * Boolean monoid under disjunction\n * @since 1.0.0\n */\nexports.monoidAny = __assign({}, Semigroup_1.semigroupAny, { empty: false });\nvar emptyArray = [];\n/**\n * @since 1.0.0\n */\nexports.unsafeMonoidArray = {\n concat: function_1.concat,\n empty: emptyArray\n};\n/**\n * Use `Array`'s `getMonoid`\n *\n * @since 1.0.0\n * @deprecated\n */\nexports.getArrayMonoid = function () {\n return exports.unsafeMonoidArray;\n};\nvar emptyObject = {};\nfunction getDictionaryMonoid(S) {\n return __assign({}, Semigroup_1.getDictionarySemigroup(S), { empty: emptyObject });\n}\nexports.getDictionaryMonoid = getDictionaryMonoid;\n/**\n * Number monoid under addition\n * @since 1.0.0\n */\nexports.monoidSum = __assign({}, Semigroup_1.semigroupSum, { empty: 0 });\n/**\n * Number monoid under multiplication\n * @since 1.0.0\n */\nexports.monoidProduct = __assign({}, Semigroup_1.semigroupProduct, { empty: 1 });\n/**\n * @since 1.0.0\n */\nexports.monoidString = __assign({}, Semigroup_1.semigroupString, { empty: '' });\n/**\n * @since 1.0.0\n */\nexports.monoidVoid = __assign({}, Semigroup_1.semigroupVoid, { empty: undefined });\n/**\n * @since 1.0.0\n */\nexports.getFunctionMonoid = function (M) { return function () {\n return __assign({}, Semigroup_1.getFunctionSemigroup(M)(), { empty: function () { return M.empty; } });\n}; };\n/**\n * @since 1.0.0\n */\nexports.getEndomorphismMonoid = function () {\n return {\n concat: function (x, y) { return function (a) { return x(y(a)); }; },\n empty: function_1.identity\n };\n};\n/**\n * @since 1.14.0\n */\nexports.getStructMonoid = function (monoids) {\n var empty = {};\n for (var _i = 0, _a = Object.keys(monoids); _i < _a.length; _i++) {\n var key = _a[_i];\n empty[key] = monoids[key].empty;\n }\n return __assign({}, Semigroup_1.getStructSemigroup(monoids), { empty: empty });\n};\n/**\n * Use `getStructMonoid` instead\n * @since 1.0.0\n * @deprecated\n */\nexports.getRecordMonoid = function (monoids) {\n return exports.getStructMonoid(monoids);\n};\n/**\n * @since 1.9.0\n */\nexports.getMeetMonoid = function (B) {\n return __assign({}, Semigroup_1.getMeetSemigroup(B), { empty: B.top });\n};\n/**\n * @since 1.9.0\n */\nexports.getJoinMonoid = function (B) {\n return __assign({}, Semigroup_1.getJoinSemigroup(B), { empty: B.bottom });\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar function_1 = require(\"./function\");\nvar Monoid_1 = require(\"./Monoid\");\nvar Ord_1 = require(\"./Ord\");\nvar Eq_1 = require(\"./Eq\");\nvar pipeable_1 = require(\"./pipeable\");\nexports.URI = 'Option';\nvar None = /** @class */ (function () {\n function None() {\n this._tag = 'None';\n }\n /**\n * Takes a function `f` and an `Option` of `A`. Maps `f` either on `None` or `Some`, Option's data constructors. If it\n * maps on `Some` then it will apply the `f` on `Some`'s value, if it maps on `None` it will return `None`.\n *\n * @example\n * import { some } from 'fp-ts/lib/Option'\n *\n * assert.deepStrictEqual(some(1).map(n => n * 2), some(2))\n * @obsolete\n */\n None.prototype.map = function (f) {\n return exports.none;\n };\n /**\n * Maps `f` over this `Option`'s value. If the value returned from `f` is null or undefined, returns `None`\n *\n * @example\n * import { none, some } from 'fp-ts/lib/Option'\n *\n * interface Foo {\n * bar?: {\n * baz?: string\n * }\n * }\n *\n * assert.deepStrictEqual(\n * some({ bar: { baz: 'quux' } })\n * .mapNullable(foo => foo.bar)\n * .mapNullable(bar => bar.baz),\n * some('quux')\n * )\n * assert.deepStrictEqual(\n * some({ bar: {} })\n * .mapNullable(foo => foo.bar)\n * .mapNullable(bar => bar.baz),\n * none\n * )\n * assert.deepStrictEqual(\n * some({})\n * .mapNullable(foo => foo.bar)\n * .mapNullable(bar => bar.baz),\n * none\n * )\n * @obsolete\n */\n None.prototype.mapNullable = function (f) {\n return exports.none;\n };\n /**\n * `ap`, some may also call it \"apply\". Takes a function `fab` that is in the context of `Option`, and applies that\n * function to this `Option`'s value. If the `Option` calling `ap` is `none` it will return `none`.\n *\n * @example\n * import { some, none } from 'fp-ts/lib/Option'\n *\n * assert.deepStrictEqual(some(2).ap(some((x: number) => x + 1)), some(3))\n * assert.deepStrictEqual(none.ap(some((x: number) => x + 1)), none)\n * @obsolete\n */\n None.prototype.ap = function (fab) {\n return exports.none;\n };\n /**\n * Flipped version of `ap`\n *\n * @example\n * import { some, none } from 'fp-ts/lib/Option'\n *\n * assert.deepStrictEqual(some((x: number) => x + 1).ap_(some(2)), some(3))\n * assert.deepStrictEqual(none.ap_(some(2)), none)\n * @obsolete\n */\n None.prototype.ap_ = function (fb) {\n return fb.ap(this);\n };\n /**\n * Returns the result of applying f to this `Option`'s value if this `Option` is nonempty. Returns `None` if this\n * `Option` is empty. Slightly different from `map` in that `f` is expected to return an `Option` (which could be\n * `None`)\n * @obsolete\n */\n None.prototype.chain = function (f) {\n return exports.none;\n };\n /** @obsolete */\n None.prototype.reduce = function (b, f) {\n return b;\n };\n /**\n * `alt` short for alternative, takes another `Option`. If this `Option` is a `Some` type then it will be returned, if\n * it is a `None` then it will return the next `Some` if it exist. If both are `None` then it will return `none`.\n *\n * @example\n * import { Option, some, none } from 'fp-ts/lib/Option'\n *\n * assert.deepStrictEqual(some(2).alt(some(4)), some(2))\n * const fa: Option = none\n * assert.deepStrictEqual(fa.alt(some(4)), some(4))\n * @obsolete\n */\n None.prototype.alt = function (fa) {\n return fa;\n };\n /**\n * Lazy version of `alt`\n *\n * @example\n * import { some } from 'fp-ts/lib/Option'\n *\n * assert.deepStrictEqual(some(1).orElse(() => some(2)), some(1))\n *\n * @since 1.6.0\n * @obsolete\n */\n None.prototype.orElse = function (fa) {\n return fa();\n };\n /** @obsolete */\n None.prototype.extend = function (f) {\n return exports.none;\n };\n /**\n * Applies a function to each case in the data structure\n *\n * @example\n * import { none, some } from 'fp-ts/lib/Option'\n *\n * assert.strictEqual(some(1).fold('none', a => `some: ${a}`), 'some: 1')\n * assert.strictEqual(none.fold('none', a => `some: ${a}`), 'none')\n * @obsolete\n */\n None.prototype.fold = function (b, onSome) {\n return b;\n };\n /**\n * Lazy version of `fold`\n * @obsolete\n */\n None.prototype.foldL = function (onNone, onSome) {\n return onNone();\n };\n /**\n * Returns the value from this `Some` or the given argument if this is a `None`\n *\n * @example\n * import { Option, none, some } from 'fp-ts/lib/Option'\n *\n * assert.strictEqual(some(1).getOrElse(0), 1)\n * const fa: Option = none\n * assert.strictEqual(fa.getOrElse(0), 0)\n * @obsolete\n */\n None.prototype.getOrElse = function (a) {\n return a;\n };\n /**\n * Lazy version of `getOrElse`\n * @obsolete\n */\n None.prototype.getOrElseL = function (f) {\n return f();\n };\n /**\n * Returns the value from this `Some` or `null` if this is a `None`\n * @obsolete\n */\n None.prototype.toNullable = function () {\n return null;\n };\n /**\n * Returns the value from this `Some` or `undefined` if this is a `None`\n * @obsolete\n */\n None.prototype.toUndefined = function () {\n return undefined;\n };\n None.prototype.inspect = function () {\n return this.toString();\n };\n None.prototype.toString = function () {\n return 'none';\n };\n /**\n * Returns `true` if the option has an element that is equal (as determined by `S`) to `a`, `false` otherwise\n * @obsolete\n */\n None.prototype.contains = function (E, a) {\n return false;\n };\n /**\n * Returns `true` if the option is `None`, `false` otherwise\n * @obsolete\n */\n None.prototype.isNone = function () {\n return true;\n };\n /**\n * Returns `true` if the option is an instance of `Some`, `false` otherwise\n * @obsolete\n */\n None.prototype.isSome = function () {\n return false;\n };\n /**\n * Returns `true` if this option is non empty and the predicate `p` returns `true` when applied to this Option's value\n * @obsolete\n */\n None.prototype.exists = function (p) {\n return false;\n };\n None.prototype.filter = function (p) {\n return exports.none;\n };\n /**\n * Use `filter` instead.\n * Returns this option refined as `Option` if it is non empty and the `refinement` returns `true` when applied to\n * this Option's value. Otherwise returns `None`\n * @since 1.3.0\n * @deprecated\n */\n None.prototype.refine = function (refinement) {\n return exports.none;\n };\n None.value = new None();\n return None;\n}());\nexports.None = None;\n/**\n * @since 1.0.0\n */\nexports.none = None.value;\nvar Some = /** @class */ (function () {\n function Some(value) {\n this.value = value;\n this._tag = 'Some';\n }\n Some.prototype.map = function (f) {\n return new Some(f(this.value));\n };\n Some.prototype.mapNullable = function (f) {\n return exports.fromNullable(f(this.value));\n };\n Some.prototype.ap = function (fab) {\n return fab.isNone() ? exports.none : new Some(fab.value(this.value));\n };\n Some.prototype.ap_ = function (fb) {\n return fb.ap(this);\n };\n Some.prototype.chain = function (f) {\n return f(this.value);\n };\n Some.prototype.reduce = function (b, f) {\n return f(b, this.value);\n };\n Some.prototype.alt = function (fa) {\n return this;\n };\n Some.prototype.orElse = function (fa) {\n return this;\n };\n Some.prototype.extend = function (f) {\n return new Some(f(this));\n };\n Some.prototype.fold = function (b, onSome) {\n return onSome(this.value);\n };\n Some.prototype.foldL = function (onNone, onSome) {\n return onSome(this.value);\n };\n Some.prototype.getOrElse = function (a) {\n return this.value;\n };\n Some.prototype.getOrElseL = function (f) {\n return this.value;\n };\n Some.prototype.toNullable = function () {\n return this.value;\n };\n Some.prototype.toUndefined = function () {\n return this.value;\n };\n Some.prototype.inspect = function () {\n return this.toString();\n };\n Some.prototype.toString = function () {\n // tslint:disable-next-line: deprecation\n return \"some(\" + function_1.toString(this.value) + \")\";\n };\n Some.prototype.contains = function (E, a) {\n return E.equals(this.value, a);\n };\n Some.prototype.isNone = function () {\n return false;\n };\n Some.prototype.isSome = function () {\n return true;\n };\n Some.prototype.exists = function (p) {\n return p(this.value);\n };\n Some.prototype.filter = function (p) {\n return this.exists(p) ? this : exports.none;\n };\n Some.prototype.refine = function (refinement) {\n return this.filter(refinement);\n };\n return Some;\n}());\nexports.Some = Some;\n/**\n * @since 1.17.0\n */\nexports.getShow = function (S) {\n return {\n show: function (oa) { return oa.fold('none', function (a) { return \"some(\" + S.show(a) + \")\"; }); }\n };\n};\n/**\n * Use `getEq`\n *\n * @since 1.0.0\n * @deprecated\n */\nexports.getSetoid = getEq;\n/**\n * @example\n * import { none, some, getEq } from 'fp-ts/lib/Option'\n * import { eqNumber } from 'fp-ts/lib/Eq'\n *\n * const S = getEq(eqNumber)\n * assert.strictEqual(S.equals(none, none), true)\n * assert.strictEqual(S.equals(none, some(1)), false)\n * assert.strictEqual(S.equals(some(1), none), false)\n * assert.strictEqual(S.equals(some(1), some(2)), false)\n * assert.strictEqual(S.equals(some(1), some(1)), true)\n *\n * @since 1.19.0\n */\nfunction getEq(E) {\n return Eq_1.fromEquals(function (x, y) { return (x.isNone() ? y.isNone() : y.isNone() ? false : E.equals(x.value, y.value)); });\n}\nexports.getEq = getEq;\n/**\n * The `Ord` instance allows `Option` values to be compared with\n * `compare`, whenever there is an `Ord` instance for\n * the type the `Option` contains.\n *\n * `None` is considered to be less than any `Some` value.\n *\n *\n * @example\n * import { none, some, getOrd } from 'fp-ts/lib/Option'\n * import { ordNumber } from 'fp-ts/lib/Ord'\n *\n * const O = getOrd(ordNumber)\n * assert.strictEqual(O.compare(none, none), 0)\n * assert.strictEqual(O.compare(none, some(1)), -1)\n * assert.strictEqual(O.compare(some(1), none), 1)\n * assert.strictEqual(O.compare(some(1), some(2)), -1)\n * assert.strictEqual(O.compare(some(1), some(1)), 0)\n *\n * @since 1.2.0\n */\nexports.getOrd = function (O) {\n return Ord_1.fromCompare(function (x, y) { return (x.isSome() ? (y.isSome() ? O.compare(x.value, y.value) : 1) : -1); });\n};\n/**\n * @since 1.0.0\n */\nexports.some = function (a) {\n return new Some(a);\n};\n/**\n * `Apply` semigroup\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------------ |\n * | none | none | none |\n * | some(a) | none | none |\n * | none | some(a) | none |\n * | some(a) | some(b) | some(concat(a, b)) |\n *\n * @example\n * import { getApplySemigroup, some, none } from 'fp-ts/lib/Option'\n * import { semigroupSum } from 'fp-ts/lib/Semigroup'\n *\n * const S = getApplySemigroup(semigroupSum)\n * assert.deepStrictEqual(S.concat(none, none), none)\n * assert.deepStrictEqual(S.concat(some(1), none), none)\n * assert.deepStrictEqual(S.concat(none, some(1)), none)\n * assert.deepStrictEqual(S.concat(some(1), some(2)), some(3))\n *\n * @since 1.7.0\n */\nexports.getApplySemigroup = function (S) {\n return {\n concat: function (x, y) { return (x.isSome() && y.isSome() ? exports.some(S.concat(x.value, y.value)) : exports.none); }\n };\n};\n/**\n * @since 1.7.0\n */\nexports.getApplyMonoid = function (M) {\n return __assign({}, exports.getApplySemigroup(M), { empty: exports.some(M.empty) });\n};\n/**\n * Monoid returning the left-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(a) | some(a) |\n * | some(a) | some(b) | some(a) |\n *\n * @example\n * import { getFirstMonoid, some, none } from 'fp-ts/lib/Option'\n *\n * const M = getFirstMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(1)), some(1))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1))\n *\n * @since 1.0.0\n */\nexports.getFirstMonoid = function () {\n return {\n concat: exports.option.alt,\n empty: exports.none\n };\n};\n/**\n * Monoid returning the right-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(a) | some(a) |\n * | some(a) | some(b) | some(b) |\n *\n * @example\n * import { getLastMonoid, some, none } from 'fp-ts/lib/Option'\n *\n * const M = getLastMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(1)), some(1))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2))\n *\n * @since 1.0.0\n */\nexports.getLastMonoid = function () {\n return Monoid_1.getDualMonoid(exports.getFirstMonoid());\n};\n/**\n * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are\n * appended using the provided `Semigroup`\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(a) | some(a) |\n * | some(a) | some(b) | some(concat(a, b)) |\n *\n * @example\n * import { getMonoid, some, none } from 'fp-ts/lib/Option'\n * import { semigroupSum } from 'fp-ts/lib/Semigroup'\n *\n * const M = getMonoid(semigroupSum)\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(1)), some(1))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3))\n *\n * @since 1.0.0\n */\nexports.getMonoid = function (S) {\n return {\n concat: function (x, y) { return (x.isNone() ? y : y.isNone() ? x : exports.some(S.concat(x.value, y.value))); },\n empty: exports.none\n };\n};\n/**\n * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise\n * returns the value wrapped in a `Some`\n *\n * @example\n * import { none, some, fromNullable } from 'fp-ts/lib/Option'\n *\n * assert.deepStrictEqual(fromNullable(undefined), none)\n * assert.deepStrictEqual(fromNullable(null), none)\n * assert.deepStrictEqual(fromNullable(1), some(1))\n *\n * @since 1.0.0\n */\nexports.fromNullable = function (a) {\n return a == null ? exports.none : new Some(a);\n};\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? exports.some(a) : exports.none); };\n}\nexports.fromPredicate = fromPredicate;\n/**\n * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in\n * `Some`\n *\n * @example\n * import { none, some, tryCatch } from 'fp-ts/lib/Option'\n *\n * assert.deepStrictEqual(\n * tryCatch(() => {\n * throw new Error()\n * }),\n * none\n * )\n * assert.deepStrictEqual(tryCatch(() => 1), some(1))\n *\n * @since 1.0.0\n */\nexports.tryCatch = function (f) {\n try {\n return exports.some(f());\n }\n catch (e) {\n return exports.none;\n }\n};\n/**\n * Constructs a new `Option` from a `Either`. If the value is a `Left`, returns `None`, otherwise returns the inner\n * value wrapped in a `Some`\n *\n * @example\n * import { none, some, fromEither } from 'fp-ts/lib/Option'\n * import { left, right } from 'fp-ts/lib/Either'\n *\n * assert.deepStrictEqual(fromEither(left(1)), none)\n * assert.deepStrictEqual(fromEither(right(1)), some(1))\n *\n * @since 1.0.0\n */\nexports.fromEither = function (fa) {\n return fa.isLeft() ? exports.none : exports.some(fa.value);\n};\n/**\n * Returns `true` if the option is an instance of `Some`, `false` otherwise\n *\n * @since 1.0.0\n */\nexports.isSome = function (fa) {\n return fa.isSome();\n};\n/**\n * Returns `true` if the option is `None`, `false` otherwise\n *\n * @since 1.0.0\n */\nexports.isNone = function (fa) {\n return fa.isNone();\n};\n/**\n * Use `fromPredicate` instead.\n * Refinement version of `fromPredicate`\n *\n * @since 1.3.0\n * @deprecated\n */\nexports.fromRefinement = function (refinement) { return function (a) {\n return refinement(a) ? exports.some(a) : exports.none;\n}; };\n/**\n * Returns a refinement from a prism.\n * This function ensures that a custom type guard definition is type-safe.\n *\n * ```ts\n * import { some, none, getRefinement } from 'fp-ts/lib/Option'\n *\n * type A = { type: 'A' }\n * type B = { type: 'B' }\n * type C = A | B\n *\n * const isA = (c: C): c is A => c.type === 'B' // <= typo but typescript doesn't complain\n * const isA = getRefinement(c => (c.type === 'B' ? some(c) : none)) // static error: Type '\"B\"' is not assignable to type '\"A\"'\n * ```\n *\n * @since 1.7.0\n */\nexports.getRefinement = function (getOption) {\n return function (a) { return getOption(a).isSome(); };\n};\nvar defaultSeparate = { left: exports.none, right: exports.none };\n/**\n * @since 1.0.0\n */\nexports.option = {\n URI: exports.URI,\n map: function (ma, f) { return (exports.isNone(ma) ? exports.none : exports.some(f(ma.value))); },\n of: exports.some,\n ap: function (mab, ma) { return (exports.isNone(mab) ? exports.none : exports.isNone(ma) ? exports.none : exports.some(mab.value(ma.value))); },\n chain: function (ma, f) { return (exports.isNone(ma) ? exports.none : f(ma.value)); },\n reduce: function (fa, b, f) { return (exports.isNone(fa) ? b : f(b, fa.value)); },\n foldMap: function (M) { return function (fa, f) { return (exports.isNone(fa) ? M.empty : f(fa.value)); }; },\n foldr: function (fa, b, f) { return (exports.isNone(fa) ? b : f(fa.value, b)); },\n traverse: function (F) { return function (ta, f) {\n return exports.isNone(ta) ? F.of(exports.none) : F.map(f(ta.value), exports.some);\n }; },\n sequence: function (F) { return function (ta) {\n return exports.isNone(ta) ? F.of(exports.none) : F.map(ta.value, exports.some);\n }; },\n zero: function () { return exports.none; },\n alt: function (mx, my) { return (exports.isNone(mx) ? my : mx); },\n extend: function (wa, f) { return (exports.isNone(wa) ? exports.none : exports.some(f(wa))); },\n compact: function (ma) { return exports.option.chain(ma, function_1.identity); },\n separate: function (ma) {\n var o = exports.option.map(ma, function (e) { return ({\n left: getLeft(e),\n right: getRight(e)\n }); });\n return exports.isNone(o) ? defaultSeparate : o.value;\n },\n filter: function (fa, predicate) {\n return exports.isNone(fa) ? exports.none : predicate(fa.value) ? fa : exports.none;\n },\n filterMap: function (ma, f) { return (exports.isNone(ma) ? exports.none : f(ma.value)); },\n partition: function (fa, predicate) {\n return {\n left: exports.option.filter(fa, function (a) { return !predicate(a); }),\n right: exports.option.filter(fa, predicate)\n };\n },\n partitionMap: function (fa, f) { return exports.option.separate(exports.option.map(fa, f)); },\n wither: function (F) { return function (fa, f) {\n return exports.isNone(fa) ? F.of(exports.none) : f(fa.value);\n }; },\n wilt: function (F) { return function (fa, f) {\n var o = exports.option.map(fa, function (a) {\n return F.map(f(a), function (e) { return ({\n left: getLeft(e),\n right: getRight(e)\n }); });\n });\n return exports.isNone(o)\n ? F.of({\n left: exports.none,\n right: exports.none\n })\n : o.value;\n }; },\n throwError: function () { return exports.none; },\n fromEither: exports.fromEither,\n fromOption: function_1.identity\n};\n//\n// backporting\n//\n/**\n * Returns an `L` value if possible\n *\n * @since 1.19.0\n */\nfunction getLeft(ma) {\n return ma._tag === 'Right' ? exports.none : exports.some(ma.value);\n}\nexports.getLeft = getLeft;\n/**\n * Returns an `A` value if possible\n *\n * @since 1.19.0\n */\nfunction getRight(ma) {\n return ma._tag === 'Left' ? exports.none : exports.some(ma.value);\n}\nexports.getRight = getRight;\n/**\n * @since 1.19.0\n */\nfunction fold(onNone, onSome) {\n return function (ma) { return ma.foldL(onNone, onSome); };\n}\nexports.fold = fold;\n/**\n * @since 1.19.0\n */\nfunction toNullable(ma) {\n return ma.toNullable();\n}\nexports.toNullable = toNullable;\n/**\n * @since 1.19.0\n */\nfunction toUndefined(ma) {\n return ma.toUndefined();\n}\nexports.toUndefined = toUndefined;\n/**\n * @since 1.19.0\n */\nfunction getOrElse(f) {\n return function (ma) { return ma.getOrElseL(f); };\n}\nexports.getOrElse = getOrElse;\n/**\n * @since 1.19.0\n */\nfunction elem(E) {\n return function (a) { return function (ma) { return ma.contains(E, a); }; };\n}\nexports.elem = elem;\n/**\n * @since 1.19.0\n */\nfunction exists(predicate) {\n return function (ma) { return ma.exists(predicate); };\n}\nexports.exists = exists;\n/**\n * @since 1.19.0\n */\nfunction mapNullable(f) {\n return function (ma) { return ma.mapNullable(f); };\n}\nexports.mapNullable = mapNullable;\nvar _a = pipeable_1.pipeable(exports.option), alt = _a.alt, ap = _a.ap, apFirst = _a.apFirst, apSecond = _a.apSecond, chain = _a.chain, chainFirst = _a.chainFirst, duplicate = _a.duplicate, extend = _a.extend, filter = _a.filter, filterMap = _a.filterMap, flatten = _a.flatten, foldMap = _a.foldMap, map = _a.map, partition = _a.partition, partitionMap = _a.partitionMap, reduce = _a.reduce, reduceRight = _a.reduceRight, compact = _a.compact, separate = _a.separate;\nexports.alt = alt;\nexports.ap = ap;\nexports.apFirst = apFirst;\nexports.apSecond = apSecond;\nexports.chain = chain;\nexports.chainFirst = chainFirst;\nexports.duplicate = duplicate;\nexports.extend = extend;\nexports.filter = filter;\nexports.filterMap = filterMap;\nexports.flatten = flatten;\nexports.foldMap = foldMap;\nexports.map = map;\nexports.partition = partition;\nexports.partitionMap = partitionMap;\nexports.reduce = reduce;\nexports.reduceRight = reduceRight;\nexports.compact = compact;\nexports.separate = separate;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Eq_1 = require(\"./Eq\");\nvar function_1 = require(\"./function\");\nvar Ordering_1 = require(\"./Ordering\");\n/**\n * @since 1.19.0\n */\nexports.URI = 'Ord';\n/**\n * @since 1.0.0\n * @deprecated\n */\nexports.unsafeCompare = function (x, y) {\n return x < y ? -1 : x > y ? 1 : 0;\n};\n/**\n * @since 1.0.0\n */\nexports.ordString = __assign({}, Eq_1.eqString, { \n // tslint:disable-next-line: deprecation\n compare: exports.unsafeCompare });\n/**\n * @since 1.0.0\n */\nexports.ordNumber = __assign({}, Eq_1.eqNumber, { \n // tslint:disable-next-line: deprecation\n compare: exports.unsafeCompare });\n/**\n * @since 1.0.0\n */\nexports.ordBoolean = __assign({}, Eq_1.eqBoolean, { \n // tslint:disable-next-line: deprecation\n compare: exports.unsafeCompare });\n/**\n * Test whether one value is _strictly less than_ another\n *\n * @since 1.19.0\n */\nexports.lt = function (O) { return function (x, y) {\n return O.compare(x, y) === -1;\n}; };\n/**\n * Use `lt`\n *\n * @since 1.0.0\n * @deprecated\n */\nexports.lessThan = exports.lt;\n/**\n * Test whether one value is _strictly greater than_ another\n *\n * @since 1.19.0\n */\nexports.gt = function (O) { return function (x, y) {\n return O.compare(x, y) === 1;\n}; };\n/**\n * Use `gt`\n *\n * @since 1.0.0\n * @deprecated\n */\nexports.greaterThan = exports.gt;\n/**\n * Test whether one value is _non-strictly less than_ another\n *\n * @since 1.19.0\n */\nexports.leq = function (O) { return function (x, y) {\n return O.compare(x, y) !== 1;\n}; };\n/**\n * Use `leq`\n *\n * @since 1.0.0\n * @deprecated\n */\nexports.lessThanOrEq = exports.leq;\n/**\n * Test whether one value is _non-strictly greater than_ another\n *\n * @since 1.19.0\n */\nexports.geq = function (O) { return function (x, y) {\n return O.compare(x, y) !== -1;\n}; };\n/**\n * Use `geq`\n *\n * @since 1.0.0\n * @deprecated\n */\nexports.greaterThanOrEq = exports.geq;\n/**\n * Take the minimum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 1.0.0\n */\nexports.min = function (O) { return function (x, y) {\n return O.compare(x, y) === 1 ? y : x;\n}; };\n/**\n * Take the maximum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 1.0.0\n */\nexports.max = function (O) { return function (x, y) {\n return O.compare(x, y) === -1 ? y : x;\n}; };\n/**\n * Clamp a value between a minimum and a maximum\n *\n * @since 1.0.0\n */\nexports.clamp = function (O) {\n var minO = exports.min(O);\n var maxO = exports.max(O);\n return function (low, hi) { return function (x) { return maxO(minO(x, hi), low); }; };\n};\n/**\n * Test whether a value is between a minimum and a maximum (inclusive)\n *\n * @since 1.0.0\n */\nexports.between = function (O) {\n var lessThanO = exports.lt(O);\n var greaterThanO = exports.gt(O);\n return function (low, hi) { return function (x) { return (lessThanO(x, low) || greaterThanO(x, hi) ? false : true); }; };\n};\n/**\n * @since 1.0.0\n */\nexports.fromCompare = function (compare) {\n var optimizedCompare = function (x, y) { return (x === y ? 0 : compare(x, y)); };\n return {\n equals: function (x, y) { return optimizedCompare(x, y) === 0; },\n compare: optimizedCompare\n };\n};\nfunction _contramap(f, O) {\n // tslint:disable-next-line: deprecation\n return exports.fromCompare(function_1.on(O.compare)(f));\n}\nfunction contramap() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.length === 1 ? function (O) { return _contramap(args[0], O); } : _contramap(args[0], args[1]);\n}\nexports.contramap = contramap;\n/**\n * @since 1.0.0\n */\nexports.getSemigroup = function () {\n return {\n concat: function (x, y) { return exports.fromCompare(function (a, b) { return Ordering_1.semigroupOrdering.concat(x.compare(a, b), y.compare(a, b)); }); }\n };\n};\n/**\n * Given a tuple of `Ord`s returns an `Ord` for the tuple\n *\n * @example\n * import { getTupleOrd, ordString, ordNumber, ordBoolean } from 'fp-ts/lib/Ord'\n *\n * const O = getTupleOrd(ordString, ordNumber, ordBoolean)\n * assert.strictEqual(O.compare(['a', 1, true], ['b', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 1, false]), 1)\n *\n * @since 1.14.3\n */\nexports.getTupleOrd = function () {\n var ords = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ords[_i] = arguments[_i];\n }\n var len = ords.length;\n return exports.fromCompare(function (x, y) {\n var i = 0;\n for (; i < len - 1; i++) {\n var r = ords[i].compare(x[i], y[i]);\n if (r !== 0) {\n return r;\n }\n }\n return ords[i].compare(x[i], y[i]);\n });\n};\n/**\n * Use `getTupleOrd` instead\n * @since 1.0.0\n * @deprecated\n */\nexports.getProductOrd = function (OA, OB) {\n return exports.getTupleOrd(OA, OB);\n};\n/**\n * @since 1.3.0\n */\nexports.getDualOrd = function (O) {\n return exports.fromCompare(function (x, y) { return O.compare(y, x); });\n};\n/**\n * @since 1.19.0\n */\nexports.ord = {\n URI: exports.URI,\n // tslint:disable-next-line: deprecation\n contramap: function (fa, f) { return contramap(f, fa); }\n};\n/**\n * @since 1.4.0\n */\nexports.ordDate = exports.ord.contramap(exports.ordNumber, function (date) { return date.valueOf(); });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @since 1.0.0\n */\nexports.sign = function (n) {\n return n <= -1 ? -1 : n >= 1 ? 1 : 0;\n};\n/**\n * @since 1.19.0\n */\nexports.eqOrdering = {\n equals: function (x, y) { return x === y; }\n};\n/**\n * Use `eqOrdering`\n *\n * @since 1.0.0\n * @deprecated\n */\nexports.setoidOrdering = exports.eqOrdering;\n/**\n * @since 1.0.0\n */\nexports.semigroupOrdering = {\n concat: function (x, y) { return (x !== 0 ? x : y); }\n};\n/**\n * @since 1.0.0\n */\nexports.invert = function (O) {\n switch (O) {\n case -1:\n return 1;\n case 1:\n return -1;\n default:\n return 0;\n }\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @file See [Getting started with fp-ts: Semigroup](https://dev.to/gcanti/getting-started-with-fp-ts-semigroup-2mf7)\n */\nvar Ord_1 = require(\"./Ord\");\nvar function_1 = require(\"./function\");\n/**\n * @since 1.0.0\n */\nexports.fold = function (S) { return function (a) { return function (as) {\n return as.reduce(S.concat, a);\n}; }; };\n/**\n * @since 1.0.0\n */\nexports.getFirstSemigroup = function () {\n return { concat: function_1.identity };\n};\n/**\n * @since 1.0.0\n */\nexports.getLastSemigroup = function () {\n return { concat: function (_, y) { return y; } };\n};\n/**\n * Given a tuple of semigroups returns a semigroup for the tuple\n *\n * @example\n * import { getTupleSemigroup, semigroupString, semigroupSum, semigroupAll } from 'fp-ts/lib/Semigroup'\n *\n * const S1 = getTupleSemigroup(semigroupString, semigroupSum)\n * assert.deepStrictEqual(S1.concat(['a', 1], ['b', 2]), ['ab', 3])\n *\n * const S2 = getTupleSemigroup(semigroupString, semigroupSum, semigroupAll)\n * assert.deepStrictEqual(S2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false])\n *\n * @since 1.14.0\n */\nexports.getTupleSemigroup = function () {\n var semigroups = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n semigroups[_i] = arguments[_i];\n }\n return {\n concat: function (x, y) { return semigroups.map(function (s, i) { return s.concat(x[i], y[i]); }); }\n };\n};\n/**\n * Use `getTupleSemigroup` instead\n * @since 1.0.0\n * @deprecated\n */\nexports.getProductSemigroup = function (SA, SB) {\n return exports.getTupleSemigroup(SA, SB);\n};\n/**\n * @since 1.0.0\n */\nexports.getDualSemigroup = function (S) {\n return {\n concat: function (x, y) { return S.concat(y, x); }\n };\n};\n/**\n * @since 1.0.0\n */\nexports.getFunctionSemigroup = function (S) { return function () {\n return {\n concat: function (f, g) { return function (a) { return S.concat(f(a), g(a)); }; }\n };\n}; };\n/**\n * @since 1.14.0\n */\nexports.getStructSemigroup = function (semigroups) {\n return {\n concat: function (x, y) {\n var r = {};\n for (var _i = 0, _a = Object.keys(semigroups); _i < _a.length; _i++) {\n var key = _a[_i];\n r[key] = semigroups[key].concat(x[key], y[key]);\n }\n return r;\n }\n };\n};\n/**\n * Use `getStructSemigroup` instead\n * @since 1.0.0\n * @deprecated\n */\nexports.getRecordSemigroup = function (semigroups) {\n return exports.getStructSemigroup(semigroups);\n};\n/**\n * @since 1.0.0\n */\nexports.getMeetSemigroup = function (O) {\n return {\n concat: Ord_1.min(O)\n };\n};\n/**\n * @since 1.0.0\n */\nexports.getJoinSemigroup = function (O) {\n return {\n concat: Ord_1.max(O)\n };\n};\n/**\n * Boolean semigroup under conjunction\n * @since 1.0.0\n */\nexports.semigroupAll = {\n concat: function (x, y) { return x && y; }\n};\n/**\n * Boolean semigroup under disjunction\n * @since 1.0.0\n */\nexports.semigroupAny = {\n concat: function (x, y) { return x || y; }\n};\n/**\n * Use `Array`'s `getMonoid`\n *\n * @since 1.0.0\n * @deprecated\n */\nexports.getArraySemigroup = function () {\n return { concat: function_1.concat };\n};\nfunction getDictionarySemigroup(S) {\n return {\n concat: function (x, y) {\n var r = __assign({}, x);\n var keys = Object.keys(y);\n var len = keys.length;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n r[k] = x.hasOwnProperty(k) ? S.concat(x[k], y[k]) : y[k];\n }\n return r;\n }\n };\n}\nexports.getDictionarySemigroup = getDictionarySemigroup;\n// tslint:disable-next-line: deprecation\nvar semigroupAnyDictionary = getDictionarySemigroup(exports.getLastSemigroup());\n/**\n * Returns a `Semigroup` instance for objects preserving their type\n *\n * @example\n * import { getObjectSemigroup } from 'fp-ts/lib/Semigroup'\n *\n * interface Person {\n * name: string\n * age: number\n * }\n *\n * const S = getObjectSemigroup()\n * assert.deepStrictEqual(S.concat({ name: 'name', age: 23 }, { name: 'name', age: 24 }), { name: 'name', age: 24 })\n *\n * @since 1.4.0\n */\nexports.getObjectSemigroup = function () {\n return semigroupAnyDictionary;\n};\n/**\n * Number `Semigroup` under addition\n * @since 1.0.0\n */\nexports.semigroupSum = {\n concat: function (x, y) { return x + y; }\n};\n/**\n * Number `Semigroup` under multiplication\n * @since 1.0.0\n */\nexports.semigroupProduct = {\n concat: function (x, y) { return x * y; }\n};\n/**\n * @since 1.0.0\n */\nexports.semigroupString = {\n concat: function (x, y) { return x + y; }\n};\n/**\n * @since 1.0.0\n */\nexports.semigroupVoid = {\n concat: function () { return undefined; }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @since 1.0.0\n */\nexports.identity = function (a) {\n return a;\n};\n/**\n * @since 1.0.0\n */\nexports.unsafeCoerce = exports.identity;\n/**\n * @since 1.0.0\n */\nexports.not = function (predicate) {\n return function (a) { return !predicate(a); };\n};\nfunction or(p1, p2) {\n return function (a) { return p1(a) || p2(a); };\n}\nexports.or = or;\n/**\n * @since 1.0.0\n * @deprecated\n */\nexports.and = function (p1, p2) {\n return function (a) { return p1(a) && p2(a); };\n};\n/**\n * @since 1.0.0\n */\nexports.constant = function (a) {\n return function () { return a; };\n};\n/**\n * A thunk that returns always `true`\n *\n * @since 1.0.0\n */\nexports.constTrue = function () {\n return true;\n};\n/**\n * A thunk that returns always `false`\n *\n * @since 1.0.0\n */\nexports.constFalse = function () {\n return false;\n};\n/**\n * A thunk that returns always `null`\n *\n * @since 1.0.0\n */\nexports.constNull = function () {\n return null;\n};\n/**\n * A thunk that returns always `undefined`\n *\n * @since 1.0.0\n */\nexports.constUndefined = function () {\n return;\n};\n/**\n * A thunk that returns always `void`\n *\n * @since 1.14.0\n */\nexports.constVoid = function () {\n return;\n};\n/**\n * Flips the order of the arguments to a function of two arguments.\n *\n * @since 1.0.0\n */\n// tslint:disable-next-line: deprecation\nexports.flip = function (f) {\n return function (b) { return function (a) { return f(a)(b); }; };\n};\n/**\n * The `on` function is used to change the domain of a binary operator.\n *\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.on = function (op) { return function (f) {\n return function (x, y) { return op(f(x), f(y)); };\n}; };\nfunction compose() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n var len = fns.length - 1;\n return function (x) {\n var y = x;\n for (var i = len; i > -1; i--) {\n y = fns[i].call(this, y);\n }\n return y;\n };\n}\nexports.compose = compose;\nfunction pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n var len = fns.length - 1;\n return function (x) {\n var y = x;\n for (var i = 0; i <= len; i++) {\n y = fns[i].call(this, y);\n }\n return y;\n };\n}\nexports.pipe = pipe;\n/**\n * @since 1.0.0\n * @deprecated\n */\nexports.concat = function (x, y) {\n var lenx = x.length;\n if (lenx === 0) {\n return y;\n }\n var leny = y.length;\n if (leny === 0) {\n return x;\n }\n var r = Array(lenx + leny);\n for (var i = 0; i < lenx; i++) {\n r[i] = x[i];\n }\n for (var i = 0; i < leny; i++) {\n r[i + lenx] = y[i];\n }\n return r;\n};\n/**\n * @since 1.0.0\n * @deprecated\n */\nfunction curried(f, n, acc) {\n return function (x) {\n // tslint:disable-next-line: deprecation\n var combined = exports.concat(acc, [x]);\n // tslint:disable-next-line: deprecation\n return n === 0 ? f.apply(this, combined) : curried(f, n - 1, combined);\n };\n}\nexports.curried = curried;\nfunction curry(f) {\n // tslint:disable-next-line: deprecation\n return curried(f, f.length - 1, []);\n}\nexports.curry = curry;\n/* tslint:disable-next-line */\nvar getFunctionName = function (f) { return f.displayName || f.name || \"\"; };\n/**\n * @since 1.0.0\n * @deprecated\n */\nexports.toString = function (x) {\n if (typeof x === 'string') {\n return JSON.stringify(x);\n }\n if (x instanceof Date) {\n return \"new Date('\" + x.toISOString() + \"')\";\n }\n if (Array.isArray(x)) {\n // tslint:disable-next-line: deprecation\n return \"[\" + x.map(exports.toString).join(', ') + \"]\";\n }\n if (typeof x === 'function') {\n return getFunctionName(x);\n }\n if (x == null) {\n return String(x);\n }\n if (typeof x.toString === 'function' && x.toString !== Object.prototype.toString) {\n return x.toString();\n }\n try {\n return JSON.stringify(x, null, 2);\n }\n catch (e) {\n return String(x);\n }\n};\n/**\n * @since 1.0.0\n */\nexports.tuple = function () {\n var t = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n return t;\n};\n/**\n * @since 1.0.0\n * @deprecated\n */\nexports.tupleCurried = function (a) { return function (b) {\n return [a, b];\n}; };\n/**\n * Applies a function to an argument ($)\n *\n * @since 1.0.0\n * @deprecated\n */\nexports.apply = function (f) { return function (a) {\n return f(a);\n}; };\n/**\n * Applies an argument to a function (#)\n *\n * @since 1.0.0\n * @deprecated\n */\nexports.applyFlipped = function (a) { return function (f) {\n return f(a);\n}; };\n/**\n * For use with phantom fields\n *\n * @since 1.0.0\n * @deprecated\n */\nexports.phantom = undefined;\n/**\n * A thunk that returns always the `identity` function.\n * For use with `applySecond` methods.\n *\n * @since 1.5.0\n * @deprecated\n */\nexports.constIdentity = function () {\n return exports.identity;\n};\n/**\n * @since 1.9.0\n */\nexports.increment = function (n) {\n return n + 1;\n};\n/**\n * @since 1.9.0\n */\nexports.decrement = function (n) {\n return n - 1;\n};\n/**\n * @since 1.18.0\n */\nfunction absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\n}\nexports.absurd = absurd;\nfunction flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n}\nexports.flow = flow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar function_1 = require(\"./function\");\nfunction pipe(a, ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n case 10:\n return ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))));\n }\n}\nexports.pipe = pipe;\nvar isFunctor = function (I) { return typeof I.map === 'function'; };\nvar isContravariant = function (I) { return typeof I.contramap === 'function'; };\nvar isFunctorWithIndex = function (I) { return typeof I.mapWithIndex === 'function'; };\nvar isApply = function (I) { return typeof I.ap === 'function'; };\nvar isChain = function (I) { return typeof I.chain === 'function'; };\nvar isBifunctor = function (I) { return typeof I.bimap === 'function'; };\nvar isExtend = function (I) { return typeof I.extend === 'function'; };\nvar isFoldable = function (I) { return typeof I.reduce === 'function'; };\nvar isFoldableWithIndex = function (I) { return typeof I.reduceWithIndex === 'function'; };\nvar isAlt = function (I) { return typeof I.alt === 'function'; };\nvar isCompactable = function (I) { return typeof I.compact === 'function'; };\nvar isFilterable = function (I) { return typeof I.filter === 'function'; };\nvar isFilterableWithIndex = function (I) {\n return typeof I.filterWithIndex === 'function';\n};\nvar isProfunctor = function (I) { return typeof I.promap === 'function'; };\nvar isSemigroupoid = function (I) { return typeof I.compose === 'function'; };\nvar isMonadThrow = function (I) { return typeof I.throwError === 'function'; };\nfunction pipeable(I) {\n var r = {};\n if (isFunctor(I)) {\n var map = function (f) { return function (fa) { return I.map(fa, f); }; };\n r.map = map;\n }\n if (isContravariant(I)) {\n var contramap = function (f) { return function (fa) { return I.contramap(fa, f); }; };\n r.contramap = contramap;\n }\n if (isFunctorWithIndex(I)) {\n var mapWithIndex = function (f) { return function (fa) { return I.mapWithIndex(fa, f); }; };\n r.mapWithIndex = mapWithIndex;\n }\n if (isApply(I)) {\n var ap = function (fa) { return function (fab) { return I.ap(fab, fa); }; };\n var apFirst = function (fb) { return function (fa) { return I.ap(I.map(fa, function (a) { return function () { return a; }; }), fb); }; };\n r.ap = ap;\n r.apFirst = apFirst;\n r.apSecond = function (fb) { return function (fa) { return I.ap(I.map(fa, function () { return function (b) { return b; }; }), fb); }; };\n }\n if (isChain(I)) {\n var chain = function (f) { return function (ma) { return I.chain(ma, f); }; };\n var chainFirst = function (f) { return function (ma) { return I.chain(ma, function (a) { return I.map(f(a), function () { return a; }); }); }; };\n var flatten = function (mma) { return I.chain(mma, function_1.identity); };\n r.chain = chain;\n r.chainFirst = chainFirst;\n r.flatten = flatten;\n }\n if (isBifunctor(I)) {\n var bimap = function (f, g) { return function (fa) { return I.bimap(fa, f, g); }; };\n var mapLeft = function (f) { return function (fa) { return I.bimap(fa, f, function_1.identity); }; };\n r.bimap = bimap;\n r.mapLeft = mapLeft;\n }\n if (isExtend(I)) {\n var extend = function (f) { return function (wa) { return I.extend(wa, f); }; };\n var duplicate = function (wa) { return I.extend(wa, function_1.identity); };\n r.extend = extend;\n r.duplicate = duplicate;\n }\n if (isFoldable(I)) {\n var reduce = function (b, f) { return function (fa) { return I.reduce(fa, b, f); }; };\n var foldMap = function (M) {\n var foldMapM = I.foldMap(M);\n return function (f) { return function (fa) { return foldMapM(fa, f); }; };\n };\n var reduceRight = function (b, f) { return function (fa) { return I.foldr(fa, b, f); }; };\n r.reduce = reduce;\n r.foldMap = foldMap;\n r.reduceRight = reduceRight;\n }\n if (isFoldableWithIndex(I)) {\n var reduceWithIndex = function (b, f) { return function (fa) {\n return I.reduceWithIndex(fa, b, f);\n }; };\n var foldMapWithIndex = function (M) {\n var foldMapM = I.foldMapWithIndex(M);\n return function (f) { return function (fa) { return foldMapM(fa, f); }; };\n };\n var reduceRightWithIndex = function (b, f) { return function (fa) {\n return I.foldrWithIndex(fa, b, f);\n }; };\n r.reduceWithIndex = reduceWithIndex;\n r.foldMapWithIndex = foldMapWithIndex;\n r.reduceRightWithIndex = reduceRightWithIndex;\n }\n if (isAlt(I)) {\n var alt = function (that) { return function (fa) { return I.alt(fa, that()); }; };\n r.alt = alt;\n }\n if (isCompactable(I)) {\n r.compact = I.compact;\n r.separate = I.separate;\n }\n if (isFilterable(I)) {\n var filter = function (predicate) { return function (fa) {\n return I.filter(fa, predicate);\n }; };\n var filterMap = function (f) { return function (fa) { return I.filterMap(fa, f); }; };\n var partition = function (predicate) { return function (fa) {\n return I.partition(fa, predicate);\n }; };\n var partitionMap = function (f) { return function (fa) { return I.partitionMap(fa, f); }; };\n r.filter = filter;\n r.filterMap = filterMap;\n r.partition = partition;\n r.partitionMap = partitionMap;\n }\n if (isFilterableWithIndex(I)) {\n var filterWithIndex = function (predicateWithIndex) { return function (fa) { return I.filterWithIndex(fa, predicateWithIndex); }; };\n var filterMapWithIndex = function (f) { return function (fa) {\n return I.filterMapWithIndex(fa, f);\n }; };\n var partitionWithIndex = function (predicateWithIndex) { return function (fa) { return I.partitionWithIndex(fa, predicateWithIndex); }; };\n var partitionMapWithIndex = function (f) { return function (fa) {\n return I.partitionMapWithIndex(fa, f);\n }; };\n r.filterWithIndex = filterWithIndex;\n r.filterMapWithIndex = filterMapWithIndex;\n r.partitionWithIndex = partitionWithIndex;\n r.partitionMapWithIndex = partitionMapWithIndex;\n }\n if (isProfunctor(I)) {\n var promap = function (f, g) { return function (fa) { return I.promap(fa, f, g); }; };\n r.promap = promap;\n }\n if (isSemigroupoid(I)) {\n var compose = function (that) { return function (fa) {\n return I.compose(fa, that);\n }; };\n r.compose = compose;\n }\n if (isMonadThrow(I)) {\n var fromOption = function (onNone) { return function (ma) {\n return ma._tag === 'None' ? I.throwError(onNone()) : I.of(ma.value);\n }; };\n var fromEither = function (ma) {\n return ma._tag === 'Left' ? I.throwError(ma.value) : I.of(ma.value);\n };\n var fromPredicate = function (predicate, onFalse) { return function (a) { return (predicate(a) ? I.of(a) : I.throwError(onFalse(a))); }; };\n var filterOrElse = function (predicate, onFalse) { return function (ma) { return I.chain(ma, function (a) { return (predicate(a) ? I.of(a) : I.throwError(onFalse(a))); }); }; };\n r.fromOption = fromOption;\n r.fromEither = fromEither;\n r.fromPredicate = fromPredicate;\n r.filterOrElse = filterOrElse;\n }\n return r;\n}\nexports.pipeable = pipeable;\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n",null,null,null,null,"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","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 { 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","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: QueryState\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: QueryState,\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 { 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 { 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 { 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","'use client'\n\nimport * as devtools from './devtools'\n\nexport const ReactQueryDevtools: typeof devtools['ReactQueryDevtools'] =\n process.env.NODE_ENV !== 'development'\n ? function () {\n return null\n }\n : devtools.ReactQueryDevtools\n\nexport const ReactQueryDevtoolsPanel: typeof devtools['ReactQueryDevtoolsPanel'] =\n process.env.NODE_ENV !== 'development'\n ? (function () {\n return null\n } as any)\n : devtools.ReactQueryDevtoolsPanel\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","import type { DefaultedQueryObserverOptions, RefetchPageFilters } from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Query, QueryState, Action, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\n\ntype QueryObserverListener = (\n result: QueryObserverResult,\n) => void\n\nexport interface NotifyOptions {\n cache?: boolean\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n private client: QueryClient\n private currentQuery!: Query\n private currentQueryInitialState!: QueryState\n private currentResult!: QueryObserverResult\n private currentResultState?: QueryState\n private currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n private previousQueryResult?: QueryObserverResult\n private selectError: TError | null\n private selectFn?: (data: TQueryData) => TData\n private selectResult?: TData\n private staleTimeoutId?: ReturnType\n private refetchIntervalId?: ReturnType\n private currentRefetchInterval?: number | false\n private trackedProps!: Set\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.client = client\n this.options = options\n this.trackedProps = new Set()\n this.selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.remove = this.remove.bind(this)\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 1) {\n this.currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch()\n }\n\n this.updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.length) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = []\n this.clearStaleTimeout()\n this.clearRefetchInterval()\n this.currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.currentQuery\n\n this.options = this.client.defaultQueryOptions(options)\n\n if (\n process.env.NODE_ENV !== 'production' &&\n typeof options?.isDataEqual !== 'undefined'\n ) {\n this.client\n .getLogger()\n .error(\n `The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option`,\n )\n }\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.executeFetch()\n }\n\n // Update result\n this.updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.currentRefetchInterval)\n ) {\n this.updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult {\n const query = this.client.getQueryCache().build(this.client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult {\n return this.currentResult\n }\n\n trackResult(\n result: QueryObserverResult,\n ): QueryObserverResult {\n const trackedResult = {} as QueryObserverResult\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query {\n return this.currentQuery\n }\n\n remove(): void {\n this.client.getQueryCache().remove(this.currentQuery)\n }\n\n refetch({\n refetchPage,\n ...options\n }: RefetchOptions & RefetchPageFilters = {}): Promise<\n QueryObserverResult\n > {\n return this.fetch({\n ...options,\n meta: { refetchPage },\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise> {\n const defaultedOptions = this.client.defaultQueryOptions(options)\n\n const query = this.client\n .getQueryCache()\n .build(this.client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise> {\n return this.executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.updateResult()\n return this.currentResult\n })\n }\n\n private executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery()\n\n // Fetch\n let promise: Promise = this.currentQuery.fetch(\n this.options as QueryOptions,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n private updateStaleTimeout(): void {\n this.clearStaleTimeout()\n\n if (\n isServer ||\n this.currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.staleTimeoutId = setTimeout(() => {\n if (!this.currentResult.isStale) {\n this.updateResult()\n }\n }, timeout)\n }\n\n private computeRefetchInterval() {\n return typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(this.currentResult.data, this.currentQuery)\n : this.options.refetchInterval ?? false\n }\n\n private updateRefetchInterval(nextInterval: number | false): void {\n this.clearRefetchInterval()\n\n this.currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.currentRefetchInterval) ||\n this.currentRefetchInterval === 0\n ) {\n return\n }\n\n this.refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.executeFetch()\n }\n }, this.currentRefetchInterval)\n }\n\n private updateTimers(): void {\n this.updateStaleTimeout()\n this.updateRefetchInterval(this.computeRefetchInterval())\n }\n\n private clearStaleTimeout(): void {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId)\n this.staleTimeoutId = undefined\n }\n }\n\n private clearRefetchInterval(): void {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId)\n this.refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult {\n const prevQuery = this.currentQuery\n const prevOptions = this.options\n const prevResult = this.currentResult as\n | QueryObserverResult\n | undefined\n const prevResultState = this.currentResultState\n const prevResultOptions = this.currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.currentQueryInitialState\n const prevQueryResult = queryChange\n ? this.currentResult\n : this.previousQueryResult\n\n const { state } = query\n let { dataUpdatedAt, error, errorUpdatedAt, fetchStatus, status } = state\n let isPreviousData = false\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!dataUpdatedAt) {\n status = 'loading'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Keep previous data if needed\n if (\n options.keepPreviousData &&\n !state.dataUpdatedAt &&\n prevQueryResult?.isSuccess &&\n status !== 'error'\n ) {\n data = prevQueryResult.data\n dataUpdatedAt = prevQueryResult.dataUpdatedAt\n status = prevQueryResult.status\n isPreviousData = true\n }\n // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.selectFn\n ) {\n data = this.selectResult\n } else {\n try {\n this.selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.selectResult = data\n this.selectError = null\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\n this.selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'loading'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (options.placeholderData as PlaceholderDataFunction)()\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.selectError = null\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\n this.selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(prevResult?.data, placeholderData, options) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.selectError) {\n error = this.selectError as any\n data = this.selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isLoading = status === 'loading'\n const isError = status === 'error'\n\n const result: QueryObserverBaseResult = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove,\n }\n\n return result as QueryObserverResult\n }\n\n updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.currentResult as\n | QueryObserverResult\n | undefined\n\n const nextResult = this.createResult(this.currentQuery, this.options)\n this.currentResultState = this.currentQuery.state\n this.currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n this.currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = { cache: true }\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.trackedProps)\n\n if (this.options.useErrorBoundary) {\n includedProps.add('error')\n }\n\n return Object.keys(this.currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n private updateQuery(): void {\n const query = this.client.getQueryCache().build(this.client, this.options)\n\n if (query === this.currentQuery) {\n return\n }\n\n const prevQuery = this.currentQuery as\n | Query\n | undefined\n this.currentQuery = query\n this.currentQueryInitialState = query.state\n this.previousQueryResult = this.currentResult\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.updateTimers()\n }\n }\n\n private notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.currentResult.data!)\n this.options.onSettled?.(this.currentResult.data!, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.currentResult.error!)\n this.options.onSettled?.(undefined, this.currentResult.error!)\n }\n\n // Then trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.currentResult)\n })\n }\n\n // Then the cache listeners\n if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated',\n })\n }\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query,\n options: QueryObserverOptions,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query,\n options: QueryObserverOptions,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query,\n options: QueryObserverOptions,\n field: typeof options['refetchOnMount'] &\n typeof options['refetchOnWindowFocus'] &\n typeof options['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query,\n prevQuery: Query,\n options: QueryObserverOptions,\n prevOptions: QueryObserverOptions,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query,\n options: QueryObserverOptions,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n","'use client'\nimport * as React from 'react'\n\n// CONTEXT\n\nexport interface QueryErrorResetBoundaryValue {\n clearReset: () => void\n isReset: () => boolean\n reset: () => void\n}\n\nfunction createValue(): QueryErrorResetBoundaryValue {\n let isReset = false\n return {\n clearReset: () => {\n isReset = false\n },\n reset: () => {\n isReset = true\n },\n isReset: () => {\n return isReset\n },\n }\n}\n\nconst QueryErrorResetBoundaryContext = React.createContext(createValue())\n\n// HOOK\n\nexport const useQueryErrorResetBoundary = () =>\n React.useContext(QueryErrorResetBoundaryContext)\n\n// COMPONENT\n\nexport interface QueryErrorResetBoundaryProps {\n children:\n | ((value: QueryErrorResetBoundaryValue) => React.ReactNode)\n | React.ReactNode\n}\n\nexport const QueryErrorResetBoundary = ({\n children,\n}: QueryErrorResetBoundaryProps) => {\n const [value] = React.useState(() => createValue())\n return (\n \n {typeof children === 'function'\n ? (children as Function)(value)\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","import type {\n DefaultedQueryObserverOptions,\n Query,\n QueryKey,\n QueryObserverResult,\n UseErrorBoundary,\n} from '@tanstack/query-core'\nimport type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary'\nimport * as React from 'react'\nimport { shouldThrowError } from './utils'\n\nexport const ensurePreventErrorBoundaryRetry = <\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n errorResetBoundary: QueryErrorResetBoundaryValue,\n) => {\n if (options.suspense || options.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false\n }\n }\n}\n\nexport const useClearResetErrorBoundary = (\n errorResetBoundary: QueryErrorResetBoundaryValue,\n) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset()\n }, [errorResetBoundary])\n}\n\nexport const getHasError = <\n TData,\n TError,\n TQueryFnData,\n TQueryData,\n TQueryKey extends QueryKey,\n>({\n result,\n errorResetBoundary,\n useErrorBoundary,\n query,\n}: {\n result: QueryObserverResult\n errorResetBoundary: QueryErrorResetBoundaryValue\n useErrorBoundary: UseErrorBoundary<\n TQueryFnData,\n TError,\n TQueryData,\n TQueryKey\n >\n query: Query\n}) => {\n return (\n result.isError &&\n !errorResetBoundary.isReset() &&\n !result.isFetching &&\n shouldThrowError(useErrorBoundary, [result.error, query])\n )\n}\n","import type { DefaultedQueryObserverOptions } from '@tanstack/query-core'\nimport type { QueryObserver } from '@tanstack/query-core'\nimport type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary'\nimport type { QueryObserverResult } from '@tanstack/query-core'\nimport type { QueryKey } from '@tanstack/query-core'\n\nexport const ensureStaleTime = (\n defaultedOptions: DefaultedQueryObserverOptions,\n) => {\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000\n }\n }\n}\n\nexport const willFetch = (\n result: QueryObserverResult,\n isRestoring: boolean,\n) => result.isLoading && result.isFetching && !isRestoring\n\nexport const shouldSuspend = (\n defaultedOptions:\n | DefaultedQueryObserverOptions\n | undefined,\n result: QueryObserverResult,\n isRestoring: boolean,\n) => defaultedOptions?.suspense && willFetch(result, isRestoring)\n\nexport const fetchOptimistic = <\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n defaultedOptions: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n observer: QueryObserver,\n errorResetBoundary: QueryErrorResetBoundaryValue,\n) =>\n observer\n .fetchOptimistic(defaultedOptions)\n .then(({ data }) => {\n defaultedOptions.onSuccess?.(data as TData)\n defaultedOptions.onSettled?.(data, null)\n })\n .catch((error) => {\n errorResetBoundary.clearReset()\n defaultedOptions.onError?.(error)\n defaultedOptions.onSettled?.(undefined, error)\n })\n","import type { QueryFunction, QueryKey } from '@tanstack/query-core'\nimport { parseQueryArgs, QueryObserver } from '@tanstack/query-core'\nimport type {\n DefinedUseQueryResult,\n UseQueryOptions,\n UseQueryResult,\n} from './types'\nimport { useBaseQuery } from './useBaseQuery'\n\n// HOOK\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions,\n 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryResult\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions,\n 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): DefinedUseQueryResult\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions,\n): UseQueryResult\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions,\n 'queryKey' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryResult\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions,\n 'queryKey' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): DefinedUseQueryResult\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions,\n 'queryKey'\n >,\n): UseQueryResult\n\nexport function useQuery<\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 UseQueryOptions,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryResult\n\nexport function useQuery<\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 UseQueryOptions,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): DefinedUseQueryResult\n\nexport function useQuery<\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 UseQueryOptions,\n 'queryKey' | 'queryFn'\n >,\n): UseQueryResult\n\nexport function useQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1: TQueryKey | UseQueryOptions,\n arg2?:\n | QueryFunction\n | UseQueryOptions,\n arg3?: UseQueryOptions,\n): UseQueryResult {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n return useBaseQuery(parsedOptions, QueryObserver)\n}\n","import * as React from 'react'\nimport { useSyncExternalStore } from './useSyncExternalStore'\n\nimport type { QueryKey, QueryObserver } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { UseBaseQueryOptions } from './types'\nimport { useIsRestoring } from './isRestoring'\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary,\n} from './errorBoundaryUtils'\nimport { ensureStaleTime, shouldSuspend, fetchOptimistic } from './suspense'\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: UseBaseQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n Observer: typeof QueryObserver,\n) {\n const queryClient = useQueryClient({ context: options.context })\n const isRestoring = useIsRestoring()\n const errorResetBoundary = useQueryErrorResetBoundary()\n const defaultedOptions = queryClient.defaultQueryOptions(options)\n\n // Make sure results are optimistically set in fetching state before subscribing or updating options\n defaultedOptions._optimisticResults = isRestoring\n ? 'isRestoring'\n : 'optimistic'\n\n // Include callbacks in batch renders\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(\n defaultedOptions.onError,\n )\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(\n defaultedOptions.onSuccess,\n )\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(\n defaultedOptions.onSettled,\n )\n }\n\n ensureStaleTime(defaultedOptions)\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary)\n\n useClearResetErrorBoundary(errorResetBoundary)\n\n const [observer] = React.useState(\n () =>\n new Observer(\n queryClient,\n defaultedOptions,\n ),\n )\n\n const result = observer.getOptimisticResult(defaultedOptions)\n\n useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n isRestoring\n ? () => undefined\n : observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer, isRestoring],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n React.useEffect(() => {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, { listeners: false })\n }, [defaultedOptions, observer])\n\n // Handle suspense\n if (shouldSuspend(defaultedOptions, result, isRestoring)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n }\n\n // Handle error boundary\n if (\n getHasError({\n result,\n errorResetBoundary,\n useErrorBoundary: defaultedOptions.useErrorBoundary,\n query: observer.getCurrentQuery(),\n })\n ) {\n throw result.error\n }\n\n // Handle result property usage tracking\n return !defaultedOptions.notifyOnChangeProps\n ? observer.trackResult(result)\n : result\n}\n","// Temporary workaround due to an issue with react-native uSES - https://github.com/TanStack/query/pull/3601\nimport { useSyncExternalStore as uSES } from 'use-sync-external-store/shim/index.js'\n\nexport const useSyncExternalStore = uSES\n","export function shouldThrowError boolean>(\n _useErrorBoundary: boolean | T | undefined,\n params: Parameters,\n): boolean {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary(...params)\n }\n\n return !!_useErrorBoundary\n}\n"],"names":["I18nActionTypes","ChangeLocale","GetContent","GetContentSuccess","GetContentFailed","ToggleMessageIds","getContent","appName","arguments","length","undefined","defaultAppName","partnerName","type","payload","toggleMessageIds","getContentSuccess","content","getContentFailed","fetchContent","locale","preview","partner","window","tidyCMSContent","tidyCMSContentForPartner","getPreviewContent","config","then","getPublishedContent","localStorageExists","localStorage","saveChosenLocaleInLocalStorage","setItem","Promise","resolve","reject","getLocaleFromWindowData","decodeWindowNameData","name","chain","data","fromNullable","toNullable","saveLocaleInWindowName","JSON","stringify","tag","_type","createWindowNameData","something","decoded","parse","some","none","loadChosenLocaleFromLocalStorage","getItem","messageList","messages","defaultMessages","filter","message","PartnerName","getDefaultPartnerName","getDefaultMessages","envSpecificMessages","getEnvironmentSpecificMessages","toMap","reduce","messageMap","id","text","styled","fallbackLanguage","replaceMessagesWithIds","Object","keys","newKeys","key","calcDefaultLocale","defaultLocale","fallbackLang","isEmpty","I18nProvider","React","componentDidMount","this","props","isContentReady","getMessages","render","externalMessages","isMessageIdsVisible","isPreview","textComponent","_jsx","localeKey","combinedMessages","_jsxs","_Fragment","children","PreviewMenu","onClick","IntlProvider","browserLanguage","navigator","languages","language","userLanguage","localStorageLanguage","selectLanguage","availableLanguages","browserLang","localStorageLang","languageIsValid","alt","getOrElse","searchLocale","map","l","find","lang","includes","initialState","changeLocale","isContentLoadAttempted","createReducer","initialLocale","derivedState","query","location","search","indexOf","state","action","payloadAppName","loop","Cmd","args","successActionCreator","failActionCreator","getI18nState","get","i18n","getLocale","getAppName","fold","getContentIsReady","internalContentIsReady","_window","Boolean","origin","devMode","isSome","defineProperty","exports","value","pipeable_1","require","fromEquals","equals","x","y","strictEqual","a","b","URI","eqStrict","eqString","eqNumber","eqBoolean","getStructEq","eqs","k","getTupleEq","_i","every","E","i","eq","contramap","fa","f","pipeable","eqDate","date","valueOf","__assign","assign","t","s","n","p","prototype","hasOwnProperty","call","apply","function_1","Semigroup_1","M","empty","getTupleMonoid","monoids","getTupleSemigroup","m","getProductMonoid","MA","MB","getDualMonoid","getDualSemigroup","monoidAll","semigroupAll","monoidAny","semigroupAny","unsafeMonoidArray","concat","getArrayMonoid","emptyObject","getDictionaryMonoid","S","getDictionarySemigroup","monoidSum","semigroupSum","monoidProduct","semigroupProduct","monoidString","semigroupString","monoidVoid","semigroupVoid","getFunctionMonoid","getFunctionSemigroup","getEndomorphismMonoid","identity","getStructMonoid","_a","getStructSemigroup","getRecordMonoid","getMeetMonoid","B","getMeetSemigroup","top","getJoinMonoid","getJoinSemigroup","bottom","Monoid_1","Ord_1","Eq_1","None","_tag","mapNullable","ap","fab","ap_","fb","orElse","extend","onSome","foldL","onNone","getOrElseL","toUndefined","inspect","toString","contains","isNone","exists","refine","refinement","Some","getEq","getShow","show","oa","getSetoid","getOrd","O","fromCompare","compare","getApplySemigroup","getApplyMonoid","getFirstMonoid","option","getLastMonoid","getMonoid","fromPredicate","predicate","tryCatch","e","fromEither","isLeft","fromRefinement","getRefinement","getOption","defaultSeparate","left","right","getLeft","ma","getRight","of","mab","foldMap","foldr","traverse","F","ta","sequence","zero","mx","my","wa","compact","separate","o","filterMap","partition","partitionMap","wither","wilt","throwError","fromOption","elem","apFirst","apSecond","chainFirst","duplicate","flatten","reduceRight","Ordering_1","_contramap","on","unsafeCompare","ordString","ordNumber","ordBoolean","lt","lessThan","gt","greaterThan","leq","lessThanOrEq","geq","greaterThanOrEq","min","max","clamp","minO","maxO","low","hi","between","lessThanO","greaterThanO","optimizedCompare","getSemigroup","semigroupOrdering","getTupleOrd","ords","len","r","getProductOrd","OA","OB","getDualOrd","ord","ordDate","sign","eqOrdering","setoidOrdering","invert","as","getFirstSemigroup","getLastSemigroup","_","semigroups","getProductSemigroup","SA","SB","g","getRecordSemigroup","getArraySemigroup","semigroupAnyDictionary","getObjectSemigroup","curried","acc","combined","unsafeCoerce","not","or","p1","p2","and","constant","constTrue","constFalse","constNull","constUndefined","constVoid","flip","op","compose","fns","pipe","lenx","leny","Array","curry","Date","toISOString","isArray","join","displayName","String","tuple","tupleCurried","applyFlipped","phantom","constIdentity","increment","decrement","absurd","Error","flow","ab","bc","cd","de","ef","fg","gh","ij","isFunctor","I","isContravariant","isFunctorWithIndex","mapWithIndex","isApply","isChain","isBifunctor","bimap","isExtend","isFoldable","isFoldableWithIndex","reduceWithIndex","isAlt","isCompactable","isFilterable","isFilterableWithIndex","filterWithIndex","isProfunctor","promap","isSemigroupoid","isMonadThrow","mma","mapLeft","foldMapM","foldMapWithIndex","reduceRightWithIndex","foldrWithIndex","that","predicateWithIndex","filterMapWithIndex","partitionWithIndex","partitionMapWithIndex","onFalse","filterOrElse","is","useState","useEffect","useLayoutEffect","useDebugValue","getSnapshot","d","u","document","createElement","inst","c","useSyncExternalStore","module","Logger","getLogger","loggerInstance","setLogger","logger","console","urlAndGlobal","index","substring","keyOrRuntimeRemoteItem","tslib_1","__awaiter","loadScript","asyncContainer","proxy_1","init","shareScope","initScope","__initialized","__webpack_share_scopes__","default","delegate","params","queries","entries","_b","push","runtimeRemotes","remoteVars","process","REMOTES","item","startsWith","log","extractUrlAndGlobal","url","global_1","global","err","warn","getRuntimeRemotes","reference","remoteGlobal_1","containerKey_1","uniqueKey","__webpack_error__1","__remote_scope__","_config","globalScope_1","remoteLoading","resolveRemoteGlobal","__webpack_require__","event","errorType","realSrc","target","src","request","container","__webpack_init_sharing__","createContainerSharingScope","remotes","remote","promiseCall","replace","remoteContainer","injectScript","sent","modulePath","exportName","getContainer","modFactory","mod","error_1","loadRemote","scope","bustRemoteEntryCache","timestamp","getTime","error","remoteEntryFileName","_c","remoteScope","remoteUrl","_e","all","webpackShareScopes","containerScope","__initializing","_d","moduleFactory","obj","FocusManager","Subscribable","constructor","super","setup","onFocus","isServer","addEventListener","listener","removeEventListener","onSubscribe","cleanup","setEventListener","onUnsubscribe","_this$cleanup","hasListeners","_this$cleanup2","focused","setFocused","listeners","forEach","isFocused","visibilityState","focusManager","defaultLogger","notifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","schedule","scheduleMicrotask","flush","originalQueue","batch","result","batchCalls","_len","_key","setNotifyFunction","fn","setBatchNotifyFunction","createNotifyManager","OnlineManager","onOnline","online","setOnline","isOnline","onLine","onlineManager","Query","Removable","abortSignalConsumed","defaultOptions","setOptions","options","observers","cache","queryKey","queryHash","initialData","hasData","initialDataUpdatedAt","dataUpdateCount","dataUpdatedAt","now","errorUpdateCount","errorUpdatedAt","fetchFailureCount","fetchFailureReason","fetchMeta","isInvalidated","status","fetchStatus","getDefaultState","scheduleGc","meta","updateCacheTime","cacheTime","optionalRemove","remove","setData","newData","replaceData","dispatch","updatedAt","manual","setState","setStateOptions","cancel","_this$retryer","promise","retryer","noop","catch","destroy","silent","reset","isActive","observer","enabled","isDisabled","getObserversCount","isStale","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","_this$retryer2","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","_this$retryer3","shouldFetchOnReconnect","addObserver","clearGcTimeout","notify","removeObserver","revert","cancelRetry","invalidate","fetch","fetchOptions","_this$options$behavio","_context$fetchOptions","_this$retryer4","continueRetry","queryFn","abortController","getAbortController","queryFnContext","pageParam","addSignalProperty","object","enumerable","signal","context","fetchFn","_context$fetchOptions2","behavior","onFetch","revertState","onError","_this$cache$config$on","_this$cache$config","_this$cache$config$on2","_this$cache$config2","isCancelledError","onSettled","isFetchingOptimistic","createRetryer","abort","bind","onSuccess","_this$cache$config$on3","_this$cache$config3","_this$cache$config$on4","_this$cache$config4","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","_action$meta","_action$dataUpdatedAt","canFetch","reducer","onQueryUpdate","QueryCache","queriesMap","build","client","_options$queryHash","hashQueryKeyByOptions","defaultQueryOptions","getQueryDefaults","add","queryInMap","clear","getAll","arg1","arg2","filters","parseFilterArgs","exact","matchQuery","findAll","MutationCache","mutations","mutationId","mutation","Mutation","mutationCache","defaultMutationOptions","mutationKey","getMutationDefaults","matchMutation","resumePausedMutations","_this$resuming","resuming","pausedMutations","isPaused","infiniteQueryBehavior","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","refetchPage","fetchMore","isFetchingNextPage","direction","isFetchingPreviousPage","oldPages","pages","oldPageParams","pageParams","newPageParams","cancelled","buildNewPages","param","page","previous","fetchPage","_context$signal","_context$signal2","aborted","queryFnResult","getNextPageParam","getPreviousPageParam","QueryClient","queryCache","queryDefaults","mutationDefaults","mountCount","mount","unsubscribeFocus","unsubscribeOnline","unmount","_this$unsubscribeFocu","_this$unsubscribeOnli","isFetching","isMutating","fetching","getQueryData","_this$queryCache$find","ensureQueryData","arg3","parsedOptions","parseQueryArgs","cachedData","fetchQuery","getQueriesData","queryKeyOrFilters","getQueryCache","_ref2","setQueryData","updater","prevData","functionalUpdate","defaultedOptions","setQueriesData","_ref3","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","refetchFilters","refetchQueries","cancelQueries","cancelOptions","promises","invalidateQueries","_ref","_filters$refetchType","refetchType","_options$cancelRefetc","throwOnError","prefetchQuery","fetchInfiniteQuery","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","hashQueryKey","firstMatchingDefaults","partialMatchKey","setMutationDefaults","_defaulted","refetchOnReconnect","useErrorBoundary","suspense","isValidTimeout","gcTimeout","setTimeout","newCacheTime","Math","Infinity","clearTimeout","defaultRetryDelay","CancelledError","continueFn","promiseResolve","promiseReject","isRetryCancelled","isResolved","outerResolve","outerReject","shouldPause","pause","continueResolve","canContinue","run","promiseOrValue","_config$retry","_config$retryDelay","delay","shouldRetry","sleep","subscribe","ReactQueryDevtools","defaultContext","QueryClientSharingContext","getQueryClientContext","contextSharing","ReactQueryClientContext","useQueryClient","queryClient","QueryClientProvider","Context","Provider","QueryObserver","trackedProps","Set","selectError","bindMethods","currentQuery","shouldFetchOnMount","executeFetch","updateTimers","shouldFetchOn","refetchOnWindowFocus","clearStaleTimeout","clearRefetchInterval","notifyOptions","prevOptions","prevQuery","shallowEqualObjects","updateQuery","mounted","shouldFetchOptionally","updateResult","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","getOptimisticResult","createResult","currentResult","trackResult","trackedResult","configurable","getCurrentQuery","fetchOptimistic","_fetchOptions$cancelR","timeout","staleTimeoutId","_this$options$refetch","refetchInterval","nextInterval","refetchIntervalId","setInterval","refetchIntervalInBackground","clearInterval","prevResult","prevResultState","currentResultState","prevResultOptions","currentResultOptions","queryChange","queryInitialState","currentQueryInitialState","prevQueryResult","previousQueryResult","isPreviousData","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","keepPreviousData","isSuccess","select","selectFn","selectResult","placeholderData","isLoading","isError","isInitialLoading","failureReason","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isRefetchError","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","size","includedProps","typedKey","has","_this$options$onSucce","_this$options","_this$options$onSettl","_this$options2","_this$options$onError","_this$options3","_this$options$onSettl2","_this$options4","retryOnMount","shouldLoadOnMount","refetchOnMount","field","createValue","isReset","clearReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","IsRestoringContext","useIsRestoring","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","shouldThrowError","ensureStaleTime","shouldSuspend","isRestoring","willFetch","useQuery","Observer","onStoreChange","useBaseQuery","useSyncExternalStore$1","_useErrorBoundary"],"sourceRoot":""}