{"version":3,"file":"static/js/main.701fde44.js","mappings":"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AAOntD,OAAO00C,WAAAA,EAGxD4a,CAAAA,CDzBO17C,CAAqC47C,GAAiB57C,EAAAA,EDJvD,CACb,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,UACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAGA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,WACA,SCnIU7nC,SAAQ,YAClB5E,GAAOsoF,GAActoF,GAAOsoF,EAAAA,KELTC,WAAAA,SAAAA,EAOP5M,EAAgByE,GAAAA,KACrBzE,MAAQA,EAAAA,KACRyE,YAAcA,EAAAA,KACdG,SAAWN,EAActE,GAI9BmD,EAAWK,WAAWj3E,KAAKk4E,YAAc,uBAG3CoI,aAAAA,SACEr+B,EACAw2B,EACA5H,EACA6H,GAAAA,IAGMjI,EAAMiI,EADIE,GAAQ54E,KAAKyzE,MAAOgF,EAAkB5H,EAAY6H,GACvCpzE,KAAK,IAAK,IAC/B3K,EAAKqF,KAAKk4E,YAAcj2B,EAG9B4uB,EAAW2C,YAAY74E,EAAIA,EAAI81E,EAAAA,EAAAA,EAGjC8P,aAAAA,SAAat+B,EAAkB4uB,GAC7BA,EAAW2G,WAAWx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","sources":["components/pages/Signin.tsx","components/pages/Signup.tsx","components/Home.tsx","../node_modules/engine.io-parser/build/esm/commons.js","../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../node_modules/engine.io-parser/build/esm/index.js","../node_modules/@socket.io/component-emitter/index.mjs","../node_modules/engine.io-client/build/esm/globalThis.browser.js","../node_modules/engine.io-client/build/esm/util.js","../node_modules/engine.io-client/build/esm/transport.js","../node_modules/engine.io-client/build/esm/contrib/yeast.js","../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../node_modules/engine.io-client/build/esm/transports/polling.js","../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../node_modules/engine.io-client/build/esm/transports/websocket.js","../node_modules/engine.io-client/build/esm/transports/index.js","../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../node_modules/engine.io-client/build/esm/socket.js","../node_modules/engine.io-client/build/esm/index.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/socket.io-parser/build/esm/is-binary.js","../node_modules/socket.io-parser/build/esm/binary.js","../node_modules/socket.io-parser/build/esm/index.js","../node_modules/socket.io-client/build/esm/on.js","../node_modules/socket.io-client/build/esm/socket.js","../node_modules/socket.io-client/build/esm/contrib/backo2.js","../node_modules/socket.io-client/build/esm/manager.js","../node_modules/socket.io-client/build/esm/index.js","../node_modules/socket.io-client/build/esm/url.js","DemoCode.tsx","App.tsx","app/hooks.ts","components/atoms/Error.tsx","components/atoms/Suspense.tsx","features/login/loginSlice.ts","../node_modules/jwt-decode/lib/atob.js","../node_modules/jwt-decode/lib/base64_url_decode.js","../node_modules/jwt-decode/lib/index.js","hooks/useLogin.tsx","styles/FormStyled.tsx","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/index.ts","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/axios/node_modules/form-data/lib/browser.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/index.js","../node_modules/react-redux/es/components/connect.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/react-router-dom/index.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/spinners-react/node_modules/tslib/tslib.es6.js","../node_modules/spinners-react/src/withSharedProps.tsx","../node_modules/spinners-react/src/helpers.ts","../node_modules/spinners-react/node_modules/style-inject/dist/style-inject.es.js","../node_modules/spinners-react/src/SpinnerCircularFixed.tsx","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/styled-components/src/utils/interleave.js","../node_modules/styled-components/src/utils/isPlainObject.js","../node_modules/styled-components/src/utils/empties.js","../node_modules/styled-components/src/utils/isFunction.js","../node_modules/styled-components/src/utils/getComponentName.js","../node_modules/styled-components/src/utils/isStyledComponent.js","../node_modules/styled-components/src/constants.js","../node_modules/styled-components/src/utils/error.js","../node_modules/styled-components/src/sheet/GroupedTag.js","../node_modules/styled-components/src/sheet/GroupIDAllocator.js","../node_modules/styled-components/src/sheet/Rehydration.js","../node_modules/styled-components/src/utils/nonce.js","../node_modules/styled-components/src/sheet/dom.js","../node_modules/styled-components/src/sheet/Tag.js","../node_modules/styled-components/src/sheet/Sheet.js","../node_modules/styled-components/src/utils/generateAlphabeticName.js","../node_modules/styled-components/src/utils/hash.js","../node_modules/styled-components/src/utils/isStaticRules.js","../node_modules/styled-components/src/models/ComponentStyle.js","../node_modules/styled-components/src/utils/stylis.js","../node_modules/styled-components/src/utils/stylisPluginInsertRule.js","../node_modules/styled-components/src/models/StyleSheetManager.js","../node_modules/styled-components/src/models/Keyframes.js","../node_modules/styled-components/src/utils/hyphenateStyleName.js","../node_modules/styled-components/src/utils/flatten.js","../node_modules/styled-components/src/utils/isStatelessFunction.js","../node_modules/styled-components/src/utils/addUnitIfNeeded.js","../node_modules/styled-components/src/constructors/css.js","../node_modules/styled-components/src/utils/checkDynamicCreation.js","../node_modules/styled-components/src/utils/determineTheme.js","../node_modules/styled-components/src/utils/escape.js","../node_modules/styled-components/src/utils/generateComponentId.js","../node_modules/styled-components/src/utils/isTag.js","../node_modules/styled-components/src/utils/mixinDeep.js","../node_modules/styled-components/src/models/ThemeProvider.js","../node_modules/styled-components/src/models/StyledComponent.js","../node_modules/styled-components/src/utils/generateDisplayName.js","../node_modules/styled-components/src/utils/joinStrings.js","../node_modules/styled-components/src/utils/domElements.js","../node_modules/styled-components/src/constructors/styled.js","../node_modules/styled-components/src/constructors/constructWithOptions.js","../node_modules/styled-components/src/models/GlobalStyle.js","../node_modules/styled-components/src/models/ServerStyleSheet.js","../node_modules/styled-components/src/constructors/keyframes.js","../node_modules/styled-components/src/base.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/env/classes/FormData.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/goober/dist/goober.modern.js","../node_modules/react-hot-toast/src/core/types.ts","../node_modules/react-hot-toast/src/core/utils.ts","../node_modules/react-hot-toast/src/core/store.ts","../node_modules/react-hot-toast/src/core/toast.ts","../node_modules/react-hot-toast/src/core/use-toaster.ts","../node_modules/react-hot-toast/src/components/error.tsx","../node_modules/react-hot-toast/src/components/loader.tsx","../node_modules/react-hot-toast/src/components/checkmark.tsx","../node_modules/react-hot-toast/src/components/toast-icon.tsx","../node_modules/react-hot-toast/src/components/toast-bar.tsx","../node_modules/react-hot-toast/src/components/toaster.tsx","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","app/store.ts","reportWebVitals.ts","index.tsx"],"sourcesContent":["import axios from \"axios\";\r\nimport useLogin from \"hooks/useLogin\";\r\nimport { useState } from \"react\";\r\nimport { toast } from \"react-hot-toast\";\r\nimport { Link, useNavigate } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport FormSt from \"styles/FormStyled\";\r\nimport { SpinnerCircularFixed } from \"spinners-react\";\r\nimport banner from \"img/banner.webp\";\r\nconst SigninSt = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n .banner_home {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n }\r\n .gradient_home {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background: rgb(0, 0, 0);\r\n background: linear-gradient(135deg, #000000 0%, rgba(0, 0, 0, 0.8) 47%, #000000 100%);\r\n }\r\n @media only screen and (max-width: 568px) {\r\n align-items: flex-start;\r\n .banner_home,\r\n .gradient_home {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nconst NewFormSt = styled(FormSt)`\r\n margin-top: 0;\r\n position: absolute;\r\n width: 25rem;\r\n @media only screen and (max-width: 568px) {\r\n position: relative;\r\n }\r\n`;\r\nexport default function Signin() {\r\n const navigate = useNavigate();\r\n // !States\r\n const [state, setState] = useState({\r\n user_name: \"\",\r\n password: \"\",\r\n });\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n // !HOOKS\r\n const { LOGIN } = useLogin();\r\n\r\n // !Functions\r\n const handleChange = (e: React.ChangeEvent) => {\r\n const name = e.currentTarget.name;\r\n const value = e.currentTarget.value;\r\n setState({ ...state, [name]: value.trim() });\r\n };\r\n const onSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault();\r\n setLoading(true);\r\n // !Create new client\r\n await axios\r\n .post(`${process.env.REACT_APP_BACKEND_URL}/api/v1/user_signin/`, state)\r\n .then(function (res) {\r\n if (res.status === 200) {\r\n LOGIN(res.data.token);\r\n navigate(\"/browser\");\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n toast.error(error.response.data.message);\r\n setLoading(false);\r\n });\r\n };\r\n return (\r\n \r\n \"\"\r\n
\r\n \r\n

Iniciar sesión

\r\n {/*

Es rápido y fácil.

*/}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {\r\n setShowPassword(!showPassword);\r\n }}\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n Crear cuenta nueva\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import axios from \"axios\";\r\nimport Spinner from \"components/atoms/Spinner\";\r\nimport useLogin from \"hooks/useLogin\";\r\nimport { useState } from \"react\";\r\nimport { toast } from \"react-hot-toast\";\r\nimport { Link, useNavigate } from \"react-router-dom\";\r\nimport { SpinnerCircularFixed } from \"spinners-react\";\r\nimport styled from \"styled-components\";\r\nimport FormSt from \"styles/FormStyled\";\r\nimport Countries from \"json/Countries.json\";\r\nconst SignupSt = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n display: grid;\r\n place-items: start center;\r\n overflow-y: scroll;\r\n /* padding-bottom: 2rem; */\r\n`;\r\n\r\nexport default function Signup() {\r\n const navigate = useNavigate();\r\n // !States\r\n const [state, setState] = useState({\r\n country: \"\",\r\n user_name: \"\",\r\n email: \"\",\r\n password: \"\",\r\n repeat_password: \"\",\r\n });\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n// console.log(state);\r\n\r\n // !HOOKS\r\n const { LOGIN } = useLogin();\r\n\r\n // !Functions\r\n const handleChange = (e: React.ChangeEvent | React.ChangeEvent) => {\r\n const name = e.currentTarget.name;\r\n const value = e.currentTarget.value;\r\n setState({ ...state, [name]: value.trim() });\r\n };\r\n const onSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (state.password !== state.repeat_password) return toast.error(\"Las contraseñas deben ser iguales\");\r\n if (/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(state.email) === false)\r\n return toast.error(\"Introduce un email válido\");\r\n setLoading(true);\r\n // !Create new client\r\n await axios\r\n .post(`${process.env.REACT_APP_BACKEND_URL}/api/v1/user_signup/`, state)\r\n .then(function (res) {\r\n if (res.status === 200) {\r\n toast.success(\"Usuario creado\");\r\n LOGIN(res.data.token);\r\n navigate(\"/browser\");\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n toast.error(error.response.data.message);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n

Registrarte

\r\n

Es rápido y fácil.

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Tu nombre de usuario servirá para que inicies sesión, no debe contener espacios.\r\n
\r\n
\r\n \r\n \r\n
\r\n {/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(state.email) === false && (\r\n
Introduce un correo válido
\r\n )}\r\n
\r\n \r\n \r\n {Countries.map((i: any) => (\r\n \r\n ))}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n {state.password.length > 0 && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n
\r\n {\r\n setShowPassword(!showPassword);\r\n }}\r\n />\r\n \r\n
\r\n {state.password !== state.repeat_password && (\r\n
Las contraseñas deben ser iguales
\r\n )}\r\n\r\n
\r\n {/*

\r\n Al hacer clic en \"Registrarte\", aceptas nuestras{\" \"}\r\n \r\n Condiciones\r\n \r\n , la{\" \"}\r\n \r\n Política de privacidad\r\n {\" \"}\r\n y la{\" \"}\r\n \r\n Política de cookies.\r\n \r\n

*/}\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import { Routes, Route, Navigate } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport Error from \"./atoms/Error\";\r\nimport Signin from \"./pages/Signin\";\r\nimport Signup from \"./pages/Signup\";\r\nconst HomeSt = styled.div`\r\n width: 100vw;\r\n height: 100vh;\r\n`;\r\nfunction Home() {\r\n return (\r\n \r\n \r\n } />\r\n } />\r\n } />\r\n } />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default Home;\r\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { Socket } from \"./socket.js\";\nexport { Socket };\nexport const protocol = Socket.protocol;\nexport { Transport } from \"./transport.js\";\nexport { transports } from \"./transports/index.js\";\nexport { installTimerFunctions } from \"./util.js\";\nexport { parse } from \"./contrib/parseuri.js\";\nexport { nextTick } from \"./transports/websocket-constructor.js\";\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","import React, { useState } from \"react\";\r\nimport { SpinnerCircularFixed } from \"spinners-react\";\r\nimport styled from \"styled-components\";\r\nimport FormSt from \"styles/FormStyled\";\r\n\r\n// import useWindowSize from \"react-use/lib/useWindowSize\";\r\n// import Confetti from \"react-confetti\";\r\nimport axios from \"axios\";\r\nimport { toast } from \"react-hot-toast\";\r\nimport { log } from \"console\";\r\nimport { useNavigate } from \"react-router-dom\";\r\n// !Styles\r\nconst DemoCodeSt = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n\r\n @media only screen and (max-width: 568px) {\r\n align-items: flex-start;\r\n }\r\n`;\r\nconst NewFormSt = styled(FormSt)`\r\n margin-top: 0;\r\n position: absolute;\r\n width: 25rem;\r\n @media only screen and (max-width: 568px) {\r\n position: relative;\r\n }\r\n`;\r\nconst ModalSt = styled.div`\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background: #000000;\r\n z-index: 1;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n .container_username_password {\r\n color: white;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n border: 1px solid #242424;\r\n border-radius: 1rem;\r\n padding: 1rem;\r\n background: #151515;\r\n .username {\r\n font-size: 2rem;\r\n margin-bottom: 1rem;\r\n }\r\n .password {\r\n font-size: 2rem;\r\n margin-bottom: 1rem;\r\n }\r\n .alert {\r\n font-size: 0.9rem;\r\n color: #ff0055;\r\n }\r\n }\r\n @media only screen and (max-width: 568px) {\r\n align-items: flex-start;\r\n }\r\n`;\r\nfunction DemoCode() {\r\n const navigate = useNavigate();\r\n // !States\r\n const [state, setState] = useState({ code: \"\" });\r\n const [loading, setLoading] = useState(false);\r\n const [showModal, setShowModal] = useState(false);\r\n const [user, setUser] = useState({\r\n username: \"\",\r\n password: \"\",\r\n });\r\n\r\n // !Handle change\r\n const handleChange = (e: React.ChangeEvent) => {\r\n setState({ ...state, code: e.currentTarget.value });\r\n };\r\n // !Submit\r\n const onSubmit = async (e: React.FormEvent) => {\r\n setLoading(true);\r\n e.preventDefault();\r\n await axios\r\n .post(`${process.env.REACT_APP_BACKEND_URL}/api/v1/redeem_code`, state)\r\n .then(function (res) {\r\n setUser(res.data);\r\n setLoading(false);\r\n setShowModal(true);\r\n toast.success(res.data.message);\r\n })\r\n .catch(function (error) {\r\n setLoading(false);\r\n toast.error(error.response.data.message);\r\n });\r\n };\r\n // const { width, height } = useWindowSize();\r\n return (\r\n \r\n \r\n

Canjea tu código

\r\n {/*

Es rápido y fácil.

*/}\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n {showModal && (\r\n \r\n {/* */}\r\n {\r\n navigate(\"/\");\r\n }}\r\n >\r\n

Usuario

\r\n

Guarda muy bien estos datos.

\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default DemoCode;\r\n","import React, { useEffect, useState, createContext, Suspense } from \"react\";\r\nimport { BrowserRouter as Router, Routes, Route, Navigate } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { useAppSelector } from \"./app/hooks\";\r\nimport { selectLogin } from \"./features/login/loginSlice\";\r\nimport useLogin from \"./hooks/useLogin\";\r\n\r\n// import Browser from \"./components_browser/Browser\";\r\nimport Home from \"./components/Home\";\r\nimport { Toaster } from \"react-hot-toast\";\r\nimport io from \"socket.io-client\";\r\nimport Error from \"components/atoms/Error\";\r\nimport DemoCode from \"DemoCode\";\r\nimport Spinner from \"./components_browser/atoms/Spinner\";\r\nimport Loading from \"components/atoms/Suspense\";\r\nconst Browser = React.lazy(() => import(\"./components_browser/Browser\"));\r\n// !socket\r\nconst socket = io(`${process.env.REACT_APP_BACKEND_URL}`);\r\n// !Context\r\nexport type GlobalContextType = [\r\n context: {\r\n menu: boolean;\r\n cast: { isConnected: boolean; library: boolean };\r\n },\r\n setContext: (value: any) => void,\r\n socket: any\r\n];\r\n\r\nexport const GlobalContext = createContext({});\r\n// !Styles\r\nconst AppSt = styled.div`\r\n width: 100vw;\r\n height: 100vh;\r\n`;\r\nfunction App() {\r\n const login = useAppSelector(selectLogin);\r\n\r\n // !GLOBAL CONTEXT STATE\r\n const [context, setContext] = useState({\r\n menu: false,\r\n cast: { isConnected: false, library: false },\r\n });\r\n // console.log(context.player);\r\n\r\n // !Local storage\r\n const token = localStorage.getItem(\"token_v2\") === null ? \"\" : `${localStorage.getItem(\"token_v2\")}`;\r\n\r\n // !Redirect\r\n const REDIRECT = login.token !== \"\" ? : ;\r\n\r\n // !Login\r\n const { LOGIN } = useLogin();\r\n useEffect(() => {\r\n if (token !== null && token !== \"\") LOGIN(token);\r\n }, []);\r\n\r\n return (\r\n // \r\n \r\n \r\n \r\n \r\n \r\n \r\n } />\r\n } />\r\n {login.token !== \"\" && (\r\n // } />\r\n }>\r\n \r\n \r\n }\r\n />\r\n )}\r\n } />\r\n \r\n \r\n \r\n \r\n // \r\n );\r\n}\r\n\r\nexport default App;\r\n","import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';\r\nimport type { RootState, AppDispatch } from './store';\r\n\r\n// Use throughout your app instead of plain `useDispatch` and `useSelector`\r\nexport const useAppDispatch = () => useDispatch();\r\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\r\n","import React from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nconst ErrorSt = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-y: hidden;\r\n background: rgb(0, 0, 0);\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n /* padding: 4rem 2rem 2rem 2rem; */\r\n\r\n .error_title {\r\n font-family: \"Inter_700\";\r\n font-size: 4rem;\r\n color: white;\r\n }\r\n .error_subtitle {\r\n font-family: \"Inter_300\";\r\n font-size: 1.5rem;\r\n color: white;\r\n }\r\n .error_button {\r\n font-family: \"Inter_700\";\r\n font-size: 1.2rem;\r\n color: #000000;\r\n background: white;\r\n border-style: none;\r\n border-radius: 0.3rem;\r\n padding: 0.5rem 0.8rem;\r\n margin-top: 1rem;\r\n :hover {\r\n background: #dedede;\r\n }\r\n }\r\n`;\r\nexport default function Error() {\r\n const navigate = useNavigate();\r\n return (\r\n \r\n

Error

\r\n

Cierra todo e intenta de nuevo

\r\n \r\n
\r\n );\r\n}\r\n","import { SpinnerCircularFixed } from \"spinners-react\";\r\nimport styled from \"styled-components\";\r\nconst LoadingSt = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow-y: scroll;\r\n background: rgb(0, 0, 0);\r\n color: white;\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n display: grid;\r\n place-content: center;\r\n`;\r\nexport default function Loading() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { RootState } from \"../../app/store\";\r\n\r\nexport interface LoginIT {\r\n id: number;\r\n user_name: string;\r\n role: string;\r\n token: string;\r\n}\r\n\r\nconst initialState: LoginIT = {\r\n id: 0,\r\n user_name: \"\",\r\n role: \"\",\r\n token: \"\",\r\n};\r\n\r\nexport const loginSlice = createSlice({\r\n name: \"login\",\r\n initialState,\r\n reducers: {\r\n setLogin: (state, action: PayloadAction) => {\r\n const { id, user_name, role, token } = action.payload;\r\n state.id = id;\r\n state.user_name = user_name;\r\n state.role = role;\r\n state.token = token;\r\n },\r\n },\r\n});\r\n\r\nexport const { setLogin } = loginSlice.actions;\r\n\r\n// export const selectCount = (state: RootState) => state.login.value;\r\nexport const selectLogin = (state: RootState) => state.login;\r\n\r\nexport default loginSlice.reducer;\r\n","/**\n * The code was extracted from:\n * https://github.com/davidchambers/Base64.js\n */\n\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\n\nInvalidCharacterError.prototype = new Error();\nInvalidCharacterError.prototype.name = \"InvalidCharacterError\";\n\nfunction polyfill(input) {\n var str = String(input).replace(/=+$/, \"\");\n if (str.length % 4 == 1) {\n throw new InvalidCharacterError(\n \"'atob' failed: The string to be decoded is not correctly encoded.\"\n );\n }\n for (\n // initialize result and counters\n var bc = 0, bs, buffer, idx = 0, output = \"\";\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ?\n (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) :\n 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\nexport default (typeof window !== \"undefined\" &&\n window.atob &&\n window.atob.bind(window)) ||\npolyfill;","import atob from \"./atob\";\n\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(\n atob(str).replace(/(.)/g, function(m, p) {\n var code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n })\n );\n}\n\nexport default function(str) {\n var output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw \"Illegal base64url string!\";\n }\n\n try {\n return b64DecodeUnicode(output);\n } catch (err) {\n return atob(output);\n }\n}","\"use strict\";\n\nimport base64_url_decode from \"./base64_url_decode\";\n\nexport function InvalidTokenError(message) {\n this.message = message;\n}\n\nInvalidTokenError.prototype = new Error();\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\n\nexport default function(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified\");\n }\n\n options = options || {};\n var pos = options.header === true ? 0 : 1;\n try {\n return JSON.parse(base64_url_decode(token.split(\".\")[pos]));\n } catch (e) {\n throw new InvalidTokenError(\"Invalid token specified: \" + e.message);\n }\n}","import { setLogin } from \"../features/login/loginSlice\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport jwt_decode from \"jwt-decode\";\r\nexport default function useLogin() {\r\n const dispatch = useDispatch();\r\n interface token {\r\n id: number;\r\n user_name: string;\r\n role: string;\r\n token: string;\r\n }\r\n\r\n // !SET LOCAL STORAGE\r\n const populateStorage = (token: string) => {\r\n localStorage.setItem(\"token_v2\", token);\r\n };\r\n\r\n // !SET LOGIN\r\n const LOGIN = (token: string) => {\r\n const decode: token = jwt_decode(token);\r\n dispatch(setLogin({ id: decode.id, user_name: decode.user_name, role: decode.role, token: token }));\r\n populateStorage(token);\r\n };\r\n\r\n // !SET LOGOUT\r\n const LOGOUT = () => {\r\n dispatch(setLogin({ id: 0, user_name: \"\", role: \"\", token: \"\" }));\r\n populateStorage(\"\");\r\n };\r\n\r\n return { LOGIN, LOGOUT };\r\n}\r\n","import styled from \"styled-components\";\r\nimport BottomArrowIcon from \"img/BottomArrowIcon.png\";\r\n\r\nconst FormSt = styled.form`\r\n width: 30rem;\r\n height: auto;\r\n background: #191818;\r\n margin-top: 2rem;\r\n border-radius: 1rem;\r\n padding: 1.5rem;\r\n display: flex;\r\n flex-direction: column;\r\n /* overflow: hidden; */\r\n z-index: 1;\r\n /* background: red; */\r\n .form_title {\r\n font-family: \"Inter_700\";\r\n font-size: 1.5rem;\r\n line-height: 1.5rem;\r\n color: white;\r\n margin-bottom: 0.5rem;\r\n }\r\n .form_sub_title {\r\n font-family: \"Inter_500\";\r\n font-size: 0.9rem;\r\n color: #c7c7c7;\r\n margin-bottom: 0.5rem;\r\n }\r\n .form_line {\r\n width: 100%;\r\n height: 1px;\r\n background: #1e1e1e;\r\n margin-bottom: 1rem;\r\n }\r\n .form_image {\r\n width: 10rem;\r\n height: auto;\r\n margin: auto;\r\n margin-bottom: 0.5rem;\r\n }\r\n .form_container_label_input {\r\n width: 100%;\r\n height: auto;\r\n margin-bottom: 1rem;\r\n display: flex;\r\n flex-direction: column;\r\n /* background:red; */\r\n .label {\r\n width: 100%;\r\n height: auto;\r\n font-family: \"Inter_500\";\r\n font-size: 0.8rem;\r\n line-height: 0.8rem;\r\n color: #c7c7c7;\r\n margin-bottom: 0.2rem;\r\n }\r\n .input {\r\n width: 100%;\r\n height: 3rem;\r\n background: #101010;\r\n padding: 0 1rem;\r\n color: white;\r\n outline: none;\r\n border-style: none;\r\n border-radius: 0.5rem;\r\n font-family: \"Inter_500\";\r\n font-size: 1rem;\r\n /* @media only screen and (max-width: 568px) {\r\n background: #101010;\r\n } */\r\n }\r\n .textarea {\r\n padding: 0.8rem 1rem;\r\n height: 10rem;\r\n resize: none;\r\n }\r\n .select {\r\n padding: 0rem 1.5rem 0 1rem;\r\n // !HIDE UGLY ARROW\r\n appearance: none;\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n background-image: url(${BottomArrowIcon});\r\n background-repeat: no-repeat;\r\n background-position: calc(100% - 1rem) center;\r\n background-size: 1rem;\r\n }\r\n .date {\r\n color-scheme: dark;\r\n @media only screen and (max-width: 568px) {\r\n padding: 0rem 1.5rem 0 1rem;\r\n // !HIDE UGLY ARROW\r\n appearance: none;\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n background-image: url(${BottomArrowIcon});\r\n background-repeat: no-repeat;\r\n background-position: calc(100% - 1rem) center;\r\n background-size: 1rem;\r\n }\r\n }\r\n }\r\n .form_container_checkbox_label {\r\n width: 100%;\r\n height: auto;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: center;\r\n margin-bottom: 1rem;\r\n .form_container_checkbox_label__checkbox {\r\n width: 0.8rem;\r\n height: 0.8rem;\r\n margin-right: 0.5rem;\r\n }\r\n .form_container_checkbox_label__label {\r\n font-family: \"Inter_500\";\r\n font-size: 0.8rem;\r\n line-height: 0.8rem;\r\n color: #c7c7c7;\r\n user-select: none;\r\n }\r\n }\r\n .form_button {\r\n width: 100%;\r\n height: 3rem;\r\n /* line-height: 3rem; */\r\n background: #6200ff;\r\n color: white;\r\n\r\n border-radius: 0.5rem;\r\n font-family: \"Inter_700\";\r\n font-size: 1rem;\r\n /* text-align: center; */\r\n margin-bottom: 1rem;\r\n transition: 0.1s;\r\n user-select: none;\r\n text-decoration: none;\r\n outline: none;\r\n border-style: none;\r\n position: relative;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n :hover {\r\n background: #5b05e7;\r\n transition: 0.1s;\r\n }\r\n .spinner {\r\n position: absolute;\r\n right: 6rem;\r\n }\r\n }\r\n .button_green {\r\n background: #42b72a;\r\n\r\n :hover {\r\n background: #3aa924;\r\n transition: 0.1s;\r\n }\r\n }\r\n .form_alert {\r\n font-family: \"Inter_500\";\r\n font-size: 0.8rem;\r\n color: red;\r\n margin-bottom: 1rem;\r\n }\r\n .form_tos_text {\r\n font-family: \"Inter_500\";\r\n font-size: 0.7rem;\r\n color: #c7c7c7;\r\n margin-bottom: 1rem;\r\n .form_tos_text__link {\r\n font-size: 0.7rem;\r\n color: #c7c7c7;\r\n text-decoration: none;\r\n color: #9cc1dd;\r\n }\r\n }\r\n @media only screen and (max-width: 568px) {\r\n width: 100%;\r\n /* height: auto; */\r\n margin-top: 0rem;\r\n border-radius: 0rem;\r\n background: black;\r\n\r\n // !hide_icon_input_date\r\n input[type=\"date\"]::-webkit-inner-spin-button,\r\n input[type=\"date\"]::-webkit-calendar-picker-indicator {\r\n /* display: none;\r\n -webkit-appearance: none; */\r\n opacity: 0;\r\n }\r\n }\r\n`;\r\nexport default FormSt;\r\n","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ProxyType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import type { Action, ActionCreator, StoreEnhancer } from 'redux'\r\nimport { compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface DevToolsEnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator[] | { [key: string]: ActionCreator }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\r\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\r\n * functions.\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n /**\r\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n * - `false` - will handle also circular references.\r\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n * For each of them you can indicate if to include (by setting as `true`).\r\n * For `function` key you can also specify a custom function which handles serialization.\r\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n */\r\n options?:\r\n | undefined\r\n | boolean\r\n | {\r\n date?: true\r\n regex?: true\r\n undefined?: true\r\n error?: true\r\n symbol?: true\r\n map?: true\r\n set?: true\r\n function?: true | ((fn: (...args: any[]) => any) => string)\r\n }\r\n /**\r\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\r\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\r\n * key. So you can deserialize it back while importing or persisting data.\r\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\r\n */\r\n replacer?: (key: string, value: unknown) => any\r\n /**\r\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\r\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\r\n * as an example on how to serialize special data types and get them back.\r\n */\r\n reviver?: (key: string, value: unknown) => any\r\n /**\r\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\r\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\r\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\r\n */\r\n immutable?: any\r\n /**\r\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\r\n */\r\n refs?: any\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: (action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: (state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsDenylist instead.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsAllowlist instead.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsDenylist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsAllowlist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\r\n */\r\n predicate?: (state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | ((action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\ntype Compose = typeof compose\r\n\r\ninterface ComposeWithDevTools {\r\n (options: DevToolsEnhancerOptions): Compose\r\n (...funcs: StoreEnhancer[]): StoreEnhancer\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: ComposeWithDevTools =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function () {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, arguments as any as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: DevToolsEnhancerOptions): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function () {\r\n return function (noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * prototype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = Object.getPrototypeOf(value)\r\n if (proto === null) return true\r\n\r\n let baseProto = proto\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto)\r\n }\r\n\r\n return proto === baseProto\r\n}\r\n","import createNextState, { isDraftable } from 'immer'\r\nimport type { Middleware, StoreEnhancer } from 'redux'\r\n\r\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\r\n let elapsed = 0\r\n return {\r\n measureTime(fn: () => T): T {\r\n const started = Date.now()\r\n try {\r\n return fn()\r\n } finally {\r\n const finished = Date.now()\r\n elapsed += finished - started\r\n }\r\n },\r\n warnIfExceeded() {\r\n if (elapsed > maxDelay) {\r\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \r\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\r\nIt is disabled in production builds, so you don't need to worry about that.`)\r\n }\r\n },\r\n }\r\n}\r\n\r\nexport function delay(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms))\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class MiddlewareArray<\r\n Middlewares extends Middleware[]\r\n> extends Array {\r\n constructor(...items: Middlewares)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, MiddlewareArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return MiddlewareArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n\r\n concat>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new MiddlewareArray(...arr[0].concat(this))\r\n }\r\n return new MiddlewareArray(...arr.concat(this))\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class EnhancerArray<\r\n Enhancers extends StoreEnhancer[]\r\n> extends Array {\r\n constructor(...items: Enhancers)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, EnhancerArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return EnhancerArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n\r\n concat>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new EnhancerArray(...arr[0].concat(this))\r\n }\r\n return new EnhancerArray(...arr.concat(this))\r\n }\r\n}\r\n\r\nexport function freezeDraftable(val: T) {\r\n return isDraftable(val) ? createNextState(val, () => {}) : val\r\n}\r\n","import type { Middleware, AnyAction } from 'redux'\r\nimport type { ThunkMiddleware } from 'redux-thunk'\r\nimport thunkMiddleware from 'redux-thunk'\r\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'\r\n/* PROD_START_REMOVE_UMD */\r\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'\r\n/* PROD_STOP_REMOVE_UMD */\r\n\r\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'\r\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'\r\nimport type { ExcludeFromTuple } from './tsHelpers'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware\r\n : ThunkMiddleware\r\n\r\nexport type CurriedGetDefaultMiddleware = <\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n }\r\n>(\r\n options?: O\r\n) => MiddlewareArray], never>>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n S = any\r\n>(): CurriedGetDefaultMiddleware {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options)\r\n }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n *\r\n * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`\r\n * to access a pre-typed `getDefaultMiddleware` instead.\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n }\r\n>(\r\n options: O = {} as O\r\n): MiddlewareArray], never>> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true,\r\n } = options\r\n\r\n let middlewareArray = new MiddlewareArray()\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import type {\r\n Reducer,\r\n ReducersMapObject,\r\n Middleware,\r\n Action,\r\n AnyAction,\r\n StoreEnhancer,\r\n Store,\r\n Dispatch,\r\n PreloadedState,\r\n CombinedState,\r\n} from 'redux'\r\nimport { createStore, compose, applyMiddleware, combineReducers } from 'redux'\r\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension'\r\nimport { composeWithDevTools } from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport type {\r\n ThunkMiddlewareFor,\r\n CurriedGetDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nimport { curryGetDefaultMiddleware } from './getDefaultMiddleware'\r\nimport type {\r\n NoInfer,\r\n ExtractDispatchExtensions,\r\n ExtractStoreExtensions,\r\n ExtractStateExtensions,\r\n} from './tsHelpers'\r\nimport { EnhancerArray } from './utils'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback = (\r\n defaultEnhancers: EnhancerArray<[StoreEnhancer<{}, {}>]>\r\n) => E\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> {\r\n /**\r\n * A single reducer function that will be used as the root reducer, or an\r\n * object of slice reducers that will be passed to `combineReducers()`.\r\n */\r\n reducer: Reducer | ReducersMapObject\r\n\r\n /**\r\n * An array of Redux middleware to install. If not supplied, defaults to\r\n * the set of middleware returned by `getDefaultMiddleware()`.\r\n *\r\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\r\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\r\n */\r\n middleware?: ((getDefaultMiddleware: CurriedGetDefaultMiddleware) => M) | M\r\n\r\n /**\r\n * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n *\r\n * Additional configuration can be done by passing Redux DevTools options\r\n */\r\n devTools?: boolean | DevToolsOptions\r\n\r\n /**\r\n * The initial state, same as Redux's createStore.\r\n * You may optionally specify it to hydrate the state\r\n * from the server in universal apps, or to restore a previously serialized\r\n * user session. If you use `combineReducers()` to produce the root reducer\r\n * function (either directly or indirectly by passing an object as `reducer`),\r\n * this must be an object with the same shape as the reducer map keys.\r\n */\r\n /*\r\n Not 100% correct but the best approximation we can get:\r\n - if S is a `CombinedState` applying a second `CombinedState` on it does not change anything.\r\n - if it is not, there could be two cases:\r\n - `ReducersMapObject` is being passed in. In this case, we will call `combineReducers` on it and `CombinedState` is correct\r\n - `Reducer` is being passed in. In this case, actually `CombinedState` is wrong and `S` would be correct.\r\n As we cannot distinguish between those two cases without adding another generic parameter,\r\n we just make the pragmatic assumption that the latter almost never happens.\r\n */\r\n preloadedState?: PreloadedState>>\r\n\r\n /**\r\n * The store enhancers to apply. See Redux's `createStore()`.\r\n * All enhancers will be included before the DevTools Extension enhancer.\r\n * If you need to customize the order of enhancers, supply a callback\r\n * function that will receive the original array (ie, `[applyMiddleware]`),\r\n * and should return a new array (such as `[applyMiddleware, offline]`).\r\n * If you only need to add middleware, you can use the `middleware` parameter instead.\r\n */\r\n enhancers?: E | ConfigureEnhancersCallback\r\n}\r\n\r\ntype Middlewares = ReadonlyArray>\r\n\r\ntype Enhancers = ReadonlyArray\r\n\r\nexport interface ToolkitStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares\r\n> extends Store {\r\n /**\r\n * The `dispatch` method of your store, enhanced by all its middlewares.\r\n *\r\n * @inheritdoc\r\n */\r\n dispatch: ExtractDispatchExtensions & Dispatch\r\n}\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport type EnhancedStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> = ToolkitStore, A, M> &\r\n ExtractStoreExtensions\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param options The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = [ThunkMiddlewareFor],\r\n E extends Enhancers = [StoreEnhancer]\r\n>(options: ConfigureStoreOptions): EnhancedStore {\r\n const curriedGetDefaultMiddleware = curryGetDefaultMiddleware()\r\n\r\n const {\r\n reducer = undefined,\r\n middleware = curriedGetDefaultMiddleware(),\r\n devTools = true,\r\n preloadedState = undefined,\r\n enhancers = undefined,\r\n } = options || {}\r\n\r\n let rootReducer: Reducer\r\n\r\n if (typeof reducer === 'function') {\r\n rootReducer = reducer\r\n } else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer) as unknown as Reducer\r\n } else {\r\n throw new Error(\r\n '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n )\r\n }\r\n\r\n let finalMiddleware = middleware\r\n if (typeof finalMiddleware === 'function') {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware)\r\n\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\r\n 'when using a middleware builder function, an array of middleware must be returned'\r\n )\r\n }\r\n }\r\n if (\r\n !IS_PRODUCTION &&\r\n finalMiddleware.some((item: any) => typeof item !== 'function')\r\n ) {\r\n throw new Error(\r\n 'each middleware provided to configureStore must be a function'\r\n )\r\n }\r\n\r\n const middlewareEnhancer: StoreEnhancer = applyMiddleware(...finalMiddleware)\r\n\r\n let finalCompose = compose\r\n\r\n if (devTools) {\r\n finalCompose = composeWithDevTools({\r\n // Enable capture of stack traces for dispatched Redux actions\r\n trace: !IS_PRODUCTION,\r\n ...(typeof devTools === 'object' && devTools),\r\n })\r\n }\r\n\r\n const defaultEnhancers = new EnhancerArray(middlewareEnhancer)\r\n let storeEnhancers: Enhancers = defaultEnhancers\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(defaultEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as StoreEnhancer\r\n\r\n return createStore(rootReducer, preloadedState, composedEnhancer)\r\n}\r\n","import type { Action } from 'redux'\r\nimport type {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny,\r\n} from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction

=\r\n | ((...args: any[]) => { payload: P })\r\n | ((...args: any[]) => { payload: P; meta: any })\r\n | ((...args: any[]) => { payload: P; error: any })\r\n | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n PA extends PrepareAction | void,\r\n T extends string = string\r\n> = PA extends PrepareAction\r\n ? ActionCreatorWithPreparedPayload<\r\n Parameters,\r\n P,\r\n T,\r\n ReturnType extends {\r\n error: infer E\r\n }\r\n ? E\r\n : never,\r\n ReturnType extends {\r\n meta: infer M\r\n }\r\n ? M\r\n : never\r\n >\r\n : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\nexport interface BaseActionCreator {\r\n type: T\r\n match: (action: Action) => action is PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n Args extends unknown[],\r\n P,\r\n T extends string = string,\r\n E = never,\r\n M = never\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\r\n (...args: Args): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\r\n (payload?: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\r\n (noArgument: void): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\r\n (payload: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n T extends string = string\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\r\n (payload: PT): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n P = void,\r\n T extends string = string,\r\n PA extends PrepareAction

| void = void\r\n> = IfPrepareActionMethodProvided<\r\n PA,\r\n _ActionCreatorWithPreparedPayload,\r\n // else\r\n IsAny<\r\n P,\r\n ActionCreatorWithPayload,\r\n IsUnknownOrNonInferrable<\r\n P,\r\n ActionCreatorWithNonInferrablePayload,\r\n // else\r\n IfVoid<\r\n P,\r\n ActionCreatorWithoutPayload,\r\n // else\r\n IfMaybeUndefined<\r\n P,\r\n ActionCreatorWithOptionalPayload,\r\n // else\r\n ActionCreatorWithPayload\r\n >\r\n >\r\n >\r\n >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction

= PayloadActionCreator

\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers\r\n\r\n /**\r\n * Provides access to the initial state value given to the slice.\r\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n */\r\n getInitialState: () => State\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n */\r\n initialState: State | (() => State)\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers\r\n\r\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * \r\n * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n})\r\n```\r\n */\r\n extraReducers?:\r\n | CaseReducers, any>\r\n | ((builder: ActionReducerMapBuilder>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare = {\r\n reducer: CaseReducer\r\n prepare: PrepareAction\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers = {\r\n [K: string]:\r\n | CaseReducer>\r\n | CaseReducerWithPrepare>\r\n}\r\n\r\ntype SliceActionType<\r\n SliceName extends string,\r\n ActionName extends keyof any\r\n> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions<\r\n CaseReducers extends SliceCaseReducers,\r\n SliceName extends string\r\n> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n : ActionCreatorForCaseReducer<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n CR extends { prepare: any },\r\n Type extends string\r\n> = _ActionCreatorWithPreparedPayload\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator\r\n : ActionCreatorWithoutPayload\r\n : ActionCreatorWithoutPayload\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions\r\n): Slice {\r\n const { name } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (options.initialState === undefined) {\r\n console.error(\r\n 'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`'\r\n )\r\n }\r\n }\r\n\r\n const initialState =\r\n typeof options.initialState == 'function'\r\n ? options.initialState\r\n : freezeDraftable(options.initialState)\r\n\r\n const reducers = options.reducers || {}\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record = {}\r\n const sliceCaseReducersByType: Record = {}\r\n const actionCreators: Record = {}\r\n\r\n reducerNames.forEach((reducerName) => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer\r\n let prepareCallback: PrepareAction | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n function buildReducer() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof options.extraReducers === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\"\r\n )\r\n }\r\n }\r\n }\r\n const [\r\n extraReducers = {},\r\n actionMatchers = [],\r\n defaultCaseReducer = undefined,\r\n ] =\r\n typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : [options.extraReducers]\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n\r\n return createReducer(initialState, (builder) => {\r\n for (let key in finalCaseReducers) {\r\n builder.addCase(key, finalCaseReducers[key] as CaseReducer)\r\n }\r\n for (let m of actionMatchers) {\r\n builder.addMatcher(m.matcher, m.reducer)\r\n }\r\n if (defaultCaseReducer) {\r\n builder.addDefaultCase(defaultCaseReducer)\r\n }\r\n })\r\n }\r\n\r\n let _reducer: ReducerWithInitialState\r\n\r\n return {\r\n name,\r\n reducer(state, action) {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer(state, action)\r\n },\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any,\r\n getInitialState() {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer.getInitialState()\r\n },\r\n }\r\n}\r\n","import type { Draft } from 'immer'\r\nimport createNextState, { isDraft, isDraftable } from 'immer'\r\nimport type { AnyAction, Action, Reducer } from 'redux'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions = Record\r\n\r\n/**\r\n * @deprecated use `TypeGuard` instead\r\n */\r\nexport interface ActionMatcher {\r\n (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription = {\r\n matcher: ActionMatcher\r\n reducer: CaseReducer>\r\n}\r\n\r\nexport type ReadonlyActionMatcherDescriptionCollection = ReadonlyArray<\r\n ActionMatcherDescription\r\n>\r\n\r\nexport type ActionMatcherDescriptionCollection = Array<\r\n ActionMatcherDescription\r\n>\r\n\r\n/**\r\n * A *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer = (\r\n state: Draft,\r\n action: A\r\n) => NoInfer | void | Draft>\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer : void\r\n}\r\n\r\nexport type NotFunction = T extends Function ? never : T\r\n\r\nfunction isStateFunction(x: unknown): x is () => S {\r\n return typeof x === 'function'\r\n}\r\n\r\nexport type ReducerWithInitialState> = Reducer & {\r\n getInitialState: () => S\r\n}\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AnyAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction(\"increment\");\r\nconst decrement = createAction(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: AnyAction\r\n): action is PayloadAction {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): ReducerWithInitialState\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n * All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n\r\n// Alternately, use a \"lazy initializer\" to provide the initial state\r\n// (works with either form of createReducer)\r\nconst initialState = () => 0\r\nconst counterReducer = createReducer(initialState, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n [increment]: (state, action) => state + action.payload,\r\n [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n S extends NotFunction,\r\n CR extends CaseReducers = CaseReducers\r\n>(\r\n initialState: S | (() => S),\r\n actionsMap: CR,\r\n actionMatchers?: ActionMatcherDescriptionCollection,\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState\r\n\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n mapOrBuilderCallback:\r\n | CaseReducers\r\n | ((builder: ActionReducerMapBuilder) => void),\r\n actionMatchers: ReadonlyActionMatcherDescriptionCollection = [],\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof mapOrBuilderCallback === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\"\r\n )\r\n }\r\n }\r\n }\r\n\r\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n // Ensure the initial state gets frozen either way (if draftable)\r\n let getInitialState: () => S\r\n if (isStateFunction(initialState)) {\r\n getInitialState = () => freezeDraftable(initialState())\r\n } else {\r\n const frozenInitialState = freezeDraftable(initialState)\r\n getInitialState = () => frozenInitialState\r\n }\r\n\r\n function reducer(state = getInitialState(), action: any): S {\r\n let caseReducers = [\r\n actionsMap[action.type],\r\n ...finalActionMatchers\r\n .filter(({ matcher }) => matcher(action))\r\n .map(({ reducer }) => reducer),\r\n ]\r\n if (caseReducers.filter((cr) => !!cr).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer]\r\n }\r\n\r\n return caseReducers.reduce((previousState, caseReducer): S => {\r\n if (caseReducer) {\r\n if (isDraft(previousState)) {\r\n // If it's already a draft, we must already be inside a `createNextState` call,\r\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n const draft = previousState as Draft // We can assume this is already a draft\r\n const result = caseReducer(draft, action)\r\n\r\n if (result === undefined) {\r\n return previousState\r\n }\r\n\r\n return result as S\r\n } else if (!isDraftable(previousState)) {\r\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n // return the caseReducer func and not wrap it with produce.\r\n const result = caseReducer(previousState as any, action)\r\n\r\n if (result === undefined) {\r\n if (previousState === null) {\r\n return previousState\r\n }\r\n throw Error(\r\n 'A case reducer on a non-draftable value must not return undefined'\r\n )\r\n }\r\n\r\n return result as S\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable> rather\r\n // than an Immutable, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(previousState, (draft: Draft) => {\r\n return caseReducer(draft, action)\r\n })\r\n }\r\n }\r\n\r\n return previousState\r\n }, state)\r\n }\r\n\r\n reducer.getInitialState = getInitialState\r\n\r\n return reducer as ReducerWithInitialState\r\n}\r\n","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\r\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\r\n// optimize the gzip compression for this alphabet.\r\nlet urlAlphabet =\r\n 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\r\n\r\n/**\r\n *\r\n * @public\r\n */\r\nexport let nanoid = (size = 21) => {\r\n let id = ''\r\n // A compact alternative for `for (var i = 0; i < step; i++)`.\r\n let i = size\r\n while (i--) {\r\n // `| 0` is more compact and faster than `Math.floor()`.\r\n id += urlAlphabet[(Math.random() * 64) | 0]\r\n }\r\n return id\r\n}\r\n","import type { Dispatch, AnyAction } from 'redux'\r\nimport type {\r\n PayloadAction,\r\n ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown } from './tsHelpers'\r\nimport { nanoid } from './nanoid'\r\n\r\n// @ts-ignore we need the import of these types due to a bundling issue.\r\ntype _Keep = PayloadAction | ActionCreatorWithPreparedPayload\r\n\r\nexport type BaseThunkAPI<\r\n S,\r\n E,\r\n D extends Dispatch = Dispatch,\r\n RejectedValue = undefined,\r\n RejectedMeta = unknown,\r\n FulfilledMeta = unknown\r\n> = {\r\n dispatch: D\r\n getState: () => S\r\n extra: E\r\n requestId: string\r\n signal: AbortSignal\r\n abort: (reason?: string) => void\r\n rejectWithValue: IsUnknown<\r\n RejectedMeta,\r\n (value: RejectedValue) => RejectWithValue,\r\n (\r\n value: RejectedValue,\r\n meta: RejectedMeta\r\n ) => RejectWithValue\r\n >\r\n fulfillWithValue: IsUnknown<\r\n FulfilledMeta,\r\n (value: FulfilledValue) => FulfilledValue,\r\n (\r\n value: FulfilledValue,\r\n meta: FulfilledMeta\r\n ) => FulfillWithMeta\r\n >\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SerializedError {\r\n name?: string\r\n message?: string\r\n stack?: string\r\n code?: string\r\n}\r\n\r\nconst commonProperties: Array = [\r\n 'name',\r\n 'message',\r\n 'stack',\r\n 'code',\r\n]\r\n\r\nclass RejectWithValue {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'RejectWithValue'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: RejectedMeta\r\n ) {}\r\n}\r\n\r\nclass FulfillWithMeta {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'FulfillWithMeta'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: FulfilledMeta\r\n ) {}\r\n}\r\n\r\n/**\r\n * Serializes an error into a plain object.\r\n * Reworked from https://github.com/sindresorhus/serialize-error\r\n *\r\n * @public\r\n */\r\nexport const miniSerializeError = (value: any): SerializedError => {\r\n if (typeof value === 'object' && value !== null) {\r\n const simpleError: SerializedError = {}\r\n for (const property of commonProperties) {\r\n if (typeof value[property] === 'string') {\r\n simpleError[property] = value[property]\r\n }\r\n }\r\n\r\n return simpleError\r\n }\r\n\r\n return { message: String(value) }\r\n}\r\n\r\ntype AsyncThunkConfig = {\r\n state?: unknown\r\n dispatch?: Dispatch\r\n extra?: unknown\r\n rejectValue?: unknown\r\n serializedErrorType?: unknown\r\n pendingMeta?: unknown\r\n fulfilledMeta?: unknown\r\n rejectedMeta?: unknown\r\n}\r\n\r\ntype GetState = ThunkApiConfig extends {\r\n state: infer State\r\n}\r\n ? State\r\n : unknown\r\ntype GetExtra = ThunkApiConfig extends { extra: infer Extra }\r\n ? Extra\r\n : unknown\r\ntype GetDispatch = ThunkApiConfig extends {\r\n dispatch: infer Dispatch\r\n}\r\n ? FallbackIfUnknown<\r\n Dispatch,\r\n ThunkDispatch<\r\n GetState,\r\n GetExtra,\r\n AnyAction\r\n >\r\n >\r\n : ThunkDispatch, GetExtra, AnyAction>\r\n\r\ntype GetThunkAPI = BaseThunkAPI<\r\n GetState,\r\n GetExtra,\r\n GetDispatch,\r\n GetRejectValue,\r\n GetRejectedMeta,\r\n GetFulfilledMeta\r\n>\r\n\r\ntype GetRejectValue = ThunkApiConfig extends {\r\n rejectValue: infer RejectValue\r\n}\r\n ? RejectValue\r\n : unknown\r\n\r\ntype GetPendingMeta = ThunkApiConfig extends {\r\n pendingMeta: infer PendingMeta\r\n}\r\n ? PendingMeta\r\n : unknown\r\n\r\ntype GetFulfilledMeta = ThunkApiConfig extends {\r\n fulfilledMeta: infer FulfilledMeta\r\n}\r\n ? FulfilledMeta\r\n : unknown\r\n\r\ntype GetRejectedMeta = ThunkApiConfig extends {\r\n rejectedMeta: infer RejectedMeta\r\n}\r\n ? RejectedMeta\r\n : unknown\r\n\r\ntype GetSerializedErrorType = ThunkApiConfig extends {\r\n serializedErrorType: infer GetSerializedErrorType\r\n}\r\n ? GetSerializedErrorType\r\n : SerializedError\r\n\r\ntype MaybePromise = T | Promise | (T extends any ? Promise : never)\r\n\r\n/**\r\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreatorReturnValue<\r\n Returned,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = MaybePromise<\r\n | IsUnknown<\r\n GetFulfilledMeta,\r\n Returned,\r\n FulfillWithMeta>\r\n >\r\n | RejectWithValue<\r\n GetRejectValue,\r\n GetRejectedMeta\r\n >\r\n>\r\n/**\r\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = (\r\n arg: ThunkArg,\r\n thunkAPI: GetThunkAPI\r\n) => AsyncThunkPayloadCreatorReturnValue\r\n\r\n/**\r\n * A ThunkAction created by `createAsyncThunk`.\r\n * Dispatching it returns a Promise for either a\r\n * fulfilled or rejected action.\r\n * Also, the returned value contains an `abort()` method\r\n * that allows the asyncAction to be cancelled from the outside.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkAction<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = (\r\n dispatch: GetDispatch,\r\n getState: () => GetState,\r\n extra: GetExtra\r\n) => Promise<\r\n | ReturnType>\r\n | ReturnType>\r\n> & {\r\n abort: (reason?: string) => void\r\n requestId: string\r\n arg: ThunkArg\r\n unwrap: () => Promise\r\n}\r\n\r\ntype AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = IsAny<\r\n ThunkArg,\r\n // any handling\r\n (arg: ThunkArg) => AsyncThunkAction,\r\n // unknown handling\r\n unknown extends ThunkArg\r\n ? (arg: ThunkArg) => AsyncThunkAction // argument not specified or specified as void or undefined\r\n : [ThunkArg] extends [void] | [undefined]\r\n ? () => AsyncThunkAction // argument contains void\r\n : [void] extends [ThunkArg] // make optional\r\n ? (arg?: ThunkArg) => AsyncThunkAction // argument contains undefined\r\n : [undefined] extends [ThunkArg]\r\n ? WithStrictNullChecks<\r\n // with strict nullChecks: make optional\r\n (\r\n arg?: ThunkArg\r\n ) => AsyncThunkAction,\r\n // without strict null checks this will match everything, so don't make it optional\r\n (arg: ThunkArg) => AsyncThunkAction\r\n > // default case: normal argument\r\n : (arg: ThunkArg) => AsyncThunkAction\r\n>\r\n\r\n/**\r\n * Options object for `createAsyncThunk`.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkOptions<\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = {\r\n /**\r\n * A method to control whether the asyncThunk should be executed. Has access to the\r\n * `arg`, `api.getState()` and `api.extra` arguments.\r\n *\r\n * @returns `false` if it should be skipped\r\n */\r\n condition?(\r\n arg: ThunkArg,\r\n api: Pick, 'getState' | 'extra'>\r\n ): MaybePromise\r\n /**\r\n * If `condition` returns `false`, the asyncThunk will be skipped.\r\n * This option allows you to control whether a `rejected` action with `meta.condition == false`\r\n * will be dispatched or not.\r\n *\r\n * @default `false`\r\n */\r\n dispatchConditionRejection?: boolean\r\n\r\n serializeError?: (x: unknown) => GetSerializedErrorType\r\n\r\n /**\r\n * A function to use when generating the `requestId` for the request sequence.\r\n *\r\n * @default `nanoid`\r\n */\r\n idGenerator?: (arg: ThunkArg) => string\r\n} & IsUnknown<\r\n GetPendingMeta,\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n *\r\n * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\r\n * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\r\n */\r\n getPendingMeta?(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n },\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n */\r\n getPendingMeta(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n }\r\n>\r\n\r\nexport type AsyncThunkPendingActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [string, ThunkArg, GetPendingMeta?],\r\n undefined,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'pending'\r\n } & GetPendingMeta\r\n>\r\n\r\nexport type AsyncThunkRejectedActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [\r\n Error | null,\r\n string,\r\n ThunkArg,\r\n GetRejectValue?,\r\n GetRejectedMeta?\r\n ],\r\n GetRejectValue | undefined,\r\n string,\r\n GetSerializedErrorType,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'rejected'\r\n aborted: boolean\r\n condition: boolean\r\n } & (\r\n | ({ rejectedWithValue: false } & {\r\n [K in keyof GetRejectedMeta]?: undefined\r\n })\r\n | ({ rejectedWithValue: true } & GetRejectedMeta)\r\n )\r\n>\r\n\r\nexport type AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [Returned, string, ThunkArg, GetFulfilledMeta?],\r\n Returned,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'fulfilled'\r\n } & GetFulfilledMeta\r\n>\r\n\r\n/**\r\n * A type describing the return value of `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = AsyncThunkActionCreator & {\r\n pending: AsyncThunkPendingActionCreator\r\n rejected: AsyncThunkRejectedActionCreator\r\n fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >\r\n typePrefix: string\r\n}\r\n\r\ntype OverrideThunkApiConfigs = Id<\r\n NewConfig & Omit\r\n>\r\n\r\ntype CreateAsyncThunk = {\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n // separate signature without `AsyncThunkConfig` for better inference\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n CurriedThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk\r\n\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >,\r\n options?: AsyncThunkOptions<\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n ): AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n\r\n withTypes(): CreateAsyncThunk<\r\n OverrideThunkApiConfigs\r\n >\r\n}\r\n\r\nexport const createAsyncThunk = (() => {\r\n function createAsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n >(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk {\r\n type RejectedValue = GetRejectValue\r\n type PendingMeta = GetPendingMeta\r\n type FulfilledMeta = GetFulfilledMeta\r\n type RejectedMeta = GetRejectedMeta\r\n\r\n const fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n > = createAction(\r\n typePrefix + '/fulfilled',\r\n (\r\n payload: Returned,\r\n requestId: string,\r\n arg: ThunkArg,\r\n meta?: FulfilledMeta\r\n ) => ({\r\n payload,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'fulfilled' as const,\r\n },\r\n })\r\n )\r\n\r\n const pending: AsyncThunkPendingActionCreator =\r\n createAction(\r\n typePrefix + '/pending',\r\n (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\r\n payload: undefined,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'pending' as const,\r\n },\r\n })\r\n )\r\n\r\n const rejected: AsyncThunkRejectedActionCreator =\r\n createAction(\r\n typePrefix + '/rejected',\r\n (\r\n error: Error | null,\r\n requestId: string,\r\n arg: ThunkArg,\r\n payload?: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => ({\r\n payload,\r\n error: ((options && options.serializeError) || miniSerializeError)(\r\n error || 'Rejected'\r\n ) as GetSerializedErrorType,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: 'rejected' as const,\r\n aborted: error?.name === 'AbortError',\r\n condition: error?.name === 'ConditionError',\r\n },\r\n })\r\n )\r\n\r\n let displayedWarning = false\r\n\r\n const AC =\r\n typeof AbortController !== 'undefined'\r\n ? AbortController\r\n : class implements AbortController {\r\n signal = {\r\n aborted: false,\r\n addEventListener() {},\r\n dispatchEvent() {\r\n return false\r\n },\r\n onabort() {},\r\n removeEventListener() {},\r\n reason: undefined,\r\n throwIfAborted() {},\r\n }\r\n abort() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!displayedWarning) {\r\n displayedWarning = true\r\n console.info(\r\n `This platform does not implement AbortController. \r\nIf you want to use the AbortController to react to \\`abort\\` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.`\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n function actionCreator(\r\n arg: ThunkArg\r\n ): AsyncThunkAction {\r\n return (dispatch, getState, extra) => {\r\n const requestId = options?.idGenerator\r\n ? options.idGenerator(arg)\r\n : nanoid()\r\n\r\n const abortController = new AC()\r\n let abortReason: string | undefined\r\n\r\n let started = false\r\n function abort(reason?: string) {\r\n abortReason = reason\r\n abortController.abort()\r\n }\r\n\r\n const promise = (async function () {\r\n let finalAction: ReturnType\r\n try {\r\n let conditionResult = options?.condition?.(arg, { getState, extra })\r\n if (isThenable(conditionResult)) {\r\n conditionResult = await conditionResult\r\n }\r\n\r\n if (conditionResult === false || abortController.signal.aborted) {\r\n // eslint-disable-next-line no-throw-literal\r\n throw {\r\n name: 'ConditionError',\r\n message: 'Aborted due to condition callback returning false.',\r\n }\r\n }\r\n started = true\r\n\r\n const abortedPromise = new Promise((_, reject) =>\r\n abortController.signal.addEventListener('abort', () =>\r\n reject({\r\n name: 'AbortError',\r\n message: abortReason || 'Aborted',\r\n })\r\n )\r\n )\r\n dispatch(\r\n pending(\r\n requestId,\r\n arg,\r\n options?.getPendingMeta?.(\r\n { requestId, arg },\r\n { getState, extra }\r\n )\r\n )\r\n )\r\n finalAction = await Promise.race([\r\n abortedPromise,\r\n Promise.resolve(\r\n payloadCreator(arg, {\r\n dispatch,\r\n getState,\r\n extra,\r\n requestId,\r\n signal: abortController.signal,\r\n abort,\r\n rejectWithValue: ((\r\n value: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => {\r\n return new RejectWithValue(value, meta)\r\n }) as any,\r\n fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\r\n return new FulfillWithMeta(value, meta)\r\n }) as any,\r\n })\r\n ).then((result) => {\r\n if (result instanceof RejectWithValue) {\r\n throw result\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta)\r\n }\r\n return fulfilled(result as any, requestId, arg)\r\n }),\r\n ])\r\n } catch (err) {\r\n finalAction =\r\n err instanceof RejectWithValue\r\n ? rejected(null, requestId, arg, err.payload, err.meta)\r\n : rejected(err as any, requestId, arg)\r\n }\r\n // We dispatch the result action _after_ the catch, to avoid having any errors\r\n // here get swallowed by the try/catch block,\r\n // per https://twitter.com/dan_abramov/status/770914221638942720\r\n // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\r\n\r\n const skipDispatch =\r\n options &&\r\n !options.dispatchConditionRejection &&\r\n rejected.match(finalAction) &&\r\n (finalAction as any).meta.condition\r\n\r\n if (!skipDispatch) {\r\n dispatch(finalAction)\r\n }\r\n return finalAction\r\n })()\r\n return Object.assign(promise as Promise, {\r\n abort,\r\n requestId,\r\n arg,\r\n unwrap() {\r\n return promise.then(unwrapResult)\r\n },\r\n })\r\n }\r\n }\r\n\r\n return Object.assign(\r\n actionCreator as AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n {\r\n pending,\r\n rejected,\r\n fulfilled,\r\n typePrefix,\r\n }\r\n )\r\n }\r\n createAsyncThunk.withTypes = () => createAsyncThunk\r\n\r\n return createAsyncThunk as CreateAsyncThunk\r\n})()\r\n\r\ninterface UnwrappableAction {\r\n payload: any\r\n meta?: any\r\n error?: any\r\n}\r\n\r\ntype UnwrappedActionPayload = Exclude<\r\n T,\r\n { error: any }\r\n>['payload']\r\n\r\n/**\r\n * @public\r\n */\r\nexport function unwrapResult(\r\n action: R\r\n): UnwrappedActionPayload {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload\r\n }\r\n if (action.error) {\r\n throw action.error\r\n }\r\n return action.payload\r\n}\r\n\r\ntype WithStrictNullChecks = undefined extends boolean\r\n ? False\r\n : True\r\n\r\nfunction isThenable(value: any): value is PromiseLike {\r\n return (\r\n value !== null &&\r\n typeof value === 'object' &&\r\n typeof value.then === 'function'\r\n )\r\n}\r\n","import type { Dispatch, AnyAction, MiddlewareAPI } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport { createAction, isAction } from '../createAction'\r\nimport { nanoid } from '../nanoid'\r\n\r\nimport type {\r\n ListenerMiddleware,\r\n ListenerMiddlewareInstance,\r\n AddListenerOverloads,\r\n AnyListenerPredicate,\r\n CreateListenerMiddlewareOptions,\r\n TypedAddListener,\r\n TypedCreateListenerEntry,\r\n FallbackAddListenerOptions,\r\n ListenerEntry,\r\n ListenerErrorHandler,\r\n UnsubscribeListener,\r\n TakePattern,\r\n ListenerErrorInfo,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n TypedRemoveListener,\r\n TaskResult,\r\n AbortSignalWithReason,\r\n UnsubscribeListenerOptions,\r\n} from './types'\r\nimport {\r\n abortControllerWithReason,\r\n addAbortSignalListener,\r\n assertFunction,\r\n catchRejection,\r\n} from './utils'\r\nimport {\r\n listenerCancelled,\r\n listenerCompleted,\r\n TaskAbortError,\r\n taskCancelled,\r\n taskCompleted,\r\n} from './exceptions'\r\nimport {\r\n runTask,\r\n validateActive,\r\n createPause,\r\n createDelay,\r\n raceWithSignal,\r\n} from './task'\r\nexport { TaskAbortError } from './exceptions'\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './types'\r\n\r\n//Overly-aggressive byte-shaving\r\nconst { assign } = Object\r\n/**\r\n * @internal\r\n */\r\nconst INTERNAL_NIL_TOKEN = {} as const\r\n\r\nconst alm = 'listenerMiddleware' as const\r\n\r\nconst createFork = (parentAbortSignal: AbortSignalWithReason) => {\r\n const linkControllers = (controller: AbortController) =>\r\n addAbortSignalListener(parentAbortSignal, () =>\r\n abortControllerWithReason(controller, parentAbortSignal.reason)\r\n )\r\n\r\n return (taskExecutor: ForkedTaskExecutor): ForkedTask => {\r\n assertFunction(taskExecutor, 'taskExecutor')\r\n const childAbortController = new AbortController()\r\n\r\n linkControllers(childAbortController)\r\n\r\n const result = runTask(\r\n async (): Promise => {\r\n validateActive(parentAbortSignal)\r\n validateActive(childAbortController.signal)\r\n const result = (await taskExecutor({\r\n pause: createPause(childAbortController.signal),\r\n delay: createDelay(childAbortController.signal),\r\n signal: childAbortController.signal,\r\n })) as T\r\n validateActive(childAbortController.signal)\r\n return result\r\n },\r\n () => abortControllerWithReason(childAbortController, taskCompleted)\r\n )\r\n\r\n return {\r\n result: createPause>(parentAbortSignal)(result),\r\n cancel() {\r\n abortControllerWithReason(childAbortController, taskCancelled)\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst createTakePattern = (\r\n startListening: AddListenerOverloads<\r\n UnsubscribeListener,\r\n S,\r\n Dispatch\r\n >,\r\n signal: AbortSignal\r\n): TakePattern => {\r\n /**\r\n * A function that takes a ListenerPredicate and an optional timeout,\r\n * and resolves when either the predicate returns `true` based on an action\r\n * state combination or when the timeout expires.\r\n * If the parent listener is canceled while waiting, this will throw a\r\n * TaskAbortError.\r\n */\r\n const take = async

>(\r\n predicate: P,\r\n timeout: number | undefined\r\n ) => {\r\n validateActive(signal)\r\n\r\n // Placeholder unsubscribe function until the listener is added\r\n let unsubscribe: UnsubscribeListener = () => {}\r\n\r\n const tuplePromise = new Promise<[AnyAction, S, S]>((resolve, reject) => {\r\n // Inside the Promise, we synchronously add the listener.\r\n let stopListening = startListening({\r\n predicate: predicate as any,\r\n effect: (action, listenerApi): void => {\r\n // One-shot listener that cleans up as soon as the predicate passes\r\n listenerApi.unsubscribe()\r\n // Resolve the promise with the same arguments the predicate saw\r\n resolve([\r\n action,\r\n listenerApi.getState(),\r\n listenerApi.getOriginalState(),\r\n ])\r\n },\r\n })\r\n unsubscribe = () => {\r\n stopListening()\r\n reject()\r\n }\r\n })\r\n\r\n const promises: (Promise | Promise<[AnyAction, S, S]>)[] = [\r\n tuplePromise,\r\n ]\r\n\r\n if (timeout != null) {\r\n promises.push(\r\n new Promise((resolve) => setTimeout(resolve, timeout, null))\r\n )\r\n }\r\n\r\n try {\r\n const output = await raceWithSignal(signal, Promise.race(promises))\r\n\r\n validateActive(signal)\r\n return output\r\n } finally {\r\n // Always clean up the listener\r\n unsubscribe()\r\n }\r\n }\r\n\r\n return ((predicate: AnyListenerPredicate, timeout: number | undefined) =>\r\n catchRejection(take(predicate, timeout))) as TakePattern\r\n}\r\n\r\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\r\n let { type, actionCreator, matcher, predicate, effect } = options\r\n\r\n if (type) {\r\n predicate = createAction(type).match\r\n } else if (actionCreator) {\r\n type = actionCreator!.type\r\n predicate = actionCreator.match\r\n } else if (matcher) {\r\n predicate = matcher\r\n } else if (predicate) {\r\n // pass\r\n } else {\r\n throw new Error(\r\n 'Creating or removing a listener requires one of the known fields for matching an action'\r\n )\r\n }\r\n\r\n assertFunction(effect, 'options.listener')\r\n\r\n return { predicate, type, effect }\r\n}\r\n\r\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\r\nexport const createListenerEntry: TypedCreateListenerEntry = (\r\n options: FallbackAddListenerOptions\r\n) => {\r\n const { type, predicate, effect } = getListenerEntryPropsFrom(options)\r\n\r\n const id = nanoid()\r\n const entry: ListenerEntry = {\r\n id,\r\n effect,\r\n type,\r\n predicate,\r\n pending: new Set(),\r\n unsubscribe: () => {\r\n throw new Error('Unsubscribe not initialized')\r\n },\r\n }\r\n\r\n return entry\r\n}\r\n\r\nconst cancelActiveListeners = (\r\n entry: ListenerEntry>\r\n) => {\r\n entry.pending.forEach((controller) => {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n })\r\n}\r\n\r\nconst createClearListenerMiddleware = (\r\n listenerMap: Map\r\n) => {\r\n return () => {\r\n listenerMap.forEach(cancelActiveListeners)\r\n\r\n listenerMap.clear()\r\n }\r\n}\r\n\r\n/**\r\n * Safely reports errors to the `errorHandler` provided.\r\n * Errors that occur inside `errorHandler` are notified in a new task.\r\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\r\n * @param errorHandler\r\n * @param errorToNotify\r\n */\r\nconst safelyNotifyError = (\r\n errorHandler: ListenerErrorHandler,\r\n errorToNotify: unknown,\r\n errorInfo: ListenerErrorInfo\r\n): void => {\r\n try {\r\n errorHandler(errorToNotify, errorInfo)\r\n } catch (errorHandlerError) {\r\n // We cannot let an error raised here block the listener queue.\r\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\r\n setTimeout(() => {\r\n throw errorHandlerError\r\n }, 0)\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const addListener = createAction(\r\n `${alm}/add`\r\n) as TypedAddListener\r\n\r\n/**\r\n * @public\r\n */\r\nexport const clearAllListeners = createAction(`${alm}/removeAll`)\r\n\r\n/**\r\n * @public\r\n */\r\nexport const removeListener = createAction(\r\n `${alm}/remove`\r\n) as TypedRemoveListener\r\n\r\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\r\n console.error(`${alm}/error`, ...args)\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport function createListenerMiddleware<\r\n S = unknown,\r\n D extends Dispatch = ThunkDispatch,\r\n ExtraArgument = unknown\r\n>(middlewareOptions: CreateListenerMiddlewareOptions = {}) {\r\n const listenerMap = new Map()\r\n const { extra, onError = defaultErrorHandler } = middlewareOptions\r\n\r\n assertFunction(onError, 'onError')\r\n\r\n const insertEntry = (entry: ListenerEntry) => {\r\n entry.unsubscribe = () => listenerMap.delete(entry!.id)\r\n\r\n listenerMap.set(entry.id, entry)\r\n return (cancelOptions?: UnsubscribeListenerOptions) => {\r\n entry.unsubscribe()\r\n if (cancelOptions?.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n }\r\n\r\n const findListenerEntry = (\r\n comparator: (entry: ListenerEntry) => boolean\r\n ): ListenerEntry | undefined => {\r\n for (const entry of Array.from(listenerMap.values())) {\r\n if (comparator(entry)) {\r\n return entry\r\n }\r\n }\r\n\r\n return undefined\r\n }\r\n\r\n const startListening = (options: FallbackAddListenerOptions) => {\r\n let entry = findListenerEntry(\r\n (existingEntry) => existingEntry.effect === options.effect\r\n )\r\n\r\n if (!entry) {\r\n entry = createListenerEntry(options as any)\r\n }\r\n\r\n return insertEntry(entry)\r\n }\r\n\r\n const stopListening = (\r\n options: FallbackAddListenerOptions & UnsubscribeListenerOptions\r\n ): boolean => {\r\n const { type, effect, predicate } = getListenerEntryPropsFrom(options)\r\n\r\n const entry = findListenerEntry((entry) => {\r\n const matchPredicateOrType =\r\n typeof type === 'string'\r\n ? entry.type === type\r\n : entry.predicate === predicate\r\n\r\n return matchPredicateOrType && entry.effect === effect\r\n })\r\n\r\n if (entry) {\r\n entry.unsubscribe()\r\n if (options.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n\r\n return !!entry\r\n }\r\n\r\n const notifyListener = async (\r\n entry: ListenerEntry>,\r\n action: AnyAction,\r\n api: MiddlewareAPI,\r\n getOriginalState: () => S\r\n ) => {\r\n const internalTaskController = new AbortController()\r\n const take = createTakePattern(\r\n startListening,\r\n internalTaskController.signal\r\n )\r\n\r\n try {\r\n entry.pending.add(internalTaskController)\r\n await Promise.resolve(\r\n entry.effect(\r\n action,\r\n // Use assign() rather than ... to avoid extra helper functions added to bundle\r\n assign({}, api, {\r\n getOriginalState,\r\n condition: (\r\n predicate: AnyListenerPredicate,\r\n timeout?: number\r\n ) => take(predicate, timeout).then(Boolean),\r\n take,\r\n delay: createDelay(internalTaskController.signal),\r\n pause: createPause(internalTaskController.signal),\r\n extra,\r\n signal: internalTaskController.signal,\r\n fork: createFork(internalTaskController.signal),\r\n unsubscribe: entry.unsubscribe,\r\n subscribe: () => {\r\n listenerMap.set(entry.id, entry)\r\n },\r\n cancelActiveListeners: () => {\r\n entry.pending.forEach((controller, _, set) => {\r\n if (controller !== internalTaskController) {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n set.delete(controller)\r\n }\r\n })\r\n },\r\n })\r\n )\r\n )\r\n } catch (listenerError) {\r\n if (!(listenerError instanceof TaskAbortError)) {\r\n safelyNotifyError(onError, listenerError, {\r\n raisedBy: 'effect',\r\n })\r\n }\r\n } finally {\r\n abortControllerWithReason(internalTaskController, listenerCompleted) // Notify that the task has completed\r\n entry.pending.delete(internalTaskController)\r\n }\r\n }\r\n\r\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap)\r\n\r\n const middleware: ListenerMiddleware =\r\n (api) => (next) => (action) => {\r\n if (!isAction(action)) {\r\n // we only want to notify listeners for action objects\r\n return next(action)\r\n }\r\n\r\n if (addListener.match(action)) {\r\n return startListening(action.payload)\r\n }\r\n\r\n if (clearAllListeners.match(action)) {\r\n clearListenerMiddleware()\r\n return\r\n }\r\n\r\n if (removeListener.match(action)) {\r\n return stopListening(action.payload)\r\n }\r\n\r\n // Need to get this state _before_ the reducer processes the action\r\n let originalState: S | typeof INTERNAL_NIL_TOKEN = api.getState()\r\n\r\n // `getOriginalState` can only be called synchronously.\r\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\r\n const getOriginalState = (): S => {\r\n if (originalState === INTERNAL_NIL_TOKEN) {\r\n throw new Error(\r\n `${alm}: getOriginalState can only be called synchronously`\r\n )\r\n }\r\n\r\n return originalState as S\r\n }\r\n\r\n let result: unknown\r\n\r\n try {\r\n // Actually forward the action to the reducer before we handle listeners\r\n result = next(action)\r\n\r\n if (listenerMap.size > 0) {\r\n let currentState = api.getState()\r\n // Work around ESBuild+TS transpilation issue\r\n const listenerEntries = Array.from(listenerMap.values())\r\n for (let entry of listenerEntries) {\r\n let runListener = false\r\n\r\n try {\r\n runListener = entry.predicate(action, currentState, originalState)\r\n } catch (predicateError) {\r\n runListener = false\r\n\r\n safelyNotifyError(onError, predicateError, {\r\n raisedBy: 'predicate',\r\n })\r\n }\r\n\r\n if (!runListener) {\r\n continue\r\n }\r\n\r\n notifyListener(entry, action, api, getOriginalState)\r\n }\r\n }\r\n } finally {\r\n // Remove `originalState` store from this scope.\r\n originalState = INTERNAL_NIL_TOKEN\r\n }\r\n\r\n return result\r\n }\r\n\r\n return {\r\n middleware,\r\n startListening,\r\n stopListening,\r\n clearListeners: clearListenerMiddleware,\r\n } as ListenerMiddlewareInstance\r\n}\r\n","import { TaskAbortError } from './exceptions'\r\nimport type { AbortSignalWithReason, TaskResult } from './types'\r\nimport { addAbortSignalListener, catchRejection, noop } from './utils'\r\n\r\n/**\r\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\r\n * @param signal\r\n * @param reason\r\n * @see {TaskAbortError}\r\n */\r\nexport const validateActive = (signal: AbortSignal): void => {\r\n if (signal.aborted) {\r\n throw new TaskAbortError((signal as AbortSignalWithReason).reason)\r\n }\r\n}\r\n\r\n/**\r\n * Generates a race between the promise(s) and the AbortSignal\r\n * This avoids `Promise.race()`-related memory leaks:\r\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\r\n */\r\nexport function raceWithSignal(\r\n signal: AbortSignalWithReason,\r\n promise: Promise\r\n): Promise {\r\n let cleanup = noop\r\n return new Promise((resolve, reject) => {\r\n const notifyRejection = () => reject(new TaskAbortError(signal.reason))\r\n\r\n if (signal.aborted) {\r\n notifyRejection()\r\n return\r\n }\r\n\r\n cleanup = addAbortSignalListener(signal, notifyRejection)\r\n promise.finally(() => cleanup()).then(resolve, reject)\r\n }).finally(() => {\r\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\r\n cleanup = noop\r\n })\r\n}\r\n\r\n/**\r\n * Runs a task and returns promise that resolves to {@link TaskResult}.\r\n * Second argument is an optional `cleanUp` function that always runs after task.\r\n *\r\n * **Note:** `runTask` runs the executor in the next microtask.\r\n * @returns\r\n */\r\nexport const runTask = async (\r\n task: () => Promise,\r\n cleanUp?: () => void\r\n): Promise> => {\r\n try {\r\n await Promise.resolve()\r\n const value = await task()\r\n return {\r\n status: 'ok',\r\n value,\r\n }\r\n } catch (error: any) {\r\n return {\r\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\r\n error,\r\n }\r\n } finally {\r\n cleanUp?.()\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and a promise returns another promise that resolves\r\n * as soon the input promise is provided or rejects as soon as\r\n * `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createPause = (signal: AbortSignal) => {\r\n return (promise: Promise): Promise => {\r\n return catchRejection(\r\n raceWithSignal(signal, promise).then((output) => {\r\n validateActive(signal)\r\n return output\r\n })\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\r\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createDelay = (signal: AbortSignal) => {\r\n const pause = createPause(signal)\r\n return (timeoutMs: number): Promise => {\r\n return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)))\r\n }\r\n}\r\n","import type { StoreEnhancer } from 'redux'\r\n\r\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch'\r\n\r\nexport const prepareAutoBatched =\r\n () =>\r\n (payload: T): { payload: T; meta: unknown } => ({\r\n payload,\r\n meta: { [SHOULD_AUTOBATCH]: true },\r\n })\r\n\r\n// TODO Remove this in 2.0\r\n// Copied from https://github.com/feross/queue-microtask\r\nlet promise: Promise\r\nconst queueMicrotaskShim =\r\n typeof queueMicrotask === 'function'\r\n ? queueMicrotask.bind(\r\n typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : globalThis\r\n )\r\n : // reuse resolved promise, and allocate it lazily\r\n (cb: () => void) =>\r\n (promise || (promise = Promise.resolve())).then(cb).catch((err: any) =>\r\n setTimeout(() => {\r\n throw err\r\n }, 0)\r\n )\r\n\r\nconst createQueueWithTimer = (timeout: number) => {\r\n return (notify: () => void) => {\r\n setTimeout(notify, timeout)\r\n }\r\n}\r\n\r\n// requestAnimationFrame won't exist in SSR environments.\r\n// Fall back to a vague approximation just to keep from erroring.\r\nconst rAF =\r\n typeof window !== 'undefined' && window.requestAnimationFrame\r\n ? window.requestAnimationFrame\r\n : createQueueWithTimer(10)\r\n\r\nexport type AutoBatchOptions =\r\n | { type: 'tick' }\r\n | { type: 'timer'; timeout: number }\r\n | { type: 'raf' }\r\n | { type: 'callback'; queueNotification: (notify: () => void) => void }\r\n\r\n/**\r\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\r\n * notifying subscribers until either the queued callback executes or the\r\n * next \"standard-priority\" action is dispatched.\r\n *\r\n * This allows dispatching multiple \"low-priority\" actions in a row with only\r\n * a single subscriber notification to the UI after the sequence of actions\r\n * is finished, thus improving UI re-render performance.\r\n *\r\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\r\n * This can be added to `action.meta` manually, or by using the\r\n * `prepareAutoBatched` helper.\r\n *\r\n * By default, it will queue a notification for the end of the event loop tick.\r\n * However, you can pass several other options to configure the behavior:\r\n * - `{type: 'tick'}: queues using `queueMicrotask` (default)\r\n * - `{type: 'timer, timeout: number}`: queues using `setTimeout`\r\n * - `{type: 'raf'}`: queues using `requestAnimationFrame`\r\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}: lets you provide your own callback\r\n *\r\n *\r\n */\r\nexport const autoBatchEnhancer =\r\n (options: AutoBatchOptions = { type: 'raf' }): StoreEnhancer =>\r\n (next) =>\r\n (...args) => {\r\n const store = next(...args)\r\n\r\n let notifying = true\r\n let shouldNotifyAtEndOfTick = false\r\n let notificationQueued = false\r\n\r\n const listeners = new Set<() => void>()\r\n\r\n const queueCallback =\r\n options.type === 'tick'\r\n ? queueMicrotaskShim\r\n : options.type === 'raf'\r\n ? rAF\r\n : options.type === 'callback'\r\n ? options.queueNotification\r\n : createQueueWithTimer(options.timeout)\r\n\r\n const notifyListeners = () => {\r\n // We're running at the end of the event loop tick.\r\n // Run the real listener callbacks to actually update the UI.\r\n notificationQueued = false\r\n if (shouldNotifyAtEndOfTick) {\r\n shouldNotifyAtEndOfTick = false\r\n listeners.forEach((l) => l())\r\n }\r\n }\r\n\r\n return Object.assign({}, store, {\r\n // Override the base `store.subscribe` method to keep original listeners\r\n // from running if we're delaying notifications\r\n subscribe(listener: () => void) {\r\n // Each wrapped listener will only call the real listener if\r\n // the `notifying` flag is currently active when it's called.\r\n // This lets the base store work as normal, while the actual UI\r\n // update becomes controlled by this enhancer.\r\n const wrappedListener: typeof listener = () => notifying && listener()\r\n const unsubscribe = store.subscribe(wrappedListener)\r\n listeners.add(listener)\r\n return () => {\r\n unsubscribe()\r\n listeners.delete(listener)\r\n }\r\n },\r\n // Override the base `store.dispatch` method so that we can check actions\r\n // for the `shouldAutoBatch` flag and determine if batching is active\r\n dispatch(action: any) {\r\n try {\r\n // If the action does _not_ have the `shouldAutoBatch` flag,\r\n // we resume/continue normal notify-after-each-dispatch behavior\r\n notifying = !action?.meta?.[SHOULD_AUTOBATCH]\r\n // If a `notifyListeners` microtask was queued, you can't cancel it.\r\n // Instead, we set a flag so that it's a no-op when it does run\r\n shouldNotifyAtEndOfTick = !notifying\r\n if (shouldNotifyAtEndOfTick) {\r\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\r\n // a microtask to notify listeners at the end of the event loop tick.\r\n // Make sure we only enqueue this _once_ per tick.\r\n if (!notificationQueued) {\r\n notificationQueued = true\r\n queueCallback(notifyListeners)\r\n }\r\n }\r\n // Go ahead and process the action as usual, including reducers.\r\n // If normal notification behavior is enabled, the store will notify\r\n // all of its own listeners, and the wrapper callbacks above will\r\n // see `notifying` is true and pass on to the real listener callbacks.\r\n // If we're \"batching\" behavior, then the wrapped callbacks will\r\n // bail out, causing the base store notification behavior to be no-ops.\r\n return store.dispatch(action)\r\n } finally {\r\n // Assume we're back to normal behavior after each action\r\n notifying = true\r\n }\r\n },\r\n })\r\n }\r\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\nexport {\r\n default as createNextState,\r\n current,\r\n freeze,\r\n original,\r\n isDraft,\r\n} from 'immer'\r\nexport type { Draft } from 'immer'\r\nexport { createSelector } from 'reselect'\r\nexport type {\r\n Selector,\r\n OutputParametricSelector,\r\n OutputSelector,\r\n ParametricSelector,\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments. In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n // js\r\n configureStore,\r\n} from './configureStore'\r\nexport type {\r\n // types\r\n ConfigureEnhancersCallback,\r\n ConfigureStoreOptions,\r\n EnhancedStore,\r\n} from './configureStore'\r\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension'\r\nexport {\r\n // js\r\n createAction,\r\n getType,\r\n isAction,\r\n isFSA as isFluxStandardAction,\r\n} from './createAction'\r\nexport type {\r\n // types\r\n PayloadAction,\r\n PayloadActionCreator,\r\n ActionCreatorWithNonInferrablePayload,\r\n ActionCreatorWithOptionalPayload,\r\n ActionCreatorWithPayload,\r\n ActionCreatorWithoutPayload,\r\n ActionCreatorWithPreparedPayload,\r\n PrepareAction,\r\n} from './createAction'\r\nexport {\r\n // js\r\n createReducer,\r\n} from './createReducer'\r\nexport type {\r\n // types\r\n Actions,\r\n CaseReducer,\r\n CaseReducers,\r\n} from './createReducer'\r\nexport {\r\n // js\r\n createSlice,\r\n} from './createSlice'\r\n\r\nexport type {\r\n // types\r\n CreateSliceOptions,\r\n Slice,\r\n CaseReducerActions,\r\n SliceCaseReducers,\r\n ValidateSliceCaseReducers,\r\n CaseReducerWithPrepare,\r\n SliceActionCreator,\r\n} from './createSlice'\r\nexport {\r\n // js\r\n createImmutableStateInvariantMiddleware,\r\n isImmutableDefault,\r\n} from './immutableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n ImmutableStateInvariantMiddlewareOptions,\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n createSerializableStateInvariantMiddleware,\r\n findNonSerializableValue,\r\n isPlain,\r\n} from './serializableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n SerializableStateInvariantMiddlewareOptions,\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n getDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nexport type {\r\n // types\r\n ActionReducerMapBuilder,\r\n} from './mapBuilders'\r\nexport { MiddlewareArray, EnhancerArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport type {\r\n Dictionary,\r\n EntityState,\r\n EntityAdapter,\r\n EntitySelectors,\r\n EntityStateAdapter,\r\n EntityId,\r\n Update,\r\n IdSelector,\r\n Comparer,\r\n} from './entities/models'\r\n\r\nexport {\r\n createAsyncThunk,\r\n unwrapResult,\r\n miniSerializeError,\r\n} from './createAsyncThunk'\r\nexport type {\r\n AsyncThunk,\r\n AsyncThunkOptions,\r\n AsyncThunkAction,\r\n AsyncThunkPayloadCreatorReturnValue,\r\n AsyncThunkPayloadCreator,\r\n SerializedError,\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n // js\r\n isAllOf,\r\n isAnyOf,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n isAsyncThunkAction,\r\n isRejectedWithValue,\r\n} from './matchers'\r\nexport type {\r\n // types\r\n ActionMatchingAllOf,\r\n ActionMatchingAnyOf,\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './listenerMiddleware/index'\r\nexport type { AnyListenerPredicate } from './listenerMiddleware/types'\r\n\r\nexport {\r\n createListenerMiddleware,\r\n addListener,\r\n removeListener,\r\n clearAllListeners,\r\n TaskAbortError,\r\n} from './listenerMiddleware/index'\r\n\r\nexport {\r\n SHOULD_AUTOBATCH,\r\n prepareAutoBatched,\r\n autoBatchEnhancer,\r\n} from './autoBatchEnhancer'\r\nexport type { AutoBatchOptions } from './autoBatchEnhancer'\r\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLAC e navigations for data routers\n * behave the same as POP\n *\n * @param location The incoming location from router.navigate()\n */\n encodeLocation(location: Location): Location;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n },\n encodeLocation(location) {\n return location;\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation });\n }\n },\n go(delta) {\n action = Action.Pop;\n index = clampIndex(index + delta);\n if (listener) {\n listener({ action, location: getCurrentLocation() });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\nfunction warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport function createURL(location: Location | string): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n typeof window !== \"undefined\" &&\n typeof window.location !== \"undefined\" &&\n window.location.origin !== \"null\"\n ? window.location.origin\n : \"unknown://unknown\";\n let href = typeof location === \"string\" ? location : createPath(location);\n return new URL(href, base);\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function handlePop() {\n action = Action.Pop;\n if (listener) {\n listener({ action, location: history.location });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n let historyState = getHistoryState(location);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n let historyState = getHistoryState(location);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location });\n }\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n encodeLocation(location) {\n // Encode a Location the same way window.location would\n let url = createURL(createPath(location));\n return {\n ...location,\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type FormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: Exclude;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `${string}:${infer Param}`\n ? Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n parentPath: number[] = [],\n allIds: Set = new Set()\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !allIds.has(id),\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = { ...route, id };\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n children: route.children\n ? convertRoutesToDataRoutes(route.children, treePath, allIds)\n : undefined,\n };\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/utils/generate-path\n */\nexport function generatePath(\n path: Path,\n params: {\n [key in PathParam]: string;\n } = {} as any\n): string {\n return path\n .replace(/:(\\w+)/g, (_, key: PathParam) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\" as PathParam;\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n }\n\n // Apply the splat\n return `${prefix}${params[star]}`;\n });\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\n/**\n * @private\n */\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeys: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscriber?: (aborted: boolean) => void = undefined;\n data: Record;\n\n constructor(data: Record) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n }\n\n private trackPromise(\n key: string | number,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.pendingKeys.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string | number,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeys.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n const subscriber = this.subscriber;\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n subscriber && subscriber(false);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n subscriber && subscriber(false);\n return data;\n }\n\n subscribe(fn: (aborted: boolean) => void) {\n this.subscriber = fn;\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeys.forEach((v, k) => this.pendingKeys.delete(k));\n let subscriber = this.subscriber;\n subscriber && subscriber(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeys.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport function defer(data: Record) {\n return new DeferredData(data);\n}\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n\n constructor(status: number, statusText: string | undefined, data: any) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.data = data;\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response throw from an action/loader\n */\nexport function isRouteErrorResponse(e: any): e is ErrorResponse {\n return e instanceof ErrorResponse;\n}\n","import type { History, Location, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n createURL,\n parsePath,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n invariant,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): void;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To, opts?: RouterNavigateOptions): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key?: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(request: Request): Promise;\n queryRoute(request: Request, routeId?: string): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Tuple of [key, href, DataRouteMatch, DataRouteMatch[]] for a revalidating\n * fetcher.load()\n */\ntype RevalidatingFetcher = [\n string,\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Tuple of [href, DataRouteMatch, DataRouteMatch[]] for an active\n * fetcher.load()\n */\ntype FetchLoadMatch = [\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(init.routes);\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n let initialScrollRestored = false;\n\n let initialMatches = matchRoutes(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let { matches, route, error } = getNotFoundMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n !initialMatches.some((m) => m.route.loader) || init.hydrationData != null;\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n restoreScrollPosition: null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations from their actions\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location }) =>\n startNavigation(historyAction, location)\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a submission\n // - We're past the submitting state and into the loading state\n // - The location we've finished loading is different from the submission\n // location, indicating we redirected from the action (avoids false\n // positives for loading/submissionRedirect when actionData returned\n // on a prior submission)\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n state.navigation.state === \"loading\" &&\n state.navigation.formAction?.split(\"?\")[0] === location.pathname;\n\n // Always preserve any existing loaderData from re-used routes\n let newLoaderData = newState.loaderData\n ? {\n loaderData: mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || []\n ),\n }\n : {};\n\n updateState({\n // Clear existing actionData on any completed navigation beyond the original\n // action, unless we're currently finishing the loading/actionReload state.\n // Do this prior to spreading in newState in case we got back to back actions\n ...(isActionReload ? {} : { actionData: null }),\n ...newState,\n ...newLoaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n // Don't restore on submission navigations\n restoreScrollPosition: state.navigation.formData\n ? false\n : getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset: pendingPreventScrollReset,\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let location = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n location = init.history.encodeLocation(location);\n\n let historyAction =\n (opts && opts.replace) === true || submission != null\n ? HistoryAction.Replace\n : HistoryAction.Push;\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n return await startNavigation(historyAction, location, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(dataRoutes, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let {\n matches: notFoundMatches,\n route,\n error,\n } = getNotFoundMatches(dataRoutes);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change\n if (isHashChangeOnly(state.location, location)) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createRequest(\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (opts && opts.submission) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action) {\n result = getMethodNotAllowedResult(location);\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n router.basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let redirectNavigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location: createLocation(state.location, result.location),\n ...submission,\n };\n await startRedirectNavigation(\n result,\n redirectNavigation,\n opts && opts.replace\n );\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n loadingNavigation = navigation;\n }\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n state,\n matches,\n submission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n pendingActionData,\n pendingError,\n fetchLoadMatches\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: mergeLoaderData(state.loaderData, {}, matches),\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n actionData: pendingActionData || null,\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach(([key]) => {\n let fetcher = state.fetchers.get(key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, revalidatingFetcher);\n });\n updateState({\n navigation: loadingNavigation,\n actionData: pendingActionData || state.actionData || null,\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach(([key]) =>\n fetchControllers.set(key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach(([key]) => fetchControllers.delete(key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n let redirectNavigation = getLoaderRedirect(state, redirect);\n await startRedirectNavigation(redirect, redirectNavigation, replace);\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let matches = matchRoutes(dataRoutes, href, init.basename);\n if (!matches) {\n setFetcherError(key, routeId, new ErrorResponse(404, \"Not Found\", null));\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n if (submission) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, [path, match, matches]);\n handleFetcherLoader(key, routeId, path, match, matches);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let { error } = getMethodNotAllowedResult(path);\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createRequest(path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n let redirectNavigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location: createLocation(state.location, actionResult.location),\n ...submission,\n };\n await startRedirectNavigation(actionResult, redirectNavigation);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n invariant(false, \"defer() is not supported in actions\");\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createRequest(\n nextLocation,\n abortController.signal\n );\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(dataRoutes, state.navigation.location, init.basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n { [match.route.id]: actionResult.data },\n undefined, // No need to send through errors since we short circuit above\n fetchLoadMatches\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter(([staleKey]) => staleKey !== key)\n .forEach(([staleKey]) => {\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(([staleKey]) =>\n fetchControllers.delete(staleKey)\n );\n\n let redirect = findRedirect(results);\n if (redirect) {\n let redirectNavigation = getLoaderRedirect(state, redirect);\n await startRedirectNavigation(redirect, redirectNavigation);\n return;\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[]\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n data: existingFetcher && existingFetcher.data,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createRequest(path, abortController.signal);\n fetchControllers.set(key, abortController);\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n router.basename\n );\n\n // Deferred isn't supported or fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n let redirectNavigation = getLoaderRedirect(state, result);\n await startRedirectNavigation(result, redirectNavigation);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n redirect: RedirectResult,\n navigation: Navigation,\n replace?: boolean\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n invariant(\n navigation.location,\n \"Expected a location on the redirect navigation\"\n );\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n await startNavigation(redirectHistoryAction, navigation.location, {\n overrideNavigation: navigation,\n });\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\"loader\", request, match, matches, router.basename)\n ),\n ...fetchersToLoad.map(([, href, match, fetchMatches]) =>\n callLoaderOrAction(\n \"loader\",\n createRequest(href, request.signal),\n match,\n fetchMatches,\n router.basename\n )\n ),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map(([, , match]) => match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n getFetcher,\n deleteFetcher,\n dispose,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nconst validActionMethods = new Set([\"POST\", \"PUT\", \"PATCH\", \"DELETE\"]);\nconst validRequestMethods = new Set([\"GET\", \"HEAD\", ...validActionMethods]);\n\nexport function unstable_createStaticHandler(\n routes: AgnosticRouteObject[]\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to unstable_createStaticHandler\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(routes);\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request\n ): Promise {\n let url = new URL(request.url);\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location);\n\n if (!validRequestMethods.has(request.method)) {\n let {\n matches: methodNotAllowedMatches,\n route,\n error,\n } = getMethodNotAllowedMatches(dataRoutes);\n return {\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n };\n } else if (!matches) {\n let {\n matches: notFoundMatches,\n route,\n error,\n } = getNotFoundMatches(dataRoutes);\n return {\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n };\n }\n\n let result = await queryImpl(request, location, matches);\n if (result instanceof Response) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated thrown Response (such as a\n * 404 or 405) will have a custom X-Remix-Router-Error: \"yes\" header on it\n * in order to differentiate from responses thrown from user actions/loaders.\n */\n async function queryRoute(request: Request, routeId?: string): Promise {\n let url = new URL(request.url);\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location);\n\n if (!validRequestMethods.has(request.method)) {\n throw createRouterErrorResponse(null, {\n status: 405,\n statusText: \"Method Not Allowed\",\n });\n } else if (!matches) {\n throw createRouterErrorResponse(null, {\n status: 404,\n statusText: \"Not Found\",\n });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (!match) {\n throw createRouterErrorResponse(null, {\n status: 404,\n statusText: \"Not Found\",\n });\n }\n\n let result = await queryImpl(request, location, matches, match);\n if (result instanceof Response) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n let routeData = [result.actionData, result.loaderData].find((v) => v);\n return Object.values(routeData || {})[0];\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (validActionMethods.has(request.method)) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(request, matches, routeMatch);\n return result instanceof Response\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n if (!actionMatch.route.action) {\n if (isRouteRequest) {\n throw createRouterErrorResponse(null, {\n status: 405,\n statusText: \"Method Not Allowed\",\n });\n }\n result = getMethodNotAllowedResult(request.url);\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n undefined, // Basename not currently supported in static handlers\n true,\n isRouteRequest\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: null,\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 500,\n loaderHeaders: {},\n actionHeaders: {},\n };\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(request, matches, undefined, {\n [boundaryMatch.route.id]: result.error,\n });\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(request, matches);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter((m) => m.route.loader);\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0) {\n return {\n matches,\n loaderData: {},\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n undefined, // Basename not currently supported in static handlers\n true,\n isRouteRequest\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Can't do anything with these without the Remix side of things, so just\n // cancel them for now\n results.forEach((result) => {\n if (isDeferredResult(result)) {\n result.deferredData.cancel();\n }\n });\n\n // Process and commit output from loaders\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError\n );\n\n return {\n ...context,\n matches,\n };\n }\n\n function createRouterErrorResponse(\n body: BodyInit | null | undefined,\n init: ResponseInit\n ) {\n return new Response(body, {\n ...init,\n headers: {\n ...init.headers,\n \"X-Remix-Router-Error\": \"yes\",\n },\n });\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\n\n // Return location verbatim on non-submission navigations\n if (!opts || (!(\"formMethod\" in opts) && !(\"formData\" in opts))) {\n return { path };\n }\n\n // Create a Submission on non-GET navigations\n if (opts.formMethod != null && opts.formMethod !== \"get\") {\n return {\n path,\n submission: {\n formMethod: opts.formMethod,\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n },\n };\n }\n\n // No formData to flatten for GET submission\n if (!opts.formData) {\n return { path };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n try {\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (\n isFetcher &&\n parsedPath.search &&\n hasNakedIndexQuery(parsedPath.search)\n ) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n } catch (e) {\n return {\n path,\n error: new ErrorResponse(\n 400,\n \"Bad Request\",\n \"Cannot submit binary form data using GET\"\n ),\n };\n }\n\n return { path: createPath(parsedPath) };\n}\n\nfunction getLoaderRedirect(\n state: RouterState,\n redirect: RedirectResult\n): Navigation {\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location: createLocation(state.location, redirect.location),\n formMethod: formMethod || undefined,\n formAction: formAction || undefined,\n formEncType: formEncType || undefined,\n formData: formData || undefined,\n };\n return navigation;\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n pendingActionData?: RouteData,\n pendingError?: RouteData,\n fetchLoadMatches?: Map\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : null;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter(\n (match, index) =>\n match.route.loader != null &&\n (isNewLoader(state.loaderData, state.matches[index], match) ||\n // If this route had a pending deferred cancelled it must be revalidated\n cancelledDeferredRoutes.some((id) => id === match.route.id) ||\n shouldRevalidateLoader(\n state.location,\n state.matches[index],\n submission,\n location,\n match,\n isRevalidationRequired,\n actionResult\n ))\n );\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches &&\n fetchLoadMatches.forEach(([href, match, fetchMatches], key) => {\n // This fetcher was cancelled from a prior action submission - force reload\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n } else if (isRevalidationRequired) {\n let shouldRevalidate = shouldRevalidateLoader(\n href,\n match,\n submission,\n href,\n match,\n isRevalidationRequired,\n actionResult\n );\n if (shouldRevalidate) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n }\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n currentLocation: string | Location,\n currentMatch: AgnosticDataRouteMatch,\n submission: Submission | undefined,\n location: string | Location,\n match: AgnosticDataRouteMatch,\n isRevalidationRequired: boolean,\n actionResult: DataResult | undefined\n) {\n let currentUrl = createURL(currentLocation);\n let currentParams = currentMatch.params;\n let nextUrl = createURL(location);\n let nextParams = match.params;\n\n // This is the default implementation as to when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n // Note that fetchers always provide the same current/next locations so the\n // URL-based checks here don't apply to fetcher shouldRevalidate calls\n let defaultShouldRevalidate =\n isNewRouteInstance(currentMatch, match) ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired;\n\n if (match.route.shouldRevalidate) {\n let routeChoice = match.route.shouldRevalidate({\n currentUrl,\n currentParams,\n nextUrl,\n nextParams,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return defaultShouldRevalidate;\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n basename: string | undefined,\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false\n): Promise {\n let resultType;\n let result;\n\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n let onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await Promise.race([\n handler({ request, params: match.params }),\n abortPromise,\n ]);\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n\n if (result instanceof Response) {\n let status = result.status;\n\n // Process redirects\n if (status >= 300 && status <= 399) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in redirects\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let requestPath = createURL(request.url).pathname;\n let resolvedLocation = resolveTo(location, routePathnames, requestPath);\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${result.headers.get(\"Location\")}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n if (contentType && contentType.startsWith(\"application/json\")) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return { type: ResultType.deferred, deferredData: result };\n }\n\n return { type: ResultType.data, data: result };\n}\n\nfunction createRequest(\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n invariant(\n typeof value === \"string\",\n 'File inputs are not supported with encType \"application/x-www-form-urlencoded\", ' +\n 'please use \"multipart/form-data\" instead.'\n );\n searchParams.append(key, value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds?: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n errors = Object.assign(errors || {}, {\n [boundaryMatch.route.id]: error,\n });\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else if (isDeferredResult(result)) {\n activeDeferreds && activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // TODO: Add statusCode/headers once we wire up streaming in Remix\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here\n if (pendingError) {\n errors = pendingError;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let [key, , match] = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n throw new Error(\"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n throw new Error(\"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[]\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n matches.forEach((match) => {\n let id = match.route.id;\n if (newLoaderData[id] === undefined && loaderData[id] !== undefined) {\n mergedLoaderData[id] = loaderData[id];\n }\n });\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(\n routes: AgnosticDataRouteObject[],\n status: number,\n statusText: string\n): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n error: ErrorResponse;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-${status}-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n error: new ErrorResponse(status, statusText, null),\n };\n}\n\nfunction getNotFoundMatches(routes: AgnosticDataRouteObject[]) {\n return getShortCircuitMatches(routes, 404, \"Not Found\");\n}\n\nfunction getMethodNotAllowedMatches(routes: AgnosticDataRouteObject[]) {\n return getShortCircuitMatches(routes, 405, \"Method Not Allowed\");\n}\n\nfunction getMethodNotAllowedResult(path: Location | string): ErrorResult {\n let href = typeof path === \"string\" ? path : createPath(path);\n console.warn(\n \"You're trying to submit to a route that does not have an action. To \" +\n \"fix this, please add an `action` function to the route for \" +\n `[${href}]`\n );\n return {\n type: ResultType.error,\n error: new ErrorResponse(405, \"Method Not Allowed\", \"\"),\n };\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!(result instanceof Response)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n obj.response instanceof Response &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\n","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\nexport const getBatch = () => batch;","import { createContext } from 'react';\nexport const ReactReduxContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const { store } = useReduxContext()\r\n * return

\r\n * }\r\n */\nexport function useReduxContext() {\n const contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","export const notInitialized = () => {\n throw new Error('uSES not initialized!');\n};","import { useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { ReactReduxContext } from '../components/Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStoreWithSelector = notInitialized;\nexport const initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nconst refEquality = (a, b) => a === b;\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context = ReactReduxContext) {\n const useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : () => useContext(context);\n return function useSelector(selector, equalityFn = refEquality) {\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(`You must pass a function as an equality function to useSelector`);\n }\n }\n\n const {\n store,\n subscription,\n getServerState\n } = useReduxContext();\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, selector, equalityFn);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport const useSelector = /*#__PURE__*/createSelectorHook();","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n const batch = getBatch();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n\n };\n}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\nexport function createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe,\n tryUnsubscribe,\n getListeners: () => listeners\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n// Matches logic in React's `shared/ExecutionEnvironment` file\n\nexport const canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexport const useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider({\n store,\n context,\n children,\n serverState\n}) {\n const contextValue = useMemo(() => {\n const subscription = createSubscription(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined\n };\n }, [store, serverState]);\n const previousState = useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const {\n subscription\n } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = undefined;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nexport default Provider;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context = ReactReduxContext) {\n const useReduxContext = // @ts-ignore\n context === ReactReduxContext ? useDefaultReduxContext : () => useContext(context);\n return function useStore() {\n const {\n store\n } = useReduxContext(); // @ts-ignore\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport const useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context = ReactReduxContext) {\n const useStore = // @ts-ignore\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n const store = useStore(); // @ts-ignore\n\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport const useDispatch = /*#__PURE__*/createDispatchHook();","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"reactReduxForwardedRef\"];\n\n/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport defaultSelectorFactory from '../connect/selectorFactory';\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps';\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps';\nimport { mergePropsFactory } from '../connect/mergeProps';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport shallowEqual from '../utils/shallowEqual';\nimport warning from '../utils/warning';\nimport { ReactReduxContext } from './Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStore = notInitialized;\nexport const initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch,\nadditionalSubscribeListener) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return () => {}; // Capture values for checking if and when this component unmounts\n\n let didUnsubscribe = false;\n let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n const latestStoreState = store.getState();\n let newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n\n additionalSubscribeListener();\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\r\n * Infers the type of props that a connector will inject into a component.\r\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps A function that extracts values from state\r\n * @param mapDispatchToProps Setup for dispatching actions\r\n * @param mergeProps Optional callback to merge state and dispatch props together\r\n * @param options Options for configuring the connection\r\n *\r\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const wrapWithConnect = WrappedComponent => {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(`You must pass a component to the function returned by connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n }\n\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = useMemo(() => {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n const {\n reactReduxForwardedRef\n } = props,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = useMemo(() => {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && // @ts-ignore\n isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(`Could not find \"store\" in the context of ` + `\"${displayName}\". Either wrap the root component in a , ` + `or pass a custom React context provider to and the corresponding ` + `React context consumer to ${displayName} in connect options.`);\n } // Based on the previous check, one of these must be true\n\n\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n const subscription = createSubscription(store, didStoreComeFromProps ? undefined : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]); // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n const overriddenContextValue = useMemo(() => {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n const lastChildProps = useRef();\n const lastWrapperProps = useRef(wrapperProps);\n const childPropsFromStoreUpdate = useRef();\n const renderIsScheduled = useRef(false);\n const isProcessingDispatch = useRef(false);\n const isMounted = useRef(false);\n const latestSubscriptionCallbackError = useRef();\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = useMemo(() => {\n const selector = () => {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n };\n\n return selector;\n }, [store, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n const subscribeForReact = useMemo(() => {\n const subscribe = reactListener => {\n if (!subscription) {\n return () => {};\n }\n\n return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n };\n\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n let actualChildProps;\n\n try {\n actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`;\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = undefined;\n childPropsFromStoreUpdate.current = undefined;\n lastChildProps.current = actualChildProps;\n }); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n const renderedWrappedComponent = useMemo(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }))\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n const renderedChild = useMemo(() => {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n\n const _Connect = React.memo(ConnectFunction);\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nexport default connect;","/**\n * @license React\n * react-is.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 b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type {\n NavigateOptions,\n RelativeRoutingType,\n RouteObject,\n To,\n} from \"react-router\";\nimport {\n Router,\n createPath,\n useHref,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useResolvedPath,\n UNSAFE_DataRouterContext as DataRouterContext,\n UNSAFE_DataRouterStateContext as DataRouterStateContext,\n UNSAFE_NavigationContext as NavigationContext,\n UNSAFE_RouteContext as RouteContext,\n UNSAFE_enhanceManualRouteObjects as enhanceManualRouteObjects,\n} from \"react-router\";\nimport type {\n BrowserHistory,\n Fetcher,\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n HashHistory,\n History,\n HydrationState,\n Router as RemixRouter,\n} from \"@remix-run/router\";\nimport {\n createRouter,\n createBrowserHistory,\n createHashHistory,\n invariant,\n joinPaths,\n matchPath,\n} from \"@remix-run/router\";\n\nimport type {\n SubmitOptions,\n ParamKeyValuePair,\n URLSearchParamsInit,\n} from \"./dom\";\nimport {\n createSearchParams,\n defaultMethod,\n getFormSubmissionInfo,\n getSearchParamsForLocation,\n shouldProcessLinkClick,\n} from \"./dom\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Re-exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport type {\n FormEncType,\n FormMethod,\n ParamKeyValuePair,\n SubmitOptions,\n URLSearchParamsInit,\n};\nexport { createSearchParams };\n\n// Note: Keep in sync with react-router exports!\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n DataRouteMatch,\n DataRouteObject,\n Fetcher,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n} from \"react-router\";\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createMemoryRouter,\n createPath,\n createRoutesFromChildren,\n createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_DataRouterContext,\n UNSAFE_DataRouterStateContext,\n UNSAFE_DataStaticRouterContext,\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n UNSAFE_enhanceManualRouteObjects,\n} from \"react-router\";\n//#endregion\n\ndeclare global {\n var __staticRouterHydrationData: HydrationState | undefined;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Routers\n////////////////////////////////////////////////////////////////////////////////\n\nexport function createBrowserRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || window?.__staticRouterHydrationData,\n routes: enhanceManualRouteObjects(routes),\n }).initialize();\n}\n\nexport function createHashRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || window?.__staticRouterHydrationData,\n routes: enhanceManualRouteObjects(routes),\n }).initialize();\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware
.\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n ...rest\n },\n ref\n ) {\n let href = useHref(to, { relative });\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean; isPending: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?:\n | string\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => React.CSSProperties | undefined);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React.useContext(DataRouterStateContext);\n\n let toPathname = path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname =\n routerState && routerState.navigation && routerState.navigation.location\n ? routerState.navigation.location.pathname\n : null;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname\n ? nextLocationPathname.toLowerCase()\n : null;\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let isPending =\n nextLocationPathname != null &&\n (nextLocationPathname === toPathname ||\n (!end &&\n nextLocationPathname.startsWith(toPathname) &&\n nextLocationPathname.charAt(toPathname.length) === \"/\"));\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive, isPending });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\"\n ? styleProp({ isActive, isPending })\n : styleProp;\n\n return (\n \n {typeof children === \"function\"\n ? children({ isActive, isPending })\n : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\nexport interface FormProps extends React.FormHTMLAttributes {\n /**\n * The HTTP verb to use when the form is submit. Supports \"get\", \"post\",\n * \"put\", \"delete\", \"patch\".\n */\n method?: FormMethod;\n\n /**\n * Normal `
` but supports React Router's relative paths.\n */\n action?: string;\n\n /**\n * Forces a full document navigation instead of a fetch.\n */\n reloadDocument?: boolean;\n\n /**\n * Replaces the current entry in the browser history stack when the form\n * navigates. Use this if you don't want the user to be able to click \"back\"\n * to the page with the form on it.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * A function to call when the form is submitted. If you call\n * `event.preventDefault()` then this form will not do anything.\n */\n onSubmit?: React.FormEventHandler;\n}\n\n/**\n * A `@remix-run/router`-aware ``. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nexport const Form = React.forwardRef(\n (props, ref) => {\n return ;\n }\n);\n\nif (__DEV__) {\n Form.displayName = \"Form\";\n}\n\ntype HTMLSubmitEvent = React.BaseSyntheticEvent<\n SubmitEvent,\n Event,\n HTMLFormElement\n>;\n\ntype HTMLFormSubmitter = HTMLButtonElement | HTMLInputElement;\n\ninterface FormImplProps extends FormProps {\n fetcherKey?: string;\n routeId?: string;\n}\n\nconst FormImpl = React.forwardRef(\n (\n {\n reloadDocument,\n replace,\n method = defaultMethod,\n action,\n onSubmit,\n fetcherKey,\n routeId,\n relative,\n ...props\n },\n forwardedRef\n ) => {\n let submit = useSubmitImpl(fetcherKey, routeId);\n let formMethod: FormMethod =\n method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let formAction = useFormAction(action, { relative });\n let submitHandler: React.FormEventHandler = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n\n let submitter = (event as unknown as HTMLSubmitEvent).nativeEvent\n .submitter as HTMLFormSubmitter | null;\n\n submit(submitter || event.currentTarget, { method, replace, relative });\n };\n\n return (\n \n );\n }\n);\n\nif (__DEV__) {\n Form.displayName = \"Form\";\n}\n\ninterface ScrollRestorationProps {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n}\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nexport function ScrollRestoration({\n getKey,\n storageKey,\n}: ScrollRestorationProps) {\n useScrollRestoration({ getKey, storageKey });\n return null;\n}\n\nif (__DEV__) {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\n\nenum DataRouterHook {\n UseScrollRestoration = \"useScrollRestoration\",\n UseSubmitImpl = \"useSubmitImpl\",\n UseFetcher = \"useFetcher\",\n}\n\nenum DataRouterStateHook {\n UseFetchers = \"useFetchers\",\n UseScrollRestoration = \"useScrollRestoration\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace =\n replaceProp !== undefined\n ? replaceProp\n : createPath(location) === createPath(path);\n\n navigate(to, { replace, state, preventScrollReset, relative });\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n ]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(\n () =>\n getSearchParamsForLocation(\n location.search,\n defaultSearchParamsRef.current\n ),\n [location.search]\n );\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n );\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n\n return [searchParams, setSearchParams];\n}\n\ntype SetURLSearchParams = (\n nextInit?:\n | URLSearchParamsInit\n | ((prev: URLSearchParams) => URLSearchParamsInit),\n navigateOpts?: NavigateOptions\n) => void;\n\ntype SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | { [name: string]: string }\n | null;\n\n/**\n * Submits a HTML `` to the server without reloading the page.\n */\nexport interface SubmitFunction {\n (\n /**\n * Specifies the `` to be submitted to the server, a specific\n * `

(\r\n type: T\r\n): PayloadActionCreator\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error }),\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\n/**\r\n * Returns true if value is a plain object with a `type` property.\r\n */\r\nexport function isAction(action: unknown): action is Action {\r\n return isPlainObject(action) && 'type' in action\r\n}\r\n\r\n/**\r\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\r\n */\r\nexport function isFSA(action: unknown): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isAction(action) &&\r\n typeof action.type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType(\r\n actionCreator: PayloadActionCreator\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import type { Action, AnyAction } from 'redux'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n} from './createReducer'\r\nimport type { TypeGuard } from './tsHelpers'\r\n\r\nexport interface TypedActionCreator {\r\n (...args: any[]): Action\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder {\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer>\r\n ): ActionReducerMapBuilder\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n type: Type,\r\n reducer: CaseReducer\r\n ): ActionReducerMapBuilder\r\n\r\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/advanced-types.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk;\r\n\r\ntype PendingAction = ReturnType;\r\ntype RejectedAction = ReturnType;\r\ntype FulfilledAction = ReturnType;\r\n\r\nconst initialState: Record = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n});\r\n```\r\n */\r\n addMatcher(\r\n matcher: TypeGuard | ((action: any) => boolean),\r\n reducer: CaseReducer\r\n ): Omit, 'addCase'>\r\n\r\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n})\r\n```\r\n */\r\n addDefaultCase(reducer: CaseReducer): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback(\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): [\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n CaseReducer | undefined\r\n] {\r\n const actionsMap: CaseReducers = {}\r\n const actionMatchers: ActionMatcherDescriptionCollection = []\r\n let defaultCaseReducer: CaseReducer | undefined\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n /*\r\n to keep the definition by the user in line with actual behavior, \r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n )\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (type in actionsMap) {\r\n throw new Error(\r\n 'addCase cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n },\r\n addMatcher(\r\n matcher: TypeGuard,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n actionMatchers.push({ matcher, reducer })\r\n return builder\r\n },\r\n addDefaultCase(reducer: CaseReducer) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error('`builder.addDefaultCase` can only be called once')\r\n }\r\n }\r\n defaultCaseReducer = reducer\r\n return builder\r\n },\r\n }\r\n builderCallback(builder)\r\n return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import type { AnyAction, Reducer } from 'redux'\r\nimport { createNextState } from '.'\r\nimport type {\r\n ActionCreatorWithoutPayload,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ReducerWithInitialState,\r\n} from './createReducer'\r\nimport { createReducer, NotFunction } from './createReducer'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator