{ "version": 3, "sources": ["../../../../../node_modules/lodash/_freeGlobal.js", "../../../../../node_modules/lodash/_root.js", "../../../../../node_modules/lodash/_Symbol.js", "../../../../../node_modules/lodash/_getRawTag.js", "../../../../../node_modules/lodash/_objectToString.js", "../../../../../node_modules/lodash/_baseGetTag.js", "../../../../../node_modules/lodash/_overArg.js", "../../../../../node_modules/lodash/_getPrototype.js", "../../../../../node_modules/lodash/isObjectLike.js", "../../../../../node_modules/lodash/isPlainObject.js", "../../../../../node_modules/pako/lib/zlib/trees.js", "../../../../../node_modules/pako/lib/zlib/adler32.js", "../../../../../node_modules/pako/lib/zlib/crc32.js", "../../../../../node_modules/pako/lib/zlib/messages.js", "../../../../../node_modules/pako/lib/zlib/constants.js", "../../../../../node_modules/pako/lib/zlib/deflate.js", "../../../../../node_modules/pako/lib/utils/common.js", "../../../../../node_modules/pako/lib/utils/strings.js", "../../../../../node_modules/pako/lib/zlib/zstream.js", "../../../../../node_modules/pako/lib/deflate.js", "../../../../../node_modules/pako/lib/zlib/inffast.js", "../../../../../node_modules/pako/lib/zlib/inftrees.js", "../../../../../node_modules/pako/lib/zlib/inflate.js", "../../../../../node_modules/pako/lib/zlib/gzheader.js", "../../../../../node_modules/pako/lib/inflate.js", "../../../../../node_modules/pako/index.js", "../../../../../node_modules/@redux-saga/symbols/dist/redux-saga-symbols.esm.js", "../../../../../node_modules/@babel/runtime/helpers/esm/extends.js", "../../../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js", "../../../../../node_modules/@redux-saga/is/dist/redux-saga-is.esm.js", "../../../../../node_modules/@redux-saga/delay-p/dist/redux-saga-delay-p.esm.js", "../../../../../node_modules/@redux-saga/core/dist/io-c3792963.js", "../../../../../node_modules/@babel/runtime/helpers/typeof.js", "../../../../../node_modules/@babel/runtime/helpers/toPrimitive.js", "../../../../../node_modules/@babel/runtime/helpers/toPropertyKey.js", "../../../../../node_modules/@babel/runtime/helpers/defineProperty.js", "../../../../../node_modules/@babel/runtime/helpers/objectSpread2.js", "../../../../../node_modules/redux/lib/redux.js", "../../../../../node_modules/@redux-saga/deferred/dist/redux-saga-deferred.esm.js", "../../../../../node_modules/@redux-saga/core/dist/redux-saga-core.esm.js", "../../../../../node_modules/redux-saga/dist/redux-saga-core-npm-proxy.esm.js", "../../../../../node_modules/uuid/dist/esm-browser/rng.js", "../../../../../node_modules/uuid/dist/esm-browser/regex.js", "../../../../../node_modules/uuid/dist/esm-browser/validate.js", "../../../../../node_modules/uuid/dist/esm-browser/stringify.js", "../../../../../node_modules/uuid/dist/esm-browser/v1.js", "../../../../../node_modules/uuid/dist/esm-browser/parse.js", "../../../../../node_modules/uuid/dist/esm-browser/v35.js", "../../../../../node_modules/uuid/dist/esm-browser/md5.js", "../../../../../node_modules/uuid/dist/esm-browser/v3.js", "../../../../../node_modules/uuid/dist/esm-browser/v4.js", "../../../../../node_modules/uuid/dist/esm-browser/sha1.js", "../../../../../node_modules/uuid/dist/esm-browser/v5.js", "../../../../../node_modules/uuid/dist/esm-browser/nil.js", "../../../../../node_modules/uuid/dist/esm-browser/version.js", "../../../../../node_modules/uuid/dist/esm-browser/index.js", "../../../../../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/plugins/patches.ts", "../../../../../node_modules/immer/src/plugins/mapset.ts", "../../../../../node_modules/immer/src/utils/env.ts", "../../../../../node_modules/immer/src/immer.ts", "../../../../../node_modules/immer/src/plugins/all.ts", "../../../../../node_modules/immer/dist/index.js", "../../../../../node_modules/reselect/lib/defaultMemoize.js", "../../../../../node_modules/reselect/lib/index.js", "../../../../../node_modules/redux-thunk/lib/index.js", "../../../../../node_modules/@reduxjs/toolkit/src/index.ts", "../../../../../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts", "../../../../../node_modules/@reduxjs/toolkit/src/configureStore.ts", "../../../../../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts", "../../../../../node_modules/@reduxjs/toolkit/src/isPlainObject.ts", "../../../../../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts", "../../../../../node_modules/@reduxjs/toolkit/src/utils.ts", "../../../../../node_modules/@reduxjs/toolkit/src/immutableStateInvariantMiddleware.ts", "../../../../../node_modules/@reduxjs/toolkit/src/serializableStateInvariantMiddleware.ts", "../../../../../node_modules/@reduxjs/toolkit/src/createAction.ts", "../../../../../node_modules/@reduxjs/toolkit/src/createReducer.ts", "../../../../../node_modules/@reduxjs/toolkit/src/mapBuilders.ts", "../../../../../node_modules/@reduxjs/toolkit/src/createSlice.ts", "../../../../../node_modules/@reduxjs/toolkit/src/entities/state_adapter.ts", "../../../../../node_modules/@reduxjs/toolkit/src/entities/utils.ts", "../../../../../node_modules/@reduxjs/toolkit/src/entities/unsorted_state_adapter.ts", "../../../../../node_modules/@reduxjs/toolkit/src/entities/create_adapter.ts", "../../../../../node_modules/@reduxjs/toolkit/src/entities/entity_state.ts", "../../../../../node_modules/@reduxjs/toolkit/src/entities/state_selectors.ts", "../../../../../node_modules/@reduxjs/toolkit/src/entities/sorted_state_adapter.ts", "../../../../../node_modules/@reduxjs/toolkit/src/nanoid.ts", "../../../../../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts", "../../../../../node_modules/@reduxjs/toolkit/src/tsHelpers.ts", "../../../../../node_modules/@reduxjs/toolkit/src/matchers.ts", "../../../../../node_modules/@reduxjs/toolkit/src/listenerMiddleware/utils.ts", "../../../../../node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts", "../../../../../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts", "../../../../../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts", "../../../../../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts", "../../../../../node_modules/@reduxjs/toolkit/dist/index.js", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/apiState.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/index.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/utils/flatten.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/utils/copyWithStructuralSharing.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/fetchBaseQuery.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/utils/joinUrls.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/utils/isAbsoluteUrl.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/HandledError.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/retry.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/setupListeners.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildSelectors.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/endpointDefinitions.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildSlice.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/utils/isNotNullish.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildInitiate.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildThunks.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/defaultSerializeQueryArgs.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/createApi.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/fakeBaseQuery.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/index.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/batchActions.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/cacheCollection.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/invalidationByTags.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/polling.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/cacheLifecycle.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/queryLifecycle.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/devMiddleware.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/tsHelpers.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/module.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/utils/isOnline.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/utils/isDocumentVisible.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/windowEventHandling.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/core/index.ts", "../../../../../node_modules/@reduxjs/toolkit/dist/query/index.js", "../../../../../node_modules/react/cjs/react.production.min.js", "../../../../../node_modules/react/index.js", "../../../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js", "../../../../../node_modules/use-sync-external-store/shim/index.js", "../../../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js", "../../../../../node_modules/use-sync-external-store/shim/with-selector.js", "../../../../../node_modules/scheduler/cjs/scheduler.production.min.js", "../../../../../node_modules/scheduler/index.js", "../../../../../node_modules/react-dom/cjs/react-dom.production.min.js", "../../../../../node_modules/react-dom/index.js", "../../../../../node_modules/react-redux/lib/utils/reactBatchedUpdates.js", "../../../../../node_modules/react-redux/lib/utils/batch.js", "../../../../../node_modules/react-redux/lib/components/Context.js", "../../../../../node_modules/react-redux/lib/hooks/useReduxContext.js", "../../../../../node_modules/react-redux/lib/utils/useSyncExternalStore.js", "../../../../../node_modules/react-redux/lib/hooks/useSelector.js", "../../../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js", "../../../../../node_modules/@babel/runtime/helpers/extends.js", "../../../../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js", "../../../../../node_modules/react-is/cjs/react-is.production.min.js", "../../../../../node_modules/react-is/index.js", "../../../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.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-redux/lib/utils/warning.js", "../../../../../node_modules/react-redux/lib/connect/verifySubselectors.js", "../../../../../node_modules/react-redux/lib/connect/selectorFactory.js", "../../../../../node_modules/react-redux/lib/utils/bindActionCreators.js", "../../../../../node_modules/react-redux/lib/utils/isPlainObject.js", "../../../../../node_modules/react-redux/lib/utils/verifyPlainObject.js", "../../../../../node_modules/react-redux/lib/connect/wrapMapToProps.js", "../../../../../node_modules/react-redux/lib/connect/invalidArgFactory.js", "../../../../../node_modules/react-redux/lib/connect/mapDispatchToProps.js", "../../../../../node_modules/react-redux/lib/connect/mapStateToProps.js", "../../../../../node_modules/react-redux/lib/connect/mergeProps.js", "../../../../../node_modules/react-redux/lib/utils/Subscription.js", "../../../../../node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js", "../../../../../node_modules/react-redux/lib/utils/shallowEqual.js", "../../../../../node_modules/react-redux/lib/components/connect.js", "../../../../../node_modules/react-redux/lib/components/Provider.js", "../../../../../node_modules/react-redux/lib/hooks/useStore.js", "../../../../../node_modules/react-redux/lib/hooks/useDispatch.js", "../../../../../node_modules/react-redux/lib/types.js", "../../../../../node_modules/react-redux/lib/exports.js", "../../../../../node_modules/react-redux/lib/index.js", "../../../../../node_modules/@reduxjs/toolkit/src/query/react/index.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/react/buildHooks.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/react/useSerializedStableValue.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/react/constants.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/react/useShallowStableValue.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/defaultSerializeQueryArgs.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/endpointDefinitions.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/utils/capitalize.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/tsHelpers.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/react/module.ts", "../../../../../node_modules/@reduxjs/toolkit/src/query/react/ApiProvider.tsx", "../../../../../node_modules/@reduxjs/toolkit/dist/query/react/index.js", "../../../../../node_modules/redux-persist/lib/constants.js", "../../../../../node_modules/redux-persist/lib/stateReconciler/autoMergeLevel1.js", "../../../../../node_modules/redux-persist/lib/createPersistoid.js", "../../../../../node_modules/redux-persist/lib/getStoredState.js", "../../../../../node_modules/redux-persist/lib/purgeStoredState.js", "../../../../../node_modules/redux-persist/lib/persistReducer.js", "../../../../../node_modules/redux-persist/lib/stateReconciler/autoMergeLevel2.js", "../../../../../node_modules/redux-persist/lib/persistCombineReducers.js", "../../../../../node_modules/redux-persist/lib/persistStore.js", "../../../../../node_modules/redux-persist/lib/createMigrate.js", "../../../../../node_modules/redux-persist/lib/createTransform.js", "../../../../../node_modules/redux-persist/lib/index.js", "../../../../../node_modules/clsx/dist/clsx.js", "../../../../../node_modules/goober/dist/goober.cjs", "../../../../../node_modules/src/SnackbarContext.ts", "../../../../../node_modules/src/utils/index.ts", "../../../../../node_modules/src/transitions/Transition/Transition.tsx", "../../../../../node_modules/src/transitions/useForkRef.ts", "../../../../../node_modules/src/transitions/getTransitionProps.ts", "../../../../../node_modules/src/transitions/utils.ts", "../../../../../node_modules/src/transitions/createTransition.ts", "../../../../../node_modules/src/transitions/Slide/Slide.tsx", "../../../../../node_modules/src/utils/defaultIconVariants.tsx", "../../../../../node_modules/src/SnackbarProvider/merger.ts", "../../../../../node_modules/src/utils/styles.ts", "../../../../../node_modules/src/transitions/Collapse/Collapse.tsx", "../../../../../node_modules/src/SnackbarItem/utils.ts", "../../../../../node_modules/src/utils/createChainedFunction.ts", "../../../../../node_modules/src/utils/useEventCallback.ts", "../../../../../node_modules/src/SnackbarItem/Snackbar.tsx", "../../../../../node_modules/src/SnackbarContent/SnackbarContent.tsx", "../../../../../node_modules/src/ui/MaterialDesignContent/MaterialDesignContent.tsx", "../../../../../node_modules/src/SnackbarItem/SnackbarItem.tsx", "../../../../../node_modules/src/SnackbarContainer/SnackbarContainer.tsx", "../../../../../node_modules/src/SnackbarProvider/SnackbarProvider.tsx", "../../../../../node_modules/src/useSnackbar.ts", "../../../../../node_modules/notistack/index.js", "../../../../../node_modules/redux-persist/es/storage/getStorage.js", "../../../../../node_modules/redux-persist/es/storage/createWebStorage.js", "../../../../../node_modules/redux-persist/es/storage/index.js", "../../../../../node_modules/lodash/_isPrototype.js", "../../../../../node_modules/lodash/_nativeKeys.js", "../../../../../node_modules/lodash/_baseKeys.js", "../../../../../node_modules/lodash/isObject.js", "../../../../../node_modules/lodash/isFunction.js", "../../../../../node_modules/lodash/_coreJsData.js", "../../../../../node_modules/lodash/_isMasked.js", "../../../../../node_modules/lodash/_toSource.js", "../../../../../node_modules/lodash/_baseIsNative.js", "../../../../../node_modules/lodash/_getValue.js", "../../../../../node_modules/lodash/_getNative.js", "../../../../../node_modules/lodash/_DataView.js", "../../../../../node_modules/lodash/_Map.js", "../../../../../node_modules/lodash/_Promise.js", "../../../../../node_modules/lodash/_Set.js", "../../../../../node_modules/lodash/_WeakMap.js", "../../../../../node_modules/lodash/_getTag.js", "../../../../../node_modules/lodash/_baseIsArguments.js", "../../../../../node_modules/lodash/isArguments.js", "../../../../../node_modules/lodash/isArray.js", "../../../../../node_modules/lodash/isLength.js", "../../../../../node_modules/lodash/isArrayLike.js", "../../../../../node_modules/lodash/stubFalse.js", "../../../../../node_modules/lodash/isBuffer.js", "../../../../../node_modules/lodash/_baseIsTypedArray.js", "../../../../../node_modules/lodash/_baseUnary.js", "../../../../../node_modules/lodash/_nodeUtil.js", "../../../../../node_modules/lodash/isTypedArray.js", "../../../../../node_modules/lodash/isEmpty.js", "../../../../../node_modules/localforage/dist/localforage.js", "../../../../../node_modules/monolite/dist/index.js", "../../../../../node_modules/@redux-saga/core/dist/redux-saga-effects.esm.js", "../../../../../node_modules/redux-saga/dist/redux-saga-effects-npm-proxy.esm.js", "../../../../../node_modules/axios/lib/helpers/bind.js", "../../../../../node_modules/axios/node_modules/is-buffer/index.js", "../../../../../node_modules/axios/lib/utils.js", "../../../../../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../../../../../node_modules/axios/lib/core/enhanceError.js", "../../../../../node_modules/axios/lib/core/createError.js", "../../../../../node_modules/axios/lib/core/settle.js", "../../../../../node_modules/axios/lib/helpers/buildURL.js", "../../../../../node_modules/axios/lib/helpers/parseHeaders.js", "../../../../../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../../../../../node_modules/axios/lib/helpers/cookies.js", "../../../../../node_modules/axios/lib/adapters/xhr.js", "../../../../../node_modules/axios/lib/defaults.js", "../../../../../node_modules/axios/lib/core/InterceptorManager.js", "../../../../../node_modules/axios/lib/core/transformData.js", "../../../../../node_modules/axios/lib/cancel/isCancel.js", "../../../../../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../../../../../node_modules/axios/lib/helpers/combineURLs.js", "../../../../../node_modules/axios/lib/core/dispatchRequest.js", "../../../../../node_modules/axios/lib/core/Axios.js", "../../../../../node_modules/axios/lib/cancel/Cancel.js", "../../../../../node_modules/axios/lib/cancel/CancelToken.js", "../../../../../node_modules/axios/lib/helpers/spread.js", "../../../../../node_modules/axios/lib/axios.js", "../../../../../node_modules/axios/index.js", "../../../../../node_modules/cookie-storage/lib/format-cookie.js", "../../../../../node_modules/cookie-storage/lib/parse-cookies.js", "../../../../../node_modules/cookie-storage/lib/cookie-storage.js", "../../../../../node_modules/cookie-storage/lib/index.js", "../../../../../node_modules/form-data/lib/browser.js", "../../../../../node_modules/lodash/isBoolean.js", "../../../../../node_modules/lodash/isString.js", "../../../../../node_modules/lodash/_baseProperty.js", "../../../../../node_modules/lodash/_asciiSize.js", "../../../../../node_modules/lodash/_hasUnicode.js", "../../../../../node_modules/lodash/_unicodeSize.js", "../../../../../node_modules/lodash/_stringSize.js", "../../../../../node_modules/lodash/size.js", "../../../../../node_modules/@bugsnag/node_modules/browser-pack-flat/_prelude", "../../../../../node_modules/@bugsnag/browser/core/lib/breadcrumb-types.js", "../../../../../node_modules/@bugsnag/browser/core/lib/es-utils/reduce.js", "../../../../../node_modules/@bugsnag/browser/core/lib/es-utils/filter.js", "../../../../../node_modules/@bugsnag/browser/core/lib/es-utils/includes.js", "../../../../../node_modules/@bugsnag/browser/core/lib/es-utils/is-array.js", "../../../../../node_modules/@bugsnag/browser/core/lib/es-utils/keys.js", "../../../../../node_modules/@bugsnag/browser/core/lib/validators/int-range.js", "../../../../../node_modules/@bugsnag/browser/core/lib/validators/list-of-functions.js", "../../../../../node_modules/@bugsnag/browser/core/lib/validators/string-with-length.js", "../../../../../node_modules/@bugsnag/browser/core/config.js", "../../../../../node_modules/@bugsnag/browser/core/lib/es-utils/assign.js", "../../../../../node_modules/@bugsnag/browser/core/lib/es-utils/map.js", "../../../../../node_modules/@bugsnag/browser/dist/src/config.js", "../../../../../node_modules/@bugsnag/browser/core/breadcrumb.js", "../../../../../node_modules/@bugsnag/browser/core/node_modules/stackframe/stackframe.js", "../../../../../node_modules/@bugsnag/browser/core/node_modules/error-stack-parser/error-stack-parser.js", "../../../../../node_modules/@bugsnag/browser/core/lib/error-stack-parser.js", "../../../../../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/safe-json-stringify/index.js", "../../../../../node_modules/@bugsnag/browser/core/lib/feature-flag-delegate.js", "../../../../../node_modules/@bugsnag/browser/core/lib/has-stack.js", "../../../../../node_modules/@bugsnag/browser/core/node_modules/iserror/index.js", "../../../../../node_modules/@bugsnag/browser/core/lib/iserror.js", "../../../../../node_modules/@bugsnag/browser/core/lib/metadata-delegate.js", "../../../../../node_modules/@bugsnag/browser/core/node_modules/stack-generator/stack-generator.js", "../../../../../node_modules/@bugsnag/browser/core/event.js", "../../../../../node_modules/@bugsnag/browser/core/lib/async-every.js", "../../../../../node_modules/@bugsnag/browser/core/lib/callback-runner.js", "../../../../../node_modules/@bugsnag/browser/core/lib/sync-callback-runner.js", "../../../../../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/lib/pad.js", "../../../../../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/lib/fingerprint.browser.js", "../../../../../node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/index.js", "../../../../../node_modules/@bugsnag/browser/core/session.js", "../../../../../node_modules/@bugsnag/browser/core/client.js", "../../../../../node_modules/@bugsnag/browser/core/lib/json-payload.js", "../../../../../node_modules/@bugsnag/browser/delivery-x-domain-request/delivery.js", "../../../../../node_modules/@bugsnag/browser/delivery-xml-http-request/delivery.js", "../../../../../node_modules/@bugsnag/browser/plugin-app-duration/app.js", "../../../../../node_modules/@bugsnag/browser/plugin-browser-context/context.js", "../../../../../node_modules/@bugsnag/browser/plugin-browser-device/device.js", "../../../../../node_modules/@bugsnag/browser/plugin-browser-request/request.js", "../../../../../node_modules/@bugsnag/browser/plugin-browser-session/session.js", "../../../../../node_modules/@bugsnag/browser/plugin-client-ip/client-ip.js", "../../../../../node_modules/@bugsnag/browser/plugin-console-breadcrumbs/console-breadcrumbs.js", "../../../../../node_modules/@bugsnag/browser/plugin-inline-script-content/inline-script-content.js", "../../../../../node_modules/@bugsnag/browser/plugin-interaction-breadcrumbs/interaction-breadcrumbs.js", "../../../../../node_modules/@bugsnag/browser/plugin-navigation-breadcrumbs/navigation-breadcrumbs.js", "../../../../../node_modules/@bugsnag/browser/plugin-network-breadcrumbs/network-breadcrumbs.js", "../../../../../node_modules/@bugsnag/browser/plugin-simple-throttle/throttle.js", "../../../../../node_modules/@bugsnag/browser/plugin-strip-query-string/strip-query-string.js", "../../../../../node_modules/@bugsnag/browser/plugin-window-onerror/onerror.js", "../../../../../node_modules/@bugsnag/browser/plugin-window-unhandled-rejection/unhandled-rejection.js", "../../../../../node_modules/@bugsnag/browser/dist/src/notifier.js", "../../../../../node_modules/@bugsnag/node_modules/browser-pack-flat/_postlude", "../../../../../node_modules/@bugsnag/js/browser/notifier.js", "../../../../../node_modules/pluralize/pluralize.js", "../../../../../node_modules/blueimp-load-image/js/load-image.js", "../../../../../node_modules/blueimp-load-image/js/load-image-scale.js", "../../../../../node_modules/blueimp-load-image/js/load-image-meta.js", "../../../../../node_modules/blueimp-load-image/js/load-image-fetch.js", "../../../../../node_modules/blueimp-load-image/js/load-image-exif.js", "../../../../../node_modules/blueimp-load-image/js/load-image-exif-map.js", "../../../../../node_modules/blueimp-load-image/js/load-image-iptc.js", "../../../../../node_modules/blueimp-load-image/js/load-image-iptc-map.js", "../../../../../node_modules/blueimp-load-image/js/load-image-orientation.js", "../../../../../node_modules/blueimp-load-image/js/index.js", "../../../../../node_modules/crypt/crypt.js", "../../../../../node_modules/charenc/charenc.js", "../../../../../node_modules/is-buffer/index.js", "../../../../../node_modules/md5/md5.js", "../../../../../node_modules/lodash/_nativeCreate.js", "../../../../../node_modules/lodash/_hashClear.js", "../../../../../node_modules/lodash/_hashDelete.js", "../../../../../node_modules/lodash/_hashGet.js", "../../../../../node_modules/lodash/_hashHas.js", "../../../../../node_modules/lodash/_hashSet.js", "../../../../../node_modules/lodash/_Hash.js", "../../../../../node_modules/lodash/_listCacheClear.js", "../../../../../node_modules/lodash/eq.js", "../../../../../node_modules/lodash/_assocIndexOf.js", "../../../../../node_modules/lodash/_listCacheDelete.js", "../../../../../node_modules/lodash/_listCacheGet.js", "../../../../../node_modules/lodash/_listCacheHas.js", "../../../../../node_modules/lodash/_listCacheSet.js", "../../../../../node_modules/lodash/_ListCache.js", "../../../../../node_modules/lodash/_mapCacheClear.js", "../../../../../node_modules/lodash/_isKeyable.js", "../../../../../node_modules/lodash/_getMapData.js", "../../../../../node_modules/lodash/_mapCacheDelete.js", "../../../../../node_modules/lodash/_mapCacheGet.js", "../../../../../node_modules/lodash/_mapCacheHas.js", "../../../../../node_modules/lodash/_mapCacheSet.js", "../../../../../node_modules/lodash/_MapCache.js", "../../../../../node_modules/lodash/_setCacheAdd.js", "../../../../../node_modules/lodash/_setCacheHas.js", "../../../../../node_modules/lodash/_SetCache.js", "../../../../../node_modules/lodash/_baseFindIndex.js", "../../../../../node_modules/lodash/_baseIsNaN.js", "../../../../../node_modules/lodash/_strictIndexOf.js", "../../../../../node_modules/lodash/_baseIndexOf.js", "../../../../../node_modules/lodash/_arrayIncludes.js", "../../../../../node_modules/lodash/_arrayIncludesWith.js", "../../../../../node_modules/lodash/_arrayMap.js", "../../../../../node_modules/lodash/_cacheHas.js", "../../../../../node_modules/lodash/_baseDifference.js", "../../../../../node_modules/lodash/_arrayPush.js", "../../../../../node_modules/lodash/_isFlattenable.js", "../../../../../node_modules/lodash/_baseFlatten.js", "../../../../../node_modules/lodash/identity.js", "../../../../../node_modules/lodash/_apply.js", "../../../../../node_modules/lodash/_overRest.js", "../../../../../node_modules/lodash/constant.js", "../../../../../node_modules/lodash/_defineProperty.js", "../../../../../node_modules/lodash/_baseSetToString.js", "../../../../../node_modules/lodash/_shortOut.js", "../../../../../node_modules/lodash/_setToString.js", "../../../../../node_modules/lodash/_baseRest.js", "../../../../../node_modules/lodash/isArrayLikeObject.js", "../../../../../node_modules/lodash/difference.js", "../../../../../node_modules/regenerator-runtime/runtime.js", "../../../../../node_modules/lodash/_stackClear.js", "../../../../../node_modules/lodash/_stackDelete.js", "../../../../../node_modules/lodash/_stackGet.js", "../../../../../node_modules/lodash/_stackHas.js", "../../../../../node_modules/lodash/_stackSet.js", "../../../../../node_modules/lodash/_Stack.js", "../../../../../node_modules/lodash/_arrayEach.js", "../../../../../node_modules/lodash/_baseAssignValue.js", "../../../../../node_modules/lodash/_assignValue.js", "../../../../../node_modules/lodash/_copyObject.js", "../../../../../node_modules/lodash/_baseTimes.js", "../../../../../node_modules/lodash/_isIndex.js", "../../../../../node_modules/lodash/_arrayLikeKeys.js", "../../../../../node_modules/lodash/keys.js", "../../../../../node_modules/lodash/_baseAssign.js", "../../../../../node_modules/lodash/_nativeKeysIn.js", "../../../../../node_modules/lodash/_baseKeysIn.js", "../../../../../node_modules/lodash/keysIn.js", "../../../../../node_modules/lodash/_baseAssignIn.js", "../../../../../node_modules/lodash/_cloneBuffer.js", "../../../../../node_modules/lodash/_copyArray.js", "../../../../../node_modules/lodash/_arrayFilter.js", "../../../../../node_modules/lodash/stubArray.js", "../../../../../node_modules/lodash/_getSymbols.js", "../../../../../node_modules/lodash/_copySymbols.js", "../../../../../node_modules/lodash/_getSymbolsIn.js", "../../../../../node_modules/lodash/_copySymbolsIn.js", "../../../../../node_modules/lodash/_baseGetAllKeys.js", "../../../../../node_modules/lodash/_getAllKeys.js", "../../../../../node_modules/lodash/_getAllKeysIn.js", "../../../../../node_modules/lodash/_initCloneArray.js", "../../../../../node_modules/lodash/_Uint8Array.js", "../../../../../node_modules/lodash/_cloneArrayBuffer.js", "../../../../../node_modules/lodash/_cloneDataView.js", "../../../../../node_modules/lodash/_cloneRegExp.js", "../../../../../node_modules/lodash/_cloneSymbol.js", "../../../../../node_modules/lodash/_cloneTypedArray.js", "../../../../../node_modules/lodash/_initCloneByTag.js", "../../../../../node_modules/lodash/_baseCreate.js", "../../../../../node_modules/lodash/_initCloneObject.js", "../../../../../node_modules/lodash/_baseIsMap.js", "../../../../../node_modules/lodash/isMap.js", "../../../../../node_modules/lodash/_baseIsSet.js", "../../../../../node_modules/lodash/isSet.js", "../../../../../node_modules/lodash/_baseClone.js", "../../../../../node_modules/lodash/cloneDeep.js", "../../../../../node_modules/lodash/_arraySome.js", "../../../../../node_modules/lodash/_equalArrays.js", "../../../../../node_modules/lodash/_mapToArray.js", "../../../../../node_modules/lodash/_setToArray.js", "../../../../../node_modules/lodash/_equalByTag.js", "../../../../../node_modules/lodash/_equalObjects.js", "../../../../../node_modules/lodash/_baseIsEqualDeep.js", "../../../../../node_modules/lodash/_baseIsEqual.js", "../../../../../node_modules/lodash/isEqual.js", "../../../../../node_modules/lodash/cloneDeepWith.js", "../../../../../node_modules/lodash/isSymbol.js", "../../../../../node_modules/lodash/_isKey.js", "../../../../../node_modules/lodash/memoize.js", "../../../../../node_modules/lodash/_memoizeCapped.js", "../../../../../node_modules/lodash/_stringToPath.js", "../../../../../node_modules/lodash/_baseToString.js", "../../../../../node_modules/lodash/toString.js", "../../../../../node_modules/lodash/_castPath.js", "../../../../../node_modules/lodash/last.js", "../../../../../node_modules/lodash/_toKey.js", "../../../../../node_modules/lodash/_baseGet.js", "../../../../../node_modules/lodash/_baseSlice.js", "../../../../../node_modules/lodash/_parent.js", "../../../../../node_modules/lodash/_baseUnset.js", "../../../../../node_modules/lodash/_customOmitClone.js", "../../../../../node_modules/lodash/flatten.js", "../../../../../node_modules/lodash/_flatRest.js", "../../../../../node_modules/lodash/omit.js", "../../../../../node_modules/lodash/get.js", "../../../../../node_modules/lodash/_baseIsMatch.js", "../../../../../node_modules/lodash/_isStrictComparable.js", "../../../../../node_modules/lodash/_getMatchData.js", "../../../../../node_modules/lodash/_matchesStrictComparable.js", "../../../../../node_modules/lodash/_baseMatches.js", "../../../../../node_modules/lodash/_baseHasIn.js", "../../../../../node_modules/lodash/_hasPath.js", "../../../../../node_modules/lodash/hasIn.js", "../../../../../node_modules/lodash/_baseMatchesProperty.js", "../../../../../node_modules/lodash/_basePropertyDeep.js", "../../../../../node_modules/lodash/property.js", "../../../../../node_modules/lodash/_baseIteratee.js", "../../../../../node_modules/lodash/_baseSet.js", "../../../../../node_modules/lodash/_basePickBy.js", "../../../../../node_modules/lodash/pickBy.js", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/index.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/Calculator.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/calculator-fabric/utils/fixed.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/calculator-fabric/units/percent.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/calculator-fabric/units/times.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/calculator-fabric/units/currency.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/calculator-fabric/index.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/utils/currency.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/index.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Layers/index.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/Builders/index.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Decorators/Discount.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Decorators/Modifier.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Decorators/Multiplier.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Layers/Discounts.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Layers/Modifiers.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Layers/Multipliers.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Layers/Bonuses/index.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Decorators/Bonus.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/Builders/BlockBuilder.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/Builders/BlockFinder.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/Builders/BlockCleaner.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Layers/UpsaleModifiers.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/types.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/utils/walk.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/utils/isBlockData.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/utils/isWriterKey.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Layers/Blocks.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Layers/Bonuses/OrderSize.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Layers/Bonuses/Bundles.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/core/Layers/Bonuses/AdditionalPayment.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/CalculatorAdapter.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/proxies/exchanger/index.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/utils/isBlockOptions.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/proxies/Proxy.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/proxies/of-total/constants.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/proxies/of-total/index.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/directors/Director.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/directors/ClientDirector.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/directors/CockDirector.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/directors/index.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/Adaptee.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/CalculatorAdaptee.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/percentDiscounts.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/additionals.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/basicPrice.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/currencyDiscounts.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/limitedDiscounts.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/preferredWriter.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/singlePriceUnit.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/software.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/sources.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/spacing.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/utils/calculate.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/speakerNotes.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/subject.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/writer-mtl.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/fromData/writer.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/toResults/additionalFeatures.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/toResults/cockPerUnit.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/Builders/BlockRecompiler.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/toResults/complexAssignment.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/toResults/discount.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/toResults/forUnit.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/toResults/perUnit.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/toResults/root.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/toResults/speakerNotes.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/extractors/toResults/totalWithoutDiscounts.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/utils/modificate.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/utils/additional.ts", "../../../../../node_modules/@qwerty.software/calc-of-price/src/adapters/microservices/utils/getBlock.ts", "../../../../../node_modules/lodash/replace.js", "../../../../../node_modules/lodash/_trimmedEndIndex.js", "../../../../../node_modules/lodash/_baseTrim.js", "../../../../../node_modules/lodash/toNumber.js"], "sourcesContent": ["/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n", "var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n", "var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n", "var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n", "/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n", "var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n", "/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n", "var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n", "'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES = 30;\n/* number of distance codes */\n\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Tracev((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Tracev((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) => {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n const next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n code = (code + bl_count[bits - 1]) << 1;\n next_code[bits] = code;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.sym_next = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) => {\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let sx = 0; /* running index in sym_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.sym_next !== 0) {\n do {\n dist = s.pending_buf[s.sym_buf + sx++] & 0xff;\n dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8;\n lc = s.pending_buf[s.sym_buf + sx++];\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and sym_buf is ok: */\n //Assert(s->pending < s->lit_bufsize + sx, \"pendingBuf overflow\");\n\n } while (sx < s.sym_next);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) => {\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"block list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"allow list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* block_mask is the bit mask of block-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let block_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"block-listed\") bytes. */\n for (n = 0; n <= 31; n++, block_mask >>>= 1) {\n if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"allow-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"block-listed\" or \"allow-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n bi_windup(s); /* align on byte boundary */\n put_short(s, stored_len);\n put_short(s, ~stored_len);\n if (stored_len) {\n s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);\n }\n s.pending += stored_len;\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and write out the encoded block.\n */\nconst _tr_flush_block = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->sym_next / 3));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally = (s, dist, lc) => {\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n\n s.pending_buf[s.sym_buf + s.sym_next++] = dist;\n s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;\n s.pending_buf[s.sym_buf + s.sym_next++] = lc;\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n return (s.sym_next === s.sym_end);\n};\n\nmodule.exports._tr_init = _tr_init;\nmodule.exports._tr_stored_block = _tr_stored_block;\nmodule.exports._tr_flush_block = _tr_flush_block;\nmodule.exports._tr_tally = _tr_tally;\nmodule.exports._tr_align = _tr_align;\n", "'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nmodule.exports = adler32;\n", "'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nmodule.exports = crc32;\n", "'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n", "'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n", "'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = require('./trees');\nconst adler32 = require('./adler32');\nconst crc32 = require('./crc32');\nconst msg = require('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_PARTIAL_FLUSH, Z_FULL_FLUSH, Z_FINISH, Z_BLOCK,\n Z_OK, Z_STREAM_END, Z_STREAM_ERROR, Z_DATA_ERROR, Z_BUF_ERROR,\n Z_DEFAULT_COMPRESSION,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY,\n Z_UNKNOWN,\n Z_DEFLATED\n} = require('./constants');\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42; /* zlib header -> BUSY_STATE */\n//#ifdef GZIP\nconst GZIP_STATE = 57; /* gzip header -> BUSY_STATE | EXTRA_STATE */\n//#endif\nconst EXTRA_STATE = 69; /* gzip extra block -> NAME_STATE */\nconst NAME_STATE = 73; /* gzip file name -> COMMENT_STATE */\nconst COMMENT_STATE = 91; /* gzip comment -> HCRC_STATE */\nconst HCRC_STATE = 103; /* gzip header CRC -> BUSY_STATE */\nconst BUSY_STATE = 113; /* deflate -> FINISH_STATE */\nconst FINISH_STATE = 666; /* stream complete */\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = msg[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) * 2) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n/* ===========================================================================\n * Slide the hash table when sliding the window down (could be avoided with 32\n * bit values at the expense of memory usage). We slide even when level == 0 to\n * keep the hash table consistent if we switch back to level > 0 later.\n */\nconst slide_hash = (s) => {\n let n, m;\n let p;\n let wsize = s.w_size;\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= wsize ? m - wsize : 0);\n } while (--n);\n n = wsize;\n//#ifndef FASTEST\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= wsize ? m - wsize : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n//#endif\n};\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output, except for\n * some deflate_stored() output, goes through this function so some\n * applications may wish to modify it to avoid allocating a large\n * strm->next_out buffer and copying into it. (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let n, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n slide_hash(s);\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n *\n * In case deflateParams() is used to later switch to a non-zero compression\n * level, s->matches (otherwise unused when storing) keeps track of the number\n * of hash table slides to perform. If s->matches is 1, then one hash table\n * slide will be done when switching. If s->matches is 2, the maximum value\n * allowed here, then the hash table will be cleared, since two or more slides\n * is the same as a clear.\n *\n * deflate_stored() is written to minimize the number of times an input byte is\n * copied. It is most efficient with large input and output buffers, which\n * maximizes the opportunites to have a single copy from next_in to next_out.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Smallest worthy block size when not flushing or finishing. By default\n * this is 32K. This can be as small as 507 bytes for memLevel == 1. For\n * large input and output buffers, the stored block size will be larger.\n */\n let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;\n\n /* Copy as many min_block or larger stored blocks directly to next_out as\n * possible. If flushing, copy the remaining available input to next_out as\n * stored blocks, if there is enough space.\n */\n let len, left, have, last = 0;\n let used = s.strm.avail_in;\n do {\n /* Set len to the maximum size block that we can copy directly with the\n * available input data and output space. Set left to how much of that\n * would be copied from what's left in the window.\n */\n len = 65535/* MAX_STORED */; /* maximum deflate stored block length */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n if (s.strm.avail_out < have) { /* need room for header */\n break;\n }\n /* maximum stored block length that will fit in avail_out: */\n have = s.strm.avail_out - have;\n left = s.strstart - s.block_start; /* bytes left in window */\n if (len > left + s.strm.avail_in) {\n len = left + s.strm.avail_in; /* limit len to the input */\n }\n if (len > have) {\n len = have; /* limit len to the output */\n }\n\n /* If the stored block would be less than min_block in length, or if\n * unable to copy all of the available input when flushing, then try\n * copying to the window and the pending buffer instead. Also don't\n * write an empty block when flushing -- deflate() does that.\n */\n if (len < min_block && ((len === 0 && flush !== Z_FINISH) ||\n flush === Z_NO_FLUSH ||\n len !== left + s.strm.avail_in)) {\n break;\n }\n\n /* Make a dummy stored block in pending to get the header bytes,\n * including any pending bits. This also updates the debugging counts.\n */\n last = flush === Z_FINISH && len === left + s.strm.avail_in ? 1 : 0;\n _tr_stored_block(s, 0, 0, last);\n\n /* Replace the lengths in the dummy stored block with len. */\n s.pending_buf[s.pending - 4] = len;\n s.pending_buf[s.pending - 3] = len >> 8;\n s.pending_buf[s.pending - 2] = ~len;\n s.pending_buf[s.pending - 1] = ~len >> 8;\n\n /* Write the stored block header bytes. */\n flush_pending(s.strm);\n\n//#ifdef ZLIB_DEBUG\n// /* Update debugging counts for the data about to be copied. */\n// s->compressed_len += len << 3;\n// s->bits_sent += len << 3;\n//#endif\n\n /* Copy uncompressed bytes from the window to next_out. */\n if (left) {\n if (left > len) {\n left = len;\n }\n //zmemcpy(s->strm->next_out, s->window + s->block_start, left);\n s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);\n s.strm.next_out += left;\n s.strm.avail_out -= left;\n s.strm.total_out += left;\n s.block_start += left;\n len -= left;\n }\n\n /* Copy uncompressed bytes directly from next_in to next_out, updating\n * the check value.\n */\n if (len) {\n read_buf(s.strm, s.strm.output, s.strm.next_out, len);\n s.strm.next_out += len;\n s.strm.avail_out -= len;\n s.strm.total_out += len;\n }\n } while (last === 0);\n\n /* Update the sliding window with the last s->w_size bytes of the copied\n * data, or append all of the copied data to the existing window if less\n * than s->w_size bytes were copied. Also update the number of bytes to\n * insert in the hash tables, in the event that deflateParams() switches to\n * a non-zero compression level.\n */\n used -= s.strm.avail_in; /* number of input bytes directly copied */\n if (used) {\n /* If any input was used, then no unused input remains in the window,\n * therefore s->block_start == s->strstart.\n */\n if (used >= s.w_size) { /* supplant the previous history */\n s.matches = 2; /* clear hash */\n //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);\n s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);\n s.strstart = s.w_size;\n s.insert = s.strstart;\n }\n else {\n if (s.window_size - s.strstart <= used) {\n /* Slide the window down. */\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);\n s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);\n s.strstart += used;\n s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;\n }\n s.block_start = s.strstart;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* If the last block was written to next_out, then done. */\n if (last) {\n return BS_FINISH_DONE;\n }\n\n /* If flushing and all input has been consumed, then done. */\n if (flush !== Z_NO_FLUSH && flush !== Z_FINISH &&\n s.strm.avail_in === 0 && s.strstart === s.block_start) {\n return BS_BLOCK_DONE;\n }\n\n /* Fill the window with any remaining input. */\n have = s.window_size - s.strstart;\n if (s.strm.avail_in > have && s.block_start >= s.w_size) {\n /* Slide the window down. */\n s.block_start -= s.w_size;\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n have += s.w_size; /* more space now */\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n if (have > s.strm.avail_in) {\n have = s.strm.avail_in;\n }\n if (have) {\n read_buf(s.strm, s.window, s.strstart, have);\n s.strstart += have;\n s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* There was not enough avail_out to write a complete worthy or flushed\n * stored block to next_out. Write a stored block to pending instead, if we\n * have enough input for a worthy block, or if flushing and there is enough\n * room for the remaining input as a stored block in the pending buffer.\n */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n /* maximum stored block length that will fit in pending: */\n have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have;\n min_block = have > s.w_size ? s.w_size : have;\n left = s.strstart - s.block_start;\n if (left >= min_block ||\n ((left || flush === Z_FINISH) && flush !== Z_NO_FLUSH &&\n s.strm.avail_in === 0 && left <= have)) {\n len = left > have ? have : left;\n last = flush === Z_FINISH && s.strm.avail_in === 0 &&\n len === left ? 1 : 0;\n _tr_stored_block(s, s.block_start, len, last);\n s.block_start += len;\n flush_pending(s.strm);\n }\n\n /* We've done all we can with the available input and output. */\n return last ? BS_FINISH_STARTED : BS_NEED_MORE;\n};\n\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.sym_buf = 0; /* buffer for distances and literals/lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.sym_next = 0; /* running index in sym_buf */\n this.sym_end = 0; /* symbol table full when sym_next reaches this */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\n/* =========================================================================\n * Check for a valid deflate stream state. Return 0 if ok, 1 if not.\n */\nconst deflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const s = strm.state;\n if (!s || s.strm !== strm || (s.status !== INIT_STATE &&\n//#ifdef GZIP\n s.status !== GZIP_STATE &&\n//#endif\n s.status !== EXTRA_STATE &&\n s.status !== NAME_STATE &&\n s.status !== COMMENT_STATE &&\n s.status !== HCRC_STATE &&\n s.status !== BUSY_STATE &&\n s.status !== FINISH_STATE)) {\n return 1;\n }\n return 0;\n};\n\n\nconst deflateResetKeep = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status =\n//#ifdef GZIP\n s.wrap === 2 ? GZIP_STATE :\n//#endif\n s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = -2;\n _tr_init(s);\n return Z_OK;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (deflateStateCheck(strm) || strm.state.wrap !== 2) {\n return Z_STREAM_ERROR;\n }\n strm.state.gzhead = head;\n return Z_OK;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n s.status = INIT_STATE; /* to pass state test in deflateReset() */\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n /* We overlay pending_buf and sym_buf. This works since the average size\n * for length/distance pairs over any compressed block is assured to be 31\n * bits or less.\n *\n * Analysis: The longest fixed codes are a length code of 8 bits plus 5\n * extra bits, for lengths 131 to 257. The longest fixed distance codes are\n * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest\n * possible fixed-codes length/distance pair is then 31 bits total.\n *\n * sym_buf starts one-fourth of the way into pending_buf. So there are\n * three bytes in sym_buf for every four bytes in pending_buf. Each symbol\n * in sym_buf is three bytes -- two for the distance and one for the\n * literal/length. As each symbol is consumed, the pointer to the next\n * sym_buf value to read moves forward three bytes. From that symbol, up to\n * 31 bits are written to pending_buf. The closest the written pending_buf\n * bits gets to the next sym_buf symbol to read is just before the last\n * code is written. At that time, 31*(n-2) bits have been written, just\n * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at\n * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1\n * symbols are written.) The closest the writing gets to what is unread is\n * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and\n * can range from 128 to 32768.\n *\n * Therefore, at a minimum, there are 142 bits of space between what is\n * written and what is read in the overlain buffers, so the symbols cannot\n * be overwritten by the compressed data. That space is actually 139 bits,\n * due to the three-bit fixed-code block header.\n *\n * That covers the case where either Z_FIXED is specified, forcing fixed\n * codes, or when the use of fixed codes is chosen, because that choice\n * results in a smaller compressed block than dynamic codes. That latter\n * condition then assures that the above analysis also covers all dynamic\n * blocks. A dynamic-code block will only be chosen to be emitted if it has\n * fewer bits than a fixed-code block would for the same set of symbols.\n * Therefore its average symbol length is assured to be less than 31. So\n * the compressed data for a dynamic block also cannot overwrite the\n * symbols from which it is being constructed.\n */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->sym_buf = s->pending_buf + s->lit_bufsize;\n s.sym_buf = s.lit_bufsize;\n\n //s->sym_end = (s->lit_bufsize - 1) * 3;\n s.sym_end = (s.lit_bufsize - 1) * 3;\n /* We avoid equality with lit_bufsize*3 because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n};\n\n\n/* ========================================================================= */\nconst deflate = (strm, flush) => {\n\n if (deflateStateCheck(strm) || flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (strm.avail_in !== 0 && !strm.input) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Write the header */\n if (s.status === INIT_STATE && s.wrap === 0) {\n s.status = BUSY_STATE;\n }\n if (s.status === INIT_STATE) {\n /* zlib header */\n let header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK;\n }\n }\n//#ifdef GZIP\n if (s.status === GZIP_STATE) {\n /* gzip header */\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK;\n }\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let left = (s.gzhead.extra.length & 0xffff) - s.gzindex;\n while (s.pending + left > s.pending_buf_size) {\n let copy = s.pending_buf_size - s.pending;\n // zmemcpy(s.pending_buf + s.pending,\n // s.gzhead.extra + s.gzindex, copy);\n s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);\n s.pending = s.pending_buf_size;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex += copy;\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK;\n }\n beg = 0;\n left -= copy;\n }\n // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility\n // TypedArray.slice and TypedArray.from don't exist in IE10-IE11\n let gzhead_extra = new Uint8Array(s.gzhead.extra);\n // zmemcpy(s->pending_buf + s->pending,\n // s->gzhead->extra + s->gzindex, left);\n s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);\n s.pending += left;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = NAME_STATE;\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = COMMENT_STATE;\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n }\n s.status = HCRC_STATE;\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK;\n }\n }\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n }\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK;\n }\n }\n//#endif\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n let bstate = s.level === 0 ? deflate_stored(s, flush) :\n s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :\n s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR;\n }\n\n const status = strm.state.status;\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n};\n\n\nmodule.exports.deflateInit = deflateInit;\nmodule.exports.deflateInit2 = deflateInit2;\nmodule.exports.deflateReset = deflateReset;\nmodule.exports.deflateResetKeep = deflateResetKeep;\nmodule.exports.deflateSetHeader = deflateSetHeader;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateEnd = deflateEnd;\nmodule.exports.deflateSetDictionary = deflateSetDictionary;\nmodule.exports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateGetDictionary = deflateGetDictionary;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n", "'use strict';\n\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nmodule.exports.assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nmodule.exports.flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n", "// String encode/decode helpers\n'use strict';\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nmodule.exports.string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nmodule.exports.buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nmodule.exports.utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n", "'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n", "'use strict';\n\n\nconst zlib_deflate = require('./zlib/deflate');\nconst utils = require('./utils/common');\nconst strings = require('./utils/strings');\nconst msg = require('./zlib/messages');\nconst ZStream = require('./zlib/zstream');\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED\n} = require('./zlib/constants');\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate(options) {\n this.options = utils.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n let status = zlib_deflate.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n zlib_deflate.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = zlib_deflate.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = zlib_deflate.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = zlib_deflate.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n this.result = utils.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n const deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate(input, options);\n}\n\n\nmodule.exports.Deflate = Deflate;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateRaw = deflateRaw;\nmodule.exports.gzip = gzip;\nmodule.exports.constants = require('./zlib/constants');\n", "'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD = 16209; /* got a data error -- remain here until reset */\nconst TYPE = 16191; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n", "'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n// let shoextra; /* extra bits table to use */\n let match; /* use base and extra for symbol >= match */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n match = 20;\n\n } else if (type === LENS) {\n base = lbase;\n extra = lext;\n match = 257;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n match = 0;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] + 1 < match) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] >= match) {\n here_op = extra[work[sym] - match];\n here_val = base[work[sym] - match];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nmodule.exports = inflate_table;\n", "'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = require('./adler32');\nconst crc32 = require('./crc32');\nconst inflate_fast = require('./inffast');\nconst inflate_table = require('./inftrees');\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH, Z_BLOCK, Z_TREES,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR, Z_BUF_ERROR,\n Z_DEFLATED\n} = require('./constants');\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 16180; /* i: waiting for magic header */\nconst FLAGS = 16181; /* i: waiting for method and flags (gzip) */\nconst TIME = 16182; /* i: waiting for modification time (gzip) */\nconst OS = 16183; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 16184; /* i: waiting for extra length (gzip) */\nconst EXTRA = 16185; /* i: waiting for extra bytes (gzip) */\nconst NAME = 16186; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 16187; /* i: waiting for end of comment (gzip) */\nconst HCRC = 16188; /* i: waiting for header crc (gzip) */\nconst DICTID = 16189; /* i: waiting for dictionary check value */\nconst DICT = 16190; /* waiting for inflateSetDictionary() call */\nconst TYPE = 16191; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 16193; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 16194; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16195; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 16196; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 16197; /* i: waiting for code length code lengths */\nconst CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 16199; /* i: same as LEN below, but only first time in */\nconst LEN = 16200; /* i: waiting for length/lit/eob code */\nconst LENEXT = 16201; /* i: waiting for length extra bits */\nconst DIST = 16202; /* i: waiting for distance code */\nconst DISTEXT = 16203; /* i: waiting for distance extra bits */\nconst MATCH = 16204; /* o: waiting for output space to copy string */\nconst LIT = 16205; /* o: waiting for output space to write literal */\nconst CHECK = 16206; /* i: waiting for 32-bit check value */\nconst LENGTH = 16207; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 16208; /* finished check, done -- remain here until reset */\nconst BAD = 16209; /* got a data error -- remain here until reset */\nconst MEM = 16210; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 16211; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip,\n bit 2 true to validate check value */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib), or\n -1 if raw or no header yet */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const state = strm.state;\n if (!state || state.strm !== strm ||\n state.mode < HEAD || state.mode > SYNC) {\n return 1;\n }\n return 0;\n};\n\n\nconst inflateResetKeep = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.flags = -1;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 5;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.strm = strm;\n state.window = null/*Z_NULL*/;\n state.mode = HEAD; /* to pass state test in inflateReset2() */\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (inflateStateCheck(strm) || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n if (state.wbits === 0) {\n state.wbits = 15;\n }\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n if (len > 15 || len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n state.flags = 0; /* indicate zlib header */\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check =\n /*UPDATE_CHECK(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (inflateStateCheck(strm)) {\n return Z_STREAM_ERROR;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n};\n\n\nmodule.exports.inflateReset = inflateReset;\nmodule.exports.inflateReset2 = inflateReset2;\nmodule.exports.inflateResetKeep = inflateResetKeep;\nmodule.exports.inflateInit = inflateInit;\nmodule.exports.inflateInit2 = inflateInit2;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateEnd = inflateEnd;\nmodule.exports.inflateGetHeader = inflateGetHeader;\nmodule.exports.inflateSetDictionary = inflateSetDictionary;\nmodule.exports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCodesUsed = inflateCodesUsed;\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\nmodule.exports.inflateValidate = inflateValidate;\n*/\n", "'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\n", "'use strict';\n\n\nconst zlib_inflate = require('./zlib/inflate');\nconst utils = require('./utils/common');\nconst strings = require('./utils/strings');\nconst msg = require('./zlib/messages');\nconst ZStream = require('./zlib/zstream');\nconst GZheader = require('./zlib/gzheader');\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = require('./zlib/constants');\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate(options) {\n this.options = utils.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n let status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new GZheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = zlib_inflate.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = zlib_inflate.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n zlib_inflate.inflateReset(strm);\n status = zlib_inflate.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n const inflator = new Inflate(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || msg[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nmodule.exports.Inflate = Inflate;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateRaw = inflateRaw;\nmodule.exports.ungzip = inflate;\nmodule.exports.constants = require('./zlib/constants');\n", "// Top level file is just a mixin of submodules & constants\n'use strict';\n\nconst { Deflate, deflate, deflateRaw, gzip } = require('./lib/deflate');\n\nconst { Inflate, inflate, inflateRaw, ungzip } = require('./lib/inflate');\n\nconst constants = require('./lib/zlib/constants');\n\nmodule.exports.Deflate = Deflate;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateRaw = deflateRaw;\nmodule.exports.gzip = gzip;\nmodule.exports.Inflate = Inflate;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateRaw = inflateRaw;\nmodule.exports.ungzip = ungzip;\nmodule.exports.constants = constants;\n", "var createSymbol = function createSymbol(name) {\n return \"@@redux-saga/\" + name;\n};\n\nvar CANCEL =\n/*#__PURE__*/\ncreateSymbol('CANCEL_PROMISE');\nvar CHANNEL_END_TYPE =\n/*#__PURE__*/\ncreateSymbol('CHANNEL_END');\nvar IO =\n/*#__PURE__*/\ncreateSymbol('IO');\nvar MATCH =\n/*#__PURE__*/\ncreateSymbol('MATCH');\nvar MULTICAST =\n/*#__PURE__*/\ncreateSymbol('MULTICAST');\nvar SAGA_ACTION =\n/*#__PURE__*/\ncreateSymbol('SAGA_ACTION');\nvar SELF_CANCELLATION =\n/*#__PURE__*/\ncreateSymbol('SELF_CANCELLATION');\nvar TASK =\n/*#__PURE__*/\ncreateSymbol('TASK');\nvar TASK_CANCEL =\n/*#__PURE__*/\ncreateSymbol('TASK_CANCEL');\nvar TERMINATE =\n/*#__PURE__*/\ncreateSymbol('TERMINATE');\nvar SAGA_LOCATION =\n/*#__PURE__*/\ncreateSymbol('LOCATION');\n\nexport { CANCEL, CHANNEL_END_TYPE, IO, MATCH, MULTICAST, SAGA_ACTION, SAGA_LOCATION, SELF_CANCELLATION, TASK, TASK_CANCEL, TERMINATE };\n", "export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}", "export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}", "import { TASK, SAGA_ACTION, MULTICAST, IO } from '@redux-saga/symbols';\n\nvar undef = function undef(v) {\n return v === null || v === undefined;\n};\nvar notUndef = function notUndef(v) {\n return v !== null && v !== undefined;\n};\nvar func = function func(f) {\n return typeof f === 'function';\n};\nvar number = function number(n) {\n return typeof n === 'number';\n};\nvar string = function string(s) {\n return typeof s === 'string';\n};\nvar array = Array.isArray;\nvar object = function object(obj) {\n return obj && !array(obj) && typeof obj === 'object';\n};\nvar promise = function promise(p) {\n return p && func(p.then);\n};\nvar iterator = function iterator(it) {\n return it && func(it.next) && func(it.throw);\n};\nvar iterable = function iterable(it) {\n return it && func(Symbol) ? func(it[Symbol.iterator]) : array(it);\n};\nvar task = function task(t) {\n return t && t[TASK];\n};\nvar sagaAction = function sagaAction(a) {\n return Boolean(a && a[SAGA_ACTION]);\n};\nvar observable = function observable(ob) {\n return ob && func(ob.subscribe);\n};\nvar buffer = function buffer(buf) {\n return buf && func(buf.isEmpty) && func(buf.take) && func(buf.put);\n};\nvar pattern = function pattern(pat) {\n return pat && (string(pat) || symbol(pat) || func(pat) || array(pat) && pat.every(pattern));\n};\nvar channel = function channel(ch) {\n return ch && func(ch.take) && func(ch.close);\n};\nvar stringableFunc = function stringableFunc(f) {\n return func(f) && f.hasOwnProperty('toString');\n};\nvar symbol = function symbol(sym) {\n return Boolean(sym) && typeof Symbol === 'function' && sym.constructor === Symbol && sym !== Symbol.prototype;\n};\nvar multicast = function multicast(ch) {\n return channel(ch) && ch[MULTICAST];\n};\nvar effect = function effect(eff) {\n return eff && eff[IO];\n};\n\nexport { array, buffer, channel, effect, func, iterable, iterator, multicast, notUndef, number, object, observable, pattern, promise, sagaAction, string, stringableFunc, symbol, task, undef };\n", "import { CANCEL } from '@redux-saga/symbols';\n\nvar MAX_SIGNED_INT = 2147483647;\nfunction delayP(ms, val) {\n if (val === void 0) {\n val = true;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\n if (process.env.NODE_ENV !== 'production' && ms > MAX_SIGNED_INT) {\n throw new Error('delay only supports a maximum value of ' + MAX_SIGNED_INT + 'ms');\n }\n\n var timeoutId;\n var promise = new Promise(function (resolve) {\n timeoutId = setTimeout(resolve, Math.min(MAX_SIGNED_INT, ms), val);\n });\n\n promise[CANCEL] = function () {\n clearTimeout(timeoutId);\n };\n\n return promise;\n}\n\nexport default delayP;\n", "import { TASK_CANCEL, TERMINATE, SAGA_LOCATION, SAGA_ACTION, IO, SELF_CANCELLATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { array, notUndef, pattern, multicast, channel, undef, effect, task, func, buffer, string, object } from '@redux-saga/is';\nimport delayP from '@redux-saga/delay-p';\n\nvar konst = function konst(v) {\n return function () {\n return v;\n };\n};\nvar kTrue =\n/*#__PURE__*/\nkonst(true);\n\nvar noop = function noop() {};\n\nif (process.env.NODE_ENV !== 'production' && typeof Proxy !== 'undefined') {\n noop =\n /*#__PURE__*/\n new Proxy(noop, {\n set: function set() {\n throw internalErr('There was an attempt to assign a property to internal `noop` function.');\n }\n });\n}\nvar identity = function identity(v) {\n return v;\n};\nvar hasSymbol = typeof Symbol === 'function';\nvar asyncIteratorSymbol = hasSymbol && Symbol.asyncIterator ? Symbol.asyncIterator : '@@asyncIterator';\nfunction check(value, predicate, error) {\n if (!predicate(value)) {\n throw new Error(error);\n }\n}\nvar assignWithSymbols = function assignWithSymbols(target, source) {\n _extends(target, source);\n\n if (Object.getOwnPropertySymbols) {\n Object.getOwnPropertySymbols(source).forEach(function (s) {\n target[s] = source[s];\n });\n }\n};\nvar flatMap = function flatMap(mapper, arr) {\n var _ref;\n\n return (_ref = []).concat.apply(_ref, arr.map(mapper));\n};\nfunction remove(array, item) {\n var index = array.indexOf(item);\n\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction once(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n fn();\n };\n}\n\nvar kThrow = function kThrow(err) {\n throw err;\n};\n\nvar kReturn = function kReturn(value) {\n return {\n value: value,\n done: true\n };\n};\n\nfunction makeIterator(next, thro, name) {\n if (thro === void 0) {\n thro = kThrow;\n }\n\n if (name === void 0) {\n name = 'iterator';\n }\n\n var iterator = {\n meta: {\n name: name\n },\n next: next,\n throw: thro,\n return: kReturn,\n isSagaIterator: true\n };\n\n if (typeof Symbol !== 'undefined') {\n iterator[Symbol.iterator] = function () {\n return iterator;\n };\n }\n\n return iterator;\n}\nfunction logError(error, _ref2) {\n var sagaStack = _ref2.sagaStack;\n\n /*eslint-disable no-console*/\n console.error(error);\n console.error(sagaStack);\n}\nvar internalErr = function internalErr(err) {\n return new Error(\"\\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\\n Error: \" + err + \"\\n\");\n};\nvar createSetContextWarning = function createSetContextWarning(ctx, props) {\n return (ctx ? ctx + '.' : '') + \"setContext(props): argument \" + props + \" is not a plain object\";\n};\nvar FROZEN_ACTION_ERROR = \"You can't put (a.k.a. dispatch from saga) frozen actions.\\nWe have to define a special non-enumerable property on those actions for scheduling purposes.\\nOtherwise you wouldn't be able to communicate properly between sagas & other subscribers (action ordering would become far less predictable).\\nIf you are using redux and you care about this behaviour (frozen actions),\\nthen you might want to switch to freezing actions in a middleware rather than in action creator.\\nExample implementation:\\n\\nconst freezeActions = store => next => action => next(Object.freeze(action))\\n\"; // creates empty, but not-holey array\n\nvar createEmptyArray = function createEmptyArray(n) {\n return Array.apply(null, new Array(n));\n};\nvar wrapSagaDispatch = function wrapSagaDispatch(dispatch) {\n return function (action) {\n if (process.env.NODE_ENV !== 'production') {\n check(action, function (ac) {\n return !Object.isFrozen(ac);\n }, FROZEN_ACTION_ERROR);\n }\n\n return dispatch(Object.defineProperty(action, SAGA_ACTION, {\n value: true\n }));\n };\n};\nvar shouldTerminate = function shouldTerminate(res) {\n return res === TERMINATE;\n};\nvar shouldCancel = function shouldCancel(res) {\n return res === TASK_CANCEL;\n};\nvar shouldComplete = function shouldComplete(res) {\n return shouldTerminate(res) || shouldCancel(res);\n};\nfunction createAllStyleChildCallbacks(shape, parentCallback) {\n var keys = Object.keys(shape);\n var totalCount = keys.length;\n\n if (process.env.NODE_ENV !== 'production') {\n check(totalCount, function (c) {\n return c > 0;\n }, 'createAllStyleChildCallbacks: get an empty array or object');\n }\n\n var completedCount = 0;\n var completed;\n var results = array(shape) ? createEmptyArray(totalCount) : {};\n var childCallbacks = {};\n\n function checkEnd() {\n if (completedCount === totalCount) {\n completed = true;\n parentCallback(results);\n }\n }\n\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n parentCallback.cancel();\n parentCallback(res, isErr);\n } else {\n results[key] = res;\n completedCount++;\n checkEnd();\n }\n };\n\n chCbAtKey.cancel = noop;\n childCallbacks[key] = chCbAtKey;\n });\n\n parentCallback.cancel = function () {\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCallbacks[key].cancel();\n });\n }\n };\n\n return childCallbacks;\n}\nfunction getMetaInfo(fn) {\n return {\n name: fn.name || 'anonymous',\n location: getLocation(fn)\n };\n}\nfunction getLocation(instrumented) {\n return instrumented[SAGA_LOCATION];\n}\n\nvar BUFFER_OVERFLOW = \"Channel's Buffer overflow!\";\nvar ON_OVERFLOW_THROW = 1;\nvar ON_OVERFLOW_DROP = 2;\nvar ON_OVERFLOW_SLIDE = 3;\nvar ON_OVERFLOW_EXPAND = 4;\nvar zeroBuffer = {\n isEmpty: kTrue,\n put: noop,\n take: noop\n};\n\nfunction ringBuffer(limit, overflowAction) {\n if (limit === void 0) {\n limit = 10;\n }\n\n var arr = new Array(limit);\n var length = 0;\n var pushIndex = 0;\n var popIndex = 0;\n\n var push = function push(it) {\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n length++;\n };\n\n var take = function take() {\n if (length != 0) {\n var it = arr[popIndex];\n arr[popIndex] = null;\n length--;\n popIndex = (popIndex + 1) % limit;\n return it;\n }\n };\n\n var flush = function flush() {\n var items = [];\n\n while (length) {\n items.push(take());\n }\n\n return items;\n };\n\n return {\n isEmpty: function isEmpty() {\n return length == 0;\n },\n put: function put(it) {\n if (length < limit) {\n push(it);\n } else {\n var doubledLimit;\n\n switch (overflowAction) {\n case ON_OVERFLOW_THROW:\n throw new Error(BUFFER_OVERFLOW);\n\n case ON_OVERFLOW_SLIDE:\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n popIndex = pushIndex;\n break;\n\n case ON_OVERFLOW_EXPAND:\n doubledLimit = 2 * limit;\n arr = flush();\n length = arr.length;\n pushIndex = arr.length;\n popIndex = 0;\n arr.length = doubledLimit;\n limit = doubledLimit;\n push(it);\n break;\n\n default: // DROP\n\n }\n }\n },\n take: take,\n flush: flush\n };\n}\n\nvar none = function none() {\n return zeroBuffer;\n};\nvar fixed = function fixed(limit) {\n return ringBuffer(limit, ON_OVERFLOW_THROW);\n};\nvar dropping = function dropping(limit) {\n return ringBuffer(limit, ON_OVERFLOW_DROP);\n};\nvar sliding = function sliding(limit) {\n return ringBuffer(limit, ON_OVERFLOW_SLIDE);\n};\nvar expanding = function expanding(initialSize) {\n return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);\n};\n\nvar buffers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n none: none,\n fixed: fixed,\n dropping: dropping,\n sliding: sliding,\n expanding: expanding\n});\n\nvar TAKE = 'TAKE';\nvar PUT = 'PUT';\nvar ALL = 'ALL';\nvar RACE = 'RACE';\nvar CALL = 'CALL';\nvar CPS = 'CPS';\nvar FORK = 'FORK';\nvar JOIN = 'JOIN';\nvar CANCEL = 'CANCEL';\nvar SELECT = 'SELECT';\nvar ACTION_CHANNEL = 'ACTION_CHANNEL';\nvar CANCELLED = 'CANCELLED';\nvar FLUSH = 'FLUSH';\nvar GET_CONTEXT = 'GET_CONTEXT';\nvar SET_CONTEXT = 'SET_CONTEXT';\n\nvar effectTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n TAKE: TAKE,\n PUT: PUT,\n ALL: ALL,\n RACE: RACE,\n CALL: CALL,\n CPS: CPS,\n FORK: FORK,\n JOIN: JOIN,\n CANCEL: CANCEL,\n SELECT: SELECT,\n ACTION_CHANNEL: ACTION_CHANNEL,\n CANCELLED: CANCELLED,\n FLUSH: FLUSH,\n GET_CONTEXT: GET_CONTEXT,\n SET_CONTEXT: SET_CONTEXT\n});\n\nvar TEST_HINT = '\\n(HINT: if you are getting these errors in tests, consider using createMockTask from @redux-saga/testing-utils)';\n\nvar makeEffect = function makeEffect(type, payload) {\n var _ref;\n\n return _ref = {}, _ref[IO] = true, _ref.combinator = false, _ref.type = type, _ref.payload = payload, _ref;\n};\n\nvar isForkEffect = function isForkEffect(eff) {\n return effect(eff) && eff.type === FORK;\n};\n\nvar detach = function detach(eff) {\n if (process.env.NODE_ENV !== 'production') {\n check(eff, isForkEffect, 'detach(eff): argument must be a fork effect');\n }\n\n return makeEffect(FORK, _extends({}, eff.payload, {\n detached: true\n }));\n};\nfunction take(patternOrChannel, multicastPattern) {\n if (patternOrChannel === void 0) {\n patternOrChannel = '*';\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'take(patternOrChannel): patternOrChannel is undefined');\n }\n\n if (pattern(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types\");\n }\n\n return makeEffect(TAKE, {\n pattern: patternOrChannel\n });\n }\n\n if (multicast(patternOrChannel) && notUndef(multicastPattern) && pattern(multicastPattern)) {\n return makeEffect(TAKE, {\n channel: patternOrChannel,\n pattern: multicastPattern\n });\n }\n\n if (channel(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(channel) takes one argument but two were provided. Second argument is ignored.\");\n }\n\n return makeEffect(TAKE, {\n channel: patternOrChannel\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"take(patternOrChannel): argument \" + patternOrChannel + \" is not valid channel or a valid pattern\");\n }\n}\nvar takeMaybe = function takeMaybe() {\n var eff = take.apply(void 0, arguments);\n eff.payload.maybe = true;\n return eff;\n};\nfunction put(channel$1, action) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n check(channel$1, notUndef, 'put(channel, action): argument channel is undefined');\n check(channel$1, channel, \"put(channel, action): argument \" + channel$1 + \" is not a valid channel\");\n check(action, notUndef, 'put(channel, action): argument action is undefined');\n } else {\n check(channel$1, notUndef, 'put(action): argument action is undefined');\n }\n }\n\n if (undef(action)) {\n action = channel$1; // `undefined` instead of `null` to make default parameter work\n\n channel$1 = undefined;\n }\n\n return makeEffect(PUT, {\n channel: channel$1,\n action: action\n });\n}\nvar putResolve = function putResolve() {\n var eff = put.apply(void 0, arguments);\n eff.payload.resolve = true;\n return eff;\n};\nfunction all(effects) {\n var eff = makeEffect(ALL, effects);\n eff.combinator = true;\n return eff;\n}\nfunction race(effects) {\n var eff = makeEffect(RACE, effects);\n eff.combinator = true;\n return eff;\n} // this match getFnCallDescriptor logic\n\nvar validateFnDescriptor = function validateFnDescriptor(effectName, fnDescriptor) {\n check(fnDescriptor, notUndef, effectName + \": argument fn is undefined or null\");\n\n if (func(fnDescriptor)) {\n return;\n }\n\n var context = null;\n var fn;\n\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n check(fn, notUndef, effectName + \": argument of type [context, fn] has undefined or null `fn`\");\n } else if (object(fnDescriptor)) {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n check(fn, notUndef, effectName + \": argument of type {context, fn} has undefined or null `fn`\");\n } else {\n check(fnDescriptor, func, effectName + \": argument fn is not function\");\n return;\n }\n\n if (context && string(fn)) {\n check(context[fn], func, effectName + \": context arguments has no such method - \\\"\" + fn + \"\\\"\");\n return;\n }\n\n check(fn, func, effectName + \": unpacked fn argument (from [context, fn] or {context, fn}) is not a function\");\n};\n\nfunction getFnCallDescriptor(fnDescriptor, args) {\n var context = null;\n var fn;\n\n if (func(fnDescriptor)) {\n fn = fnDescriptor;\n } else {\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n } else {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n }\n\n if (context && string(fn) && func(context[fn])) {\n fn = context[fn];\n }\n }\n\n return {\n context: context,\n fn: fn,\n args: args\n };\n}\n\nvar isNotDelayEffect = function isNotDelayEffect(fn) {\n return fn !== delay;\n};\n\nfunction call(fnDescriptor) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var arg0 = typeof args[0] === 'number' ? args[0] : 'ms';\n check(fnDescriptor, isNotDelayEffect, \"instead of writing `yield call(delay, \" + arg0 + \")` where delay is an effect from `redux-saga/effects` you should write `yield delay(\" + arg0 + \")`\");\n validateFnDescriptor('call', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction apply(context, fn, args) {\n if (args === void 0) {\n args = [];\n }\n\n var fnDescriptor = [context, fn];\n\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('apply', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor([context, fn], args));\n}\nfunction cps(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('cps', fnDescriptor);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return makeEffect(CPS, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction fork(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('fork', fnDescriptor);\n check(fnDescriptor, function (arg) {\n return !effect(arg);\n }, 'fork: argument must not be an effect');\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return makeEffect(FORK, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction spawn(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('spawn', fnDescriptor);\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n return detach(fork.apply(void 0, [fnDescriptor].concat(args)));\n}\nfunction join(taskOrTasks) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('join(...tasks) is not supported any more. Please use join([...tasks]) to join multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"join([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else {\n check(taskOrTasks, task, \"join(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(JOIN, taskOrTasks);\n}\nfunction cancel(taskOrTasks) {\n if (taskOrTasks === void 0) {\n taskOrTasks = SELF_CANCELLATION;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('cancel(...tasks) is not supported any more. Please use cancel([...tasks]) to cancel multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"cancel([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else if (taskOrTasks !== SELF_CANCELLATION && notUndef(taskOrTasks)) {\n check(taskOrTasks, task, \"cancel(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(CANCEL, taskOrTasks);\n}\nfunction select(selector) {\n if (selector === void 0) {\n selector = identity;\n }\n\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'select(selector, [...]): argument selector is undefined');\n check(selector, func, \"select(selector, [...]): argument \" + selector + \" is not a function\");\n }\n\n return makeEffect(SELECT, {\n selector: selector,\n args: args\n });\n}\n/**\n channel(pattern, [buffer]) => creates a proxy channel for store actions\n**/\n\nfunction actionChannel(pattern$1, buffer$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(pattern$1, pattern, 'actionChannel(pattern,...): argument pattern is not valid');\n\n if (arguments.length > 1) {\n check(buffer$1, notUndef, 'actionChannel(pattern, buffer): argument buffer is undefined');\n check(buffer$1, buffer, \"actionChannel(pattern, buffer): argument \" + buffer$1 + \" is not a valid buffer\");\n }\n }\n\n return makeEffect(ACTION_CHANNEL, {\n pattern: pattern$1,\n buffer: buffer$1\n });\n}\nfunction cancelled() {\n return makeEffect(CANCELLED, {});\n}\nfunction flush(channel$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(channel$1, channel, \"flush(channel): argument \" + channel$1 + \" is not valid channel\");\n }\n\n return makeEffect(FLUSH, channel$1);\n}\nfunction getContext(prop) {\n if (process.env.NODE_ENV !== 'production') {\n check(prop, string, \"getContext(prop): argument \" + prop + \" is not a string\");\n }\n\n return makeEffect(GET_CONTEXT, prop);\n}\nfunction setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning(null, props));\n }\n\n return makeEffect(SET_CONTEXT, props);\n}\nvar delay =\n/*#__PURE__*/\ncall.bind(null, delayP);\n\nexport { apply as $, ALL as A, logError as B, CALL as C, wrapSagaDispatch as D, identity as E, FORK as F, GET_CONTEXT as G, buffers as H, detach as I, JOIN as J, take as K, fork as L, cancel as M, call as N, delay as O, PUT as P, actionChannel as Q, RACE as R, SELECT as S, TAKE as T, sliding as U, race as V, effectTypes as W, takeMaybe as X, put as Y, putResolve as Z, all as _, CPS as a, cps as a0, spawn as a1, join as a2, select as a3, cancelled as a4, flush as a5, getContext as a6, setContext as a7, CANCEL as b, check as c, ACTION_CHANNEL as d, expanding as e, CANCELLED as f, FLUSH as g, SET_CONTEXT as h, internalErr as i, getMetaInfo as j, kTrue as k, createAllStyleChildCallbacks as l, createEmptyArray as m, none as n, once as o, assignWithSymbols as p, makeIterator as q, remove as r, shouldComplete as s, noop as t, flatMap as u, getLocation as v, createSetContextWarning as w, asyncIteratorSymbol as x, shouldCancel as y, shouldTerminate as z };\n", "function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _objectSpread = require('@babel/runtime/helpers/objectSpread2');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);\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 \u201Cwhat changed\u201D. 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__default['default'](_objectSpread__default['default']({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexports.__DO_NOT_USE__ActionTypes = ActionTypes;\nexports.applyMiddleware = applyMiddleware;\nexports.bindActionCreators = bindActionCreators;\nexports.combineReducers = combineReducers;\nexports.compose = compose;\nexports.createStore = createStore;\nexports.legacy_createStore = legacy_createStore;\n", "function deferred() {\n var def = {};\n def.promise = new Promise(function (resolve, reject) {\n def.resolve = resolve;\n def.reject = reject;\n });\n return def;\n}\nfunction arrayOfDeferred(length) {\n var arr = [];\n\n for (var i = 0; i < length; i++) {\n arr.push(deferred());\n }\n\n return arr;\n}\n\nexport default deferred;\nexport { arrayOfDeferred };\n", "import { CHANNEL_END_TYPE, MULTICAST, MATCH, SAGA_ACTION, CANCEL, SELF_CANCELLATION, TERMINATE, TASK, TASK_CANCEL, IO } from '@redux-saga/symbols';\nexport { CANCEL, SAGA_LOCATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport { string as string$1, array as array$1, stringableFunc, func, symbol as symbol$1, buffer, notUndef, promise, iterator, undef, object, channel as channel$1 } from '@redux-saga/is';\nimport { k as kTrue, e as expanding, c as check, o as once, r as remove, n as none, i as internalErr, T as TAKE, P as PUT, A as ALL, R as RACE, C as CALL, a as CPS, F as FORK, J as JOIN, b as CANCEL$1, S as SELECT, d as ACTION_CHANNEL, f as CANCELLED$1, g as FLUSH, G as GET_CONTEXT, h as SET_CONTEXT, j as getMetaInfo, l as createAllStyleChildCallbacks, m as createEmptyArray, p as assignWithSymbols, q as makeIterator, s as shouldComplete, t as noop, u as flatMap, v as getLocation, w as createSetContextWarning, x as asyncIteratorSymbol, y as shouldCancel, z as shouldTerminate, B as logError, D as wrapSagaDispatch, E as identity } from './io-c3792963.js';\nexport { H as buffers, I as detach } from './io-c3792963.js';\nimport { compose } from 'redux';\nimport deferred from '@redux-saga/deferred';\nimport '@redux-saga/delay-p';\n\nvar queue = [];\n/**\n Variable to hold a counting semaphore\n - Incrementing adds a lock and puts the scheduler in a `suspended` state (if it's not\n already suspended)\n - Decrementing releases a lock. Zero locks puts the scheduler in a `released` state. This\n triggers flushing the queued tasks.\n**/\n\nvar semaphore = 0;\n/**\n Executes a task 'atomically'. Tasks scheduled during this execution will be queued\n and flushed after this task has finished (assuming the scheduler endup in a released\n state).\n**/\n\nfunction exec(task) {\n try {\n suspend();\n task();\n } finally {\n release();\n }\n}\n/**\n Executes or queues a task depending on the state of the scheduler (`suspended` or `released`)\n**/\n\n\nfunction asap(task) {\n queue.push(task);\n\n if (!semaphore) {\n suspend();\n flush();\n }\n}\n/**\n * Puts the scheduler in a `suspended` state and executes a task immediately.\n */\n\nfunction immediately(task) {\n try {\n suspend();\n return task();\n } finally {\n flush();\n }\n}\n/**\n Puts the scheduler in a `suspended` state. Scheduled tasks will be queued until the\n scheduler is released.\n**/\n\nfunction suspend() {\n semaphore++;\n}\n/**\n Puts the scheduler in a `released` state.\n**/\n\n\nfunction release() {\n semaphore--;\n}\n/**\n Releases the current lock. Executes all queued tasks if the scheduler is in the released state.\n**/\n\n\nfunction flush() {\n release();\n var task;\n\n while (!semaphore && (task = queue.shift()) !== undefined) {\n exec(task);\n }\n}\n\nvar array = function array(patterns) {\n return function (input) {\n return patterns.some(function (p) {\n return matcher(p)(input);\n });\n };\n};\nvar predicate = function predicate(_predicate) {\n return function (input) {\n return _predicate(input);\n };\n};\nvar string = function string(pattern) {\n return function (input) {\n return input.type === String(pattern);\n };\n};\nvar symbol = function symbol(pattern) {\n return function (input) {\n return input.type === pattern;\n };\n};\nvar wildcard = function wildcard() {\n return kTrue;\n};\nfunction matcher(pattern) {\n // prettier-ignore\n var matcherCreator = pattern === '*' ? wildcard : string$1(pattern) ? string : array$1(pattern) ? array : stringableFunc(pattern) ? string : func(pattern) ? predicate : symbol$1(pattern) ? symbol : null;\n\n if (matcherCreator === null) {\n throw new Error(\"invalid pattern: \" + pattern);\n }\n\n return matcherCreator(pattern);\n}\n\nvar END = {\n type: CHANNEL_END_TYPE\n};\nvar isEnd = function isEnd(a) {\n return a && a.type === CHANNEL_END_TYPE;\n};\nvar CLOSED_CHANNEL_WITH_TAKERS = 'Cannot have a closed channel with pending takers';\nvar INVALID_BUFFER = 'invalid buffer passed to channel factory function';\nvar UNDEFINED_INPUT_ERROR = \"Saga or channel was provided with an undefined action\\nHints:\\n - check that your Action Creator returns a non-undefined value\\n - if the Saga was started using runSaga, check that your subscribe source provides the action to its listeners\";\nfunction channel(buffer$1) {\n if (buffer$1 === void 0) {\n buffer$1 = expanding();\n }\n\n var closed = false;\n var takers = [];\n\n if (process.env.NODE_ENV !== 'production') {\n check(buffer$1, buffer, INVALID_BUFFER);\n }\n\n function checkForbiddenStates() {\n if (closed && takers.length) {\n throw internalErr(CLOSED_CHANNEL_WITH_TAKERS);\n }\n\n if (takers.length && !buffer$1.isEmpty()) {\n throw internalErr('Cannot have pending takers with non empty buffer');\n }\n }\n\n function put(input) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(input, notUndef, UNDEFINED_INPUT_ERROR);\n }\n\n if (closed) {\n return;\n }\n\n if (takers.length === 0) {\n return buffer$1.put(input);\n }\n\n var cb = takers.shift();\n cb(input);\n }\n\n function take(cb) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(cb, func, \"channel.take's callback must be a function\");\n }\n\n if (closed && buffer$1.isEmpty()) {\n cb(END);\n } else if (!buffer$1.isEmpty()) {\n cb(buffer$1.take());\n } else {\n takers.push(cb);\n\n cb.cancel = function () {\n remove(takers, cb);\n };\n }\n }\n\n function flush(cb) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(cb, func, \"channel.flush' callback must be a function\");\n }\n\n if (closed && buffer$1.isEmpty()) {\n cb(END);\n return;\n }\n\n cb(buffer$1.flush());\n }\n\n function close() {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n if (closed) {\n return;\n }\n\n closed = true;\n var arr = takers;\n takers = [];\n\n for (var i = 0, len = arr.length; i < len; i++) {\n var taker = arr[i];\n taker(END);\n }\n }\n\n return {\n take: take,\n put: put,\n flush: flush,\n close: close\n };\n}\nfunction eventChannel(subscribe, buffer) {\n if (buffer === void 0) {\n buffer = none();\n }\n\n var closed = false;\n var unsubscribe;\n var chan = channel(buffer);\n\n var close = function close() {\n if (closed) {\n return;\n }\n\n closed = true;\n\n if (func(unsubscribe)) {\n unsubscribe();\n }\n\n chan.close();\n };\n\n unsubscribe = subscribe(function (input) {\n if (isEnd(input)) {\n close();\n return;\n }\n\n chan.put(input);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n check(unsubscribe, func, 'in eventChannel: subscribe should return a function to unsubscribe');\n }\n\n unsubscribe = once(unsubscribe);\n\n if (closed) {\n unsubscribe();\n }\n\n return {\n take: chan.take,\n flush: chan.flush,\n close: close\n };\n}\nfunction multicastChannel() {\n var _ref;\n\n var closed = false;\n var currentTakers = [];\n var nextTakers = currentTakers;\n\n function checkForbiddenStates() {\n if (closed && nextTakers.length) {\n throw internalErr(CLOSED_CHANNEL_WITH_TAKERS);\n }\n }\n\n var ensureCanMutateNextTakers = function ensureCanMutateNextTakers() {\n if (nextTakers !== currentTakers) {\n return;\n }\n\n nextTakers = currentTakers.slice();\n };\n\n var close = function close() {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n closed = true;\n var takers = currentTakers = nextTakers;\n nextTakers = [];\n takers.forEach(function (taker) {\n taker(END);\n });\n };\n\n return _ref = {}, _ref[MULTICAST] = true, _ref.put = function put(input) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(input, notUndef, UNDEFINED_INPUT_ERROR);\n }\n\n if (closed) {\n return;\n }\n\n if (isEnd(input)) {\n close();\n return;\n }\n\n var takers = currentTakers = nextTakers;\n\n for (var i = 0, len = takers.length; i < len; i++) {\n var taker = takers[i];\n\n if (taker[MATCH](input)) {\n taker.cancel();\n taker(input);\n }\n }\n }, _ref.take = function take(cb, matcher) {\n if (matcher === void 0) {\n matcher = wildcard;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n if (closed) {\n cb(END);\n return;\n }\n\n cb[MATCH] = matcher;\n ensureCanMutateNextTakers();\n nextTakers.push(cb);\n cb.cancel = once(function () {\n ensureCanMutateNextTakers();\n remove(nextTakers, cb);\n });\n }, _ref.close = close, _ref;\n}\nfunction stdChannel() {\n var chan = multicastChannel();\n var put = chan.put;\n\n chan.put = function (input) {\n if (input[SAGA_ACTION]) {\n put(input);\n return;\n }\n\n asap(function () {\n put(input);\n });\n };\n\n return chan;\n}\n\nvar RUNNING = 0;\nvar CANCELLED = 1;\nvar ABORTED = 2;\nvar DONE = 3;\n\nfunction resolvePromise(promise, cb) {\n var cancelPromise = promise[CANCEL];\n\n if (func(cancelPromise)) {\n cb.cancel = cancelPromise;\n }\n\n promise.then(cb, function (error) {\n cb(error, true);\n });\n}\n\nvar current = 0;\nvar nextSagaId = (function () {\n return ++current;\n});\n\nvar _effectRunnerMap;\n\nfunction getIteratorMetaInfo(iterator, fn) {\n if (iterator.isSagaIterator) {\n return {\n name: iterator.meta.name\n };\n }\n\n return getMetaInfo(fn);\n}\n\nfunction createTaskIterator(_ref) {\n var context = _ref.context,\n fn = _ref.fn,\n args = _ref.args;\n\n // catch synchronous failures; see #152 and #441\n try {\n var result = fn.apply(context, args); // i.e. a generator function returns an iterator\n\n if (iterator(result)) {\n return result;\n }\n\n var resolved = false;\n\n var next = function next(arg) {\n if (!resolved) {\n resolved = true; // Only promises returned from fork will be interpreted. See #1573\n\n return {\n value: result,\n done: !promise(result)\n };\n } else {\n return {\n value: arg,\n done: true\n };\n }\n };\n\n return makeIterator(next);\n } catch (err) {\n // do not bubble up synchronous failures for detached forks\n // instead create a failed task. See #152 and #441\n return makeIterator(function () {\n throw err;\n });\n }\n}\n\nfunction runPutEffect(env, _ref2, cb) {\n var channel = _ref2.channel,\n action = _ref2.action,\n resolve = _ref2.resolve;\n\n /**\n Schedule the put in case another saga is holding a lock.\n The put will be executed atomically. ie nested puts will execute after\n this put has terminated.\n **/\n asap(function () {\n var result;\n\n try {\n result = (channel ? channel.put : env.dispatch)(action);\n } catch (error) {\n cb(error, true);\n return;\n }\n\n if (resolve && promise(result)) {\n resolvePromise(result, cb);\n } else {\n cb(result);\n }\n }); // Put effects are non cancellables\n}\n\nfunction runTakeEffect(env, _ref3, cb) {\n var _ref3$channel = _ref3.channel,\n channel = _ref3$channel === void 0 ? env.channel : _ref3$channel,\n pattern = _ref3.pattern,\n maybe = _ref3.maybe;\n\n var takeCb = function takeCb(input) {\n if (input instanceof Error) {\n cb(input, true);\n return;\n }\n\n if (isEnd(input) && !maybe) {\n cb(TERMINATE);\n return;\n }\n\n cb(input);\n };\n\n try {\n channel.take(takeCb, notUndef(pattern) ? matcher(pattern) : null);\n } catch (err) {\n cb(err, true);\n return;\n }\n\n cb.cancel = takeCb.cancel;\n}\n\nfunction runCallEffect(env, _ref4, cb, _ref5) {\n var context = _ref4.context,\n fn = _ref4.fn,\n args = _ref4.args;\n var task = _ref5.task;\n\n // catch synchronous failures; see #152\n try {\n var result = fn.apply(context, args);\n\n if (promise(result)) {\n resolvePromise(result, cb);\n return;\n }\n\n if (iterator(result)) {\n // resolve iterator\n proc(env, result, task.context, current, getMetaInfo(fn),\n /* isRoot */\n false, cb);\n return;\n }\n\n cb(result);\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runCPSEffect(env, _ref6, cb) {\n var context = _ref6.context,\n fn = _ref6.fn,\n args = _ref6.args;\n\n // CPS (ie node style functions) can define their own cancellation logic\n // by setting cancel field on the cb\n // catch synchronous failures; see #152\n try {\n var cpsCb = function cpsCb(err, res) {\n if (undef(err)) {\n cb(res);\n } else {\n cb(err, true);\n }\n };\n\n fn.apply(context, args.concat(cpsCb));\n\n if (cpsCb.cancel) {\n cb.cancel = cpsCb.cancel;\n }\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runForkEffect(env, _ref7, cb, _ref8) {\n var context = _ref7.context,\n fn = _ref7.fn,\n args = _ref7.args,\n detached = _ref7.detached;\n var parent = _ref8.task;\n var taskIterator = createTaskIterator({\n context: context,\n fn: fn,\n args: args\n });\n var meta = getIteratorMetaInfo(taskIterator, fn);\n immediately(function () {\n var child = proc(env, taskIterator, parent.context, current, meta, detached, undefined);\n\n if (detached) {\n cb(child);\n } else {\n if (child.isRunning()) {\n parent.queue.addTask(child);\n cb(child);\n } else if (child.isAborted()) {\n parent.queue.abort(child.error());\n } else {\n cb(child);\n }\n }\n }); // Fork effects are non cancellables\n}\n\nfunction runJoinEffect(env, taskOrTasks, cb, _ref9) {\n var task = _ref9.task;\n\n var joinSingleTask = function joinSingleTask(taskToJoin, cb) {\n if (taskToJoin.isRunning()) {\n var joiner = {\n task: task,\n cb: cb\n };\n\n cb.cancel = function () {\n if (taskToJoin.isRunning()) remove(taskToJoin.joiners, joiner);\n };\n\n taskToJoin.joiners.push(joiner);\n } else {\n if (taskToJoin.isAborted()) {\n cb(taskToJoin.error(), true);\n } else {\n cb(taskToJoin.result());\n }\n }\n };\n\n if (array$1(taskOrTasks)) {\n if (taskOrTasks.length === 0) {\n cb([]);\n return;\n }\n\n var childCallbacks = createAllStyleChildCallbacks(taskOrTasks, cb);\n taskOrTasks.forEach(function (t, i) {\n joinSingleTask(t, childCallbacks[i]);\n });\n } else {\n joinSingleTask(taskOrTasks, cb);\n }\n}\n\nfunction cancelSingleTask(taskToCancel) {\n if (taskToCancel.isRunning()) {\n taskToCancel.cancel();\n }\n}\n\nfunction runCancelEffect(env, taskOrTasks, cb, _ref10) {\n var task = _ref10.task;\n\n if (taskOrTasks === SELF_CANCELLATION) {\n cancelSingleTask(task);\n } else if (array$1(taskOrTasks)) {\n taskOrTasks.forEach(cancelSingleTask);\n } else {\n cancelSingleTask(taskOrTasks);\n }\n\n cb(); // cancel effects are non cancellables\n}\n\nfunction runAllEffect(env, effects, cb, _ref11) {\n var digestEffect = _ref11.digestEffect;\n var effectId = current;\n var keys = Object.keys(effects);\n\n if (keys.length === 0) {\n cb(array$1(effects) ? [] : {});\n return;\n }\n\n var childCallbacks = createAllStyleChildCallbacks(effects, cb);\n keys.forEach(function (key) {\n digestEffect(effects[key], effectId, childCallbacks[key], key);\n });\n}\n\nfunction runRaceEffect(env, effects, cb, _ref12) {\n var digestEffect = _ref12.digestEffect;\n var effectId = current;\n var keys = Object.keys(effects);\n var response = array$1(effects) ? createEmptyArray(keys.length) : {};\n var childCbs = {};\n var completed = false;\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n // Race Auto cancellation\n cb.cancel();\n cb(res, isErr);\n } else {\n cb.cancel();\n completed = true;\n response[key] = res;\n cb(response);\n }\n };\n\n chCbAtKey.cancel = noop;\n childCbs[key] = chCbAtKey;\n });\n\n cb.cancel = function () {\n // prevents unnecessary cancellation\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCbs[key].cancel();\n });\n }\n };\n\n keys.forEach(function (key) {\n if (completed) {\n return;\n }\n\n digestEffect(effects[key], effectId, childCbs[key], key);\n });\n}\n\nfunction runSelectEffect(env, _ref13, cb) {\n var selector = _ref13.selector,\n args = _ref13.args;\n\n try {\n var state = selector.apply(void 0, [env.getState()].concat(args));\n cb(state);\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runChannelEffect(env, _ref14, cb) {\n var pattern = _ref14.pattern,\n buffer = _ref14.buffer;\n var chan = channel(buffer);\n var match = matcher(pattern);\n\n var taker = function taker(action) {\n if (!isEnd(action)) {\n env.channel.take(taker, match);\n }\n\n chan.put(action);\n };\n\n var close = chan.close;\n\n chan.close = function () {\n taker.cancel();\n close();\n };\n\n env.channel.take(taker, match);\n cb(chan);\n}\n\nfunction runCancelledEffect(env, data, cb, _ref15) {\n var task = _ref15.task;\n cb(task.isCancelled());\n}\n\nfunction runFlushEffect(env, channel, cb) {\n channel.flush(cb);\n}\n\nfunction runGetContextEffect(env, prop, cb, _ref16) {\n var task = _ref16.task;\n cb(task.context[prop]);\n}\n\nfunction runSetContextEffect(env, props, cb, _ref17) {\n var task = _ref17.task;\n assignWithSymbols(task.context, props);\n cb();\n}\n\nvar effectRunnerMap = (_effectRunnerMap = {}, _effectRunnerMap[TAKE] = runTakeEffect, _effectRunnerMap[PUT] = runPutEffect, _effectRunnerMap[ALL] = runAllEffect, _effectRunnerMap[RACE] = runRaceEffect, _effectRunnerMap[CALL] = runCallEffect, _effectRunnerMap[CPS] = runCPSEffect, _effectRunnerMap[FORK] = runForkEffect, _effectRunnerMap[JOIN] = runJoinEffect, _effectRunnerMap[CANCEL$1] = runCancelEffect, _effectRunnerMap[SELECT] = runSelectEffect, _effectRunnerMap[ACTION_CHANNEL] = runChannelEffect, _effectRunnerMap[CANCELLED$1] = runCancelledEffect, _effectRunnerMap[FLUSH] = runFlushEffect, _effectRunnerMap[GET_CONTEXT] = runGetContextEffect, _effectRunnerMap[SET_CONTEXT] = runSetContextEffect, _effectRunnerMap);\n\n/**\n Used to track a parent task and its forks\n In the fork model, forked tasks are attached by default to their parent\n We model this using the concept of Parent task && main Task\n main task is the main flow of the current Generator, the parent tasks is the\n aggregation of the main tasks + all its forked tasks.\n Thus the whole model represents an execution tree with multiple branches (vs the\n linear execution tree in sequential (non parallel) programming)\n\n A parent tasks has the following semantics\n - It completes if all its forks either complete or all cancelled\n - If it's cancelled, all forks are cancelled as well\n - It aborts if any uncaught error bubbles up from forks\n - If it completes, the return value is the one returned by the main task\n **/\n\nfunction forkQueue(mainTask, onAbort, cont) {\n var tasks = [];\n var result;\n var completed = false;\n addTask(mainTask);\n\n var getTasks = function getTasks() {\n return tasks;\n };\n\n function abort(err) {\n onAbort();\n cancelAll();\n cont(err, true);\n }\n\n function addTask(task) {\n tasks.push(task);\n\n task.cont = function (res, isErr) {\n if (completed) {\n return;\n }\n\n remove(tasks, task);\n task.cont = noop;\n\n if (isErr) {\n abort(res);\n } else {\n if (task === mainTask) {\n result = res;\n }\n\n if (!tasks.length) {\n completed = true;\n cont(result);\n }\n }\n };\n }\n\n function cancelAll() {\n if (completed) {\n return;\n }\n\n completed = true;\n tasks.forEach(function (t) {\n t.cont = noop;\n t.cancel();\n });\n tasks = [];\n }\n\n return {\n addTask: addTask,\n cancelAll: cancelAll,\n abort: abort,\n getTasks: getTasks\n };\n}\n\n// there can be only a single saga error created at any given moment\n\nfunction formatLocation(fileName, lineNumber) {\n return fileName + \"?\" + lineNumber;\n}\n\nfunction effectLocationAsString(effect) {\n var location = getLocation(effect);\n\n if (location) {\n var code = location.code,\n fileName = location.fileName,\n lineNumber = location.lineNumber;\n var source = code + \" \" + formatLocation(fileName, lineNumber);\n return source;\n }\n\n return '';\n}\n\nfunction sagaLocationAsString(sagaMeta) {\n var name = sagaMeta.name,\n location = sagaMeta.location;\n\n if (location) {\n return name + \" \" + formatLocation(location.fileName, location.lineNumber);\n }\n\n return name;\n}\n\nfunction cancelledTasksAsString(sagaStack) {\n var cancelledTasks = flatMap(function (i) {\n return i.cancelledTasks;\n }, sagaStack);\n\n if (!cancelledTasks.length) {\n return '';\n }\n\n return ['Tasks cancelled due to error:'].concat(cancelledTasks).join('\\n');\n}\n\nvar crashedEffect = null;\nvar sagaStack = [];\nvar addSagaFrame = function addSagaFrame(frame) {\n frame.crashedEffect = crashedEffect;\n sagaStack.push(frame);\n};\nvar clear = function clear() {\n crashedEffect = null;\n sagaStack.length = 0;\n}; // this sets crashed effect for the soon-to-be-reported saga frame\n// this slightly streatches the singleton nature of this module into wrong direction\n// as it's even less obvious what's the data flow here, but it is what it is for now\n\nvar setCrashedEffect = function setCrashedEffect(effect) {\n crashedEffect = effect;\n};\n/**\n @returns {string}\n\n @example\n The above error occurred in task errorInPutSaga {pathToFile}\n when executing effect put({type: 'REDUCER_ACTION_ERROR_IN_PUT'}) {pathToFile}\n created by fetchSaga {pathToFile}\n created by rootSaga {pathToFile}\n*/\n\nvar toString = function toString() {\n var firstSaga = sagaStack[0],\n otherSagas = sagaStack.slice(1);\n var crashedEffectLocation = firstSaga.crashedEffect ? effectLocationAsString(firstSaga.crashedEffect) : null;\n var errorMessage = \"The above error occurred in task \" + sagaLocationAsString(firstSaga.meta) + (crashedEffectLocation ? \" \\n when executing effect \" + crashedEffectLocation : '');\n return [errorMessage].concat(otherSagas.map(function (s) {\n return \" created by \" + sagaLocationAsString(s.meta);\n }), [cancelledTasksAsString(sagaStack)]).join('\\n');\n};\n\nfunction newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont) {\n var _task;\n\n if (cont === void 0) {\n cont = noop;\n }\n\n var status = RUNNING;\n var taskResult;\n var taskError;\n var deferredEnd = null;\n var cancelledDueToErrorTasks = [];\n var context = Object.create(parentContext);\n var queue = forkQueue(mainTask, function onAbort() {\n cancelledDueToErrorTasks.push.apply(cancelledDueToErrorTasks, queue.getTasks().map(function (t) {\n return t.meta.name;\n }));\n }, end);\n /**\n This may be called by a parent generator to trigger/propagate cancellation\n cancel all pending tasks (including the main task), then end the current task.\n Cancellation propagates down to the whole execution tree held by this Parent task\n It's also propagated to all joiners of this task and their execution tree/joiners\n Cancellation is noop for terminated/Cancelled tasks tasks\n **/\n\n function cancel() {\n if (status === RUNNING) {\n // Setting status to CANCELLED does not necessarily mean that the task/iterators are stopped\n // effects in the iterator's finally block will still be executed\n status = CANCELLED;\n queue.cancelAll(); // Ending with a TASK_CANCEL will propagate the Cancellation to all joiners\n\n end(TASK_CANCEL, false);\n }\n }\n\n function end(result, isErr) {\n if (!isErr) {\n // The status here may be RUNNING or CANCELLED\n // If the status is CANCELLED, then we do not need to change it here\n if (result === TASK_CANCEL) {\n status = CANCELLED;\n } else if (status !== CANCELLED) {\n status = DONE;\n }\n\n taskResult = result;\n deferredEnd && deferredEnd.resolve(result);\n } else {\n status = ABORTED;\n addSagaFrame({\n meta: meta,\n cancelledTasks: cancelledDueToErrorTasks\n });\n\n if (task.isRoot) {\n var sagaStack = toString(); // we've dumped the saga stack to string and are passing it to user's code\n // we know that it won't be needed anymore and we need to clear it\n\n clear();\n env.onError(result, {\n sagaStack: sagaStack\n });\n }\n\n taskError = result;\n deferredEnd && deferredEnd.reject(result);\n }\n\n task.cont(result, isErr);\n task.joiners.forEach(function (joiner) {\n joiner.cb(result, isErr);\n });\n task.joiners = null;\n }\n\n function setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning('task', props));\n }\n\n assignWithSymbols(context, props);\n }\n\n function toPromise() {\n if (deferredEnd) {\n return deferredEnd.promise;\n }\n\n deferredEnd = deferred();\n\n if (status === ABORTED) {\n deferredEnd.reject(taskError);\n } else if (status !== RUNNING) {\n deferredEnd.resolve(taskResult);\n }\n\n return deferredEnd.promise;\n }\n\n var task = (_task = {}, _task[TASK] = true, _task.id = parentEffectId, _task.meta = meta, _task.isRoot = isRoot, _task.context = context, _task.joiners = [], _task.queue = queue, _task.cancel = cancel, _task.cont = cont, _task.end = end, _task.setContext = setContext, _task.toPromise = toPromise, _task.isRunning = function isRunning() {\n return status === RUNNING;\n }, _task.isCancelled = function isCancelled() {\n return status === CANCELLED || status === RUNNING && mainTask.status === CANCELLED;\n }, _task.isAborted = function isAborted() {\n return status === ABORTED;\n }, _task.result = function result() {\n return taskResult;\n }, _task.error = function error() {\n return taskError;\n }, _task);\n return task;\n}\n\nfunction proc(env, iterator$1, parentContext, parentEffectId, meta, isRoot, cont) {\n if (process.env.NODE_ENV !== 'production' && iterator$1[asyncIteratorSymbol]) {\n throw new Error(\"redux-saga doesn't support async generators, please use only regular ones\");\n }\n\n var finalRunEffect = env.finalizeRunEffect(runEffect);\n /**\n Tracks the current effect cancellation\n Each time the generator progresses. calling runEffect will set a new value\n on it. It allows propagating cancellation to child effects\n **/\n\n next.cancel = noop;\n /** Creates a main task to track the main flow */\n\n var mainTask = {\n meta: meta,\n cancel: cancelMain,\n status: RUNNING\n };\n /**\n Creates a new task descriptor for this generator.\n A task is the aggregation of it's mainTask and all it's forked tasks.\n **/\n\n var task = newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont);\n var executingContext = {\n task: task,\n digestEffect: digestEffect\n };\n /**\n cancellation of the main task. We'll simply resume the Generator with a TASK_CANCEL\n **/\n\n function cancelMain() {\n if (mainTask.status === RUNNING) {\n mainTask.status = CANCELLED;\n next(TASK_CANCEL);\n }\n }\n /**\n attaches cancellation logic to this task's continuation\n this will permit cancellation to propagate down the call chain\n **/\n\n\n if (cont) {\n cont.cancel = task.cancel;\n } // kicks up the generator\n\n\n next(); // then return the task descriptor to the caller\n\n return task;\n /**\n * This is the generator driver\n * It's a recursive async/continuation function which calls itself\n * until the generator terminates or throws\n * @param {internal commands(TASK_CANCEL | TERMINATE) | any} arg - value, generator will be resumed with.\n * @param {boolean} isErr - the flag shows if effect finished with an error\n *\n * receives either (command | effect result, false) or (any thrown thing, true)\n */\n\n function next(arg, isErr) {\n try {\n var result;\n\n if (isErr) {\n result = iterator$1.throw(arg); // user handled the error, we can clear bookkept values\n\n clear();\n } else if (shouldCancel(arg)) {\n /**\n getting TASK_CANCEL automatically cancels the main task\n We can get this value here\n - By cancelling the parent task manually\n - By joining a Cancelled task\n **/\n mainTask.status = CANCELLED;\n /**\n Cancels the current effect; this will propagate the cancellation down to any called tasks\n **/\n\n next.cancel();\n /**\n If this Generator has a `return` method then invokes it\n This will jump to the finally block\n **/\n\n result = func(iterator$1.return) ? iterator$1.return(TASK_CANCEL) : {\n done: true,\n value: TASK_CANCEL\n };\n } else if (shouldTerminate(arg)) {\n // We get TERMINATE flag, i.e. by taking from a channel that ended using `take` (and not `takem` used to trap End of channels)\n result = func(iterator$1.return) ? iterator$1.return() : {\n done: true\n };\n } else {\n result = iterator$1.next(arg);\n }\n\n if (!result.done) {\n digestEffect(result.value, parentEffectId, next);\n } else {\n /**\n This Generator has ended, terminate the main task and notify the fork queue\n **/\n if (mainTask.status !== CANCELLED) {\n mainTask.status = DONE;\n }\n\n mainTask.cont(result.value);\n }\n } catch (error) {\n if (mainTask.status === CANCELLED) {\n throw error;\n }\n\n mainTask.status = ABORTED;\n mainTask.cont(error, true);\n }\n }\n\n function runEffect(effect, effectId, currCb) {\n /**\n each effect runner must attach its own logic of cancellation to the provided callback\n it allows this generator to propagate cancellation downward.\n ATTENTION! effect runners must setup the cancel logic by setting cb.cancel = [cancelMethod]\n And the setup must occur before calling the callback\n This is a sort of inversion of control: called async functions are responsible\n of completing the flow by calling the provided continuation; while caller functions\n are responsible for aborting the current flow by calling the attached cancel function\n Library users can attach their own cancellation logic to promises by defining a\n promise[CANCEL] method in their returned promises\n ATTENTION! calling cancel must have no effect on an already completed or cancelled effect\n **/\n if (promise(effect)) {\n resolvePromise(effect, currCb);\n } else if (iterator(effect)) {\n // resolve iterator\n proc(env, effect, task.context, effectId, meta,\n /* isRoot */\n false, currCb);\n } else if (effect && effect[IO]) {\n var effectRunner = effectRunnerMap[effect.type];\n effectRunner(env, effect.payload, currCb, executingContext);\n } else {\n // anything else returned as is\n currCb(effect);\n }\n }\n\n function digestEffect(effect, parentEffectId, cb, label) {\n if (label === void 0) {\n label = '';\n }\n\n var effectId = nextSagaId();\n env.sagaMonitor && env.sagaMonitor.effectTriggered({\n effectId: effectId,\n parentEffectId: parentEffectId,\n label: label,\n effect: effect\n });\n /**\n completion callback and cancel callback are mutually exclusive\n We can't cancel an already completed effect\n And We can't complete an already cancelled effectId\n **/\n\n var effectSettled; // Completion callback passed to the appropriate effect runner\n\n function currCb(res, isErr) {\n if (effectSettled) {\n return;\n }\n\n effectSettled = true;\n cb.cancel = noop; // defensive measure\n\n if (env.sagaMonitor) {\n if (isErr) {\n env.sagaMonitor.effectRejected(effectId, res);\n } else {\n env.sagaMonitor.effectResolved(effectId, res);\n }\n }\n\n if (isErr) {\n setCrashedEffect(effect);\n }\n\n cb(res, isErr);\n } // tracks down the current cancel\n\n\n currCb.cancel = noop; // setup cancellation logic on the parent cb\n\n cb.cancel = function () {\n // prevents cancelling an already completed effect\n if (effectSettled) {\n return;\n }\n\n effectSettled = true;\n currCb.cancel(); // propagates cancel downward\n\n currCb.cancel = noop; // defensive measure\n\n env.sagaMonitor && env.sagaMonitor.effectCancelled(effectId);\n };\n\n finalRunEffect(effect, effectId, currCb);\n }\n}\n\nvar RUN_SAGA_SIGNATURE = 'runSaga(options, saga, ...args)';\nvar NON_GENERATOR_ERR = RUN_SAGA_SIGNATURE + \": saga argument must be a Generator function!\";\nfunction runSaga(_ref, saga) {\n var _ref$channel = _ref.channel,\n channel = _ref$channel === void 0 ? stdChannel() : _ref$channel,\n dispatch = _ref.dispatch,\n getState = _ref.getState,\n _ref$context = _ref.context,\n context = _ref$context === void 0 ? {} : _ref$context,\n sagaMonitor = _ref.sagaMonitor,\n effectMiddlewares = _ref.effectMiddlewares,\n _ref$onError = _ref.onError,\n onError = _ref$onError === void 0 ? logError : _ref$onError;\n\n if (process.env.NODE_ENV !== 'production') {\n check(saga, func, NON_GENERATOR_ERR);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var iterator$1 = saga.apply(void 0, args);\n\n if (process.env.NODE_ENV !== 'production') {\n check(iterator$1, iterator, NON_GENERATOR_ERR);\n }\n\n var effectId = nextSagaId();\n\n if (sagaMonitor) {\n // monitors are expected to have a certain interface, let's fill-in any missing ones\n sagaMonitor.rootSagaStarted = sagaMonitor.rootSagaStarted || noop;\n sagaMonitor.effectTriggered = sagaMonitor.effectTriggered || noop;\n sagaMonitor.effectResolved = sagaMonitor.effectResolved || noop;\n sagaMonitor.effectRejected = sagaMonitor.effectRejected || noop;\n sagaMonitor.effectCancelled = sagaMonitor.effectCancelled || noop;\n sagaMonitor.actionDispatched = sagaMonitor.actionDispatched || noop;\n sagaMonitor.rootSagaStarted({\n effectId: effectId,\n saga: saga,\n args: args\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (notUndef(dispatch)) {\n check(dispatch, func, 'dispatch must be a function');\n }\n\n if (notUndef(getState)) {\n check(getState, func, 'getState must be a function');\n }\n\n if (notUndef(effectMiddlewares)) {\n var MIDDLEWARE_TYPE_ERROR = 'effectMiddlewares must be an array of functions';\n check(effectMiddlewares, array$1, MIDDLEWARE_TYPE_ERROR);\n effectMiddlewares.forEach(function (effectMiddleware) {\n return check(effectMiddleware, func, MIDDLEWARE_TYPE_ERROR);\n });\n }\n\n check(onError, func, 'onError passed to the redux-saga is not a function!');\n }\n\n var finalizeRunEffect;\n\n if (effectMiddlewares) {\n var middleware = compose.apply(void 0, effectMiddlewares);\n\n finalizeRunEffect = function finalizeRunEffect(runEffect) {\n return function (effect, effectId, currCb) {\n var plainRunEffect = function plainRunEffect(eff) {\n return runEffect(eff, effectId, currCb);\n };\n\n return middleware(plainRunEffect)(effect);\n };\n };\n } else {\n finalizeRunEffect = identity;\n }\n\n var env = {\n channel: channel,\n dispatch: wrapSagaDispatch(dispatch),\n getState: getState,\n sagaMonitor: sagaMonitor,\n onError: onError,\n finalizeRunEffect: finalizeRunEffect\n };\n return immediately(function () {\n var task = proc(env, iterator$1, context, effectId, getMetaInfo(saga),\n /* isRoot */\n true, undefined);\n\n if (sagaMonitor) {\n sagaMonitor.effectResolved(effectId, task);\n }\n\n return task;\n });\n}\n\nfunction sagaMiddlewareFactory(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$context = _ref.context,\n context = _ref$context === void 0 ? {} : _ref$context,\n _ref$channel = _ref.channel,\n channel = _ref$channel === void 0 ? stdChannel() : _ref$channel,\n sagaMonitor = _ref.sagaMonitor,\n options = _objectWithoutPropertiesLoose(_ref, [\"context\", \"channel\", \"sagaMonitor\"]);\n\n var boundRunSaga;\n\n if (process.env.NODE_ENV !== 'production') {\n check(channel, channel$1, 'options.channel passed to the Saga middleware is not a channel');\n }\n\n function sagaMiddleware(_ref2) {\n var getState = _ref2.getState,\n dispatch = _ref2.dispatch;\n boundRunSaga = runSaga.bind(null, _extends({}, options, {\n context: context,\n channel: channel,\n dispatch: dispatch,\n getState: getState,\n sagaMonitor: sagaMonitor\n }));\n return function (next) {\n return function (action) {\n if (sagaMonitor && sagaMonitor.actionDispatched) {\n sagaMonitor.actionDispatched(action);\n }\n\n var result = next(action); // hit reducers\n\n channel.put(action);\n return result;\n };\n };\n }\n\n sagaMiddleware.run = function () {\n if (process.env.NODE_ENV !== 'production' && !boundRunSaga) {\n throw new Error('Before running a Saga, you must mount the Saga middleware on the Store using applyMiddleware');\n }\n\n return boundRunSaga.apply(void 0, arguments);\n };\n\n sagaMiddleware.setContext = function (props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning('sagaMiddleware', props));\n }\n\n assignWithSymbols(context, props);\n };\n\n return sagaMiddleware;\n}\n\nexport default sagaMiddlewareFactory;\nexport { END, channel, eventChannel, isEnd, multicastChannel, runSaga, stdChannel };\n", "import createSagaMiddleware__default from '@redux-saga/core';\nexport * from '@redux-saga/core';\n\n\n\nexport default createSagaMiddleware__default;\n", "// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}", "export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;", "import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;", "import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;", "import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || stringify(b);\n}\n\nexport default v1;", "import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;", "import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return stringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}", "/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;", "import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;", "import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;", "// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;", "import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;", "export default '00000000-0000-0000-0000-000000000000';", "import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;", "export { default as v1 } from './v1.js';\nexport { default as v3 } from './v3.js';\nexport { default as v4 } from './v4.js';\nexport { default as v5 } from './v5.js';\nexport { default as NIL } from './nil.js';\nexport { default as version } from './version.js';\nexport { default as validate } from './validate.js';\nexport { default as stringify } from './stringify.js';\nexport { default as parse } from './parse.js';", "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 {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tES5ArrayState,\n\tProxyArrayState,\n\tMapState,\n\tES5ObjectState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tProxyType,\n\tArchtype,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ProxyType.ProxyObject:\n\t\t\tcase ProxyType.ES5Object:\n\t\t\tcase ProxyType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ProxyType.ES5Array:\n\t\t\tcase ProxyType.ProxyArray:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ProxyType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ES5ArrayState | ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tif (base_.length < copy_.length) {\n\t\t\tinversePatches.push({\n\t\t\t\top: REPLACE,\n\t\t\t\tpath: basePath.concat([\"length\"]),\n\t\t\t\tvalue: base_.length\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ES5ObjectState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_(draft: T, patches: Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === Archtype.Object || parentType === Archtype.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(24)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\") die(24)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(15, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\tdie(16)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(17, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(Object.getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n", "// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\titeratorSymbol,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tProxyType,\n\tdie,\n\teach\n} from \"../internal\"\n\nexport function enableMapSet() {\n\t/* istanbul ignore next */\n\tvar extendStatics = function(d: any, b: any): any {\n\t\textendStatics =\n\t\t\tObject.setPrototypeOf ||\n\t\t\t({__proto__: []} instanceof Array &&\n\t\t\t\tfunction(d, b) {\n\t\t\t\t\td.__proto__ = b\n\t\t\t\t}) ||\n\t\t\tfunction(d, b) {\n\t\t\t\tfor (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]\n\t\t\t}\n\t\treturn extendStatics(d, b)\n\t}\n\n\t// Ugly hack to resolve #502 and inherit built in Map / Set\n\tfunction __extends(d: any, b: any): any {\n\t\textendStatics(d, b)\n\t\tfunction __(this: any): any {\n\t\t\tthis.constructor = d\n\t\t}\n\t\td.prototype =\n\t\t\t// @ts-ignore\n\t\t\t((__.prototype = b.prototype), new __())\n\t}\n\n\tconst DraftMap = (function(_super) {\n\t\t__extends(DraftMap, _super)\n\t\t// Create class manually, cause #502\n\t\tfunction DraftMap(this: any, target: AnyMap, parent?: ImmerState): any {\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ProxyType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false\n\t\t\t} as MapState\n\t\t\treturn this\n\t\t}\n\t\tconst p = DraftMap.prototype\n\n\t\tObject.defineProperty(p, \"size\", {\n\t\t\tget: function() {\n\t\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t\t}\n\t\t\t// enumerable: false,\n\t\t\t// configurable: true\n\t\t})\n\n\t\tp.has = function(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tp.set = function(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tp.delete = function(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tp.clear = function() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tp.forEach = function(\n\t\t\tcb: (value: any, key: any, self: any) => void,\n\t\t\tthisArg?: any\n\t\t) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tp.get = function(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(state.scope_.immer_, value, state)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tp.keys = function(): IterableIterator {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tp.values = function(): IterableIterator {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[iteratorSymbol]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tp.entries = function(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[iteratorSymbol]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tp[iteratorSymbol] = function() {\n\t\t\treturn this.entries()\n\t\t}\n\n\t\treturn DraftMap\n\t})(Map)\n\n\tfunction proxyMap_(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftMap(target, parent)\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tconst DraftSet = (function(_super) {\n\t\t__extends(DraftSet, _super)\n\t\t// Create class manually, cause #502\n\t\tfunction DraftSet(this: any, target: AnySet, parent?: ImmerState) {\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ProxyType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false\n\t\t\t} as SetState\n\t\t\treturn this\n\t\t}\n\t\tconst p = DraftSet.prototype\n\n\t\tObject.defineProperty(p, \"size\", {\n\t\t\tget: function() {\n\t\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t\t}\n\t\t\t// enumerable: true,\n\t\t})\n\n\t\tp.has = function(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tp.add = function(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tp.delete = function(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tp.clear = function() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tp.values = function(): IterableIterator {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tp.entries = function entries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tp.keys = function(): IterableIterator {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tp[iteratorSymbol] = function() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tp.forEach = function forEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\n\t\treturn DraftSet\n\t})(Set)\n\n\tfunction proxySet_(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftSet(target, parent)\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(state.scope_.immer_, value, state)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\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(\"MapSet\", {proxyMap_, proxySet_})\n}\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 {\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", "import {enableES5} from \"./es5\"\nimport {enableMapSet} from \"./mapset\"\nimport {enablePatches} from \"./patches\"\n\nexport function enableAllPlugins() {\n\tenableES5()\n\tenableMapSet()\n\tenablePatches()\n}\n", "\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./immer.cjs.production.min.js')\n} else {\n module.exports = require('./immer.cjs.development.js')\n}\n", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createCacheKeyComparator = createCacheKeyComparator;\nexports.defaultEqualityCheck = void 0;\nexports.defaultMemoize = defaultMemoize;\n// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nvar defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\n\nexports.defaultEqualityCheck = defaultEqualityCheck;\n\nfunction createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nfunction defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createSelector = void 0;\nexports.createSelectorCreator = createSelectorCreator;\nexports.createStructuredSelector = void 0;\nObject.defineProperty(exports, \"defaultEqualityCheck\", {\n enumerable: true,\n get: function get() {\n return _defaultMemoize.defaultEqualityCheck;\n }\n});\nObject.defineProperty(exports, \"defaultMemoize\", {\n enumerable: true,\n get: function get() {\n return _defaultMemoize.defaultMemoize;\n }\n});\n\nvar _defaultMemoize = require(\"./defaultMemoize\");\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nfunction createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function dependenciesChecker() {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\n\nvar createSelector = /* #__PURE__ */createSelectorCreator(_defaultMemoize.defaultMemoize);\nexports.createSelector = createSelector;\n\n// Manual definition of state and output arguments\nvar createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};\n\nexports.createStructuredSelector = createStructuredSelector;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\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;\nvar _default = thunk;\nexports.default = _default;", "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", "import { current, isDraft } from 'immer'\r\nimport { createSelector } from 'reselect'\r\n\r\n/**\r\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\r\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\r\n * the selector will act on the current draft value, instead of returning a cached value\r\n * that might be possibly outdated if the draft has been modified since.\r\n * @public\r\n */\r\nexport const createDraftSafeSelector: typeof createSelector = (\r\n ...args: unknown[]\r\n) => {\r\n const selector = (createSelector as any)(...args)\r\n const wrappedSelector = (value: unknown, ...rest: unknown[]) =>\r\n selector(isDraft(value) ? current(value) : value, ...rest)\r\n return wrappedSelector 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, 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 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 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 } from 'redux'\r\nimport { getTimeMeasureUtils } from './utils'\r\n\r\ntype EntryProcessor = (key: string, value: any) => any\r\n\r\nconst isProduction: boolean = process.env.NODE_ENV === 'production'\r\nconst prefix: string = 'Invariant failed'\r\n\r\n// Throw an error if the condition fails\r\n// Strip out error messages for production\r\n// > Not providing an inline default argument for message as the result is smaller\r\nfunction invariant(condition: any, message?: string) {\r\n if (condition) {\r\n return\r\n }\r\n // Condition not passed\r\n\r\n // In production we strip the message but still throw\r\n if (isProduction) {\r\n throw new Error(prefix)\r\n }\r\n\r\n // When not in production we allow the message to pass through\r\n // *This block will be removed in production builds*\r\n throw new Error(`${prefix}: ${message || ''}`)\r\n}\r\n\r\nfunction stringify(\r\n obj: any,\r\n serializer?: EntryProcessor,\r\n indent?: string | number,\r\n decycler?: EntryProcessor\r\n): string {\r\n return JSON.stringify(obj, getSerialize(serializer, decycler), indent)\r\n}\r\n\r\nfunction getSerialize(\r\n serializer?: EntryProcessor,\r\n decycler?: EntryProcessor\r\n): EntryProcessor {\r\n let stack: any[] = [],\r\n keys: any[] = []\r\n\r\n if (!decycler)\r\n decycler = function (_: string, value: any) {\r\n if (stack[0] === value) return '[Circular ~]'\r\n return (\r\n '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']'\r\n )\r\n }\r\n\r\n return function (this: any, key: string, value: any) {\r\n if (stack.length > 0) {\r\n var thisPos = stack.indexOf(this)\r\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)\r\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)\r\n if (~stack.indexOf(value)) value = decycler!.call(this, key, value)\r\n } else stack.push(value)\r\n\r\n return serializer == null ? value : serializer.call(this, key, value)\r\n }\r\n}\r\n\r\n/**\r\n * The default `isImmutable` function.\r\n *\r\n * @public\r\n */\r\nexport function isImmutableDefault(value: unknown): boolean {\r\n return typeof value !== 'object' || value == null || Object.isFrozen(value)\r\n}\r\n\r\nexport function trackForMutations(\r\n isImmutable: IsImmutableFunc,\r\n ignorePaths: IgnorePaths | undefined,\r\n obj: any\r\n) {\r\n const trackedProperties = trackProperties(isImmutable, ignorePaths, obj)\r\n return {\r\n detectMutations() {\r\n return detectMutations(isImmutable, ignorePaths, trackedProperties, obj)\r\n },\r\n }\r\n}\r\n\r\ninterface TrackedProperty {\r\n value: any\r\n children: Record\r\n}\r\n\r\nfunction trackProperties(\r\n isImmutable: IsImmutableFunc,\r\n ignorePaths: IgnorePaths = [],\r\n obj: Record,\r\n path: string = ''\r\n) {\r\n const tracked: Partial = { value: obj }\r\n\r\n if (!isImmutable(obj)) {\r\n tracked.children = {}\r\n\r\n for (const key in obj) {\r\n const childPath = path ? path + '.' + key : key\r\n if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) {\r\n continue\r\n }\r\n\r\n tracked.children[key] = trackProperties(\r\n isImmutable,\r\n ignorePaths,\r\n obj[key],\r\n childPath\r\n )\r\n }\r\n }\r\n return tracked as TrackedProperty\r\n}\r\n\r\ntype IgnorePaths = readonly (string | RegExp)[]\r\n\r\nfunction detectMutations(\r\n isImmutable: IsImmutableFunc,\r\n ignoredPaths: IgnorePaths = [],\r\n trackedProperty: TrackedProperty,\r\n obj: any,\r\n sameParentRef: boolean = false,\r\n path: string = ''\r\n): { wasMutated: boolean; path?: string } {\r\n const prevObj = trackedProperty ? trackedProperty.value : undefined\r\n\r\n const sameRef = prevObj === obj\r\n\r\n if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\r\n return { wasMutated: true, path }\r\n }\r\n\r\n if (isImmutable(prevObj) || isImmutable(obj)) {\r\n return { wasMutated: false }\r\n }\r\n\r\n // Gather all keys from prev (tracked) and after objs\r\n const keysToDetect: Record = {}\r\n for (let key in trackedProperty.children) {\r\n keysToDetect[key] = true\r\n }\r\n for (let key in obj) {\r\n keysToDetect[key] = true\r\n }\r\n\r\n const hasIgnoredPaths = ignoredPaths.length > 0\r\n\r\n for (let key in keysToDetect) {\r\n const nestedPath = path ? path + '.' + key : key\r\n\r\n if (hasIgnoredPaths) {\r\n const hasMatches = ignoredPaths.some((ignored) => {\r\n if (ignored instanceof RegExp) {\r\n return ignored.test(nestedPath)\r\n }\r\n return nestedPath === ignored\r\n })\r\n if (hasMatches) {\r\n continue\r\n }\r\n }\r\n\r\n const result = detectMutations(\r\n isImmutable,\r\n ignoredPaths,\r\n trackedProperty.children[key],\r\n obj[key],\r\n sameRef,\r\n nestedPath\r\n )\r\n\r\n if (result.wasMutated) {\r\n return result\r\n }\r\n }\r\n return { wasMutated: false }\r\n}\r\n\r\ntype IsImmutableFunc = (value: any) => boolean\r\n\r\n/**\r\n * Options for `createImmutableStateInvariantMiddleware()`.\r\n *\r\n * @public\r\n */\r\nexport interface ImmutableStateInvariantMiddlewareOptions {\r\n /**\r\n Callback function to check if a value is considered to be immutable.\r\n This function is applied recursively to every value contained in the state.\r\n The default implementation will return true for primitive types \r\n (like numbers, strings, booleans, null and undefined).\r\n */\r\n isImmutable?: IsImmutableFunc\r\n /** \r\n An array of dot-separated path strings that match named nodes from \r\n the root state to ignore when checking for immutability.\r\n Defaults to undefined\r\n */\r\n ignoredPaths?: IgnorePaths\r\n /** Print a warning if checks take longer than N ms. Default: 32ms */\r\n warnAfter?: number\r\n // @deprecated. Use ignoredPaths\r\n ignore?: string[]\r\n}\r\n\r\n/**\r\n * Creates a middleware that checks whether any state was mutated in between\r\n * dispatches or during a dispatch. If any mutations are detected, an error is\r\n * thrown.\r\n *\r\n * @param options Middleware options.\r\n *\r\n * @public\r\n */\r\nexport function createImmutableStateInvariantMiddleware(\r\n options: ImmutableStateInvariantMiddlewareOptions = {}\r\n): Middleware {\r\n if (process.env.NODE_ENV === 'production') {\r\n return () => (next) => (action) => next(action)\r\n }\r\n\r\n let {\r\n isImmutable = isImmutableDefault,\r\n ignoredPaths,\r\n warnAfter = 32,\r\n ignore,\r\n } = options\r\n\r\n // Alias ignore->ignoredPaths, but prefer ignoredPaths if present\r\n ignoredPaths = ignoredPaths || ignore\r\n\r\n const track = trackForMutations.bind(null, isImmutable, ignoredPaths)\r\n\r\n return ({ getState }) => {\r\n let state = getState()\r\n let tracker = track(state)\r\n\r\n let result\r\n return (next) => (action) => {\r\n const measureUtils = getTimeMeasureUtils(\r\n warnAfter,\r\n 'ImmutableStateInvariantMiddleware'\r\n )\r\n\r\n measureUtils.measureTime(() => {\r\n state = getState()\r\n\r\n result = tracker.detectMutations()\r\n // Track before potentially not meeting the invariant\r\n tracker = track(state)\r\n\r\n invariant(\r\n !result.wasMutated,\r\n `A state mutation was detected between dispatches, in the path '${\r\n result.path || ''\r\n }'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`\r\n )\r\n })\r\n\r\n const dispatchedAction = next(action)\r\n\r\n measureUtils.measureTime(() => {\r\n state = getState()\r\n\r\n result = tracker.detectMutations()\r\n // Track before potentially not meeting the invariant\r\n tracker = track(state)\r\n\r\n result.wasMutated &&\r\n invariant(\r\n !result.wasMutated,\r\n `A state mutation was detected inside a dispatch, in the path: ${\r\n result.path || ''\r\n }. Take a look at the reducer(s) handling the action ${stringify(\r\n action\r\n )}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`\r\n )\r\n })\r\n\r\n measureUtils.warnIfExceeded()\r\n\r\n return dispatchedAction\r\n }\r\n }\r\n}\r\n", "import isPlainObject from './isPlainObject'\r\nimport type { Middleware } from 'redux'\r\nimport { getTimeMeasureUtils } from './utils'\r\n\r\n/**\r\n * Returns true if the passed value is \"plain\", i.e. a value that is either\r\n * directly JSON-serializable (boolean, number, string, array, plain object)\r\n * or `undefined`.\r\n *\r\n * @param val The value to check.\r\n *\r\n * @public\r\n */\r\nexport function isPlain(val: any) {\r\n const type = typeof val\r\n return (\r\n val == null ||\r\n type === 'string' ||\r\n type === 'boolean' ||\r\n type === 'number' ||\r\n Array.isArray(val) ||\r\n isPlainObject(val)\r\n )\r\n}\r\n\r\ninterface NonSerializableValue {\r\n keyPath: string\r\n value: unknown\r\n}\r\n\r\ntype IgnorePaths = readonly (string | RegExp)[]\r\n\r\n/**\r\n * @public\r\n */\r\nexport function findNonSerializableValue(\r\n value: unknown,\r\n path: string = '',\r\n isSerializable: (value: unknown) => boolean = isPlain,\r\n getEntries?: (value: unknown) => [string, any][],\r\n ignoredPaths: IgnorePaths = [],\r\n cache?: WeakSet\r\n): NonSerializableValue | false {\r\n let foundNestedSerializable: NonSerializableValue | false\r\n\r\n if (!isSerializable(value)) {\r\n return {\r\n keyPath: path || '',\r\n value: value,\r\n }\r\n }\r\n\r\n if (typeof value !== 'object' || value === null) {\r\n return false\r\n }\r\n\r\n if (cache?.has(value)) return false\r\n\r\n const entries = getEntries != null ? getEntries(value) : Object.entries(value)\r\n\r\n const hasIgnoredPaths = ignoredPaths.length > 0\r\n\r\n for (const [key, nestedValue] of entries) {\r\n const nestedPath = path ? path + '.' + key : key\r\n\r\n if (hasIgnoredPaths) {\r\n const hasMatches = ignoredPaths.some((ignored) => {\r\n if (ignored instanceof RegExp) {\r\n return ignored.test(nestedPath)\r\n }\r\n return nestedPath === ignored\r\n })\r\n if (hasMatches) {\r\n continue\r\n }\r\n }\r\n\r\n if (!isSerializable(nestedValue)) {\r\n return {\r\n keyPath: nestedPath,\r\n value: nestedValue,\r\n }\r\n }\r\n\r\n if (typeof nestedValue === 'object') {\r\n foundNestedSerializable = findNonSerializableValue(\r\n nestedValue,\r\n nestedPath,\r\n isSerializable,\r\n getEntries,\r\n ignoredPaths,\r\n cache\r\n )\r\n\r\n if (foundNestedSerializable) {\r\n return foundNestedSerializable\r\n }\r\n }\r\n }\r\n\r\n if (cache && isNestedFrozen(value)) cache.add(value)\r\n\r\n return false\r\n}\r\n\r\nexport function isNestedFrozen(value: object) {\r\n if (!Object.isFrozen(value)) return false\r\n\r\n for (const nestedValue of Object.values(value)) {\r\n if (typeof nestedValue !== 'object' || nestedValue === null) continue\r\n\r\n if (!isNestedFrozen(nestedValue)) return false\r\n }\r\n\r\n return true\r\n}\r\n\r\n/**\r\n * Options for `createSerializableStateInvariantMiddleware()`.\r\n *\r\n * @public\r\n */\r\nexport interface SerializableStateInvariantMiddlewareOptions {\r\n /**\r\n * The function to check if a value is considered serializable. This\r\n * function is applied recursively to every value contained in the\r\n * state. Defaults to `isPlain()`.\r\n */\r\n isSerializable?: (value: any) => boolean\r\n /**\r\n * The function that will be used to retrieve entries from each\r\n * value. If unspecified, `Object.entries` will be used. Defaults\r\n * to `undefined`.\r\n */\r\n getEntries?: (value: any) => [string, any][]\r\n\r\n /**\r\n * An array of action types to ignore when checking for serializability.\r\n * Defaults to []\r\n */\r\n ignoredActions?: string[]\r\n\r\n /**\r\n * An array of dot-separated path strings or regular expressions to ignore\r\n * when checking for serializability, Defaults to\r\n * ['meta.arg', 'meta.baseQueryMeta']\r\n */\r\n ignoredActionPaths?: (string | RegExp)[]\r\n\r\n /**\r\n * An array of dot-separated path strings or regular expressions to ignore\r\n * when checking for serializability, Defaults to []\r\n */\r\n ignoredPaths?: (string | RegExp)[]\r\n /**\r\n * Execution time warning threshold. If the middleware takes longer\r\n * than `warnAfter` ms, a warning will be displayed in the console.\r\n * Defaults to 32ms.\r\n */\r\n warnAfter?: number\r\n\r\n /**\r\n * Opt out of checking state. When set to `true`, other state-related params will be ignored.\r\n */\r\n ignoreState?: boolean\r\n\r\n /**\r\n * Opt out of checking actions. When set to `true`, other action-related params will be ignored.\r\n */\r\n ignoreActions?: boolean\r\n\r\n /**\r\n * Opt out of caching the results. The cache uses a WeakSet and speeds up repeated checking processes.\r\n * The cache is automatically disabled if no browser support for WeakSet is present.\r\n */\r\n disableCache?: boolean\r\n}\r\n\r\n/**\r\n * Creates a middleware that, after every state change, checks if the new\r\n * state is serializable. If a non-serializable value is found within the\r\n * state, an error is printed to the console.\r\n *\r\n * @param options Middleware options.\r\n *\r\n * @public\r\n */\r\nexport function createSerializableStateInvariantMiddleware(\r\n options: SerializableStateInvariantMiddlewareOptions = {}\r\n): Middleware {\r\n if (process.env.NODE_ENV === 'production') {\r\n return () => (next) => (action) => next(action)\r\n }\r\n const {\r\n isSerializable = isPlain,\r\n getEntries,\r\n ignoredActions = [],\r\n ignoredActionPaths = ['meta.arg', 'meta.baseQueryMeta'],\r\n ignoredPaths = [],\r\n warnAfter = 32,\r\n ignoreState = false,\r\n ignoreActions = false,\r\n disableCache = false,\r\n } = options\r\n\r\n const cache: WeakSet | undefined =\r\n !disableCache && WeakSet ? new WeakSet() : undefined\r\n\r\n return (storeAPI) => (next) => (action) => {\r\n const result = next(action)\r\n\r\n const measureUtils = getTimeMeasureUtils(\r\n warnAfter,\r\n 'SerializableStateInvariantMiddleware'\r\n )\r\n\r\n if (\r\n !ignoreActions &&\r\n !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)\r\n ) {\r\n measureUtils.measureTime(() => {\r\n const foundActionNonSerializableValue = findNonSerializableValue(\r\n action,\r\n '',\r\n isSerializable,\r\n getEntries,\r\n ignoredActionPaths,\r\n cache\r\n )\r\n\r\n if (foundActionNonSerializableValue) {\r\n const { keyPath, value } = foundActionNonSerializableValue\r\n\r\n console.error(\r\n `A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`,\r\n value,\r\n '\\nTake a look at the logic that dispatched this action: ',\r\n action,\r\n '\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)',\r\n '\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)'\r\n )\r\n }\r\n })\r\n }\r\n\r\n if (!ignoreState) {\r\n measureUtils.measureTime(() => {\r\n const state = storeAPI.getState()\r\n\r\n const foundStateNonSerializableValue = findNonSerializableValue(\r\n state,\r\n '',\r\n isSerializable,\r\n getEntries,\r\n ignoredPaths,\r\n cache\r\n )\r\n\r\n if (foundStateNonSerializableValue) {\r\n const { keyPath, value } = foundStateNonSerializableValue\r\n\r\n console.error(\r\n `A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`,\r\n value,\r\n `\r\nTake a look at the reducer(s) handling this action type: ${action.type}.\r\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`\r\n )\r\n }\r\n })\r\n\r\n measureUtils.warnIfExceeded()\r\n }\r\n\r\n return result\r\n }\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

(\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 { 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", "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

= 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 createNextState, { isDraft } from 'immer'\r\nimport type { EntityState, PreventAny } from './models'\r\nimport type { PayloadAction } from '../createAction'\r\nimport { isFSA } from '../createAction'\r\nimport { IsAny } from '../tsHelpers'\r\n\r\nexport function createSingleArgumentStateOperator(\r\n mutator: (state: EntityState) => void\r\n) {\r\n const operator = createStateOperator((_: undefined, state: EntityState) =>\r\n mutator(state)\r\n )\r\n\r\n return function operation>(\r\n state: PreventAny\r\n ): S {\r\n return operator(state as S, undefined)\r\n }\r\n}\r\n\r\nexport function createStateOperator(\r\n mutator: (arg: R, state: EntityState) => void\r\n) {\r\n return function operation>(\r\n state: S,\r\n arg: R | PayloadAction\r\n ): S {\r\n function isPayloadActionArgument(\r\n arg: R | PayloadAction\r\n ): arg is PayloadAction {\r\n return isFSA(arg)\r\n }\r\n\r\n const runMutator = (draft: EntityState) => {\r\n if (isPayloadActionArgument(arg)) {\r\n mutator(arg.payload, draft)\r\n } else {\r\n mutator(arg, draft)\r\n }\r\n }\r\n\r\n if (isDraft(state)) {\r\n // we must already be inside a `createNextState` call, likely because\r\n // this is being wrapped in `createReducer` or `createSlice`.\r\n // It's safe to just pass the draft to the mutator.\r\n runMutator(state)\r\n\r\n // since it's a draft, we'll just return it\r\n return state\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(state, runMutator)\r\n }\r\n }\r\n}\r\n", "import type { EntityState, IdSelector, Update, EntityId } from './models'\r\n\r\nexport function selectIdValue(entity: T, selectId: IdSelector) {\r\n const key = selectId(entity)\r\n\r\n if (process.env.NODE_ENV !== 'production' && key === undefined) {\r\n console.warn(\r\n 'The entity passed to the `selectId` implementation returned undefined.',\r\n 'You should probably provide your own `selectId` implementation.',\r\n 'The entity that was passed:',\r\n entity,\r\n 'The `selectId` implementation:',\r\n selectId.toString()\r\n )\r\n }\r\n\r\n return key\r\n}\r\n\r\nexport function ensureEntitiesArray(\r\n entities: readonly T[] | Record\r\n): readonly T[] {\r\n if (!Array.isArray(entities)) {\r\n entities = Object.values(entities)\r\n }\r\n\r\n return entities\r\n}\r\n\r\nexport function splitAddedUpdatedEntities(\r\n newEntities: readonly T[] | Record,\r\n selectId: IdSelector,\r\n state: EntityState\r\n): [T[], Update[]] {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n const added: T[] = []\r\n const updated: Update[] = []\r\n\r\n for (const entity of newEntities) {\r\n const id = selectIdValue(entity, selectId)\r\n if (id in state.entities) {\r\n updated.push({ id, changes: entity })\r\n } else {\r\n added.push(entity)\r\n }\r\n }\r\n return [added, updated]\r\n}\r\n", "import type {\r\n EntityState,\r\n EntityStateAdapter,\r\n IdSelector,\r\n Update,\r\n EntityId,\r\n} from './models'\r\nimport {\r\n createStateOperator,\r\n createSingleArgumentStateOperator,\r\n} from './state_adapter'\r\nimport {\r\n selectIdValue,\r\n ensureEntitiesArray,\r\n splitAddedUpdatedEntities,\r\n} from './utils'\r\n\r\nexport function createUnsortedStateAdapter(\r\n selectId: IdSelector\r\n): EntityStateAdapter {\r\n type R = EntityState\r\n\r\n function addOneMutably(entity: T, state: R): void {\r\n const key = selectIdValue(entity, selectId)\r\n\r\n if (key in state.entities) {\r\n return\r\n }\r\n\r\n state.ids.push(key)\r\n state.entities[key] = entity\r\n }\r\n\r\n function addManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n for (const entity of newEntities) {\r\n addOneMutably(entity, state)\r\n }\r\n }\r\n\r\n function setOneMutably(entity: T, state: R): void {\r\n const key = selectIdValue(entity, selectId)\r\n if (!(key in state.entities)) {\r\n state.ids.push(key)\r\n }\r\n state.entities[key] = entity\r\n }\r\n\r\n function setManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n for (const entity of newEntities) {\r\n setOneMutably(entity, state)\r\n }\r\n }\r\n\r\n function setAllMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n state.ids = []\r\n state.entities = {}\r\n\r\n addManyMutably(newEntities, state)\r\n }\r\n\r\n function removeOneMutably(key: EntityId, state: R): void {\r\n return removeManyMutably([key], state)\r\n }\r\n\r\n function removeManyMutably(keys: readonly EntityId[], state: R): void {\r\n let didMutate = false\r\n\r\n keys.forEach((key) => {\r\n if (key in state.entities) {\r\n delete state.entities[key]\r\n didMutate = true\r\n }\r\n })\r\n\r\n if (didMutate) {\r\n state.ids = state.ids.filter((id) => id in state.entities)\r\n }\r\n }\r\n\r\n function removeAllMutably(state: R): void {\r\n Object.assign(state, {\r\n ids: [],\r\n entities: {},\r\n })\r\n }\r\n\r\n function takeNewKey(\r\n keys: { [id: string]: EntityId },\r\n update: Update,\r\n state: R\r\n ): boolean {\r\n const original = state.entities[update.id]\r\n const updated: T = Object.assign({}, original, update.changes)\r\n const newKey = selectIdValue(updated, selectId)\r\n const hasNewKey = newKey !== update.id\r\n\r\n if (hasNewKey) {\r\n keys[update.id] = newKey\r\n delete state.entities[update.id]\r\n }\r\n\r\n state.entities[newKey] = updated\r\n\r\n return hasNewKey\r\n }\r\n\r\n function updateOneMutably(update: Update, state: R): void {\r\n return updateManyMutably([update], state)\r\n }\r\n\r\n function updateManyMutably(\r\n updates: ReadonlyArray>,\r\n state: R\r\n ): void {\r\n const newKeys: { [id: string]: EntityId } = {}\r\n\r\n const updatesPerEntity: { [id: string]: Update } = {}\r\n\r\n updates.forEach((update) => {\r\n // Only apply updates to entities that currently exist\r\n if (update.id in state.entities) {\r\n // If there are multiple updates to one entity, merge them together\r\n updatesPerEntity[update.id] = {\r\n id: update.id,\r\n // Spreads ignore falsy values, so this works even if there isn't\r\n // an existing update already at this key\r\n changes: {\r\n ...(updatesPerEntity[update.id]\r\n ? updatesPerEntity[update.id].changes\r\n : null),\r\n ...update.changes,\r\n },\r\n }\r\n }\r\n })\r\n\r\n updates = Object.values(updatesPerEntity)\r\n\r\n const didMutateEntities = updates.length > 0\r\n\r\n if (didMutateEntities) {\r\n const didMutateIds =\r\n updates.filter((update) => takeNewKey(newKeys, update, state)).length >\r\n 0\r\n\r\n if (didMutateIds) {\r\n state.ids = Object.keys(state.entities)\r\n }\r\n }\r\n }\r\n\r\n function upsertOneMutably(entity: T, state: R): void {\r\n return upsertManyMutably([entity], state)\r\n }\r\n\r\n function upsertManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n const [added, updated] = splitAddedUpdatedEntities(\r\n newEntities,\r\n selectId,\r\n state\r\n )\r\n\r\n updateManyMutably(updated, state)\r\n addManyMutably(added, state)\r\n }\r\n\r\n return {\r\n removeAll: createSingleArgumentStateOperator(removeAllMutably),\r\n addOne: createStateOperator(addOneMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n upsertMany: createStateOperator(upsertManyMutably),\r\n removeOne: createStateOperator(removeOneMutably),\r\n removeMany: createStateOperator(removeManyMutably),\r\n }\r\n}\r\n", "import type {\r\n EntityDefinition,\r\n Comparer,\r\n IdSelector,\r\n EntityAdapter,\r\n} from './models'\r\nimport { createInitialStateFactory } from './entity_state'\r\nimport { createSelectorsFactory } from './state_selectors'\r\nimport { createSortedStateAdapter } from './sorted_state_adapter'\r\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter'\r\n\r\n/**\r\n *\r\n * @param options\r\n *\r\n * @public\r\n */\r\nexport function createEntityAdapter(\r\n options: {\r\n selectId?: IdSelector\r\n sortComparer?: false | Comparer\r\n } = {}\r\n): EntityAdapter {\r\n const { selectId, sortComparer }: EntityDefinition = {\r\n sortComparer: false,\r\n selectId: (instance: any) => instance.id,\r\n ...options,\r\n }\r\n\r\n const stateFactory = createInitialStateFactory()\r\n const selectorsFactory = createSelectorsFactory()\r\n const stateAdapter = sortComparer\r\n ? createSortedStateAdapter(selectId, sortComparer)\r\n : createUnsortedStateAdapter(selectId)\r\n\r\n return {\r\n selectId,\r\n sortComparer,\r\n ...stateFactory,\r\n ...selectorsFactory,\r\n ...stateAdapter,\r\n }\r\n}\r\n", "import type { EntityState } from './models'\r\n\r\nexport function getInitialEntityState(): EntityState {\r\n return {\r\n ids: [],\r\n entities: {},\r\n }\r\n}\r\n\r\nexport function createInitialStateFactory() {\r\n function getInitialState(): EntityState\r\n function getInitialState(\r\n additionalState: S\r\n ): EntityState & S\r\n function getInitialState(additionalState: any = {}): any {\r\n return Object.assign(getInitialEntityState(), additionalState)\r\n }\r\n\r\n return { getInitialState }\r\n}\r\n", "import type { Selector } from 'reselect'\r\nimport { createDraftSafeSelector } from '../createDraftSafeSelector'\r\nimport type {\r\n EntityState,\r\n EntitySelectors,\r\n Dictionary,\r\n EntityId,\r\n} from './models'\r\n\r\nexport function createSelectorsFactory() {\r\n function getSelectors(): EntitySelectors>\r\n function getSelectors(\r\n selectState: (state: V) => EntityState\r\n ): EntitySelectors\r\n function getSelectors(\r\n selectState?: (state: V) => EntityState\r\n ): EntitySelectors {\r\n const selectIds = (state: EntityState) => state.ids\r\n\r\n const selectEntities = (state: EntityState) => state.entities\r\n\r\n const selectAll = createDraftSafeSelector(\r\n selectIds,\r\n selectEntities,\r\n (ids, entities): T[] => ids.map((id) => entities[id]!)\r\n )\r\n\r\n const selectId = (_: unknown, id: EntityId) => id\r\n\r\n const selectById = (entities: Dictionary, id: EntityId) => entities[id]\r\n\r\n const selectTotal = createDraftSafeSelector(selectIds, (ids) => ids.length)\r\n\r\n if (!selectState) {\r\n return {\r\n selectIds,\r\n selectEntities,\r\n selectAll,\r\n selectTotal,\r\n selectById: createDraftSafeSelector(\r\n selectEntities,\r\n selectId,\r\n selectById\r\n ),\r\n }\r\n }\r\n\r\n const selectGlobalizedEntities = createDraftSafeSelector(\r\n selectState as Selector>,\r\n selectEntities\r\n )\r\n\r\n return {\r\n selectIds: createDraftSafeSelector(selectState, selectIds),\r\n selectEntities: selectGlobalizedEntities,\r\n selectAll: createDraftSafeSelector(selectState, selectAll),\r\n selectTotal: createDraftSafeSelector(selectState, selectTotal),\r\n selectById: createDraftSafeSelector(\r\n selectGlobalizedEntities,\r\n selectId,\r\n selectById\r\n ),\r\n }\r\n }\r\n\r\n return { getSelectors }\r\n}\r\n", "import type {\r\n EntityState,\r\n IdSelector,\r\n Comparer,\r\n EntityStateAdapter,\r\n Update,\r\n EntityId,\r\n} from './models'\r\nimport { createStateOperator } from './state_adapter'\r\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter'\r\nimport {\r\n selectIdValue,\r\n ensureEntitiesArray,\r\n splitAddedUpdatedEntities,\r\n} from './utils'\r\n\r\nexport function createSortedStateAdapter(\r\n selectId: IdSelector,\r\n sort: Comparer\r\n): EntityStateAdapter {\r\n type R = EntityState\r\n\r\n const { removeOne, removeMany, removeAll } =\r\n createUnsortedStateAdapter(selectId)\r\n\r\n function addOneMutably(entity: T, state: R): void {\r\n return addManyMutably([entity], state)\r\n }\r\n\r\n function addManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n const models = newEntities.filter(\r\n (model) => !(selectIdValue(model, selectId) in state.entities)\r\n )\r\n\r\n if (models.length !== 0) {\r\n merge(models, state)\r\n }\r\n }\r\n\r\n function setOneMutably(entity: T, state: R): void {\r\n return setManyMutably([entity], state)\r\n }\r\n\r\n function setManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n if (newEntities.length !== 0) {\r\n merge(newEntities, state)\r\n }\r\n }\r\n\r\n function setAllMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n state.entities = {}\r\n state.ids = []\r\n\r\n addManyMutably(newEntities, state)\r\n }\r\n\r\n function updateOneMutably(update: Update, state: R): void {\r\n return updateManyMutably([update], state)\r\n }\r\n\r\n function updateManyMutably(\r\n updates: ReadonlyArray>,\r\n state: R\r\n ): void {\r\n let appliedUpdates = false\r\n\r\n for (let update of updates) {\r\n const entity = state.entities[update.id]\r\n if (!entity) {\r\n continue\r\n }\r\n\r\n appliedUpdates = true\r\n\r\n Object.assign(entity, update.changes)\r\n const newId = selectId(entity)\r\n if (update.id !== newId) {\r\n delete state.entities[update.id]\r\n state.entities[newId] = entity\r\n }\r\n }\r\n\r\n if (appliedUpdates) {\r\n resortEntities(state)\r\n }\r\n }\r\n\r\n function upsertOneMutably(entity: T, state: R): void {\r\n return upsertManyMutably([entity], state)\r\n }\r\n\r\n function upsertManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n const [added, updated] = splitAddedUpdatedEntities(\r\n newEntities,\r\n selectId,\r\n state\r\n )\r\n\r\n updateManyMutably(updated, state)\r\n addManyMutably(added, state)\r\n }\r\n\r\n function areArraysEqual(a: readonly unknown[], b: readonly unknown[]) {\r\n if (a.length !== b.length) {\r\n return false\r\n }\r\n\r\n for (let i = 0; i < a.length && i < b.length; i++) {\r\n if (a[i] === b[i]) {\r\n continue\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n function merge(models: readonly T[], state: R): void {\r\n // Insert/overwrite all new/updated\r\n models.forEach((model) => {\r\n state.entities[selectId(model)] = model\r\n })\r\n\r\n resortEntities(state)\r\n }\r\n\r\n function resortEntities(state: R) {\r\n const allEntities = Object.values(state.entities) as T[]\r\n allEntities.sort(sort)\r\n\r\n const newSortedIds = allEntities.map(selectId)\r\n const { ids } = state\r\n\r\n if (!areArraysEqual(ids, newSortedIds)) {\r\n state.ids = newSortedIds\r\n }\r\n }\r\n\r\n return {\r\n removeOne,\r\n removeMany,\r\n removeAll,\r\n addOne: createStateOperator(addOneMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertMany: createStateOperator(upsertManyMutably),\r\n }\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 { Middleware, StoreEnhancer } from 'redux'\r\nimport type { EnhancerArray, MiddlewareArray } from './utils'\r\n\r\n/**\r\n * return True if T is `any`, otherwise return False\r\n * taken from https://github.com/joonhocho/tsdef\r\n *\r\n * @internal\r\n */\r\nexport type IsAny =\r\n // test if we are going the left AND right path in the condition\r\n true | false extends (T extends never ? true : false) ? True : False\r\n\r\n/**\r\n * return True if T is `unknown`, otherwise return False\r\n * taken from https://github.com/joonhocho/tsdef\r\n *\r\n * @internal\r\n */\r\nexport type IsUnknown = unknown extends T\r\n ? IsAny\r\n : False\r\n\r\nexport type FallbackIfUnknown = IsUnknown\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IfMaybeUndefined = [undefined] extends [P]\r\n ? True\r\n : False\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IfVoid = [void] extends [P] ? True : False\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IsEmptyObj = T extends any\r\n ? keyof T extends never\r\n ? IsUnknown>>\r\n : False\r\n : never\r\n\r\n/**\r\n * returns True if TS version is above 3.5, False if below.\r\n * uses feature detection to detect TS version >= 3.5\r\n * * versions below 3.5 will return `{}` for unresolvable interference\r\n * * versions above will return `unknown`\r\n *\r\n * @internal\r\n */\r\nexport type AtLeastTS35 = [True, False][IsUnknown<\r\n ReturnType<() => T>,\r\n 0,\r\n 1\r\n>]\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IsUnknownOrNonInferrable = AtLeastTS35<\r\n IsUnknown,\r\n IsEmptyObj>\r\n>\r\n\r\n/**\r\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\r\n */\r\nexport type UnionToIntersection = (\r\n U extends any ? (k: U) => void : never\r\n) extends (k: infer I) => void\r\n ? I\r\n : never\r\n\r\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\r\nexport type ExcludeFromTuple = T extends [\r\n infer Head,\r\n ...infer Tail\r\n]\r\n ? ExcludeFromTuple\r\n : Acc\r\n\r\ntype ExtractDispatchFromMiddlewareTuple<\r\n MiddlewareTuple extends any[],\r\n Acc extends {}\r\n> = MiddlewareTuple extends [infer Head, ...infer Tail]\r\n ? ExtractDispatchFromMiddlewareTuple<\r\n Tail,\r\n Acc & (Head extends Middleware ? IsAny : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractDispatchExtensions = M extends MiddlewareArray<\r\n infer MiddlewareTuple\r\n>\r\n ? ExtractDispatchFromMiddlewareTuple\r\n : M extends ReadonlyArray\r\n ? ExtractDispatchFromMiddlewareTuple<[...M], {}>\r\n : never\r\n\r\ntype ExtractStoreExtensionsFromEnhancerTuple<\r\n EnhancerTuple extends any[],\r\n Acc extends {}\r\n> = EnhancerTuple extends [infer Head, ...infer Tail]\r\n ? ExtractStoreExtensionsFromEnhancerTuple<\r\n Tail,\r\n Acc & (Head extends StoreEnhancer ? IsAny : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractStoreExtensions = E extends EnhancerArray<\r\n infer EnhancerTuple\r\n>\r\n ? ExtractStoreExtensionsFromEnhancerTuple\r\n : E extends ReadonlyArray\r\n ? UnionToIntersection<\r\n E[number] extends StoreEnhancer\r\n ? Ext extends {}\r\n ? IsAny\r\n : {}\r\n : {}\r\n >\r\n : never\r\n\r\ntype ExtractStateExtensionsFromEnhancerTuple<\r\n EnhancerTuple extends any[],\r\n Acc extends {}\r\n> = EnhancerTuple extends [infer Head, ...infer Tail]\r\n ? ExtractStateExtensionsFromEnhancerTuple<\r\n Tail,\r\n Acc &\r\n (Head extends StoreEnhancer\r\n ? IsAny\r\n : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractStateExtensions = E extends EnhancerArray<\r\n infer EnhancerTuple\r\n>\r\n ? ExtractStateExtensionsFromEnhancerTuple\r\n : E extends ReadonlyArray\r\n ? UnionToIntersection<\r\n E[number] extends StoreEnhancer\r\n ? StateExt extends {}\r\n ? IsAny\r\n : {}\r\n : {}\r\n >\r\n : never\r\n\r\n/**\r\n * Helper type. Passes T out again, but boxes it in a way that it cannot\r\n * \"widen\" the type by accident if it is a generic that should be inferred\r\n * from elsewhere.\r\n *\r\n * @internal\r\n */\r\nexport type NoInfer = [T][T extends any ? 0 : never]\r\n\r\nexport type Omit = Pick>\r\n\r\nexport interface TypeGuard {\r\n (value: any): value is T\r\n}\r\n\r\nexport interface HasMatchFunction {\r\n match: TypeGuard\r\n}\r\n\r\nexport const hasMatchFunction = (\r\n v: Matcher\r\n): v is HasMatchFunction => {\r\n return v && typeof (v as HasMatchFunction).match === 'function'\r\n}\r\n\r\n/** @public */\r\nexport type Matcher = HasMatchFunction | TypeGuard\r\n\r\n/** @public */\r\nexport type ActionFromMatcher> = M extends Matcher<\r\n infer T\r\n>\r\n ? T\r\n : never\r\n\r\nexport type Id = { [K in keyof T]: T[K] } & {}\r\n", "import type {\r\n ActionFromMatcher,\r\n Matcher,\r\n UnionToIntersection,\r\n} from './tsHelpers'\r\nimport { hasMatchFunction } from './tsHelpers'\r\nimport type {\r\n AsyncThunk,\r\n AsyncThunkFulfilledActionCreator,\r\n AsyncThunkPendingActionCreator,\r\n AsyncThunkRejectedActionCreator,\r\n} from './createAsyncThunk'\r\n\r\n/** @public */\r\nexport type ActionMatchingAnyOf[]]> =\r\n ActionFromMatcher\r\n\r\n/** @public */\r\nexport type ActionMatchingAllOf[]]> =\r\n UnionToIntersection>\r\n\r\nconst matches = (matcher: Matcher, action: any) => {\r\n if (hasMatchFunction(matcher)) {\r\n return matcher.match(action)\r\n } else {\r\n return matcher(action)\r\n }\r\n}\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action matches any one of the supplied type guards or action\r\n * creators.\r\n *\r\n * @param matchers The type guards or action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAnyOf[]]>(\r\n ...matchers: Matchers\r\n) {\r\n return (action: any): action is ActionMatchingAnyOf => {\r\n return matchers.some((matcher) => matches(matcher, action))\r\n }\r\n}\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action matches all of the supplied type guards or action\r\n * creators.\r\n *\r\n * @param matchers The type guards or action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAllOf[]]>(\r\n ...matchers: Matchers\r\n) {\r\n return (action: any): action is ActionMatchingAllOf => {\r\n return matchers.every((matcher) => matches(matcher, action))\r\n }\r\n}\r\n\r\n/**\r\n * @param action A redux action\r\n * @param validStatus An array of valid meta.requestStatus values\r\n *\r\n * @internal\r\n */\r\nexport function hasExpectedRequestMetadata(\r\n action: any,\r\n validStatus: readonly string[]\r\n) {\r\n if (!action || !action.meta) return false\r\n\r\n const hasValidRequestId = typeof action.meta.requestId === 'string'\r\n const hasValidRequestStatus =\r\n validStatus.indexOf(action.meta.requestStatus) > -1\r\n\r\n return hasValidRequestId && hasValidRequestStatus\r\n}\r\n\r\nfunction isAsyncThunkArray(a: [any] | AnyAsyncThunk[]): a is AnyAsyncThunk[] {\r\n return (\r\n typeof a[0] === 'function' &&\r\n 'pending' in a[0] &&\r\n 'fulfilled' in a[0] &&\r\n 'rejected' in a[0]\r\n )\r\n}\r\n\r\nexport type UnknownAsyncThunkPendingAction = ReturnType<\r\n AsyncThunkPendingActionCreator\r\n>\r\n\r\nexport type PendingActionFromAsyncThunk =\r\n ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is pending.\r\n *\r\n * @public\r\n */\r\nexport function isPending(): (\r\n action: any\r\n) => action is UnknownAsyncThunkPendingAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is pending.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isPending<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is PendingActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a pending thunk action\r\n * @public\r\n */\r\nexport function isPending(action: any): action is UnknownAsyncThunkPendingAction\r\nexport function isPending<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['pending'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isPending()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is PendingActionFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.pending\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkRejectedAction = ReturnType<\r\n AsyncThunkRejectedActionCreator\r\n>\r\n\r\nexport type RejectedActionFromAsyncThunk =\r\n ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is rejected.\r\n *\r\n * @public\r\n */\r\nexport function isRejected(): (\r\n action: any\r\n) => action is UnknownAsyncThunkRejectedAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is rejected.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isRejected<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is RejectedActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a rejected thunk action\r\n * @public\r\n */\r\nexport function isRejected(\r\n action: any\r\n): action is UnknownAsyncThunkRejectedAction\r\nexport function isRejected<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['rejected'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejected()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is RejectedActionFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.rejected\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkRejectedWithValueAction = ReturnType<\r\n AsyncThunkRejectedActionCreator\r\n>\r\n\r\nexport type RejectedWithValueActionFromAsyncThunk =\r\n ActionFromMatcher &\r\n (T extends AsyncThunk\r\n ? { payload: RejectedValue }\r\n : unknown)\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is rejected with value.\r\n *\r\n * @public\r\n */\r\nexport function isRejectedWithValue(): (\r\n action: any\r\n) => action is UnknownAsyncThunkRejectedAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is rejected with value.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isRejectedWithValue<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (\r\n action: any\r\n) => action is RejectedWithValueActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a rejected thunk action with value\r\n * @public\r\n */\r\nexport function isRejectedWithValue(\r\n action: any\r\n): action is UnknownAsyncThunkRejectedAction\r\nexport function isRejectedWithValue<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n const hasFlag = (action: any): action is any => {\r\n return action && action.meta && action.meta.rejectedWithValue\r\n }\r\n\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => {\r\n const combinedMatcher = isAllOf(isRejected(...asyncThunks), hasFlag)\r\n\r\n return combinedMatcher(action)\r\n }\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejectedWithValue()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is RejectedActionFromAsyncThunk => {\r\n const combinedMatcher = isAllOf(isRejected(...asyncThunks), hasFlag)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkFulfilledAction = ReturnType<\r\n AsyncThunkFulfilledActionCreator\r\n>\r\n\r\nexport type FulfilledActionFromAsyncThunk =\r\n ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is fulfilled.\r\n *\r\n * @public\r\n */\r\nexport function isFulfilled(): (\r\n action: any\r\n) => action is UnknownAsyncThunkFulfilledAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is fulfilled.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isFulfilled<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is FulfilledActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a fulfilled thunk action\r\n * @public\r\n */\r\nexport function isFulfilled(\r\n action: any\r\n): action is UnknownAsyncThunkFulfilledAction\r\nexport function isFulfilled<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['fulfilled'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isFulfilled()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is FulfilledActionFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.fulfilled\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkAction =\r\n | UnknownAsyncThunkPendingAction\r\n | UnknownAsyncThunkRejectedAction\r\n | UnknownAsyncThunkFulfilledAction\r\n\r\nexport type AnyAsyncThunk = {\r\n pending: { match: (action: any) => action is any }\r\n fulfilled: { match: (action: any) => action is any }\r\n rejected: { match: (action: any) => action is any }\r\n}\r\n\r\nexport type ActionsFromAsyncThunk =\r\n | ActionFromMatcher\r\n | ActionFromMatcher\r\n | ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator.\r\n *\r\n * @public\r\n */\r\nexport function isAsyncThunkAction(): (\r\n action: any\r\n) => action is UnknownAsyncThunkAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAsyncThunkAction<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is ActionsFromAsyncThunk\r\n/**\r\n * Tests if `action` is a thunk action\r\n * @public\r\n */\r\nexport function isAsyncThunkAction(\r\n action: any\r\n): action is UnknownAsyncThunkAction\r\nexport function isAsyncThunkAction<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) =>\r\n hasExpectedRequestMetadata(action, ['pending', 'fulfilled', 'rejected'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isAsyncThunkAction()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is ActionsFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = [] as any\r\n\r\n for (const asyncThunk of asyncThunks) {\r\n matchers.push(\r\n asyncThunk.pending,\r\n asyncThunk.rejected,\r\n asyncThunk.fulfilled\r\n )\r\n }\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n", "import type { AbortSignalWithReason } from './types'\r\n\r\nexport const assertFunction: (\r\n func: unknown,\r\n expected: string\r\n) => asserts func is (...args: unknown[]) => unknown = (\r\n func: unknown,\r\n expected: string\r\n) => {\r\n if (typeof func !== 'function') {\r\n throw new TypeError(`${expected} is not a function`)\r\n }\r\n}\r\n\r\nexport const noop = () => {}\r\n\r\nexport const catchRejection = (\r\n promise: Promise,\r\n onError = noop\r\n): Promise => {\r\n promise.catch(onError)\r\n\r\n return promise\r\n}\r\n\r\nexport const addAbortSignalListener = (\r\n abortSignal: AbortSignal,\r\n callback: (evt: Event) => void\r\n) => {\r\n abortSignal.addEventListener('abort', callback, { once: true })\r\n return () => abortSignal.removeEventListener('abort', callback)\r\n}\r\n\r\n/**\r\n * Calls `abortController.abort(reason)` and patches `signal.reason`.\r\n * if it is not supported.\r\n *\r\n * At the time of writing `signal.reason` is available in FF chrome, edge node 17 and deno.\r\n * @param abortController\r\n * @param reason\r\n * @returns\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/reason\r\n */\r\nexport const abortControllerWithReason = (\r\n abortController: AbortController,\r\n reason: T\r\n): void => {\r\n type Consumer = (val: T) => void\r\n\r\n const signal = abortController.signal as AbortSignalWithReason\r\n\r\n if (signal.aborted) {\r\n return\r\n }\r\n\r\n // Patch `reason` if necessary.\r\n // - We use defineProperty here because reason is a getter of `AbortSignal.__proto__`.\r\n // - We need to patch 'reason' before calling `.abort()` because listeners to the 'abort'\r\n // event are are notified immediately.\r\n if (!('reason' in signal)) {\r\n Object.defineProperty(signal, 'reason', {\r\n enumerable: true,\r\n value: reason,\r\n configurable: true,\r\n writable: true,\r\n })\r\n }\r\n\r\n ;(abortController.abort as Consumer)(reason)\r\n}\r\n", "import type { SerializedError } from '@reduxjs/toolkit'\r\n\r\nconst task = 'task'\r\nconst listener = 'listener'\r\nconst completed = 'completed'\r\nconst cancelled = 'cancelled'\r\n\r\n/* TaskAbortError error codes */\r\nexport const taskCancelled = `task-${cancelled}` as const\r\nexport const taskCompleted = `task-${completed}` as const\r\nexport const listenerCancelled = `${listener}-${cancelled}` as const\r\nexport const listenerCompleted = `${listener}-${completed}` as const\r\n\r\nexport class TaskAbortError implements SerializedError {\r\n name = 'TaskAbortError'\r\n message: string\r\n constructor(public code: string | undefined) {\r\n this.message = `${task} ${cancelled} (reason: ${code})`\r\n }\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 { 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 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", "'use strict'\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./redux-toolkit.cjs.production.min.js')\n} else {\n module.exports = require('./redux-toolkit.cjs.development.js')\n}", "import type { SerializedError } from '@reduxjs/toolkit'\r\nimport type { BaseQueryError } from '../baseQueryTypes'\r\nimport type {\r\n QueryDefinition,\r\n MutationDefinition,\r\n EndpointDefinitions,\r\n BaseEndpointDefinition,\r\n ResultTypeFrom,\r\n QueryArgFrom,\r\n} from '../endpointDefinitions'\r\nimport type { Id, WithRequiredProp } from '../tsHelpers'\r\n\r\nexport type QueryCacheKey = string & { _type: 'queryCacheKey' }\r\nexport type QuerySubstateIdentifier = { queryCacheKey: QueryCacheKey }\r\nexport type MutationSubstateIdentifier =\r\n | {\r\n requestId: string\r\n fixedCacheKey?: string\r\n }\r\n | {\r\n requestId?: string\r\n fixedCacheKey: string\r\n }\r\n\r\nexport type RefetchConfigOptions = {\r\n refetchOnMountOrArgChange: boolean | number\r\n refetchOnReconnect: boolean\r\n refetchOnFocus: boolean\r\n}\r\n\r\n/**\r\n * Strings describing the query state at any given time.\r\n */\r\nexport enum QueryStatus {\r\n uninitialized = 'uninitialized',\r\n pending = 'pending',\r\n fulfilled = 'fulfilled',\r\n rejected = 'rejected',\r\n}\r\n\r\nexport type RequestStatusFlags =\r\n | {\r\n status: QueryStatus.uninitialized\r\n isUninitialized: true\r\n isLoading: false\r\n isSuccess: false\r\n isError: false\r\n }\r\n | {\r\n status: QueryStatus.pending\r\n isUninitialized: false\r\n isLoading: true\r\n isSuccess: false\r\n isError: false\r\n }\r\n | {\r\n status: QueryStatus.fulfilled\r\n isUninitialized: false\r\n isLoading: false\r\n isSuccess: true\r\n isError: false\r\n }\r\n | {\r\n status: QueryStatus.rejected\r\n isUninitialized: false\r\n isLoading: false\r\n isSuccess: false\r\n isError: true\r\n }\r\n\r\nexport function getRequestStatusFlags(status: QueryStatus): RequestStatusFlags {\r\n return {\r\n status,\r\n isUninitialized: status === QueryStatus.uninitialized,\r\n isLoading: status === QueryStatus.pending,\r\n isSuccess: status === QueryStatus.fulfilled,\r\n isError: status === QueryStatus.rejected,\r\n } as any\r\n}\r\n\r\nexport type SubscriptionOptions = {\r\n /**\r\n * How frequently to automatically re-fetch data (in milliseconds). Defaults to `0` (off).\r\n */\r\n pollingInterval?: number\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n *\r\n * Note: requires [`setupListeners`](./setupListeners) to have been called.\r\n */\r\n refetchOnReconnect?: boolean\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n *\r\n * Note: requires [`setupListeners`](./setupListeners) to have been called.\r\n */\r\n refetchOnFocus?: boolean\r\n}\r\nexport type Subscribers = { [requestId: string]: SubscriptionOptions }\r\nexport type QueryKeys = {\r\n [K in keyof Definitions]: Definitions[K] extends QueryDefinition<\r\n any,\r\n any,\r\n any,\r\n any\r\n >\r\n ? K\r\n : never\r\n}[keyof Definitions]\r\nexport type MutationKeys = {\r\n [K in keyof Definitions]: Definitions[K] extends MutationDefinition<\r\n any,\r\n any,\r\n any,\r\n any\r\n >\r\n ? K\r\n : never\r\n}[keyof Definitions]\r\n\r\ntype BaseQuerySubState> = {\r\n /**\r\n * The argument originally passed into the hook or `initiate` action call\r\n */\r\n originalArgs: QueryArgFrom\r\n /**\r\n * A unique ID associated with the request\r\n */\r\n requestId: string\r\n /**\r\n * The received data from the query\r\n */\r\n data?: ResultTypeFrom\r\n /**\r\n * The received error if applicable\r\n */\r\n error?:\r\n | SerializedError\r\n | (D extends QueryDefinition\r\n ? BaseQueryError\r\n : never)\r\n /**\r\n * The name of the endpoint associated with the query\r\n */\r\n endpointName: string\r\n /**\r\n * Time that the latest query started\r\n */\r\n startedTimeStamp: number\r\n /**\r\n * Time that the latest query was fulfilled\r\n */\r\n fulfilledTimeStamp?: number\r\n}\r\n\r\nexport type QuerySubState> = Id<\r\n | ({\r\n status: QueryStatus.fulfilled\r\n } & WithRequiredProp<\r\n BaseQuerySubState,\r\n 'data' | 'fulfilledTimeStamp'\r\n > & { error: undefined })\r\n | ({\r\n status: QueryStatus.pending\r\n } & BaseQuerySubState)\r\n | ({\r\n status: QueryStatus.rejected\r\n } & WithRequiredProp, 'error'>)\r\n | {\r\n status: QueryStatus.uninitialized\r\n originalArgs?: undefined\r\n data?: undefined\r\n error?: undefined\r\n requestId?: undefined\r\n endpointName?: string\r\n startedTimeStamp?: undefined\r\n fulfilledTimeStamp?: undefined\r\n }\r\n>\r\n\r\ntype BaseMutationSubState> = {\r\n requestId: string\r\n data?: ResultTypeFrom\r\n error?:\r\n | SerializedError\r\n | (D extends MutationDefinition\r\n ? BaseQueryError\r\n : never)\r\n endpointName: string\r\n startedTimeStamp: number\r\n fulfilledTimeStamp?: number\r\n}\r\n\r\nexport type MutationSubState> =\r\n | (({\r\n status: QueryStatus.fulfilled\r\n } & WithRequiredProp<\r\n BaseMutationSubState,\r\n 'data' | 'fulfilledTimeStamp'\r\n >) & { error: undefined })\r\n | (({\r\n status: QueryStatus.pending\r\n } & BaseMutationSubState) & { data?: undefined })\r\n | ({\r\n status: QueryStatus.rejected\r\n } & WithRequiredProp, 'error'>)\r\n | {\r\n requestId?: undefined\r\n status: QueryStatus.uninitialized\r\n data?: undefined\r\n error?: undefined\r\n endpointName?: string\r\n startedTimeStamp?: undefined\r\n fulfilledTimeStamp?: undefined\r\n }\r\n\r\nexport type CombinedState<\r\n D extends EndpointDefinitions,\r\n E extends string,\r\n ReducerPath extends string\r\n> = {\r\n queries: QueryState\r\n mutations: MutationState\r\n provided: InvalidationState\r\n subscriptions: SubscriptionState\r\n config: ConfigState\r\n}\r\n\r\nexport type InvalidationState = {\r\n [_ in TagTypes]: {\r\n [id: string]: Array\r\n [id: number]: Array\r\n }\r\n}\r\n\r\nexport type QueryState = {\r\n [queryCacheKey: string]: QuerySubState | undefined\r\n}\r\n\r\nexport type SubscriptionState = {\r\n [queryCacheKey: string]: Subscribers | undefined\r\n}\r\n\r\nexport type ConfigState = RefetchConfigOptions & {\r\n reducerPath: ReducerPath\r\n online: boolean\r\n focused: boolean\r\n middlewareRegistered: boolean | 'conflict'\r\n} & ModifiableConfigState\r\n\r\nexport type ModifiableConfigState = {\r\n keepUnusedDataFor: number\r\n} & RefetchConfigOptions\r\n\r\nexport type MutationState = {\r\n [requestId: string]: MutationSubState | undefined\r\n}\r\n\r\nexport type RootState<\r\n Definitions extends EndpointDefinitions,\r\n TagTypes extends string,\r\n ReducerPath extends string\r\n> = {\r\n [P in ReducerPath]: CombinedState\r\n}\r\n", "export { QueryStatus } from './core/apiState'\r\nexport type { Api, Module, ApiModules } from './apiTypes'\r\nexport type {\r\n BaseQueryApi,\r\n BaseQueryEnhancer,\r\n BaseQueryFn,\r\n} from './baseQueryTypes'\r\nexport type {\r\n EndpointDefinitions,\r\n EndpointDefinition,\r\n QueryDefinition,\r\n MutationDefinition,\r\n TagDescription,\r\n} from './endpointDefinitions'\r\nexport { fetchBaseQuery } from './fetchBaseQuery'\r\nexport type {\r\n FetchBaseQueryError,\r\n FetchBaseQueryMeta,\r\n FetchArgs,\r\n} from './fetchBaseQuery'\r\nexport { retry } from './retry'\r\nexport { setupListeners } from './core/setupListeners'\r\nexport { skipSelector, skipToken } from './core/buildSelectors'\r\nexport type { SkipToken } from './core/buildSelectors'\r\nexport type { CreateApi, CreateApiOptions } from './createApi'\r\nexport { buildCreateApi } from './createApi'\r\nexport { fakeBaseQuery } from './fakeBaseQuery'\r\nexport { copyWithStructuralSharing } from './utils/copyWithStructuralSharing'\r\nexport { createApi, coreModule } from './core'\r\nexport { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs'\r\n", "/**\r\n * Alternative to `Array.flat(1)`\r\n * @param arr An array like [1,2,3,[1,2]]\r\n * @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat\r\n */\r\nexport const flatten = (arr: readonly any[]) => [].concat(...arr)\r\n", "import { isPlainObject as _iPO } from '@reduxjs/toolkit'\r\n\r\n// remove type guard\r\nconst isPlainObject: (_: any) => boolean = _iPO\r\n\r\nexport function copyWithStructuralSharing(oldObj: any, newObj: T): T\r\nexport function copyWithStructuralSharing(oldObj: any, newObj: any): any {\r\n if (\r\n oldObj === newObj ||\r\n !(\r\n (isPlainObject(oldObj) && isPlainObject(newObj)) ||\r\n (Array.isArray(oldObj) && Array.isArray(newObj))\r\n )\r\n ) {\r\n return newObj\r\n }\r\n const newKeys = Object.keys(newObj)\r\n const oldKeys = Object.keys(oldObj)\r\n\r\n let isSameObject = newKeys.length === oldKeys.length\r\n const mergeObj: any = Array.isArray(newObj) ? [] : {}\r\n for (const key of newKeys) {\r\n mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key])\r\n if (isSameObject) isSameObject = oldObj[key] === mergeObj[key]\r\n }\r\n return isSameObject ? oldObj : mergeObj\r\n}\r\n", "import { joinUrls } from './utils'\r\nimport { isPlainObject } from '@reduxjs/toolkit'\r\nimport type { BaseQueryApi, BaseQueryFn } from './baseQueryTypes'\r\nimport type { MaybePromise, Override } from './tsHelpers'\r\n\r\nexport type ResponseHandler =\r\n | 'content-type'\r\n | 'json'\r\n | 'text'\r\n | ((response: Response) => Promise)\r\n\r\ntype CustomRequestInit = Override<\r\n RequestInit,\r\n {\r\n headers?:\r\n | Headers\r\n | string[][]\r\n | Record\r\n | undefined\r\n }\r\n>\r\n\r\nexport interface FetchArgs extends CustomRequestInit {\r\n url: string\r\n params?: Record\r\n body?: any\r\n responseHandler?: ResponseHandler\r\n validateStatus?: (response: Response, body: any) => boolean\r\n /**\r\n * A number in milliseconds that represents that maximum time a request can take before timing out.\r\n */\r\n timeout?: number\r\n}\r\n\r\n/**\r\n * A mini-wrapper that passes arguments straight through to\r\n * {@link [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)}.\r\n * Avoids storing `fetch` in a closure, in order to permit mocking/monkey-patching.\r\n */\r\nconst defaultFetchFn: typeof fetch = (...args) => fetch(...args)\r\n\r\nconst defaultValidateStatus = (response: Response) =>\r\n response.status >= 200 && response.status <= 299\r\n\r\nconst defaultIsJsonContentType = (headers: Headers) =>\r\n /*applicat*/ /ion\\/(vnd\\.api\\+)?json/.test(headers.get('content-type') || '')\r\n\r\nexport type FetchBaseQueryError =\r\n | {\r\n /**\r\n * * `number`:\r\n * HTTP status code\r\n */\r\n status: number\r\n data: unknown\r\n }\r\n | {\r\n /**\r\n * * `\"FETCH_ERROR\"`:\r\n * An error that occurred during execution of `fetch` or the `fetchFn` callback option\r\n **/\r\n status: 'FETCH_ERROR'\r\n data?: undefined\r\n error: string\r\n }\r\n | {\r\n /**\r\n * * `\"PARSING_ERROR\"`:\r\n * An error happened during parsing.\r\n * Most likely a non-JSON-response was returned with the default `responseHandler` \"JSON\",\r\n * or an error occurred while executing a custom `responseHandler`.\r\n **/\r\n status: 'PARSING_ERROR'\r\n originalStatus: number\r\n data: string\r\n error: string\r\n }\r\n | {\r\n /**\r\n * * `\"TIMEOUT_ERROR\"`:\r\n * Request timed out\r\n **/\r\n status: 'TIMEOUT_ERROR'\r\n data?: undefined\r\n error: string\r\n }\r\n | {\r\n /**\r\n * * `\"CUSTOM_ERROR\"`:\r\n * A custom error type that you can return from your `queryFn` where another error might not make sense.\r\n **/\r\n status: 'CUSTOM_ERROR'\r\n data?: unknown\r\n error: string\r\n }\r\n\r\nfunction stripUndefined(obj: any) {\r\n if (!isPlainObject(obj)) {\r\n return obj\r\n }\r\n const copy: Record = { ...obj }\r\n for (const [k, v] of Object.entries(copy)) {\r\n if (v === undefined) delete copy[k]\r\n }\r\n return copy\r\n}\r\n\r\nexport type FetchBaseQueryArgs = {\r\n baseUrl?: string\r\n prepareHeaders?: (\r\n headers: Headers,\r\n api: Pick<\r\n BaseQueryApi,\r\n 'getState' | 'extra' | 'endpoint' | 'type' | 'forced'\r\n >\r\n ) => MaybePromise\r\n fetchFn?: (\r\n input: RequestInfo,\r\n init?: RequestInit | undefined\r\n ) => Promise\r\n paramsSerializer?: (params: Record) => string\r\n /**\r\n * By default, we only check for 'application/json' and 'application/vnd.api+json' as the content-types for json. If you need to support another format, you can pass\r\n * in a predicate function for your given api to get the same automatic stringifying behavior\r\n * @example\r\n * ```ts\r\n * const isJsonContentType = (headers: Headers) => [\"application/vnd.api+json\", \"application/json\", \"application/vnd.hal+json\"].includes(headers.get(\"content-type\")?.trim());\r\n * ```\r\n */\r\n isJsonContentType?: (headers: Headers) => boolean\r\n /**\r\n * Defaults to `application/json`;\r\n */\r\n jsonContentType?: string\r\n\r\n /**\r\n * Custom replacer function used when calling `JSON.stringify()`;\r\n */\r\n jsonReplacer?: (this: any, key: string, value: any) => any\r\n} & RequestInit &\r\n Pick\r\n\r\nexport type FetchBaseQueryMeta = { request: Request; response?: Response }\r\n\r\n/**\r\n * This is a very small wrapper around fetch that aims to simplify requests.\r\n *\r\n * @example\r\n * ```ts\r\n * const baseQuery = fetchBaseQuery({\r\n * baseUrl: 'https://api.your-really-great-app.com/v1/',\r\n * prepareHeaders: (headers, { getState }) => {\r\n * const token = (getState() as RootState).auth.token;\r\n * // If we have a token set in state, let's assume that we should be passing it.\r\n * if (token) {\r\n * headers.set('authorization', `Bearer ${token}`);\r\n * }\r\n * return headers;\r\n * },\r\n * })\r\n * ```\r\n *\r\n * @param {string} baseUrl\r\n * The base URL for an API service.\r\n * Typically in the format of https://example.com/\r\n *\r\n * @param {(headers: Headers, api: { getState: () => unknown; extra: unknown; endpoint: string; type: 'query' | 'mutation'; forced: boolean; }) => Headers} prepareHeaders\r\n * An optional function that can be used to inject headers on requests.\r\n * Provides a Headers object, as well as most of the `BaseQueryApi` (`dispatch` is not available).\r\n * Useful for setting authentication or headers that need to be set conditionally.\r\n *\r\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Headers\r\n *\r\n * @param {(input: RequestInfo, init?: RequestInit | undefined) => Promise} fetchFn\r\n * Accepts a custom `fetch` function if you do not want to use the default on the window.\r\n * Useful in SSR environments if you need to use a library such as `isomorphic-fetch` or `cross-fetch`\r\n *\r\n * @param {(params: Record) => string} paramsSerializer\r\n * An optional function that can be used to stringify querystring parameters.\r\n *\r\n * @param {(headers: Headers) => boolean} isJsonContentType\r\n * An optional predicate function to determine if `JSON.stringify()` should be called on the `body` arg of `FetchArgs`\r\n *\r\n * @param {string} jsonContentType Used when automatically setting the content-type header for a request with a jsonifiable body that does not have an explicit content-type header. Defaults to `application/json`.\r\n *\r\n * @param {(this: any, key: string, value: any) => any} jsonReplacer Custom replacer function used when calling `JSON.stringify()`.\r\n *\r\n * @param {number} timeout\r\n * A number in milliseconds that represents the maximum time a request can take before timing out.\r\n */\r\nexport function fetchBaseQuery({\r\n baseUrl,\r\n prepareHeaders = (x) => x,\r\n fetchFn = defaultFetchFn,\r\n paramsSerializer,\r\n isJsonContentType = defaultIsJsonContentType,\r\n jsonContentType = 'application/json',\r\n jsonReplacer,\r\n timeout: defaultTimeout,\r\n responseHandler: globalResponseHandler,\r\n validateStatus: globalValidateStatus,\r\n ...baseFetchOptions\r\n}: FetchBaseQueryArgs = {}): BaseQueryFn<\r\n string | FetchArgs,\r\n unknown,\r\n FetchBaseQueryError,\r\n {},\r\n FetchBaseQueryMeta\r\n> {\r\n if (typeof fetch === 'undefined' && fetchFn === defaultFetchFn) {\r\n console.warn(\r\n 'Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.'\r\n )\r\n }\r\n return async (arg, api) => {\r\n const { signal, getState, extra, endpoint, forced, type } = api\r\n let meta: FetchBaseQueryMeta | undefined\r\n let {\r\n url,\r\n headers = new Headers(baseFetchOptions.headers),\r\n params = undefined,\r\n responseHandler = globalResponseHandler ?? ('json' as const),\r\n validateStatus = globalValidateStatus ?? defaultValidateStatus,\r\n timeout = defaultTimeout,\r\n ...rest\r\n } = typeof arg == 'string' ? { url: arg } : arg\r\n let config: RequestInit = {\r\n ...baseFetchOptions,\r\n signal,\r\n ...rest,\r\n }\r\n\r\n headers = new Headers(stripUndefined(headers))\r\n config.headers =\r\n (await prepareHeaders(headers, {\r\n getState,\r\n extra,\r\n endpoint,\r\n forced,\r\n type,\r\n })) || headers\r\n\r\n // Only set the content-type to json if appropriate. Will not be true for FormData, ArrayBuffer, Blob, etc.\r\n const isJsonifiable = (body: any) =>\r\n typeof body === 'object' &&\r\n (isPlainObject(body) ||\r\n Array.isArray(body) ||\r\n typeof body.toJSON === 'function')\r\n\r\n if (!config.headers.has('content-type') && isJsonifiable(config.body)) {\r\n config.headers.set('content-type', jsonContentType)\r\n }\r\n\r\n if (isJsonifiable(config.body) && isJsonContentType(config.headers)) {\r\n config.body = JSON.stringify(config.body, jsonReplacer)\r\n }\r\n\r\n if (params) {\r\n const divider = ~url.indexOf('?') ? '&' : '?'\r\n const query = paramsSerializer\r\n ? paramsSerializer(params)\r\n : new URLSearchParams(stripUndefined(params))\r\n url += divider + query\r\n }\r\n\r\n url = joinUrls(baseUrl, url)\r\n\r\n const request = new Request(url, config)\r\n const requestClone = request.clone()\r\n meta = { request: requestClone }\r\n\r\n let response,\r\n timedOut = false,\r\n timeoutId =\r\n timeout &&\r\n setTimeout(() => {\r\n timedOut = true\r\n api.abort()\r\n }, timeout)\r\n try {\r\n response = await fetchFn(request)\r\n } catch (e) {\r\n return {\r\n error: {\r\n status: timedOut ? 'TIMEOUT_ERROR' : 'FETCH_ERROR',\r\n error: String(e),\r\n },\r\n meta,\r\n }\r\n } finally {\r\n if (timeoutId) clearTimeout(timeoutId)\r\n }\r\n const responseClone = response.clone()\r\n\r\n meta.response = responseClone\r\n\r\n let resultData: any\r\n let responseText: string = ''\r\n try {\r\n let handleResponseError\r\n await Promise.all([\r\n handleResponse(response, responseHandler).then(\r\n (r) => (resultData = r),\r\n (e) => (handleResponseError = e)\r\n ),\r\n // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182\r\n // we *have* to \"use up\" both streams at the same time or they will stop running in node-fetch scenarios\r\n responseClone.text().then(\r\n (r) => (responseText = r),\r\n () => {}\r\n ),\r\n ])\r\n if (handleResponseError) throw handleResponseError\r\n } catch (e) {\r\n return {\r\n error: {\r\n status: 'PARSING_ERROR',\r\n originalStatus: response.status,\r\n data: responseText,\r\n error: String(e),\r\n },\r\n meta,\r\n }\r\n }\r\n\r\n return validateStatus(response, resultData)\r\n ? {\r\n data: resultData,\r\n meta,\r\n }\r\n : {\r\n error: {\r\n status: response.status,\r\n data: resultData,\r\n },\r\n meta,\r\n }\r\n }\r\n\r\n async function handleResponse(\r\n response: Response,\r\n responseHandler: ResponseHandler\r\n ) {\r\n if (typeof responseHandler === 'function') {\r\n return responseHandler(response)\r\n }\r\n\r\n if (responseHandler === 'content-type') {\r\n responseHandler = isJsonContentType(response.headers) ? 'json' : 'text'\r\n }\r\n\r\n if (responseHandler === 'json') {\r\n const text = await response.text()\r\n return text.length ? JSON.parse(text) : null\r\n }\r\n\r\n return response.text()\r\n }\r\n}\r\n", "import { isAbsoluteUrl } from './isAbsoluteUrl'\r\n\r\nconst withoutTrailingSlash = (url: string) => url.replace(/\\/$/, '')\r\nconst withoutLeadingSlash = (url: string) => url.replace(/^\\//, '')\r\n\r\nexport function joinUrls(\r\n base: string | undefined,\r\n url: string | undefined\r\n): string {\r\n if (!base) {\r\n return url!\r\n }\r\n if (!url) {\r\n return base\r\n }\r\n\r\n if (isAbsoluteUrl(url)) {\r\n return url\r\n }\r\n\r\n const delimiter = base.endsWith('/') || !url.startsWith('?') ? '/' : ''\r\n base = withoutTrailingSlash(base)\r\n url = withoutLeadingSlash(url)\r\n\r\n return `${base}${delimiter}${url}`;\r\n}\r\n", "/**\r\n * If either :// or // is present consider it to be an absolute url\r\n *\r\n * @param url string\r\n */\r\n\r\nexport function isAbsoluteUrl(url: string) {\r\n return new RegExp(`(^|:)//`).test(url)\r\n}\r\n", "export class HandledError {\r\n constructor(\r\n public readonly value: any,\r\n public readonly meta: any = undefined\r\n ) {}\r\n}\r\n", "import type {\r\n BaseQueryApi,\r\n BaseQueryArg,\r\n BaseQueryEnhancer,\r\n BaseQueryExtraOptions,\r\n BaseQueryFn,\r\n} from './baseQueryTypes'\r\nimport type { FetchBaseQueryError } from './fetchBaseQuery'\r\nimport { HandledError } from './HandledError'\r\n\r\n/**\r\n * Exponential backoff based on the attempt number.\r\n *\r\n * @remarks\r\n * 1. 600ms * random(0.4, 1.4)\r\n * 2. 1200ms * random(0.4, 1.4)\r\n * 3. 2400ms * random(0.4, 1.4)\r\n * 4. 4800ms * random(0.4, 1.4)\r\n * 5. 9600ms * random(0.4, 1.4)\r\n *\r\n * @param attempt - Current attempt\r\n * @param maxRetries - Maximum number of retries\r\n */\r\nasync function defaultBackoff(attempt: number = 0, maxRetries: number = 5) {\r\n const attempts = Math.min(attempt, maxRetries)\r\n\r\n const timeout = ~~((Math.random() + 0.4) * (300 << attempts)) // Force a positive int in the case we make this an option\r\n await new Promise((resolve) =>\r\n setTimeout((res: any) => resolve(res), timeout)\r\n )\r\n}\r\n\r\ntype RetryConditionFunction = (\r\n error: FetchBaseQueryError,\r\n args: BaseQueryArg,\r\n extraArgs: {\r\n attempt: number\r\n baseQueryApi: BaseQueryApi\r\n extraOptions: BaseQueryExtraOptions & RetryOptions\r\n }\r\n) => boolean\r\n\r\nexport type RetryOptions = {\r\n /**\r\n * Function used to determine delay between retries\r\n */\r\n backoff?: (attempt: number, maxRetries: number) => Promise\r\n} & (\r\n | {\r\n /**\r\n * How many times the query will be retried (default: 5)\r\n */\r\n maxRetries?: number\r\n retryCondition?: undefined\r\n }\r\n | {\r\n /**\r\n * Callback to determine if a retry should be attempted.\r\n * Return `true` for another retry and `false` to quit trying prematurely.\r\n */\r\n retryCondition?: RetryConditionFunction\r\n maxRetries?: undefined\r\n }\r\n)\r\n\r\nfunction fail(e: any): never {\r\n throw Object.assign(new HandledError({ error: e }), {\r\n throwImmediately: true,\r\n })\r\n}\r\n\r\nconst EMPTY_OPTIONS = {}\r\n\r\nconst retryWithBackoff: BaseQueryEnhancer<\r\n unknown,\r\n RetryOptions,\r\n RetryOptions | void\r\n> = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {\r\n // We need to figure out `maxRetries` before we define `defaultRetryCondition.\r\n // This is probably goofy, but ought to work.\r\n // Put our defaults in one array, filter out undefineds, grab the last value.\r\n const possibleMaxRetries: number[] = [\r\n 5,\r\n ((defaultOptions as any) || EMPTY_OPTIONS).maxRetries,\r\n ((extraOptions as any) || EMPTY_OPTIONS).maxRetries,\r\n ].filter(x => x !== undefined)\r\n const [maxRetries] = possibleMaxRetries.slice(-1)\r\n\r\n const defaultRetryCondition: RetryConditionFunction = (_, __, { attempt }) =>\r\n attempt <= maxRetries\r\n\r\n const options: {\r\n maxRetries: number\r\n backoff: typeof defaultBackoff\r\n retryCondition: typeof defaultRetryCondition\r\n } = {\r\n maxRetries,\r\n backoff: defaultBackoff,\r\n retryCondition: defaultRetryCondition,\r\n ...defaultOptions,\r\n ...extraOptions,\r\n }\r\n let retry = 0\r\n\r\n while (true) {\r\n try {\r\n const result = await baseQuery(args, api, extraOptions)\r\n // baseQueries _should_ return an error property, so we should check for that and throw it to continue retrying\r\n if (result.error) {\r\n throw new HandledError(result)\r\n }\r\n return result\r\n } catch (e: any) {\r\n retry++\r\n\r\n if (e.throwImmediately) {\r\n if (e instanceof HandledError) {\r\n return e.value\r\n }\r\n\r\n // We don't know what this is, so we have to rethrow it\r\n throw e\r\n }\r\n\r\n if (\r\n e instanceof HandledError &&\r\n !options.retryCondition(e.value.error as FetchBaseQueryError, args, {\r\n attempt: retry,\r\n baseQueryApi: api,\r\n extraOptions,\r\n })\r\n ) {\r\n return e.value\r\n }\r\n await options.backoff(retry, options.maxRetries)\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * A utility that can wrap `baseQuery` in the API definition to provide retries with a basic exponential backoff.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"Retry every request 5 times by default\"\r\n * import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * // maxRetries: 5 is the default, and can be omitted. Shown for documentation purposes.\r\n * const staggeredBaseQuery = retry(fetchBaseQuery({ baseUrl: '/' }), { maxRetries: 5 });\r\n * export const api = createApi({\r\n * baseQuery: staggeredBaseQuery,\r\n * endpoints: (build) => ({\r\n * getPosts: build.query({\r\n * query: () => ({ url: 'posts' }),\r\n * }),\r\n * getPost: build.query({\r\n * query: (id) => ({ url: `post/${id}` }),\r\n * extraOptions: { maxRetries: 8 }, // You can override the retry behavior on each endpoint\r\n * }),\r\n * }),\r\n * });\r\n *\r\n * export const { useGetPostsQuery, useGetPostQuery } = api;\r\n * ```\r\n */\r\nexport const retry = /* @__PURE__ */ Object.assign(retryWithBackoff, { fail })\r\n", "import type {\r\n ThunkDispatch,\r\n ActionCreatorWithoutPayload, // Workaround for API-Extractor\r\n} from '@reduxjs/toolkit'\r\nimport { createAction } from '@reduxjs/toolkit'\r\n\r\nexport const onFocus = /* @__PURE__ */ createAction('__rtkq/focused')\r\nexport const onFocusLost = /* @__PURE__ */ createAction('__rtkq/unfocused')\r\nexport const onOnline = /* @__PURE__ */ createAction('__rtkq/online')\r\nexport const onOffline = /* @__PURE__ */ createAction('__rtkq/offline')\r\n\r\nlet initialized = false\r\n\r\n/**\r\n * A utility used to enable `refetchOnMount` and `refetchOnReconnect` behaviors.\r\n * It requires the dispatch method from your store.\r\n * Calling `setupListeners(store.dispatch)` will configure listeners with the recommended defaults,\r\n * but you have the option of providing a callback for more granular control.\r\n *\r\n * @example\r\n * ```ts\r\n * setupListeners(store.dispatch)\r\n * ```\r\n *\r\n * @param dispatch - The dispatch method from your store\r\n * @param customHandler - An optional callback for more granular control over listener behavior\r\n * @returns Return value of the handler.\r\n * The default handler returns an `unsubscribe` method that can be called to remove the listeners.\r\n */\r\nexport function setupListeners(\r\n dispatch: ThunkDispatch,\r\n customHandler?: (\r\n dispatch: ThunkDispatch,\r\n actions: {\r\n onFocus: typeof onFocus\r\n onFocusLost: typeof onFocusLost\r\n onOnline: typeof onOnline\r\n onOffline: typeof onOffline\r\n }\r\n ) => () => void\r\n) {\r\n function defaultHandler() {\r\n const handleFocus = () => dispatch(onFocus())\r\n const handleFocusLost = () => dispatch(onFocusLost())\r\n const handleOnline = () => dispatch(onOnline())\r\n const handleOffline = () => dispatch(onOffline())\r\n const handleVisibilityChange = () => {\r\n if (window.document.visibilityState === 'visible') {\r\n handleFocus()\r\n } else {\r\n handleFocusLost()\r\n }\r\n }\r\n\r\n if (!initialized) {\r\n if (typeof window !== 'undefined' && window.addEventListener) {\r\n // Handle focus events\r\n window.addEventListener(\r\n 'visibilitychange',\r\n handleVisibilityChange,\r\n false\r\n )\r\n window.addEventListener('focus', handleFocus, false)\r\n\r\n // Handle connection events\r\n window.addEventListener('online', handleOnline, false)\r\n window.addEventListener('offline', handleOffline, false)\r\n initialized = true\r\n }\r\n }\r\n const unsubscribe = () => {\r\n window.removeEventListener('focus', handleFocus)\r\n window.removeEventListener('visibilitychange', handleVisibilityChange)\r\n window.removeEventListener('online', handleOnline)\r\n window.removeEventListener('offline', handleOffline)\r\n initialized = false\r\n }\r\n return unsubscribe\r\n }\r\n\r\n return customHandler\r\n ? customHandler(dispatch, { onFocus, onFocusLost, onOffline, onOnline })\r\n : defaultHandler()\r\n}\r\n", "import { createNextState, createSelector } from '@reduxjs/toolkit'\r\nimport type {\r\n MutationSubState,\r\n QuerySubState,\r\n RootState as _RootState,\r\n RequestStatusFlags,\r\n QueryCacheKey,\r\n} from './apiState'\r\nimport { QueryStatus, getRequestStatusFlags } from './apiState'\r\nimport type {\r\n EndpointDefinitions,\r\n QueryDefinition,\r\n MutationDefinition,\r\n QueryArgFrom,\r\n TagTypesFrom,\r\n ReducerPathFrom,\r\n TagDescription,\r\n} from '../endpointDefinitions'\r\nimport { expandTagDescription } from '../endpointDefinitions'\r\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'\r\nimport { getMutationCacheKey } from './buildSlice'\r\nimport { flatten } from '../utils'\r\n\r\nexport type SkipToken = typeof skipToken\r\n/**\r\n * Can be passed into `useQuery`, `useQueryState` or `useQuerySubscription`\r\n * instead of the query argument to get the same effect as if setting\r\n * `skip: true` in the query options.\r\n *\r\n * Useful for scenarios where a query should be skipped when `arg` is `undefined`\r\n * and TypeScript complains about it because `arg` is not allowed to be passed\r\n * in as `undefined`, such as\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"will error if the query argument is not allowed to be undefined\" no-transpile\r\n * useSomeQuery(arg, { skip: !!arg })\r\n * ```\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"using skipToken instead\" no-transpile\r\n * useSomeQuery(arg ?? skipToken)\r\n * ```\r\n *\r\n * If passed directly into a query or mutation selector, that selector will always\r\n * return an uninitialized state.\r\n */\r\nexport const skipToken = /* @__PURE__ */ Symbol.for('RTKQ/skipToken')\r\n/** @deprecated renamed to `skipToken` */\r\nexport const skipSelector = skipToken\r\n\r\ndeclare module './module' {\r\n export interface ApiEndpointQuery<\r\n Definition extends QueryDefinition,\r\n Definitions extends EndpointDefinitions\r\n > {\r\n select: QueryResultSelectorFactory<\r\n Definition,\r\n _RootState<\r\n Definitions,\r\n TagTypesFrom,\r\n ReducerPathFrom\r\n >\r\n >\r\n }\r\n\r\n export interface ApiEndpointMutation<\r\n Definition extends MutationDefinition,\r\n Definitions extends EndpointDefinitions\r\n > {\r\n select: MutationResultSelectorFactory<\r\n Definition,\r\n _RootState<\r\n Definitions,\r\n TagTypesFrom,\r\n ReducerPathFrom\r\n >\r\n >\r\n }\r\n}\r\n\r\ntype QueryResultSelectorFactory<\r\n Definition extends QueryDefinition,\r\n RootState\r\n> = (\r\n queryArg: QueryArgFrom | SkipToken\r\n) => (state: RootState) => QueryResultSelectorResult\r\n\r\nexport type QueryResultSelectorResult<\r\n Definition extends QueryDefinition\r\n> = QuerySubState & RequestStatusFlags\r\n\r\ntype MutationResultSelectorFactory<\r\n Definition extends MutationDefinition,\r\n RootState\r\n> = (\r\n requestId:\r\n | string\r\n | { requestId: string | undefined; fixedCacheKey: string | undefined }\r\n | SkipToken\r\n) => (state: RootState) => MutationResultSelectorResult\r\n\r\nexport type MutationResultSelectorResult<\r\n Definition extends MutationDefinition\r\n> = MutationSubState & RequestStatusFlags\r\n\r\nconst initialSubState: QuerySubState = {\r\n status: QueryStatus.uninitialized as const,\r\n}\r\n\r\n// abuse immer to freeze default states\r\nconst defaultQuerySubState = /* @__PURE__ */ createNextState(\r\n initialSubState,\r\n () => {}\r\n)\r\nconst defaultMutationSubState = /* @__PURE__ */ createNextState(\r\n initialSubState as MutationSubState,\r\n () => {}\r\n)\r\n\r\nexport function buildSelectors<\r\n Definitions extends EndpointDefinitions,\r\n ReducerPath extends string\r\n>({\r\n serializeQueryArgs,\r\n reducerPath,\r\n}: {\r\n serializeQueryArgs: InternalSerializeQueryArgs\r\n reducerPath: ReducerPath\r\n}) {\r\n type RootState = _RootState\r\n\r\n const selectSkippedQuery = (state: RootState) => defaultQuerySubState\r\n const selectSkippedMutation = (state: RootState) => defaultMutationSubState\r\n\r\n return { buildQuerySelector, buildMutationSelector, selectInvalidatedBy }\r\n\r\n function withRequestFlags(\r\n substate: T\r\n ): T & RequestStatusFlags {\r\n return {\r\n ...substate,\r\n ...getRequestStatusFlags(substate.status),\r\n }\r\n }\r\n\r\n function selectInternalState(rootState: RootState) {\r\n const state = rootState[reducerPath]\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!state) {\r\n if ((selectInternalState as any).triggered) return state\r\n ;(selectInternalState as any).triggered = true\r\n console.error(\r\n `Error: No data found at \\`state.${reducerPath}\\`. Did you forget to add the reducer to the store?`\r\n )\r\n }\r\n }\r\n return state\r\n }\r\n\r\n function buildQuerySelector(\r\n endpointName: string,\r\n endpointDefinition: QueryDefinition\r\n ) {\r\n return ((queryArgs: any) => {\r\n const serializedArgs = serializeQueryArgs({\r\n queryArgs,\r\n endpointDefinition,\r\n endpointName,\r\n })\r\n const selectQuerySubstate = (state: RootState) =>\r\n selectInternalState(state)?.queries?.[serializedArgs] ??\r\n defaultQuerySubState\r\n const finalSelectQuerySubState =\r\n queryArgs === skipToken ? selectSkippedQuery : selectQuerySubstate\r\n\r\n return createSelector(finalSelectQuerySubState, withRequestFlags)\r\n }) as QueryResultSelectorFactory\r\n }\r\n\r\n function buildMutationSelector() {\r\n return ((id) => {\r\n let mutationId: string | typeof skipToken\r\n if (typeof id === 'object') {\r\n mutationId = getMutationCacheKey(id) ?? skipToken\r\n } else {\r\n mutationId = id\r\n }\r\n const selectMutationSubstate = (state: RootState) =>\r\n selectInternalState(state)?.mutations?.[mutationId as string] ??\r\n defaultMutationSubState\r\n const finalSelectMutationSubstate =\r\n mutationId === skipToken\r\n ? selectSkippedMutation\r\n : selectMutationSubstate\r\n\r\n return createSelector(finalSelectMutationSubstate, withRequestFlags)\r\n }) as MutationResultSelectorFactory\r\n }\r\n\r\n function selectInvalidatedBy(\r\n state: RootState,\r\n tags: ReadonlyArray>\r\n ): Array<{\r\n endpointName: string\r\n originalArgs: any\r\n queryCacheKey: QueryCacheKey\r\n }> {\r\n const apiState = state[reducerPath]\r\n const toInvalidate = new Set()\r\n for (const tag of tags.map(expandTagDescription)) {\r\n const provided = apiState.provided[tag.type]\r\n if (!provided) {\r\n continue\r\n }\r\n\r\n let invalidateSubscriptions =\r\n (tag.id !== undefined\r\n ? // id given: invalidate all queries that provide this type & id\r\n provided[tag.id]\r\n : // no id: invalidate all queries that provide this type\r\n flatten(Object.values(provided))) ?? []\r\n\r\n for (const invalidate of invalidateSubscriptions) {\r\n toInvalidate.add(invalidate)\r\n }\r\n }\r\n\r\n return flatten(\r\n Array.from(toInvalidate.values()).map((queryCacheKey) => {\r\n const querySubState = apiState.queries[queryCacheKey]\r\n return querySubState\r\n ? [\r\n {\r\n queryCacheKey,\r\n endpointName: querySubState.endpointName!,\r\n originalArgs: querySubState.originalArgs,\r\n },\r\n ]\r\n : []\r\n })\r\n )\r\n }\r\n}\r\n", "import type { AnyAction, ThunkDispatch } from '@reduxjs/toolkit'\r\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs'\r\nimport type { QuerySubState, RootState } from './core/apiState'\r\nimport type {\r\n BaseQueryExtraOptions,\r\n BaseQueryFn,\r\n BaseQueryResult,\r\n BaseQueryArg,\r\n BaseQueryApi,\r\n QueryReturnValue,\r\n BaseQueryError,\r\n BaseQueryMeta,\r\n} from './baseQueryTypes'\r\nimport type {\r\n HasRequiredProps,\r\n MaybePromise,\r\n OmitFromUnion,\r\n CastAny,\r\n NonUndefined,\r\n} from './tsHelpers'\r\nimport type { NEVER } from './fakeBaseQuery'\r\nimport type { Api } from '@reduxjs/toolkit/query'\r\n\r\nconst resultType = /* @__PURE__ */ Symbol()\r\nconst baseQuery = /* @__PURE__ */ Symbol()\r\n\r\ninterface EndpointDefinitionWithQuery<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> {\r\n /**\r\n * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"query example\"\r\n *\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * tagTypes: ['Post'],\r\n * endpoints: (build) => ({\r\n * getPosts: build.query({\r\n * // highlight-start\r\n * query: () => 'posts',\r\n * // highlight-end\r\n * }),\r\n * addPost: build.mutation>({\r\n * // highlight-start\r\n * query: (body) => ({\r\n * url: `posts`,\r\n * method: 'POST',\r\n * body,\r\n * }),\r\n * // highlight-end\r\n * invalidatesTags: [{ type: 'Post', id: 'LIST' }],\r\n * }),\r\n * })\r\n * })\r\n * ```\r\n */\r\n query(arg: QueryArg): BaseQueryArg\r\n queryFn?: never\r\n /**\r\n * A function to manipulate the data returned by a query or mutation.\r\n */\r\n transformResponse?(\r\n baseQueryReturnValue: BaseQueryResult,\r\n meta: BaseQueryMeta,\r\n arg: QueryArg\r\n ): ResultType | Promise\r\n /**\r\n * A function to manipulate the data returned by a failed query or mutation.\r\n */\r\n transformErrorResponse?(\r\n baseQueryReturnValue: BaseQueryError,\r\n meta: BaseQueryMeta,\r\n arg: QueryArg\r\n ): unknown\r\n /**\r\n * Defaults to `true`.\r\n *\r\n * Most apps should leave this setting on. The only time it can be a performance issue\r\n * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\r\n * you're unable to paginate it.\r\n *\r\n * For details of how this works, please see the below. When it is set to `false`,\r\n * every request will cause subscribed components to rerender, even when the data has not changed.\r\n *\r\n * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\r\n */\r\n structuralSharing?: boolean\r\n}\r\n\r\ninterface EndpointDefinitionWithQueryFn<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> {\r\n /**\r\n * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Basic queryFn example\"\r\n *\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * getPosts: build.query({\r\n * query: () => 'posts',\r\n * }),\r\n * flipCoin: build.query<'heads' | 'tails', void>({\r\n * // highlight-start\r\n * queryFn(arg, queryApi, extraOptions, baseQuery) {\r\n * const randomVal = Math.random()\r\n * if (randomVal < 0.45) {\r\n * return { data: 'heads' }\r\n * }\r\n * if (randomVal < 0.9) {\r\n * return { data: 'tails' }\r\n * }\r\n * return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on it's edge!\" } }\r\n * }\r\n * // highlight-end\r\n * })\r\n * })\r\n * })\r\n * ```\r\n */\r\n queryFn(\r\n arg: QueryArg,\r\n api: BaseQueryApi,\r\n extraOptions: BaseQueryExtraOptions,\r\n baseQuery: (arg: Parameters[0]) => ReturnType\r\n ): MaybePromise>>\r\n query?: never\r\n transformResponse?: never\r\n transformErrorResponse?: never\r\n /**\r\n * Defaults to `true`.\r\n *\r\n * Most apps should leave this setting on. The only time it can be a performance issue\r\n * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\r\n * you're unable to paginate it.\r\n *\r\n * For details of how this works, please see the below. When it is set to `false`,\r\n * every request will cause subscribed components to rerender, even when the data has not changed.\r\n *\r\n * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\r\n */\r\n structuralSharing?: boolean\r\n}\r\n\r\nexport interface BaseEndpointTypes<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> {\r\n QueryArg: QueryArg\r\n BaseQuery: BaseQuery\r\n ResultType: ResultType\r\n}\r\n\r\nexport type BaseEndpointDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> = (\r\n | ([CastAny, {}>] extends [NEVER]\r\n ? never\r\n : EndpointDefinitionWithQuery)\r\n | EndpointDefinitionWithQueryFn\r\n) & {\r\n /* phantom type */\r\n [resultType]?: ResultType\r\n /* phantom type */\r\n [baseQuery]?: BaseQuery\r\n} & HasRequiredProps<\r\n BaseQueryExtraOptions,\r\n { extraOptions: BaseQueryExtraOptions },\r\n { extraOptions?: BaseQueryExtraOptions }\r\n >\r\n\r\nexport enum DefinitionType {\r\n query = 'query',\r\n mutation = 'mutation',\r\n}\r\n\r\nexport type GetResultDescriptionFn<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n ErrorType,\r\n MetaType\r\n> = (\r\n result: ResultType | undefined,\r\n error: ErrorType | undefined,\r\n arg: QueryArg,\r\n meta: MetaType\r\n) => ReadonlyArray>\r\n\r\nexport type FullTagDescription = {\r\n type: TagType\r\n id?: number | string\r\n}\r\nexport type TagDescription = TagType | FullTagDescription\r\nexport type ResultDescription<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n ErrorType,\r\n MetaType\r\n> =\r\n | ReadonlyArray>\r\n | GetResultDescriptionFn\r\n\r\n/** @deprecated please use `onQueryStarted` instead */\r\nexport interface QueryApi {\r\n /** @deprecated please use `onQueryStarted` instead */\r\n dispatch: ThunkDispatch\r\n /** @deprecated please use `onQueryStarted` instead */\r\n getState(): RootState\r\n /** @deprecated please use `onQueryStarted` instead */\r\n extra: unknown\r\n /** @deprecated please use `onQueryStarted` instead */\r\n requestId: string\r\n /** @deprecated please use `onQueryStarted` instead */\r\n context: Context\r\n}\r\n\r\nexport interface QueryTypes<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> extends BaseEndpointTypes {\r\n /**\r\n * The endpoint definition type. To be used with some internal generic types.\r\n * @example\r\n * ```ts\r\n * const useMyWrappedHook: UseQuery = ...\r\n * ```\r\n */\r\n QueryDefinition: QueryDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n ResultType,\r\n ReducerPath\r\n >\r\n TagTypes: TagTypes\r\n ReducerPath: ReducerPath\r\n}\r\n\r\nexport interface QueryExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n> {\r\n type: DefinitionType.query\r\n /**\r\n * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\r\n * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\r\n * 1. `['Post']` - equivalent to `2`\r\n * 2. `[{ type: 'Post' }]` - equivalent to `1`\r\n * 3. `[{ type: 'Post', id: 1 }]`\r\n * 4. `(result, error, arg) => ['Post']` - equivalent to `5`\r\n * 5. `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\r\n * 6. `(result, error, arg) => [{ type: 'Post', id: 1 }]`\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"providesTags example\"\r\n *\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * tagTypes: ['Posts'],\r\n * endpoints: (build) => ({\r\n * getPosts: build.query({\r\n * query: () => 'posts',\r\n * // highlight-start\r\n * providesTags: (result) =>\r\n * result\r\n * ? [\r\n * ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\r\n * { type: 'Posts', id: 'LIST' },\r\n * ]\r\n * : [{ type: 'Posts', id: 'LIST' }],\r\n * // highlight-end\r\n * })\r\n * })\r\n * })\r\n * ```\r\n */\r\n providesTags?: ResultDescription<\r\n TagTypes,\r\n ResultType,\r\n QueryArg,\r\n BaseQueryError,\r\n BaseQueryMeta\r\n >\r\n /**\r\n * Not to be used. A query should not invalidate tags in the cache.\r\n */\r\n invalidatesTags?: never\r\n\r\n /**\r\n * Can be provided to return a custom cache key value based on the query arguments.\r\n *\r\n * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key. It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\r\n *\r\n * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean. If it returns a string, that value will be used as the cache key directly. If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`. This simplifies the use case of stripping out args you don't want included in the cache key.\r\n *\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\r\n *\r\n * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * interface MyApiClient {\r\n * fetchPost: (id: string) => Promise\r\n * }\r\n *\r\n * createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * // Example: an endpoint with an API client passed in as an argument,\r\n * // but only the item ID should be used as the cache key\r\n * getPost: build.query({\r\n * queryFn: async ({ id, client }) => {\r\n * const post = await client.fetchPost(id)\r\n * return { data: post }\r\n * },\r\n * // highlight-start\r\n * serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\r\n * const { id } = queryArgs\r\n * // This can return a string, an object, a number, or a boolean.\r\n * // If it returns an object, number or boolean, that value\r\n * // will be serialized automatically via `defaultSerializeQueryArgs`\r\n * return { id } // omit `client` from the cache key\r\n *\r\n * // Alternately, you can use `defaultSerializeQueryArgs` yourself:\r\n * // return defaultSerializeQueryArgs({\r\n * // endpointName,\r\n * // queryArgs: { id },\r\n * // endpointDefinition\r\n * // })\r\n * // Or create and return a string yourself:\r\n * // return `getPost(${id})`\r\n * },\r\n * // highlight-end\r\n * }),\r\n * }),\r\n *})\r\n * ```\r\n */\r\n serializeQueryArgs?: SerializeQueryArgs<\r\n QueryArg,\r\n string | number | boolean | Record\r\n >\r\n\r\n /**\r\n * Can be provided to merge an incoming response value into the current cache data.\r\n * If supplied, no automatic structural sharing will be applied - it's up to\r\n * you to update the cache appropriately.\r\n *\r\n * Since RTKQ normally replaces cache entries with the new response, you will usually\r\n * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\r\n * an existing cache entry so that it can be updated.\r\n *\r\n * Since this is wrapped with Immer, you , you may either mutate the `currentCacheValue` directly,\r\n * or return a new value, but _not_ both at once.\r\n *\r\n * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\r\n * the cache entry will just save the response data directly.\r\n *\r\n * Useful if you don't want a new request to completely override the current cache value,\r\n * maybe because you have manually updated it from another source and don't want those\r\n * updates to get lost.\r\n *\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"merge: pagination\"\r\n *\r\n * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * listItems: build.query({\r\n * query: (pageNumber) => `/listItems?page=${pageNumber}`,\r\n * // Only have one cache entry because the arg always maps to one string\r\n * serializeQueryArgs: ({ endpointName }) => {\r\n * return endpointName\r\n * },\r\n * // Always merge incoming data to the cache entry\r\n * merge: (currentCache, newItems) => {\r\n * currentCache.push(...newItems)\r\n * },\r\n * // Refetch when the page arg changes\r\n * forceRefetch({ currentArg, previousArg }) {\r\n * return currentArg !== previousArg\r\n * },\r\n * }),\r\n * }),\r\n *})\r\n * ```\r\n */\r\n merge?(\r\n currentCacheData: ResultType,\r\n responseData: ResultType,\r\n otherArgs: {\r\n arg: QueryArg\r\n baseQueryMeta: BaseQueryMeta\r\n requestId: string\r\n fulfilledTimeStamp: number\r\n }\r\n ): ResultType | void\r\n\r\n /**\r\n * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\r\n * This is primarily useful for \"infinite scroll\" / pagination use cases where\r\n * RTKQ is keeping a single cache entry that is added to over time, in combination\r\n * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\r\n * set to add incoming data to the cache entry each time.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"forceRefresh: pagination\"\r\n *\r\n * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * listItems: build.query({\r\n * query: (pageNumber) => `/listItems?page=${pageNumber}`,\r\n * // Only have one cache entry because the arg always maps to one string\r\n * serializeQueryArgs: ({ endpointName }) => {\r\n * return endpointName\r\n * },\r\n * // Always merge incoming data to the cache entry\r\n * merge: (currentCache, newItems) => {\r\n * currentCache.push(...newItems)\r\n * },\r\n * // Refetch when the page arg changes\r\n * forceRefetch({ currentArg, previousArg }) {\r\n * return currentArg !== previousArg\r\n * },\r\n * }),\r\n * }),\r\n *})\r\n * ```\r\n */\r\n forceRefetch?(params: {\r\n currentArg: QueryArg | undefined\r\n previousArg: QueryArg | undefined\r\n state: RootState\r\n endpointState?: QuerySubState\r\n }): boolean\r\n\r\n /**\r\n * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\r\n */\r\n Types?: QueryTypes\r\n}\r\n\r\nexport type QueryDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> = BaseEndpointDefinition &\r\n QueryExtraOptions\r\n\r\nexport interface MutationTypes<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> extends BaseEndpointTypes {\r\n /**\r\n * The endpoint definition type. To be used with some internal generic types.\r\n * @example\r\n * ```ts\r\n * const useMyWrappedHook: UseMutation = ...\r\n * ```\r\n */\r\n MutationDefinition: MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n ResultType,\r\n ReducerPath\r\n >\r\n TagTypes: TagTypes\r\n ReducerPath: ReducerPath\r\n}\r\n\r\nexport interface MutationExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n> {\r\n type: DefinitionType.mutation\r\n /**\r\n * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\r\n * Expects the same shapes as `providesTags`.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"invalidatesTags example\"\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * tagTypes: ['Posts'],\r\n * endpoints: (build) => ({\r\n * getPosts: build.query({\r\n * query: () => 'posts',\r\n * providesTags: (result) =>\r\n * result\r\n * ? [\r\n * ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\r\n * { type: 'Posts', id: 'LIST' },\r\n * ]\r\n * : [{ type: 'Posts', id: 'LIST' }],\r\n * }),\r\n * addPost: build.mutation>({\r\n * query(body) {\r\n * return {\r\n * url: `posts`,\r\n * method: 'POST',\r\n * body,\r\n * }\r\n * },\r\n * // highlight-start\r\n * invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\r\n * // highlight-end\r\n * }),\r\n * })\r\n * })\r\n * ```\r\n */\r\n invalidatesTags?: ResultDescription<\r\n TagTypes,\r\n ResultType,\r\n QueryArg,\r\n BaseQueryError,\r\n BaseQueryMeta\r\n >\r\n /**\r\n * Not to be used. A mutation should not provide tags to the cache.\r\n */\r\n providesTags?: never\r\n\r\n /**\r\n * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\r\n */\r\n Types?: MutationTypes\r\n}\r\n\r\nexport type MutationDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> = BaseEndpointDefinition &\r\n MutationExtraOptions\r\n\r\nexport type EndpointDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> =\r\n | QueryDefinition\r\n | MutationDefinition\r\n\r\nexport type EndpointDefinitions = Record<\r\n string,\r\n EndpointDefinition\r\n>\r\n\r\nexport function isQueryDefinition(\r\n e: EndpointDefinition\r\n): e is QueryDefinition {\r\n return e.type === DefinitionType.query\r\n}\r\n\r\nexport function isMutationDefinition(\r\n e: EndpointDefinition\r\n): e is MutationDefinition {\r\n return e.type === DefinitionType.mutation\r\n}\r\n\r\nexport type EndpointBuilder<\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ReducerPath extends string\r\n> = {\r\n /**\r\n * An endpoint definition that retrieves data, and may provide tags to the cache.\r\n *\r\n * @example\r\n * ```js\r\n * // codeblock-meta title=\"Example of all query endpoint options\"\r\n * const api = createApi({\r\n * baseQuery,\r\n * endpoints: (build) => ({\r\n * getPost: build.query({\r\n * query: (id) => ({ url: `post/${id}` }),\r\n * // Pick out data and prevent nested properties in a hook or selector\r\n * transformResponse: (response) => response.data,\r\n * // Pick out error and prevent nested properties in a hook or selector\r\n * transformErrorResponse: (response) => response.error,\r\n * // `result` is the server response\r\n * providesTags: (result, error, id) => [{ type: 'Post', id }],\r\n * // trigger side effects or optimistic updates\r\n * onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\r\n * // handle subscriptions etc\r\n * onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\r\n * }),\r\n * }),\r\n *});\r\n *```\r\n */\r\n query(\r\n definition: OmitFromUnion<\r\n QueryDefinition,\r\n 'type'\r\n >\r\n ): QueryDefinition\r\n /**\r\n * An endpoint definition that alters data on the server or will possibly invalidate the cache.\r\n *\r\n * @example\r\n * ```js\r\n * // codeblock-meta title=\"Example of all mutation endpoint options\"\r\n * const api = createApi({\r\n * baseQuery,\r\n * endpoints: (build) => ({\r\n * updatePost: build.mutation({\r\n * query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\r\n * // Pick out data and prevent nested properties in a hook or selector\r\n * transformResponse: (response) => response.data,\r\n * // Pick out error and prevent nested properties in a hook or selector\r\n * transformErrorResponse: (response) => response.error,\r\n * // `result` is the server response\r\n * invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\r\n * // trigger side effects or optimistic updates\r\n * onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\r\n * // handle subscriptions etc\r\n * onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\r\n * }),\r\n * }),\r\n * });\r\n * ```\r\n */\r\n mutation(\r\n definition: OmitFromUnion<\r\n MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n ResultType,\r\n ReducerPath\r\n >,\r\n 'type'\r\n >\r\n ): MutationDefinition\r\n}\r\n\r\nexport type AssertTagTypes = >(t: T) => T\r\n\r\nexport function calculateProvidedBy(\r\n description:\r\n | ResultDescription\r\n | undefined,\r\n result: ResultType | undefined,\r\n error: ErrorType | undefined,\r\n queryArg: QueryArg,\r\n meta: MetaType | undefined,\r\n assertTagTypes: AssertTagTypes\r\n): readonly FullTagDescription[] {\r\n if (isFunction(description)) {\r\n return description(\r\n result as ResultType,\r\n error as undefined,\r\n queryArg,\r\n meta as MetaType\r\n )\r\n .map(expandTagDescription)\r\n .map(assertTagTypes)\r\n }\r\n if (Array.isArray(description)) {\r\n return description.map(expandTagDescription).map(assertTagTypes)\r\n }\r\n return []\r\n}\r\n\r\nfunction isFunction(t: T): t is Extract {\r\n return typeof t === 'function'\r\n}\r\n\r\nexport function expandTagDescription(\r\n description: TagDescription\r\n): FullTagDescription {\r\n return typeof description === 'string' ? { type: description } : description\r\n}\r\n\r\nexport type QueryArgFrom> =\r\n D extends BaseEndpointDefinition ? QA : unknown\r\nexport type ResultTypeFrom> =\r\n D extends BaseEndpointDefinition ? RT : unknown\r\n\r\nexport type ReducerPathFrom<\r\n D extends EndpointDefinition\r\n> = D extends EndpointDefinition ? RP : unknown\r\n\r\nexport type TagTypesFrom> =\r\n D extends EndpointDefinition ? RP : unknown\r\n\r\nexport type TagTypesFromApi = T extends Api\r\n ? TagTypes\r\n : never\r\n\r\nexport type DefinitionsFromApi = T extends Api<\r\n any,\r\n infer Definitions,\r\n any,\r\n any\r\n>\r\n ? Definitions\r\n : never\r\n\r\nexport type TransformedResponse<\r\n NewDefinitions extends EndpointDefinitions,\r\n K,\r\n ResultType\r\n> = K extends keyof NewDefinitions\r\n ? NewDefinitions[K]['transformResponse'] extends undefined\r\n ? ResultType\r\n : ReturnType>\r\n : ResultType\r\n\r\nexport type OverrideResultType =\r\n Definition extends QueryDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n infer TagTypes,\r\n any,\r\n infer ReducerPath\r\n >\r\n ? QueryDefinition\r\n : Definition extends MutationDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n infer TagTypes,\r\n any,\r\n infer ReducerPath\r\n >\r\n ? MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n NewResultType,\r\n ReducerPath\r\n >\r\n : never\r\n\r\nexport type UpdateDefinitions<\r\n Definitions extends EndpointDefinitions,\r\n NewTagTypes extends string,\r\n NewDefinitions extends EndpointDefinitions\r\n> = {\r\n [K in keyof Definitions]: Definitions[K] extends QueryDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n any,\r\n infer ResultType,\r\n infer ReducerPath\r\n >\r\n ? QueryDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n NewTagTypes,\r\n TransformedResponse,\r\n ReducerPath\r\n >\r\n : Definitions[K] extends MutationDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n any,\r\n infer ResultType,\r\n infer ReducerPath\r\n >\r\n ? MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n NewTagTypes,\r\n TransformedResponse,\r\n ReducerPath\r\n >\r\n : never\r\n}\r\n", "import type { AnyAction, PayloadAction } from '@reduxjs/toolkit'\r\nimport {\r\n combineReducers,\r\n createAction,\r\n createSlice,\r\n isAnyOf,\r\n isFulfilled,\r\n isRejectedWithValue,\r\n createNextState,\r\n prepareAutoBatched,\r\n} from '@reduxjs/toolkit'\r\nimport type {\r\n CombinedState as CombinedQueryState,\r\n QuerySubstateIdentifier,\r\n QuerySubState,\r\n MutationSubstateIdentifier,\r\n MutationSubState,\r\n MutationState,\r\n QueryState,\r\n InvalidationState,\r\n Subscribers,\r\n QueryCacheKey,\r\n SubscriptionState,\r\n ConfigState,\r\n} from './apiState'\r\nimport { QueryStatus } from './apiState'\r\nimport type { MutationThunk, QueryThunk, RejectedAction } from './buildThunks'\r\nimport { calculateProvidedByThunk } from './buildThunks'\r\nimport type {\r\n AssertTagTypes,\r\n EndpointDefinitions,\r\n QueryDefinition,\r\n} from '../endpointDefinitions'\r\nimport type { Patch } from 'immer'\r\nimport { isDraft } from 'immer'\r\nimport { applyPatches, original } from 'immer'\r\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners'\r\nimport {\r\n isDocumentVisible,\r\n isOnline,\r\n copyWithStructuralSharing,\r\n} from '../utils'\r\nimport type { ApiContext } from '../apiTypes'\r\nimport { isUpsertQuery } from './buildInitiate'\r\n\r\nfunction updateQuerySubstateIfExists(\r\n state: QueryState,\r\n queryCacheKey: QueryCacheKey,\r\n update: (substate: QuerySubState) => void\r\n) {\r\n const substate = state[queryCacheKey]\r\n if (substate) {\r\n update(substate)\r\n }\r\n}\r\n\r\nexport function getMutationCacheKey(\r\n id:\r\n | MutationSubstateIdentifier\r\n | { requestId: string; arg: { fixedCacheKey?: string | undefined } }\r\n): string\r\nexport function getMutationCacheKey(id: {\r\n fixedCacheKey?: string\r\n requestId?: string\r\n}): string | undefined\r\n\r\nexport function getMutationCacheKey(\r\n id:\r\n | { fixedCacheKey?: string; requestId?: string }\r\n | MutationSubstateIdentifier\r\n | { requestId: string; arg: { fixedCacheKey?: string | undefined } }\r\n): string | undefined {\r\n return ('arg' in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId\r\n}\r\n\r\nfunction updateMutationSubstateIfExists(\r\n state: MutationState,\r\n id:\r\n | MutationSubstateIdentifier\r\n | { requestId: string; arg: { fixedCacheKey?: string | undefined } },\r\n update: (substate: MutationSubState) => void\r\n) {\r\n const substate = state[getMutationCacheKey(id)]\r\n if (substate) {\r\n update(substate)\r\n }\r\n}\r\n\r\nconst initialState = {} as any\r\n\r\nexport function buildSlice({\r\n reducerPath,\r\n queryThunk,\r\n mutationThunk,\r\n context: {\r\n endpointDefinitions: definitions,\r\n apiUid,\r\n extractRehydrationInfo,\r\n hasRehydrationInfo,\r\n },\r\n assertTagType,\r\n config,\r\n}: {\r\n reducerPath: string\r\n queryThunk: QueryThunk\r\n mutationThunk: MutationThunk\r\n context: ApiContext\r\n assertTagType: AssertTagTypes\r\n config: Omit<\r\n ConfigState,\r\n 'online' | 'focused' | 'middlewareRegistered'\r\n >\r\n}) {\r\n const resetApiState = createAction(`${reducerPath}/resetApiState`)\r\n const querySlice = createSlice({\r\n name: `${reducerPath}/queries`,\r\n initialState: initialState as QueryState,\r\n reducers: {\r\n removeQueryResult: {\r\n reducer(\r\n draft,\r\n { payload: { queryCacheKey } }: PayloadAction\r\n ) {\r\n delete draft[queryCacheKey]\r\n },\r\n prepare: prepareAutoBatched(),\r\n },\r\n queryResultPatched(\r\n draft,\r\n {\r\n payload: { queryCacheKey, patches },\r\n }: PayloadAction<\r\n QuerySubstateIdentifier & { patches: readonly Patch[] }\r\n >\r\n ) {\r\n updateQuerySubstateIfExists(draft, queryCacheKey, (substate) => {\r\n substate.data = applyPatches(substate.data as any, patches.concat())\r\n })\r\n },\r\n },\r\n extraReducers(builder) {\r\n builder\r\n .addCase(queryThunk.pending, (draft, { meta, meta: { arg } }) => {\r\n const upserting = isUpsertQuery(arg)\r\n if (arg.subscribe || upserting) {\r\n // only initialize substate if we want to subscribe to it\r\n draft[arg.queryCacheKey] ??= {\r\n status: QueryStatus.uninitialized,\r\n endpointName: arg.endpointName,\r\n }\r\n }\r\n\r\n updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {\r\n substate.status = QueryStatus.pending\r\n\r\n substate.requestId =\r\n upserting && substate.requestId\r\n ? // for `upsertQuery` **updates**, keep the current `requestId`\r\n substate.requestId\r\n : // for normal queries or `upsertQuery` **inserts** always update the `requestId`\r\n meta.requestId\r\n if (arg.originalArgs !== undefined) {\r\n substate.originalArgs = arg.originalArgs\r\n }\r\n substate.startedTimeStamp = meta.startedTimeStamp\r\n })\r\n })\r\n .addCase(queryThunk.fulfilled, (draft, { meta, payload }) => {\r\n updateQuerySubstateIfExists(\r\n draft,\r\n meta.arg.queryCacheKey,\r\n (substate) => {\r\n if (\r\n substate.requestId !== meta.requestId &&\r\n !isUpsertQuery(meta.arg)\r\n )\r\n return\r\n const { merge } = definitions[\r\n meta.arg.endpointName\r\n ] as QueryDefinition\r\n substate.status = QueryStatus.fulfilled\r\n\r\n if (merge) {\r\n if (substate.data !== undefined) {\r\n const { fulfilledTimeStamp, arg, baseQueryMeta, requestId } =\r\n meta\r\n // There's existing cache data. Let the user merge it in themselves.\r\n // We're already inside an Immer-powered reducer, and the user could just mutate `substate.data`\r\n // themselves inside of `merge()`. But, they might also want to return a new value.\r\n // Try to let Immer figure that part out, save the result, and assign it to `substate.data`.\r\n let newData = createNextState(\r\n substate.data,\r\n (draftSubstateData) => {\r\n // As usual with Immer, you can mutate _or_ return inside here, but not both\r\n return merge(draftSubstateData, payload, {\r\n arg: arg.originalArgs,\r\n baseQueryMeta,\r\n fulfilledTimeStamp,\r\n requestId,\r\n })\r\n }\r\n )\r\n substate.data = newData\r\n } else {\r\n // Presumably a fresh request. Just cache the response data.\r\n substate.data = payload\r\n }\r\n } else {\r\n // Assign or safely update the cache data.\r\n substate.data =\r\n definitions[meta.arg.endpointName].structuralSharing ?? true\r\n ? copyWithStructuralSharing(\r\n isDraft(substate.data)\r\n ? original(substate.data)\r\n : substate.data,\r\n payload\r\n )\r\n : payload\r\n }\r\n\r\n delete substate.error\r\n substate.fulfilledTimeStamp = meta.fulfilledTimeStamp\r\n }\r\n )\r\n })\r\n .addCase(\r\n queryThunk.rejected,\r\n (draft, { meta: { condition, arg, requestId }, error, payload }) => {\r\n updateQuerySubstateIfExists(\r\n draft,\r\n arg.queryCacheKey,\r\n (substate) => {\r\n if (condition) {\r\n // request was aborted due to condition (another query already running)\r\n } else {\r\n // request failed\r\n if (substate.requestId !== requestId) return\r\n substate.status = QueryStatus.rejected\r\n substate.error = (payload ?? error) as any\r\n }\r\n }\r\n )\r\n }\r\n )\r\n .addMatcher(hasRehydrationInfo, (draft, action) => {\r\n const { queries } = extractRehydrationInfo(action)!\r\n for (const [key, entry] of Object.entries(queries)) {\r\n if (\r\n // do not rehydrate entries that were currently in flight.\r\n entry?.status === QueryStatus.fulfilled ||\r\n entry?.status === QueryStatus.rejected\r\n ) {\r\n draft[key] = entry\r\n }\r\n }\r\n })\r\n },\r\n })\r\n const mutationSlice = createSlice({\r\n name: `${reducerPath}/mutations`,\r\n initialState: initialState as MutationState,\r\n reducers: {\r\n removeMutationResult: {\r\n reducer(draft, { payload }: PayloadAction) {\r\n const cacheKey = getMutationCacheKey(payload)\r\n if (cacheKey in draft) {\r\n delete draft[cacheKey]\r\n }\r\n },\r\n prepare: prepareAutoBatched(),\r\n },\r\n },\r\n extraReducers(builder) {\r\n builder\r\n .addCase(\r\n mutationThunk.pending,\r\n (draft, { meta, meta: { requestId, arg, startedTimeStamp } }) => {\r\n if (!arg.track) return\r\n\r\n draft[getMutationCacheKey(meta)] = {\r\n requestId,\r\n status: QueryStatus.pending,\r\n endpointName: arg.endpointName,\r\n startedTimeStamp,\r\n }\r\n }\r\n )\r\n .addCase(mutationThunk.fulfilled, (draft, { payload, meta }) => {\r\n if (!meta.arg.track) return\r\n\r\n updateMutationSubstateIfExists(draft, meta, (substate) => {\r\n if (substate.requestId !== meta.requestId) return\r\n substate.status = QueryStatus.fulfilled\r\n substate.data = payload\r\n substate.fulfilledTimeStamp = meta.fulfilledTimeStamp\r\n })\r\n })\r\n .addCase(mutationThunk.rejected, (draft, { payload, error, meta }) => {\r\n if (!meta.arg.track) return\r\n\r\n updateMutationSubstateIfExists(draft, meta, (substate) => {\r\n if (substate.requestId !== meta.requestId) return\r\n\r\n substate.status = QueryStatus.rejected\r\n substate.error = (payload ?? error) as any\r\n })\r\n })\r\n .addMatcher(hasRehydrationInfo, (draft, action) => {\r\n const { mutations } = extractRehydrationInfo(action)!\r\n for (const [key, entry] of Object.entries(mutations)) {\r\n if (\r\n // do not rehydrate entries that were currently in flight.\r\n (entry?.status === QueryStatus.fulfilled ||\r\n entry?.status === QueryStatus.rejected) &&\r\n // only rehydrate endpoints that were persisted using a `fixedCacheKey`\r\n key !== entry?.requestId\r\n ) {\r\n draft[key] = entry\r\n }\r\n }\r\n })\r\n },\r\n })\r\n\r\n const invalidationSlice = createSlice({\r\n name: `${reducerPath}/invalidation`,\r\n initialState: initialState as InvalidationState,\r\n reducers: {},\r\n extraReducers(builder) {\r\n builder\r\n .addCase(\r\n querySlice.actions.removeQueryResult,\r\n (draft, { payload: { queryCacheKey } }) => {\r\n for (const tagTypeSubscriptions of Object.values(draft)) {\r\n for (const idSubscriptions of Object.values(\r\n tagTypeSubscriptions\r\n )) {\r\n const foundAt = idSubscriptions.indexOf(queryCacheKey)\r\n if (foundAt !== -1) {\r\n idSubscriptions.splice(foundAt, 1)\r\n }\r\n }\r\n }\r\n }\r\n )\r\n .addMatcher(hasRehydrationInfo, (draft, action) => {\r\n const { provided } = extractRehydrationInfo(action)!\r\n for (const [type, incomingTags] of Object.entries(provided)) {\r\n for (const [id, cacheKeys] of Object.entries(incomingTags)) {\r\n const subscribedQueries = ((draft[type] ??= {})[\r\n id || '__internal_without_id'\r\n ] ??= [])\r\n for (const queryCacheKey of cacheKeys) {\r\n const alreadySubscribed =\r\n subscribedQueries.includes(queryCacheKey)\r\n if (!alreadySubscribed) {\r\n subscribedQueries.push(queryCacheKey)\r\n }\r\n }\r\n }\r\n }\r\n })\r\n .addMatcher(\r\n isAnyOf(isFulfilled(queryThunk), isRejectedWithValue(queryThunk)),\r\n (draft, action) => {\r\n const providedTags = calculateProvidedByThunk(\r\n action,\r\n 'providesTags',\r\n definitions,\r\n assertTagType\r\n )\r\n const { queryCacheKey } = action.meta.arg\r\n\r\n for (const tagTypeSubscriptions of Object.values(draft)) {\r\n for (const idSubscriptions of Object.values(\r\n tagTypeSubscriptions\r\n )) {\r\n const foundAt = idSubscriptions.indexOf(queryCacheKey)\r\n if (foundAt !== -1) {\r\n idSubscriptions.splice(foundAt, 1)\r\n }\r\n }\r\n }\r\n\r\n for (const { type, id } of providedTags) {\r\n const subscribedQueries = ((draft[type] ??= {})[\r\n id || '__internal_without_id'\r\n ] ??= [])\r\n const alreadySubscribed =\r\n subscribedQueries.includes(queryCacheKey)\r\n if (!alreadySubscribed) {\r\n subscribedQueries.push(queryCacheKey)\r\n }\r\n }\r\n }\r\n )\r\n },\r\n })\r\n\r\n // Dummy slice to generate actions\r\n const subscriptionSlice = createSlice({\r\n name: `${reducerPath}/subscriptions`,\r\n initialState: initialState as SubscriptionState,\r\n reducers: {\r\n updateSubscriptionOptions(\r\n d,\r\n a: PayloadAction<\r\n {\r\n endpointName: string\r\n requestId: string\r\n options: Subscribers[number]\r\n } & QuerySubstateIdentifier\r\n >\r\n ) {\r\n // Dummy\r\n },\r\n unsubscribeQueryResult(\r\n d,\r\n a: PayloadAction<{ requestId: string } & QuerySubstateIdentifier>\r\n ) {\r\n // Dummy\r\n },\r\n internal_probeSubscription(\r\n d,\r\n a: PayloadAction<{ queryCacheKey: string; requestId: string }>\r\n ) {\r\n // dummy\r\n },\r\n },\r\n })\r\n\r\n const internalSubscriptionsSlice = createSlice({\r\n name: `${reducerPath}/internalSubscriptions`,\r\n initialState: initialState as SubscriptionState,\r\n reducers: {\r\n subscriptionsUpdated: {\r\n reducer(state, action: PayloadAction) {\r\n return applyPatches(state, action.payload)\r\n },\r\n prepare: prepareAutoBatched(),\r\n },\r\n },\r\n })\r\n\r\n const configSlice = createSlice({\r\n name: `${reducerPath}/config`,\r\n initialState: {\r\n online: isOnline(),\r\n focused: isDocumentVisible(),\r\n middlewareRegistered: false,\r\n ...config,\r\n } as ConfigState,\r\n reducers: {\r\n middlewareRegistered(state, { payload }: PayloadAction) {\r\n state.middlewareRegistered =\r\n state.middlewareRegistered === 'conflict' || apiUid !== payload\r\n ? 'conflict'\r\n : true\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(onOnline, (state) => {\r\n state.online = true\r\n })\r\n .addCase(onOffline, (state) => {\r\n state.online = false\r\n })\r\n .addCase(onFocus, (state) => {\r\n state.focused = true\r\n })\r\n .addCase(onFocusLost, (state) => {\r\n state.focused = false\r\n })\r\n // update the state to be a new object to be picked up as a \"state change\"\r\n // by redux-persist's `autoMergeLevel2`\r\n .addMatcher(hasRehydrationInfo, (draft) => ({ ...draft }))\r\n },\r\n })\r\n\r\n const combinedReducer = combineReducers<\r\n CombinedQueryState\r\n >({\r\n queries: querySlice.reducer,\r\n mutations: mutationSlice.reducer,\r\n provided: invalidationSlice.reducer,\r\n subscriptions: internalSubscriptionsSlice.reducer,\r\n config: configSlice.reducer,\r\n })\r\n\r\n const reducer: typeof combinedReducer = (state, action) =>\r\n combinedReducer(resetApiState.match(action) ? undefined : state, action)\r\n\r\n const actions = {\r\n ...configSlice.actions,\r\n ...querySlice.actions,\r\n ...subscriptionSlice.actions,\r\n ...internalSubscriptionsSlice.actions,\r\n ...mutationSlice.actions,\r\n /** @deprecated has been renamed to `removeMutationResult` */\r\n unsubscribeMutationResult: mutationSlice.actions.removeMutationResult,\r\n resetApiState,\r\n }\r\n\r\n return { reducer, actions }\r\n}\r\nexport type SliceActions = ReturnType['actions']\r\n", "export function isNotNullish(v: T | null | undefined): v is T {\r\n return v != null\r\n}\r\n", "import type {\r\n EndpointDefinitions,\r\n QueryDefinition,\r\n MutationDefinition,\r\n QueryArgFrom,\r\n ResultTypeFrom,\r\n} from '../endpointDefinitions'\r\nimport { DefinitionType, isQueryDefinition } from '../endpointDefinitions'\r\nimport type { QueryThunk, MutationThunk, QueryThunkArg } from './buildThunks'\r\nimport type { AnyAction, ThunkAction, SerializedError } from '@reduxjs/toolkit'\r\nimport type { SubscriptionOptions, RootState } from './apiState'\r\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'\r\nimport type { Api, ApiContext } from '../apiTypes'\r\nimport type { ApiEndpointQuery } from './module'\r\nimport type { BaseQueryError, QueryReturnValue } from '../baseQueryTypes'\r\nimport type { QueryResultSelectorResult } from './buildSelectors'\r\nimport type { Dispatch } from 'redux'\r\nimport { isNotNullish } from '../utils/isNotNullish'\r\n\r\ndeclare module './module' {\r\n export interface ApiEndpointQuery<\r\n Definition extends QueryDefinition,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n > {\r\n initiate: StartQueryActionCreator\r\n }\r\n\r\n export interface ApiEndpointMutation<\r\n Definition extends MutationDefinition,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n > {\r\n initiate: StartMutationActionCreator\r\n }\r\n}\r\n\r\nexport const forceQueryFnSymbol = Symbol('forceQueryFn')\r\nexport const isUpsertQuery = (arg: QueryThunkArg) =>\r\n typeof arg[forceQueryFnSymbol] === 'function'\r\n\r\nexport interface StartQueryActionCreatorOptions {\r\n subscribe?: boolean\r\n forceRefetch?: boolean | number\r\n subscriptionOptions?: SubscriptionOptions\r\n [forceQueryFnSymbol]?: () => QueryReturnValue\r\n}\r\n\r\ntype StartQueryActionCreator<\r\n D extends QueryDefinition\r\n> = (\r\n arg: QueryArgFrom,\r\n options?: StartQueryActionCreatorOptions\r\n) => ThunkAction, any, any, AnyAction>\r\n\r\nexport type QueryActionCreatorResult<\r\n D extends QueryDefinition\r\n> = Promise> & {\r\n arg: QueryArgFrom\r\n requestId: string\r\n subscriptionOptions: SubscriptionOptions | undefined\r\n abort(): void\r\n unwrap(): Promise>\r\n unsubscribe(): void\r\n refetch(): QueryActionCreatorResult\r\n updateSubscriptionOptions(options: SubscriptionOptions): void\r\n queryCacheKey: string\r\n}\r\n\r\ntype StartMutationActionCreator<\r\n D extends MutationDefinition\r\n> = (\r\n arg: QueryArgFrom,\r\n options?: {\r\n /**\r\n * If this mutation should be tracked in the store.\r\n * If you just want to manually trigger this mutation using `dispatch` and don't care about the\r\n * result, state & potential errors being held in store, you can set this to false.\r\n * (defaults to `true`)\r\n */\r\n track?: boolean\r\n fixedCacheKey?: string\r\n }\r\n) => ThunkAction, any, any, AnyAction>\r\n\r\nexport type MutationActionCreatorResult<\r\n D extends MutationDefinition\r\n> = Promise<\r\n | { data: ResultTypeFrom }\r\n | {\r\n error:\r\n | Exclude<\r\n BaseQueryError<\r\n D extends MutationDefinition\r\n ? BaseQuery\r\n : never\r\n >,\r\n undefined\r\n >\r\n | SerializedError\r\n }\r\n> & {\r\n /** @internal */\r\n arg: {\r\n /**\r\n * The name of the given endpoint for the mutation\r\n */\r\n endpointName: string\r\n /**\r\n * The original arguments supplied to the mutation call\r\n */\r\n originalArgs: QueryArgFrom\r\n /**\r\n * Whether the mutation is being tracked in the store.\r\n */\r\n track?: boolean\r\n fixedCacheKey?: string\r\n }\r\n /**\r\n * A unique string generated for the request sequence\r\n */\r\n requestId: string\r\n\r\n /**\r\n * A method to cancel the mutation promise. Note that this is not intended to prevent the mutation\r\n * that was fired off from reaching the server, but only to assist in handling the response.\r\n *\r\n * Calling `abort()` prior to the promise resolving will force it to reach the error state with\r\n * the serialized error:\r\n * `{ name: 'AbortError', message: 'Aborted' }`\r\n *\r\n * @example\r\n * ```ts\r\n * const [updateUser] = useUpdateUserMutation();\r\n *\r\n * useEffect(() => {\r\n * const promise = updateUser(id);\r\n * promise\r\n * .unwrap()\r\n * .catch((err) => {\r\n * if (err.name === 'AbortError') return;\r\n * // else handle the unexpected error\r\n * })\r\n *\r\n * return () => {\r\n * promise.abort();\r\n * }\r\n * }, [id, updateUser])\r\n * ```\r\n */\r\n abort(): void\r\n /**\r\n * Unwraps a mutation call to provide the raw response/error.\r\n *\r\n * @remarks\r\n * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Using .unwrap\"\r\n * addPost({ id: 1, name: 'Example' })\r\n * .unwrap()\r\n * .then((payload) => console.log('fulfilled', payload))\r\n * .catch((error) => console.error('rejected', error));\r\n * ```\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Using .unwrap with async await\"\r\n * try {\r\n * const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\r\n * console.log('fulfilled', payload)\r\n * } catch (error) {\r\n * console.error('rejected', error);\r\n * }\r\n * ```\r\n */\r\n unwrap(): Promise>\r\n /**\r\n * A method to manually unsubscribe from the mutation call, meaning it will be removed from cache after the usual caching grace period.\r\n The value returned by the hook will reset to `isUninitialized` afterwards.\r\n */\r\n reset(): void\r\n /** @deprecated has been renamed to `reset` */\r\n unsubscribe(): void\r\n}\r\n\r\nexport function buildInitiate({\r\n serializeQueryArgs,\r\n queryThunk,\r\n mutationThunk,\r\n api,\r\n context,\r\n}: {\r\n serializeQueryArgs: InternalSerializeQueryArgs\r\n queryThunk: QueryThunk\r\n mutationThunk: MutationThunk\r\n api: Api\r\n context: ApiContext\r\n}) {\r\n const runningQueries: Map<\r\n Dispatch,\r\n Record | undefined>\r\n > = new Map()\r\n const runningMutations: Map<\r\n Dispatch,\r\n Record | undefined>\r\n > = new Map()\r\n\r\n const {\r\n unsubscribeQueryResult,\r\n removeMutationResult,\r\n updateSubscriptionOptions,\r\n } = api.internalActions\r\n return {\r\n buildInitiateQuery,\r\n buildInitiateMutation,\r\n getRunningQueryThunk,\r\n getRunningMutationThunk,\r\n getRunningQueriesThunk,\r\n getRunningMutationsThunk,\r\n getRunningOperationPromises,\r\n removalWarning,\r\n }\r\n\r\n /** @deprecated to be removed in 2.0 */\r\n function removalWarning(): never {\r\n throw new Error(\r\n `This method had to be removed due to a conceptual bug in RTK.\r\n Please see https://github.com/reduxjs/redux-toolkit/pull/2481 for details.\r\n See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for new guidance on SSR.`\r\n )\r\n }\r\n\r\n /** @deprecated to be removed in 2.0 */\r\n function getRunningOperationPromises() {\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n removalWarning()\r\n } else {\r\n const extract = (\r\n v: Map, Record>\r\n ) =>\r\n Array.from(v.values()).flatMap((queriesForStore) =>\r\n queriesForStore ? Object.values(queriesForStore) : []\r\n )\r\n return [...extract(runningQueries), ...extract(runningMutations)].filter(\r\n isNotNullish\r\n )\r\n }\r\n }\r\n\r\n function getRunningQueryThunk(endpointName: string, queryArgs: any) {\r\n return (dispatch: Dispatch) => {\r\n const endpointDefinition = context.endpointDefinitions[endpointName]\r\n const queryCacheKey = serializeQueryArgs({\r\n queryArgs,\r\n endpointDefinition,\r\n endpointName,\r\n })\r\n return runningQueries.get(dispatch)?.[queryCacheKey] as\r\n | QueryActionCreatorResult\r\n | undefined\r\n }\r\n }\r\n\r\n function getRunningMutationThunk(\r\n /**\r\n * this is only here to allow TS to infer the result type by input value\r\n * we could use it to validate the result, but it's probably not necessary\r\n */\r\n _endpointName: string,\r\n fixedCacheKeyOrRequestId: string\r\n ) {\r\n return (dispatch: Dispatch) => {\r\n return runningMutations.get(dispatch)?.[fixedCacheKeyOrRequestId] as\r\n | MutationActionCreatorResult\r\n | undefined\r\n }\r\n }\r\n\r\n function getRunningQueriesThunk() {\r\n return (dispatch: Dispatch) =>\r\n Object.values(runningQueries.get(dispatch) || {}).filter(isNotNullish)\r\n }\r\n\r\n function getRunningMutationsThunk() {\r\n return (dispatch: Dispatch) =>\r\n Object.values(runningMutations.get(dispatch) || {}).filter(isNotNullish)\r\n }\r\n\r\n function middlewareWarning(dispatch: Dispatch) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if ((middlewareWarning as any).triggered) return\r\n const registered:\r\n | ReturnType\r\n | boolean = dispatch(\r\n api.internalActions.internal_probeSubscription({\r\n queryCacheKey: 'DOES_NOT_EXIST',\r\n requestId: 'DUMMY_REQUEST_ID',\r\n })\r\n )\r\n\r\n ;(middlewareWarning as any).triggered = true\r\n\r\n // The RTKQ middleware _should_ always return a boolean for `probeSubscription`\r\n if (typeof registered !== 'boolean') {\r\n // Otherwise, must not have been added\r\n throw new Error(\r\n `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\r\nYou must add the middleware for RTK-Query to function correctly!`\r\n )\r\n }\r\n }\r\n }\r\n\r\n function buildInitiateQuery(\r\n endpointName: string,\r\n endpointDefinition: QueryDefinition\r\n ) {\r\n const queryAction: StartQueryActionCreator =\r\n (\r\n arg,\r\n {\r\n subscribe = true,\r\n forceRefetch,\r\n subscriptionOptions,\r\n [forceQueryFnSymbol]: forceQueryFn,\r\n } = {}\r\n ) =>\r\n (dispatch, getState) => {\r\n const queryCacheKey = serializeQueryArgs({\r\n queryArgs: arg,\r\n endpointDefinition,\r\n endpointName,\r\n })\r\n\r\n const thunk = queryThunk({\r\n type: 'query',\r\n subscribe,\r\n forceRefetch: forceRefetch,\r\n subscriptionOptions,\r\n endpointName,\r\n originalArgs: arg,\r\n queryCacheKey,\r\n [forceQueryFnSymbol]: forceQueryFn,\r\n })\r\n const selector = (\r\n api.endpoints[endpointName] as ApiEndpointQuery\r\n ).select(arg)\r\n\r\n const thunkResult = dispatch(thunk)\r\n const stateAfter = selector(getState())\r\n\r\n middlewareWarning(dispatch)\r\n\r\n const { requestId, abort } = thunkResult\r\n\r\n const skippedSynchronously = stateAfter.requestId !== requestId\r\n\r\n const runningQuery = runningQueries.get(dispatch)?.[queryCacheKey]\r\n const selectFromState = () => selector(getState())\r\n\r\n const statePromise: QueryActionCreatorResult = Object.assign(\r\n forceQueryFn\r\n ? // a query has been forced (upsertQueryData)\r\n // -> we want to resolve it once data has been written with the data that will be written\r\n thunkResult.then(selectFromState)\r\n : skippedSynchronously && !runningQuery\r\n ? // a query has been skipped due to a condition and we do not have any currently running query\r\n // -> we want to resolve it immediately with the current data\r\n Promise.resolve(stateAfter)\r\n : // query just started or one is already in flight\r\n // -> wait for the running query, then resolve with data from after that\r\n Promise.all([runningQuery, thunkResult]).then(selectFromState),\r\n {\r\n arg,\r\n requestId,\r\n subscriptionOptions,\r\n queryCacheKey,\r\n abort,\r\n async unwrap() {\r\n const result = await statePromise\r\n\r\n if (result.isError) {\r\n throw result.error\r\n }\r\n\r\n return result.data\r\n },\r\n refetch: () =>\r\n dispatch(\r\n queryAction(arg, { subscribe: false, forceRefetch: true })\r\n ),\r\n unsubscribe() {\r\n if (subscribe)\r\n dispatch(\r\n unsubscribeQueryResult({\r\n queryCacheKey,\r\n requestId,\r\n })\r\n )\r\n },\r\n updateSubscriptionOptions(options: SubscriptionOptions) {\r\n statePromise.subscriptionOptions = options\r\n dispatch(\r\n updateSubscriptionOptions({\r\n endpointName,\r\n requestId,\r\n queryCacheKey,\r\n options,\r\n })\r\n )\r\n },\r\n }\r\n )\r\n\r\n if (!runningQuery && !skippedSynchronously && !forceQueryFn) {\r\n const running = runningQueries.get(dispatch) || {}\r\n running[queryCacheKey] = statePromise\r\n runningQueries.set(dispatch, running)\r\n\r\n statePromise.then(() => {\r\n delete running[queryCacheKey]\r\n if (!Object.keys(running).length) {\r\n runningQueries.delete(dispatch)\r\n }\r\n })\r\n }\r\n\r\n return statePromise\r\n }\r\n return queryAction\r\n }\r\n\r\n function buildInitiateMutation(\r\n endpointName: string\r\n ): StartMutationActionCreator {\r\n return (arg, { track = true, fixedCacheKey } = {}) =>\r\n (dispatch, getState) => {\r\n const thunk = mutationThunk({\r\n type: 'mutation',\r\n endpointName,\r\n originalArgs: arg,\r\n track,\r\n fixedCacheKey,\r\n })\r\n const thunkResult = dispatch(thunk)\r\n middlewareWarning(dispatch)\r\n const { requestId, abort, unwrap } = thunkResult\r\n const returnValuePromise = thunkResult\r\n .unwrap()\r\n .then((data) => ({ data }))\r\n .catch((error) => ({ error }))\r\n\r\n const reset = () => {\r\n dispatch(removeMutationResult({ requestId, fixedCacheKey }))\r\n }\r\n\r\n const ret = Object.assign(returnValuePromise, {\r\n arg: thunkResult.arg,\r\n requestId,\r\n abort,\r\n unwrap,\r\n unsubscribe: reset,\r\n reset,\r\n })\r\n\r\n const running = runningMutations.get(dispatch) || {}\r\n runningMutations.set(dispatch, running)\r\n running[requestId] = ret\r\n ret.then(() => {\r\n delete running[requestId]\r\n if (!Object.keys(running).length) {\r\n runningMutations.delete(dispatch)\r\n }\r\n })\r\n if (fixedCacheKey) {\r\n running[fixedCacheKey] = ret\r\n ret.then(() => {\r\n if (running[fixedCacheKey] === ret) {\r\n delete running[fixedCacheKey]\r\n if (!Object.keys(running).length) {\r\n runningMutations.delete(dispatch)\r\n }\r\n }\r\n })\r\n }\r\n\r\n return ret\r\n }\r\n }\r\n}\r\n", "import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'\r\nimport type { Api, ApiContext } from '../apiTypes'\r\nimport type {\r\n BaseQueryFn,\r\n BaseQueryError,\r\n QueryReturnValue,\r\n} from '../baseQueryTypes'\r\nimport type { RootState, QueryKeys, QuerySubstateIdentifier } from './apiState'\r\nimport { QueryStatus } from './apiState'\r\nimport type {\r\n StartQueryActionCreatorOptions,\r\n QueryActionCreatorResult,\r\n} from './buildInitiate'\r\nimport { forceQueryFnSymbol, isUpsertQuery } from './buildInitiate'\r\nimport type {\r\n AssertTagTypes,\r\n EndpointDefinition,\r\n EndpointDefinitions,\r\n MutationDefinition,\r\n QueryArgFrom,\r\n QueryDefinition,\r\n ResultTypeFrom,\r\n} from '../endpointDefinitions'\r\nimport { isQueryDefinition } from '../endpointDefinitions'\r\nimport { calculateProvidedBy } from '../endpointDefinitions'\r\nimport type { AsyncThunkPayloadCreator, Draft } from '@reduxjs/toolkit'\r\nimport {\r\n isAllOf,\r\n isFulfilled,\r\n isPending,\r\n isRejected,\r\n isRejectedWithValue,\r\n} from '@reduxjs/toolkit'\r\nimport type { Patch } from 'immer'\r\nimport { isDraftable, produceWithPatches } from 'immer'\r\nimport type {\r\n AnyAction,\r\n ThunkAction,\r\n ThunkDispatch,\r\n AsyncThunk,\r\n} from '@reduxjs/toolkit'\r\nimport { createAsyncThunk, SHOULD_AUTOBATCH } from '@reduxjs/toolkit'\r\n\r\nimport { HandledError } from '../HandledError'\r\n\r\nimport type { ApiEndpointQuery, PrefetchOptions } from './module'\r\nimport type { UnwrapPromise } from '../tsHelpers'\r\n\r\ndeclare module './module' {\r\n export interface ApiEndpointQuery<\r\n Definition extends QueryDefinition,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n > extends Matchers {}\r\n\r\n export interface ApiEndpointMutation<\r\n Definition extends MutationDefinition,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n > extends Matchers {}\r\n}\r\n\r\ntype EndpointThunk<\r\n Thunk extends QueryThunk | MutationThunk,\r\n Definition extends EndpointDefinition\r\n> = Definition extends EndpointDefinition<\r\n infer QueryArg,\r\n infer BaseQueryFn,\r\n any,\r\n infer ResultType\r\n>\r\n ? Thunk extends AsyncThunk\r\n ? AsyncThunk<\r\n ResultType,\r\n ATArg & { originalArgs: QueryArg },\r\n ATConfig & { rejectValue: BaseQueryError }\r\n >\r\n : never\r\n : never\r\n\r\nexport type PendingAction<\r\n Thunk extends QueryThunk | MutationThunk,\r\n Definition extends EndpointDefinition\r\n> = ReturnType['pending']>\r\n\r\nexport type FulfilledAction<\r\n Thunk extends QueryThunk | MutationThunk,\r\n Definition extends EndpointDefinition\r\n> = ReturnType['fulfilled']>\r\n\r\nexport type RejectedAction<\r\n Thunk extends QueryThunk | MutationThunk,\r\n Definition extends EndpointDefinition\r\n> = ReturnType['rejected']>\r\n\r\nexport type Matcher = (value: any) => value is M\r\n\r\nexport interface Matchers<\r\n Thunk extends QueryThunk | MutationThunk,\r\n Definition extends EndpointDefinition\r\n> {\r\n matchPending: Matcher>\r\n matchFulfilled: Matcher>\r\n matchRejected: Matcher>\r\n}\r\n\r\nexport interface QueryThunkArg\r\n extends QuerySubstateIdentifier,\r\n StartQueryActionCreatorOptions {\r\n type: 'query'\r\n originalArgs: unknown\r\n endpointName: string\r\n}\r\n\r\nexport interface MutationThunkArg {\r\n type: 'mutation'\r\n originalArgs: unknown\r\n endpointName: string\r\n track?: boolean\r\n fixedCacheKey?: string\r\n}\r\n\r\nexport type ThunkResult = unknown\r\n\r\nexport type ThunkApiMetaConfig = {\r\n pendingMeta: {\r\n startedTimeStamp: number\r\n [SHOULD_AUTOBATCH]: true\r\n }\r\n fulfilledMeta: {\r\n fulfilledTimeStamp: number\r\n baseQueryMeta: unknown\r\n [SHOULD_AUTOBATCH]: true\r\n }\r\n rejectedMeta: {\r\n baseQueryMeta: unknown\r\n [SHOULD_AUTOBATCH]: true\r\n }\r\n}\r\nexport type QueryThunk = AsyncThunk<\r\n ThunkResult,\r\n QueryThunkArg,\r\n ThunkApiMetaConfig\r\n>\r\nexport type MutationThunk = AsyncThunk<\r\n ThunkResult,\r\n MutationThunkArg,\r\n ThunkApiMetaConfig\r\n>\r\n\r\nfunction defaultTransformResponse(baseQueryReturnValue: unknown) {\r\n return baseQueryReturnValue\r\n}\r\n\r\nexport type MaybeDrafted = T | Draft\r\nexport type Recipe = (data: MaybeDrafted) => void | MaybeDrafted\r\nexport type UpsertRecipe = (\r\n data: MaybeDrafted | undefined\r\n) => void | MaybeDrafted\r\n\r\nexport type PatchQueryDataThunk<\r\n Definitions extends EndpointDefinitions,\r\n PartialState\r\n> = >(\r\n endpointName: EndpointName,\r\n args: QueryArgFrom,\r\n patches: readonly Patch[]\r\n) => ThunkAction\r\n\r\nexport type UpdateQueryDataThunk<\r\n Definitions extends EndpointDefinitions,\r\n PartialState\r\n> = >(\r\n endpointName: EndpointName,\r\n args: QueryArgFrom,\r\n updateRecipe: Recipe>\r\n) => ThunkAction\r\n\r\nexport type UpsertQueryDataThunk<\r\n Definitions extends EndpointDefinitions,\r\n PartialState\r\n> = >(\r\n endpointName: EndpointName,\r\n args: QueryArgFrom,\r\n value: ResultTypeFrom\r\n) => ThunkAction<\r\n QueryActionCreatorResult<\r\n Definitions[EndpointName] extends QueryDefinition\r\n ? Definitions[EndpointName]\r\n : never\r\n >,\r\n PartialState,\r\n any,\r\n AnyAction\r\n>\r\n\r\n/**\r\n * An object returned from dispatching a `api.util.updateQueryData` call.\r\n */\r\nexport type PatchCollection = {\r\n /**\r\n * An `immer` Patch describing the cache update.\r\n */\r\n patches: Patch[]\r\n /**\r\n * An `immer` Patch to revert the cache update.\r\n */\r\n inversePatches: Patch[]\r\n /**\r\n * A function that will undo the cache update.\r\n */\r\n undo: () => void\r\n}\r\n\r\nexport function buildThunks<\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string,\r\n Definitions extends EndpointDefinitions\r\n>({\r\n reducerPath,\r\n baseQuery,\r\n context: { endpointDefinitions },\r\n serializeQueryArgs,\r\n api,\r\n}: {\r\n baseQuery: BaseQuery\r\n reducerPath: ReducerPath\r\n context: ApiContext\r\n serializeQueryArgs: InternalSerializeQueryArgs\r\n api: Api\r\n}) {\r\n type State = RootState\r\n\r\n const patchQueryData: PatchQueryDataThunk =\r\n (endpointName, args, patches) => (dispatch) => {\r\n const endpointDefinition = endpointDefinitions[endpointName]\r\n dispatch(\r\n api.internalActions.queryResultPatched({\r\n queryCacheKey: serializeQueryArgs({\r\n queryArgs: args,\r\n endpointDefinition,\r\n endpointName,\r\n }),\r\n patches,\r\n })\r\n )\r\n }\r\n\r\n const updateQueryData: UpdateQueryDataThunk =\r\n (endpointName, args, updateRecipe) => (dispatch, getState) => {\r\n const currentState = (\r\n api.endpoints[endpointName] as ApiEndpointQuery\r\n ).select(args)(getState())\r\n let ret: PatchCollection = {\r\n patches: [],\r\n inversePatches: [],\r\n undo: () =>\r\n dispatch(\r\n api.util.patchQueryData(endpointName, args, ret.inversePatches)\r\n ),\r\n }\r\n if (currentState.status === QueryStatus.uninitialized) {\r\n return ret\r\n }\r\n if ('data' in currentState) {\r\n if (isDraftable(currentState.data)) {\r\n const [, patches, inversePatches] = produceWithPatches(\r\n currentState.data,\r\n updateRecipe\r\n )\r\n ret.patches.push(...patches)\r\n ret.inversePatches.push(...inversePatches)\r\n } else {\r\n const value = updateRecipe(currentState.data)\r\n ret.patches.push({ op: 'replace', path: [], value })\r\n ret.inversePatches.push({\r\n op: 'replace',\r\n path: [],\r\n value: currentState.data,\r\n })\r\n }\r\n }\r\n\r\n dispatch(api.util.patchQueryData(endpointName, args, ret.patches))\r\n\r\n return ret\r\n }\r\n\r\n const upsertQueryData: UpsertQueryDataThunk =\r\n (endpointName, args, value) => (dispatch) => {\r\n return dispatch(\r\n (\r\n api.endpoints[endpointName] as ApiEndpointQuery<\r\n QueryDefinition,\r\n Definitions\r\n >\r\n ).initiate(args, {\r\n subscribe: false,\r\n forceRefetch: true,\r\n [forceQueryFnSymbol]: () => ({\r\n data: value,\r\n }),\r\n })\r\n )\r\n }\r\n\r\n const executeEndpoint: AsyncThunkPayloadCreator<\r\n ThunkResult,\r\n QueryThunkArg | MutationThunkArg,\r\n ThunkApiMetaConfig & { state: RootState }\r\n > = async (\r\n arg,\r\n {\r\n signal,\r\n abort,\r\n rejectWithValue,\r\n fulfillWithValue,\r\n dispatch,\r\n getState,\r\n extra,\r\n }\r\n ) => {\r\n const endpointDefinition = endpointDefinitions[arg.endpointName]\r\n\r\n try {\r\n let transformResponse: (\r\n baseQueryReturnValue: any,\r\n meta: any,\r\n arg: any\r\n ) => any = defaultTransformResponse\r\n let result: QueryReturnValue\r\n const baseQueryApi = {\r\n signal,\r\n abort,\r\n dispatch,\r\n getState,\r\n extra,\r\n endpoint: arg.endpointName,\r\n type: arg.type,\r\n forced:\r\n arg.type === 'query' ? isForcedQuery(arg, getState()) : undefined,\r\n }\r\n\r\n const forceQueryFn =\r\n arg.type === 'query' ? arg[forceQueryFnSymbol] : undefined\r\n if (forceQueryFn) {\r\n result = forceQueryFn()\r\n } else if (endpointDefinition.query) {\r\n result = await baseQuery(\r\n endpointDefinition.query(arg.originalArgs),\r\n baseQueryApi,\r\n endpointDefinition.extraOptions as any\r\n )\r\n\r\n if (endpointDefinition.transformResponse) {\r\n transformResponse = endpointDefinition.transformResponse\r\n }\r\n } else {\r\n result = await endpointDefinition.queryFn(\r\n arg.originalArgs,\r\n baseQueryApi,\r\n endpointDefinition.extraOptions as any,\r\n (arg) =>\r\n baseQuery(arg, baseQueryApi, endpointDefinition.extraOptions as any)\r\n )\r\n }\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n const what = endpointDefinition.query ? '`baseQuery`' : '`queryFn`'\r\n let err: undefined | string\r\n if (!result) {\r\n err = `${what} did not return anything.`\r\n } else if (typeof result !== 'object') {\r\n err = `${what} did not return an object.`\r\n } else if (result.error && result.data) {\r\n err = `${what} returned an object containing both \\`error\\` and \\`result\\`.`\r\n } else if (result.error === undefined && result.data === undefined) {\r\n err = `${what} returned an object containing neither a valid \\`error\\` and \\`result\\`. At least one of them should not be \\`undefined\\``\r\n } else {\r\n for (const key of Object.keys(result)) {\r\n if (key !== 'error' && key !== 'data' && key !== 'meta') {\r\n err = `The object returned by ${what} has the unknown property ${key}.`\r\n break\r\n }\r\n }\r\n }\r\n if (err) {\r\n console.error(\r\n `Error encountered handling the endpoint ${arg.endpointName}.\r\n ${err}\r\n It needs to return an object with either the shape \\`{ data: }\\` or \\`{ error: }\\` that may contain an optional \\`meta\\` property.\r\n Object returned was:`,\r\n result\r\n )\r\n }\r\n }\r\n\r\n if (result.error) throw new HandledError(result.error, result.meta)\r\n\r\n return fulfillWithValue(\r\n await transformResponse(result.data, result.meta, arg.originalArgs),\r\n {\r\n fulfilledTimeStamp: Date.now(),\r\n baseQueryMeta: result.meta,\r\n [SHOULD_AUTOBATCH]: true,\r\n }\r\n )\r\n } catch (error) {\r\n let catchedError = error\r\n if (catchedError instanceof HandledError) {\r\n let transformErrorResponse: (\r\n baseQueryReturnValue: any,\r\n meta: any,\r\n arg: any\r\n ) => any = defaultTransformResponse\r\n\r\n if (\r\n endpointDefinition.query &&\r\n endpointDefinition.transformErrorResponse\r\n ) {\r\n transformErrorResponse = endpointDefinition.transformErrorResponse\r\n }\r\n try {\r\n return rejectWithValue(\r\n await transformErrorResponse(\r\n catchedError.value,\r\n catchedError.meta,\r\n arg.originalArgs\r\n ),\r\n { baseQueryMeta: catchedError.meta, [SHOULD_AUTOBATCH]: true }\r\n )\r\n } catch (e) {\r\n catchedError = e\r\n }\r\n }\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV !== 'production'\r\n ) {\r\n console.error(\r\n `An unhandled error occurred processing a request for the endpoint \"${arg.endpointName}\".\r\nIn the case of an unhandled error, no tags will be \"provided\" or \"invalidated\".`,\r\n catchedError\r\n )\r\n } else {\r\n console.error(catchedError)\r\n }\r\n throw catchedError\r\n }\r\n }\r\n\r\n function isForcedQuery(\r\n arg: QueryThunkArg,\r\n state: RootState\r\n ) {\r\n const requestState = state[reducerPath]?.queries?.[arg.queryCacheKey]\r\n const baseFetchOnMountOrArgChange =\r\n state[reducerPath]?.config.refetchOnMountOrArgChange\r\n\r\n const fulfilledVal = requestState?.fulfilledTimeStamp\r\n const refetchVal =\r\n arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange)\r\n\r\n if (refetchVal) {\r\n // Return if its true or compare the dates because it must be a number\r\n return (\r\n refetchVal === true ||\r\n (Number(new Date()) - Number(fulfilledVal)) / 1000 >= refetchVal\r\n )\r\n }\r\n return false\r\n }\r\n\r\n const queryThunk = createAsyncThunk<\r\n ThunkResult,\r\n QueryThunkArg,\r\n ThunkApiMetaConfig & { state: RootState }\r\n >(`${reducerPath}/executeQuery`, executeEndpoint, {\r\n getPendingMeta() {\r\n return { startedTimeStamp: Date.now(), [SHOULD_AUTOBATCH]: true }\r\n },\r\n condition(queryThunkArgs, { getState }) {\r\n const state = getState()\r\n\r\n const requestState =\r\n state[reducerPath]?.queries?.[queryThunkArgs.queryCacheKey]\r\n const fulfilledVal = requestState?.fulfilledTimeStamp\r\n const currentArg = queryThunkArgs.originalArgs\r\n const previousArg = requestState?.originalArgs\r\n const endpointDefinition =\r\n endpointDefinitions[queryThunkArgs.endpointName]\r\n\r\n // Order of these checks matters.\r\n // In order for `upsertQueryData` to successfully run while an existing request is in flight,\r\n /// we have to check for that first, otherwise `queryThunk` will bail out and not run at all.\r\n if (isUpsertQuery(queryThunkArgs)) {\r\n return true\r\n }\r\n\r\n // Don't retry a request that's currently in-flight\r\n if (requestState?.status === 'pending') {\r\n return false\r\n }\r\n\r\n // if this is forced, continue\r\n if (isForcedQuery(queryThunkArgs, state)) {\r\n return true\r\n }\r\n\r\n if (\r\n isQueryDefinition(endpointDefinition) &&\r\n endpointDefinition?.forceRefetch?.({\r\n currentArg,\r\n previousArg,\r\n endpointState: requestState,\r\n state,\r\n })\r\n ) {\r\n return true\r\n }\r\n\r\n // Pull from the cache unless we explicitly force refetch or qualify based on time\r\n if (fulfilledVal) {\r\n // Value is cached and we didn't specify to refresh, skip it.\r\n return false\r\n }\r\n\r\n return true\r\n },\r\n dispatchConditionRejection: true,\r\n })\r\n\r\n const mutationThunk = createAsyncThunk<\r\n ThunkResult,\r\n MutationThunkArg,\r\n ThunkApiMetaConfig & { state: RootState }\r\n >(`${reducerPath}/executeMutation`, executeEndpoint, {\r\n getPendingMeta() {\r\n return { startedTimeStamp: Date.now(), [SHOULD_AUTOBATCH]: true }\r\n },\r\n })\r\n\r\n const hasTheForce = (options: any): options is { force: boolean } =>\r\n 'force' in options\r\n const hasMaxAge = (\r\n options: any\r\n ): options is { ifOlderThan: false | number } => 'ifOlderThan' in options\r\n\r\n const prefetch =\r\n >(\r\n endpointName: EndpointName,\r\n arg: any,\r\n options: PrefetchOptions\r\n ): ThunkAction =>\r\n (dispatch: ThunkDispatch, getState: () => any) => {\r\n const force = hasTheForce(options) && options.force\r\n const maxAge = hasMaxAge(options) && options.ifOlderThan\r\n\r\n const queryAction = (force: boolean = true) =>\r\n (api.endpoints[endpointName] as ApiEndpointQuery).initiate(\r\n arg,\r\n { forceRefetch: force }\r\n )\r\n const latestStateValue = (\r\n api.endpoints[endpointName] as ApiEndpointQuery\r\n ).select(arg)(getState())\r\n\r\n if (force) {\r\n dispatch(queryAction())\r\n } else if (maxAge) {\r\n const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp\r\n if (!lastFulfilledTs) {\r\n dispatch(queryAction())\r\n return\r\n }\r\n const shouldRetrigger =\r\n (Number(new Date()) - Number(new Date(lastFulfilledTs))) / 1000 >=\r\n maxAge\r\n if (shouldRetrigger) {\r\n dispatch(queryAction())\r\n }\r\n } else {\r\n // If prefetching with no options, just let it try\r\n dispatch(queryAction(false))\r\n }\r\n }\r\n\r\n function matchesEndpoint(endpointName: string) {\r\n return (action: any): action is AnyAction =>\r\n action?.meta?.arg?.endpointName === endpointName\r\n }\r\n\r\n function buildMatchThunkActions<\r\n Thunk extends\r\n | AsyncThunk\r\n | AsyncThunk\r\n >(thunk: Thunk, endpointName: string) {\r\n return {\r\n matchPending: isAllOf(isPending(thunk), matchesEndpoint(endpointName)),\r\n matchFulfilled: isAllOf(\r\n isFulfilled(thunk),\r\n matchesEndpoint(endpointName)\r\n ),\r\n matchRejected: isAllOf(isRejected(thunk), matchesEndpoint(endpointName)),\r\n } as Matchers\r\n }\r\n\r\n return {\r\n queryThunk,\r\n mutationThunk,\r\n prefetch,\r\n updateQueryData,\r\n upsertQueryData,\r\n patchQueryData,\r\n buildMatchThunkActions,\r\n }\r\n}\r\n\r\nexport function calculateProvidedByThunk(\r\n action: UnwrapPromise<\r\n ReturnType> | ReturnType>\r\n >,\r\n type: 'providesTags' | 'invalidatesTags',\r\n endpointDefinitions: EndpointDefinitions,\r\n assertTagType: AssertTagTypes\r\n) {\r\n return calculateProvidedBy(\r\n endpointDefinitions[action.meta.arg.endpointName][type],\r\n isFulfilled(action) ? action.payload : undefined,\r\n isRejectedWithValue(action) ? action.payload : undefined,\r\n action.meta.arg.originalArgs,\r\n 'baseQueryMeta' in action.meta ? action.meta.baseQueryMeta : undefined,\r\n assertTagType\r\n )\r\n}\r\n", "import type { QueryCacheKey } from './core/apiState'\r\nimport type { EndpointDefinition } from './endpointDefinitions'\r\nimport { isPlainObject } from '@reduxjs/toolkit'\r\n\r\nconst cache: WeakMap | undefined = WeakMap\r\n ? new WeakMap()\r\n : undefined\r\n\r\nexport const defaultSerializeQueryArgs: SerializeQueryArgs = ({\r\n endpointName,\r\n queryArgs,\r\n}) => {\r\n let serialized = ''\r\n\r\n const cached = cache?.get(queryArgs)\r\n\r\n if (typeof cached === 'string') {\r\n serialized = cached\r\n } else {\r\n const stringified = JSON.stringify(queryArgs, (key, value) =>\r\n isPlainObject(value)\r\n ? Object.keys(value)\r\n .sort()\r\n .reduce((acc, key) => {\r\n acc[key] = (value as any)[key]\r\n return acc\r\n }, {})\r\n : value\r\n )\r\n if (isPlainObject(queryArgs)) {\r\n cache?.set(queryArgs, stringified)\r\n }\r\n serialized = stringified\r\n }\r\n // Sort the object keys before stringifying, to prevent useQuery({ a: 1, b: 2 }) having a different cache key than useQuery({ b: 2, a: 1 })\r\n return `${endpointName}(${serialized})`\r\n}\r\n\r\nexport type SerializeQueryArgs = (_: {\r\n queryArgs: QueryArgs\r\n endpointDefinition: EndpointDefinition\r\n endpointName: string\r\n}) => ReturnType\r\n\r\nexport type InternalSerializeQueryArgs = (_: {\r\n queryArgs: any\r\n endpointDefinition: EndpointDefinition\r\n endpointName: string\r\n}) => QueryCacheKey\r\n", "import type { Api, ApiContext, Module, ModuleName } from './apiTypes'\r\nimport type { CombinedState } from './core/apiState'\r\nimport type { BaseQueryArg, BaseQueryFn } from './baseQueryTypes'\r\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs'\r\nimport { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs'\r\nimport type {\r\n EndpointBuilder,\r\n EndpointDefinitions,\r\n} from './endpointDefinitions'\r\nimport { DefinitionType, isQueryDefinition } from './endpointDefinitions'\r\nimport { nanoid } from '@reduxjs/toolkit'\r\nimport type { AnyAction } from '@reduxjs/toolkit'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { defaultMemoize } from 'reselect'\r\n\r\nexport interface CreateApiOptions<\r\n BaseQuery extends BaseQueryFn,\r\n Definitions extends EndpointDefinitions,\r\n ReducerPath extends string = 'api',\r\n TagTypes extends string = never\r\n> {\r\n /**\r\n * The base query used by each endpoint if no `queryFn` option is specified. RTK Query exports a utility called [fetchBaseQuery](./fetchBaseQuery) as a lightweight wrapper around `fetch` for common use-cases. See [Customizing Queries](../../rtk-query/usage/customizing-queries) if `fetchBaseQuery` does not handle your requirements.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\r\n *\r\n * const api = createApi({\r\n * // highlight-start\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * // highlight-end\r\n * endpoints: (build) => ({\r\n * // ...endpoints\r\n * }),\r\n * })\r\n * ```\r\n */\r\n baseQuery: BaseQuery\r\n /**\r\n * An array of string tag type names. Specifying tag types is optional, but you should define them so that they can be used for caching and invalidation. When defining a tag type, you will be able to [provide](../../rtk-query/usage/automated-refetching#providing-tags) them with `providesTags` and [invalidate](../../rtk-query/usage/automated-refetching#invalidating-tags) them with `invalidatesTags` when configuring [endpoints](#endpoints).\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * // highlight-start\r\n * tagTypes: ['Post', 'User'],\r\n * // highlight-end\r\n * endpoints: (build) => ({\r\n * // ...endpoints\r\n * }),\r\n * })\r\n * ```\r\n */\r\n tagTypes?: readonly TagTypes[]\r\n /**\r\n * The `reducerPath` is a _unique_ key that your service will be mounted to in your store. If you call `createApi` more than once in your application, you will need to provide a unique value each time. Defaults to `'api'`.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"apis.js\"\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';\r\n *\r\n * const apiOne = createApi({\r\n * // highlight-start\r\n * reducerPath: 'apiOne',\r\n * // highlight-end\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (builder) => ({\r\n * // ...endpoints\r\n * }),\r\n * });\r\n *\r\n * const apiTwo = createApi({\r\n * // highlight-start\r\n * reducerPath: 'apiTwo',\r\n * // highlight-end\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (builder) => ({\r\n * // ...endpoints\r\n * }),\r\n * });\r\n * ```\r\n */\r\n reducerPath?: ReducerPath\r\n /**\r\n * Accepts a custom function if you have a need to change the creation of cache keys for any reason.\r\n */\r\n serializeQueryArgs?: SerializeQueryArgs>\r\n /**\r\n * Endpoints are just a set of operations that you want to perform against your server. You define them as an object using the builder syntax. There are two basic endpoint types: [`query`](../../rtk-query/usage/queries) and [`mutation`](../../rtk-query/usage/mutations).\r\n */\r\n endpoints(\r\n build: EndpointBuilder\r\n ): Definitions\r\n /**\r\n * Defaults to `60` _(this value is in seconds)_. This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"keepUnusedDataFor example\"\r\n *\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * getPosts: build.query({\r\n * query: () => 'posts',\r\n * // highlight-start\r\n * keepUnusedDataFor: 5\r\n * // highlight-end\r\n * })\r\n * })\r\n * })\r\n * ```\r\n */\r\n keepUnusedDataFor?: number\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether if a cached result is already available RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\r\n * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\r\n * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\r\n * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n */\r\n refetchOnMountOrArgChange?: boolean | number\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n *\r\n * Note: requires [`setupListeners`](./setupListeners) to have been called.\r\n */\r\n refetchOnFocus?: boolean\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n *\r\n * Note: requires [`setupListeners`](./setupListeners) to have been called.\r\n */\r\n refetchOnReconnect?: boolean\r\n /**\r\n * A function that is passed every dispatched action. If this returns something other than `undefined`,\r\n * that return value will be used to rehydrate fulfilled & errored queries.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"next-redux-wrapper rehydration example\"\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * import { HYDRATE } from 'next-redux-wrapper'\r\n *\r\n * export const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * // highlight-start\r\n * extractRehydrationInfo(action, { reducerPath }) {\r\n * if (action.type === HYDRATE) {\r\n * return action.payload[reducerPath]\r\n * }\r\n * },\r\n * // highlight-end\r\n * endpoints: (build) => ({\r\n * // omitted\r\n * }),\r\n * })\r\n * ```\r\n */\r\n extractRehydrationInfo?: (\r\n action: AnyAction,\r\n {\r\n reducerPath,\r\n }: {\r\n reducerPath: ReducerPath\r\n }\r\n ) =>\r\n | undefined\r\n | CombinedState<\r\n NoInfer,\r\n NoInfer,\r\n NoInfer\r\n >\r\n}\r\n\r\nexport type CreateApi = {\r\n /**\r\n * Creates a service to use in your application. Contains only the basic redux logic (the core module).\r\n *\r\n * @link https://rtk-query-docs.netlify.app/api/createApi\r\n */\r\n <\r\n BaseQuery extends BaseQueryFn,\r\n Definitions extends EndpointDefinitions,\r\n ReducerPath extends string = 'api',\r\n TagTypes extends string = never\r\n >(\r\n options: CreateApiOptions\r\n ): Api\r\n}\r\n\r\n/**\r\n * Builds a `createApi` method based on the provided `modules`.\r\n *\r\n * @link https://rtk-query-docs.netlify.app/concepts/customizing-create-api\r\n *\r\n * @example\r\n * ```ts\r\n * const MyContext = React.createContext(null as any);\r\n * const customCreateApi = buildCreateApi(\r\n * coreModule(),\r\n * reactHooksModule({ useDispatch: createDispatchHook(MyContext) })\r\n * );\r\n * ```\r\n *\r\n * @param modules - A variable number of modules that customize how the `createApi` method handles endpoints\r\n * @returns A `createApi` method using the provided `modules`.\r\n */\r\nexport function buildCreateApi, ...Module[]]>(\r\n ...modules: Modules\r\n): CreateApi {\r\n return function baseCreateApi(options) {\r\n const extractRehydrationInfo = defaultMemoize((action: AnyAction) =>\r\n options.extractRehydrationInfo?.(action, {\r\n reducerPath: (options.reducerPath ?? 'api') as any,\r\n })\r\n )\r\n\r\n const optionsWithDefaults: CreateApiOptions = {\r\n reducerPath: 'api',\r\n keepUnusedDataFor: 60,\r\n refetchOnMountOrArgChange: false,\r\n refetchOnFocus: false,\r\n refetchOnReconnect: false,\r\n ...options,\r\n extractRehydrationInfo,\r\n serializeQueryArgs(queryArgsApi) {\r\n let finalSerializeQueryArgs = defaultSerializeQueryArgs\r\n if ('serializeQueryArgs' in queryArgsApi.endpointDefinition) {\r\n const endpointSQA =\r\n queryArgsApi.endpointDefinition.serializeQueryArgs!\r\n finalSerializeQueryArgs = (queryArgsApi) => {\r\n const initialResult = endpointSQA(queryArgsApi)\r\n if (typeof initialResult === 'string') {\r\n // If the user function returned a string, use it as-is\r\n return initialResult\r\n } else {\r\n // Assume they returned an object (such as a subset of the original\r\n // query args) or a primitive, and serialize it ourselves\r\n return defaultSerializeQueryArgs({\r\n ...queryArgsApi,\r\n queryArgs: initialResult,\r\n })\r\n }\r\n }\r\n } else if (options.serializeQueryArgs) {\r\n finalSerializeQueryArgs = options.serializeQueryArgs\r\n }\r\n\r\n return finalSerializeQueryArgs(queryArgsApi)\r\n },\r\n tagTypes: [...(options.tagTypes || [])],\r\n }\r\n\r\n const context: ApiContext = {\r\n endpointDefinitions: {},\r\n batch(fn) {\r\n // placeholder \"batch\" method to be overridden by plugins, for example with React.unstable_batchedUpdate\r\n fn()\r\n },\r\n apiUid: nanoid(),\r\n extractRehydrationInfo,\r\n hasRehydrationInfo: defaultMemoize(\r\n (action) => extractRehydrationInfo(action) != null\r\n ),\r\n }\r\n\r\n const api = {\r\n injectEndpoints,\r\n enhanceEndpoints({ addTagTypes, endpoints }) {\r\n if (addTagTypes) {\r\n for (const eT of addTagTypes) {\r\n if (!optionsWithDefaults.tagTypes!.includes(eT as any)) {\r\n ;(optionsWithDefaults.tagTypes as any[]).push(eT)\r\n }\r\n }\r\n }\r\n if (endpoints) {\r\n for (const [endpointName, partialDefinition] of Object.entries(\r\n endpoints\r\n )) {\r\n if (typeof partialDefinition === 'function') {\r\n partialDefinition(context.endpointDefinitions[endpointName])\r\n } else {\r\n Object.assign(\r\n context.endpointDefinitions[endpointName] || {},\r\n partialDefinition\r\n )\r\n }\r\n }\r\n }\r\n return api\r\n },\r\n } as Api\r\n\r\n const initializedModules = modules.map((m) =>\r\n m.init(api as any, optionsWithDefaults as any, context)\r\n )\r\n\r\n function injectEndpoints(\r\n inject: Parameters[0]\r\n ) {\r\n const evaluatedEndpoints = inject.endpoints({\r\n query: (x) => ({ ...x, type: DefinitionType.query } as any),\r\n mutation: (x) => ({ ...x, type: DefinitionType.mutation } as any),\r\n })\r\n\r\n for (const [endpointName, definition] of Object.entries(\r\n evaluatedEndpoints\r\n )) {\r\n if (\r\n !inject.overrideExisting &&\r\n endpointName in context.endpointDefinitions\r\n ) {\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n console.error(\r\n `called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``\r\n )\r\n }\r\n\r\n continue\r\n }\r\n\r\n context.endpointDefinitions[endpointName] = definition\r\n for (const m of initializedModules) {\r\n m.injectEndpoint(endpointName, definition)\r\n }\r\n }\r\n\r\n return api as any\r\n }\r\n\r\n return api.injectEndpoints({ endpoints: options.endpoints as any })\r\n }\r\n}\r\n", "import type { BaseQueryFn } from './baseQueryTypes'\r\n\r\nconst _NEVER = /* @__PURE__ */ Symbol()\r\nexport type NEVER = typeof _NEVER\r\n\r\n/**\r\n * Creates a \"fake\" baseQuery to be used if your api *only* uses the `queryFn` definition syntax.\r\n * This also allows you to specify a specific error type to be shared by all your `queryFn` definitions.\r\n */\r\nexport function fakeBaseQuery(): BaseQueryFn<\r\n void,\r\n NEVER,\r\n ErrorType,\r\n {}\r\n> {\r\n return function () {\r\n throw new Error(\r\n 'When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.'\r\n )\r\n }\r\n}\r\n", "import type { AnyAction, Middleware, ThunkDispatch } from '@reduxjs/toolkit'\r\nimport { createAction } from '@reduxjs/toolkit'\r\n\r\nimport type {\r\n EndpointDefinitions,\r\n FullTagDescription,\r\n} from '../../endpointDefinitions'\r\nimport type { QueryStatus, QuerySubState, RootState } from '../apiState'\r\nimport type { QueryThunkArg } from '../buildThunks'\r\nimport { buildCacheCollectionHandler } from './cacheCollection'\r\nimport { buildInvalidationByTagsHandler } from './invalidationByTags'\r\nimport { buildPollingHandler } from './polling'\r\nimport type {\r\n BuildMiddlewareInput,\r\n InternalHandlerBuilder,\r\n InternalMiddlewareState,\r\n} from './types'\r\nimport { buildWindowEventHandler } from './windowEventHandling'\r\nimport { buildCacheLifecycleHandler } from './cacheLifecycle'\r\nimport { buildQueryLifecycleHandler } from './queryLifecycle'\r\nimport { buildDevCheckHandler } from './devMiddleware'\r\nimport { buildBatchedActionsHandler } from './batchActions'\r\n\r\nexport function buildMiddleware<\r\n Definitions extends EndpointDefinitions,\r\n ReducerPath extends string,\r\n TagTypes extends string\r\n>(input: BuildMiddlewareInput) {\r\n const { reducerPath, queryThunk, api, context } = input\r\n const { apiUid } = context\r\n\r\n const actions = {\r\n invalidateTags: createAction<\r\n Array>\r\n >(`${reducerPath}/invalidateTags`),\r\n }\r\n\r\n const isThisApiSliceAction = (action: AnyAction) => {\r\n return (\r\n !!action &&\r\n typeof action.type === 'string' &&\r\n action.type.startsWith(`${reducerPath}/`)\r\n )\r\n }\r\n\r\n const handlerBuilders: InternalHandlerBuilder[] = [\r\n buildDevCheckHandler,\r\n buildCacheCollectionHandler,\r\n buildInvalidationByTagsHandler,\r\n buildPollingHandler,\r\n buildCacheLifecycleHandler,\r\n buildQueryLifecycleHandler,\r\n ]\r\n\r\n const middleware: Middleware<\r\n {},\r\n RootState,\r\n ThunkDispatch\r\n > = (mwApi) => {\r\n let initialized = false\r\n\r\n let internalState: InternalMiddlewareState = {\r\n currentSubscriptions: {},\r\n }\r\n\r\n const builderArgs = {\r\n ...(input as any as BuildMiddlewareInput<\r\n EndpointDefinitions,\r\n string,\r\n string\r\n >),\r\n internalState,\r\n refetchQuery,\r\n }\r\n\r\n const handlers = handlerBuilders.map((build) => build(builderArgs))\r\n\r\n const batchedActionsHandler = buildBatchedActionsHandler(builderArgs)\r\n const windowEventsHandler = buildWindowEventHandler(builderArgs)\r\n\r\n return (next) => {\r\n return (action) => {\r\n if (!initialized) {\r\n initialized = true\r\n // dispatch before any other action\r\n mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid))\r\n }\r\n\r\n const mwApiWithNext = { ...mwApi, next }\r\n\r\n const stateBefore = mwApi.getState()\r\n\r\n const [actionShouldContinue, hasSubscription] = batchedActionsHandler(\r\n action,\r\n mwApiWithNext,\r\n stateBefore\r\n )\r\n\r\n let res: any\r\n\r\n if (actionShouldContinue) {\r\n res = next(action)\r\n } else {\r\n res = hasSubscription\r\n }\r\n\r\n if (!!mwApi.getState()[reducerPath]) {\r\n // Only run these checks if the middleware is registered okay\r\n\r\n // This looks for actions that aren't specific to the API slice\r\n windowEventsHandler(action, mwApiWithNext, stateBefore)\r\n\r\n if (\r\n isThisApiSliceAction(action) ||\r\n context.hasRehydrationInfo(action)\r\n ) {\r\n // Only run these additional checks if the actions are part of the API slice,\r\n // or the action has hydration-related data\r\n for (let handler of handlers) {\r\n handler(action, mwApiWithNext, stateBefore)\r\n }\r\n }\r\n }\r\n\r\n return res\r\n }\r\n }\r\n }\r\n\r\n return { middleware, actions }\r\n\r\n function refetchQuery(\r\n querySubState: Exclude<\r\n QuerySubState,\r\n { status: QueryStatus.uninitialized }\r\n >,\r\n queryCacheKey: string,\r\n override: Partial = {}\r\n ) {\r\n return queryThunk({\r\n type: 'query',\r\n endpointName: querySubState.endpointName,\r\n originalArgs: querySubState.originalArgs,\r\n subscribe: false,\r\n forceRefetch: true,\r\n queryCacheKey: queryCacheKey as any,\r\n ...override,\r\n })\r\n }\r\n}\r\n", "import type { QueryThunk, RejectedAction } from '../buildThunks'\r\nimport type { InternalHandlerBuilder } from './types'\r\nimport type {\r\n SubscriptionState,\r\n QuerySubstateIdentifier,\r\n Subscribers,\r\n} from '../apiState'\r\nimport { produceWithPatches } from 'immer'\r\nimport type { AnyAction } from '@reduxjs/toolkit';\r\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\n\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\nexport const buildBatchedActionsHandler: InternalHandlerBuilder<\r\n [actionShouldContinue: boolean, subscriptionExists: boolean]\r\n> = ({ api, queryThunk, internalState }) => {\r\n const subscriptionsPrefix = `${api.reducerPath}/subscriptions`\r\n\r\n let previousSubscriptions: SubscriptionState =\r\n null as unknown as SubscriptionState\r\n\r\n let dispatchQueued = false\r\n\r\n const { updateSubscriptionOptions, unsubscribeQueryResult } =\r\n api.internalActions\r\n\r\n // Actually intentionally mutate the subscriptions state used in the middleware\r\n // This is done to speed up perf when loading many components\r\n const actuallyMutateSubscriptions = (\r\n mutableState: SubscriptionState,\r\n action: AnyAction\r\n ) => {\r\n if (updateSubscriptionOptions.match(action)) {\r\n const { queryCacheKey, requestId, options } = action.payload\r\n\r\n if (mutableState?.[queryCacheKey]?.[requestId]) {\r\n mutableState[queryCacheKey]![requestId] = options\r\n }\r\n return true\r\n }\r\n if (unsubscribeQueryResult.match(action)) {\r\n const { queryCacheKey, requestId } = action.payload\r\n if (mutableState[queryCacheKey]) {\r\n delete mutableState[queryCacheKey]![requestId]\r\n }\r\n return true\r\n }\r\n if (api.internalActions.removeQueryResult.match(action)) {\r\n delete mutableState[action.payload.queryCacheKey]\r\n return true\r\n }\r\n if (queryThunk.pending.match(action)) {\r\n const {\r\n meta: { arg, requestId },\r\n } = action\r\n if (arg.subscribe) {\r\n const substate = (mutableState[arg.queryCacheKey] ??= {})\r\n substate[requestId] =\r\n arg.subscriptionOptions ?? substate[requestId] ?? {}\r\n\r\n return true\r\n }\r\n }\r\n if (queryThunk.rejected.match(action)) {\r\n const {\r\n meta: { condition, arg, requestId },\r\n } = action\r\n if (condition && arg.subscribe) {\r\n const substate = (mutableState[arg.queryCacheKey] ??= {})\r\n substate[requestId] =\r\n arg.subscriptionOptions ?? substate[requestId] ?? {}\r\n\r\n return true\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n return (action, mwApi) => {\r\n if (!previousSubscriptions) {\r\n // Initialize it the first time this handler runs\r\n previousSubscriptions = JSON.parse(\r\n JSON.stringify(internalState.currentSubscriptions)\r\n )\r\n }\r\n\r\n if (api.util.resetApiState.match(action)) {\r\n previousSubscriptions = internalState.currentSubscriptions = {}\r\n return [true, false]\r\n }\r\n\r\n // Intercept requests by hooks to see if they're subscribed\r\n // Necessary because we delay updating store state to the end of the tick\r\n if (api.internalActions.internal_probeSubscription.match(action)) {\r\n const { queryCacheKey, requestId } = action.payload\r\n const hasSubscription =\r\n !!internalState.currentSubscriptions[queryCacheKey]?.[requestId]\r\n return [false, hasSubscription]\r\n }\r\n\r\n // Update subscription data based on this action\r\n const didMutate = actuallyMutateSubscriptions(\r\n internalState.currentSubscriptions,\r\n action\r\n )\r\n\r\n if (didMutate) {\r\n if (!dispatchQueued) {\r\n queueMicrotaskShim(() => {\r\n // Deep clone the current subscription data\r\n const newSubscriptions: SubscriptionState = JSON.parse(\r\n JSON.stringify(internalState.currentSubscriptions)\r\n )\r\n // Figure out a smaller diff between original and current\r\n const [, patches] = produceWithPatches(\r\n previousSubscriptions,\r\n () => newSubscriptions\r\n )\r\n\r\n // Sync the store state for visibility\r\n mwApi.next(api.internalActions.subscriptionsUpdated(patches))\r\n // Save the cloned state for later reference\r\n previousSubscriptions = newSubscriptions\r\n dispatchQueued = false\r\n })\r\n dispatchQueued = true\r\n }\r\n\r\n const isSubscriptionSliceAction =\r\n !!action.type?.startsWith(subscriptionsPrefix)\r\n const isAdditionalSubscriptionAction =\r\n queryThunk.rejected.match(action) &&\r\n action.meta.condition &&\r\n !!action.meta.arg.subscribe\r\n\r\n const actionShouldContinue =\r\n !isSubscriptionSliceAction && !isAdditionalSubscriptionAction\r\n\r\n return [actionShouldContinue, false]\r\n }\r\n\r\n return [true, false]\r\n }\r\n}\r\n", "import type { BaseQueryFn } from '../../baseQueryTypes'\r\nimport type { QueryDefinition } from '../../endpointDefinitions'\r\nimport type { ConfigState, QueryCacheKey } from '../apiState'\r\nimport type {\r\n QueryStateMeta,\r\n SubMiddlewareApi,\r\n TimeoutId,\r\n InternalHandlerBuilder,\r\n ApiMiddlewareInternalHandler,\r\n InternalMiddlewareState,\r\n} from './types'\r\n\r\nexport type ReferenceCacheCollection = never\r\n\r\nfunction isObjectEmpty(obj: Record) {\r\n // Apparently a for..in loop is faster than `Object.keys()` here:\r\n // https://stackoverflow.com/a/59787784/62937\r\n for (let k in obj) {\r\n // If there is at least one key, it's not empty\r\n return false\r\n }\r\n return true\r\n}\r\n\r\ndeclare module '../../endpointDefinitions' {\r\n interface QueryExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n > {\r\n /**\r\n * Overrides the api-wide definition of `keepUnusedDataFor` for this endpoint only. _(This value is in seconds.)_\r\n *\r\n * This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\r\n */\r\n keepUnusedDataFor?: number\r\n }\r\n}\r\n\r\n// Per https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value , browsers store\r\n// `setTimeout()` timer values in a 32-bit int. If we pass a value in that's larger than that,\r\n// it wraps and ends up executing immediately.\r\n// Our `keepUnusedDataFor` values are in seconds, so adjust the numbers here accordingly.\r\nexport const THIRTY_TWO_BIT_MAX_INT = 2_147_483_647\r\nexport const THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2_147_483_647 / 1_000 - 1\r\n\r\nexport const buildCacheCollectionHandler: InternalHandlerBuilder = ({\r\n reducerPath,\r\n api,\r\n context,\r\n internalState,\r\n}) => {\r\n const { removeQueryResult, unsubscribeQueryResult } = api.internalActions\r\n\r\n function anySubscriptionsRemainingForKey(queryCacheKey: string) {\r\n const subscriptions = internalState.currentSubscriptions[queryCacheKey]\r\n return !!subscriptions && !isObjectEmpty(subscriptions)\r\n }\r\n\r\n const currentRemovalTimeouts: QueryStateMeta = {}\r\n\r\n const handler: ApiMiddlewareInternalHandler = (\r\n action,\r\n mwApi,\r\n internalState\r\n ) => {\r\n if (unsubscribeQueryResult.match(action)) {\r\n const state = mwApi.getState()[reducerPath]\r\n const { queryCacheKey } = action.payload\r\n\r\n handleUnsubscribe(\r\n queryCacheKey,\r\n state.queries[queryCacheKey]?.endpointName,\r\n mwApi,\r\n state.config\r\n )\r\n }\r\n\r\n if (api.util.resetApiState.match(action)) {\r\n for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {\r\n if (timeout) clearTimeout(timeout)\r\n delete currentRemovalTimeouts[key]\r\n }\r\n }\r\n\r\n if (context.hasRehydrationInfo(action)) {\r\n const state = mwApi.getState()[reducerPath]\r\n const { queries } = context.extractRehydrationInfo(action)!\r\n for (const [queryCacheKey, queryState] of Object.entries(queries)) {\r\n // Gotcha:\r\n // If rehydrating before the endpoint has been injected,the global `keepUnusedDataFor`\r\n // will be used instead of the endpoint-specific one.\r\n handleUnsubscribe(\r\n queryCacheKey as QueryCacheKey,\r\n queryState?.endpointName,\r\n mwApi,\r\n state.config\r\n )\r\n }\r\n }\r\n }\r\n\r\n function handleUnsubscribe(\r\n queryCacheKey: QueryCacheKey,\r\n endpointName: string | undefined,\r\n api: SubMiddlewareApi,\r\n config: ConfigState\r\n ) {\r\n const endpointDefinition = context.endpointDefinitions[\r\n endpointName!\r\n ] as QueryDefinition\r\n const keepUnusedDataFor =\r\n endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor\r\n\r\n if (keepUnusedDataFor === Infinity) {\r\n // Hey, user said keep this forever!\r\n return\r\n }\r\n // Prevent `setTimeout` timers from overflowing a 32-bit internal int, by\r\n // clamping the max value to be at most 1000ms less than the 32-bit max.\r\n // Look, a 24.8-day keepalive ought to be enough for anybody, right? :)\r\n // Also avoid negative values too.\r\n const finalKeepUnusedDataFor = Math.max(\r\n 0,\r\n Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS)\r\n )\r\n\r\n if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\r\n const currentTimeout = currentRemovalTimeouts[queryCacheKey]\r\n if (currentTimeout) {\r\n clearTimeout(currentTimeout)\r\n }\r\n currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {\r\n if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\r\n api.dispatch(removeQueryResult({ queryCacheKey }))\r\n }\r\n delete currentRemovalTimeouts![queryCacheKey]\r\n }, finalKeepUnusedDataFor * 1000)\r\n }\r\n }\r\n\r\n return handler\r\n}\r\n", "import { isAnyOf, isFulfilled, isRejectedWithValue } from '@reduxjs/toolkit'\r\n\r\nimport type { FullTagDescription } from '../../endpointDefinitions'\r\nimport { calculateProvidedBy } from '../../endpointDefinitions'\r\nimport type { QueryCacheKey } from '../apiState'\r\nimport { QueryStatus } from '../apiState'\r\nimport { calculateProvidedByThunk } from '../buildThunks'\r\nimport type {\r\n SubMiddlewareApi,\r\n InternalHandlerBuilder,\r\n ApiMiddlewareInternalHandler,\r\n} from './types'\r\n\r\nexport const buildInvalidationByTagsHandler: InternalHandlerBuilder = ({\r\n reducerPath,\r\n context,\r\n context: { endpointDefinitions },\r\n mutationThunk,\r\n api,\r\n assertTagType,\r\n refetchQuery,\r\n}) => {\r\n const { removeQueryResult } = api.internalActions\r\n const isThunkActionWithTags = isAnyOf(\r\n isFulfilled(mutationThunk),\r\n isRejectedWithValue(mutationThunk)\r\n )\r\n\r\n const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\r\n if (isThunkActionWithTags(action)) {\r\n invalidateTags(\r\n calculateProvidedByThunk(\r\n action,\r\n 'invalidatesTags',\r\n endpointDefinitions,\r\n assertTagType\r\n ),\r\n mwApi\r\n )\r\n }\r\n\r\n if (api.util.invalidateTags.match(action)) {\r\n invalidateTags(\r\n calculateProvidedBy(\r\n action.payload,\r\n undefined,\r\n undefined,\r\n undefined,\r\n undefined,\r\n assertTagType\r\n ),\r\n mwApi\r\n )\r\n }\r\n }\r\n\r\n function invalidateTags(\r\n tags: readonly FullTagDescription[],\r\n mwApi: SubMiddlewareApi\r\n ) {\r\n const rootState = mwApi.getState()\r\n const state = rootState[reducerPath]\r\n\r\n const toInvalidate = api.util.selectInvalidatedBy(rootState, tags)\r\n\r\n context.batch(() => {\r\n const valuesArray = Array.from(toInvalidate.values())\r\n for (const { queryCacheKey } of valuesArray) {\r\n const querySubState = state.queries[queryCacheKey]\r\n const subscriptionSubState = state.subscriptions[queryCacheKey] ?? {}\r\n\r\n if (querySubState) {\r\n if (Object.keys(subscriptionSubState).length === 0) {\r\n mwApi.dispatch(\r\n removeQueryResult({\r\n queryCacheKey: queryCacheKey as QueryCacheKey,\r\n })\r\n )\r\n } else if (querySubState.status !== QueryStatus.uninitialized) {\r\n mwApi.dispatch(refetchQuery(querySubState, queryCacheKey))\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n return handler\r\n}\r\n", "import type { QuerySubstateIdentifier, Subscribers } from '../apiState'\r\nimport { QueryStatus } from '../apiState'\r\nimport type {\r\n QueryStateMeta,\r\n SubMiddlewareApi,\r\n TimeoutId,\r\n InternalHandlerBuilder,\r\n ApiMiddlewareInternalHandler,\r\n InternalMiddlewareState,\r\n} from './types'\r\n\r\nexport const buildPollingHandler: InternalHandlerBuilder = ({\r\n reducerPath,\r\n queryThunk,\r\n api,\r\n refetchQuery,\r\n internalState,\r\n}) => {\r\n const currentPolls: QueryStateMeta<{\r\n nextPollTimestamp: number\r\n timeout?: TimeoutId\r\n pollingInterval: number\r\n }> = {}\r\n\r\n const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\r\n if (\r\n api.internalActions.updateSubscriptionOptions.match(action) ||\r\n api.internalActions.unsubscribeQueryResult.match(action)\r\n ) {\r\n updatePollingInterval(action.payload, mwApi)\r\n }\r\n\r\n if (\r\n queryThunk.pending.match(action) ||\r\n (queryThunk.rejected.match(action) && action.meta.condition)\r\n ) {\r\n updatePollingInterval(action.meta.arg, mwApi)\r\n }\r\n\r\n if (\r\n queryThunk.fulfilled.match(action) ||\r\n (queryThunk.rejected.match(action) && !action.meta.condition)\r\n ) {\r\n startNextPoll(action.meta.arg, mwApi)\r\n }\r\n\r\n if (api.util.resetApiState.match(action)) {\r\n clearPolls()\r\n }\r\n }\r\n\r\n function startNextPoll(\r\n { queryCacheKey }: QuerySubstateIdentifier,\r\n api: SubMiddlewareApi\r\n ) {\r\n const state = api.getState()[reducerPath]\r\n const querySubState = state.queries[queryCacheKey]\r\n const subscriptions = internalState.currentSubscriptions[queryCacheKey]\r\n\r\n if (!querySubState || querySubState.status === QueryStatus.uninitialized)\r\n return\r\n\r\n const lowestPollingInterval = findLowestPollingInterval(subscriptions)\r\n if (!Number.isFinite(lowestPollingInterval)) return\r\n\r\n const currentPoll = currentPolls[queryCacheKey]\r\n\r\n if (currentPoll?.timeout) {\r\n clearTimeout(currentPoll.timeout)\r\n currentPoll.timeout = undefined\r\n }\r\n\r\n const nextPollTimestamp = Date.now() + lowestPollingInterval\r\n\r\n const currentInterval: typeof currentPolls[number] = (currentPolls[\r\n queryCacheKey\r\n ] = {\r\n nextPollTimestamp,\r\n pollingInterval: lowestPollingInterval,\r\n timeout: setTimeout(() => {\r\n currentInterval!.timeout = undefined\r\n api.dispatch(refetchQuery(querySubState, queryCacheKey))\r\n }, lowestPollingInterval),\r\n })\r\n }\r\n\r\n function updatePollingInterval(\r\n { queryCacheKey }: QuerySubstateIdentifier,\r\n api: SubMiddlewareApi\r\n ) {\r\n const state = api.getState()[reducerPath]\r\n const querySubState = state.queries[queryCacheKey]\r\n const subscriptions = internalState.currentSubscriptions[queryCacheKey]\r\n\r\n if (!querySubState || querySubState.status === QueryStatus.uninitialized) {\r\n return\r\n }\r\n\r\n const lowestPollingInterval = findLowestPollingInterval(subscriptions)\r\n\r\n if (!Number.isFinite(lowestPollingInterval)) {\r\n cleanupPollForKey(queryCacheKey)\r\n return\r\n }\r\n\r\n const currentPoll = currentPolls[queryCacheKey]\r\n const nextPollTimestamp = Date.now() + lowestPollingInterval\r\n\r\n if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {\r\n startNextPoll({ queryCacheKey }, api)\r\n }\r\n }\r\n\r\n function cleanupPollForKey(key: string) {\r\n const existingPoll = currentPolls[key]\r\n if (existingPoll?.timeout) {\r\n clearTimeout(existingPoll.timeout)\r\n }\r\n delete currentPolls[key]\r\n }\r\n\r\n function clearPolls() {\r\n for (const key of Object.keys(currentPolls)) {\r\n cleanupPollForKey(key)\r\n }\r\n }\r\n\r\n function findLowestPollingInterval(subscribers: Subscribers = {}) {\r\n let lowestPollingInterval = Number.POSITIVE_INFINITY\r\n for (let key in subscribers) {\r\n if (!!subscribers[key].pollingInterval) {\r\n lowestPollingInterval = Math.min(\r\n subscribers[key].pollingInterval!,\r\n lowestPollingInterval\r\n )\r\n }\r\n }\r\n\r\n return lowestPollingInterval\r\n }\r\n return handler\r\n}\r\n", "import { isAsyncThunkAction, isFulfilled } from '@reduxjs/toolkit'\r\nimport type { AnyAction } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { BaseQueryFn, BaseQueryMeta } from '../../baseQueryTypes'\r\nimport { DefinitionType } from '../../endpointDefinitions'\r\nimport type { RootState } from '../apiState'\r\nimport type {\r\n MutationResultSelectorResult,\r\n QueryResultSelectorResult,\r\n} from '../buildSelectors'\r\nimport { getMutationCacheKey } from '../buildSlice'\r\nimport type { PatchCollection, Recipe } from '../buildThunks'\r\nimport type {\r\n ApiMiddlewareInternalHandler,\r\n InternalHandlerBuilder,\r\n PromiseWithKnownReason,\r\n SubMiddlewareApi,\r\n} from './types'\r\n\r\nexport type ReferenceCacheLifecycle = never\r\n\r\ndeclare module '../../endpointDefinitions' {\r\n export interface QueryBaseLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends LifecycleApi {\r\n /**\r\n * Gets the current value of this cache entry.\r\n */\r\n getCacheEntry(): QueryResultSelectorResult<\r\n { type: DefinitionType.query } & BaseEndpointDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n ResultType\r\n >\r\n >\r\n /**\r\n * Updates the current cache entry value.\r\n * For documentation see `api.util.updateQueryData`.\r\n */\r\n updateCachedData(updateRecipe: Recipe): PatchCollection\r\n }\r\n\r\n export interface MutationBaseLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends LifecycleApi {\r\n /**\r\n * Gets the current value of this cache entry.\r\n */\r\n getCacheEntry(): MutationResultSelectorResult<\r\n { type: DefinitionType.mutation } & BaseEndpointDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n ResultType\r\n >\r\n >\r\n }\r\n\r\n export interface LifecycleApi {\r\n /**\r\n * The dispatch method for the store\r\n */\r\n dispatch: ThunkDispatch\r\n /**\r\n * A method to get the current state\r\n */\r\n getState(): RootState\r\n /**\r\n * `extra` as provided as `thunk.extraArgument` to the `configureStore` `getDefaultMiddleware` option.\r\n */\r\n extra: unknown\r\n /**\r\n * A unique ID generated for the mutation\r\n */\r\n requestId: string\r\n }\r\n\r\n export interface CacheLifecyclePromises<\r\n ResultType = unknown,\r\n MetaType = unknown\r\n > {\r\n /**\r\n * Promise that will resolve with the first value for this cache key.\r\n * This allows you to `await` until an actual value is in cache.\r\n *\r\n * If the cache entry is removed from the cache before any value has ever\r\n * been resolved, this Promise will reject with\r\n * `new Error('Promise never resolved before cacheEntryRemoved.')`\r\n * to prevent memory leaks.\r\n * You can just re-throw that error (or not handle it at all) -\r\n * it will be caught outside of `cacheEntryAdded`.\r\n *\r\n * If you don't interact with this promise, it will not throw.\r\n */\r\n cacheDataLoaded: PromiseWithKnownReason<\r\n {\r\n /**\r\n * The (transformed) query result.\r\n */\r\n data: ResultType\r\n /**\r\n * The `meta` returned by the `baseQuery`\r\n */\r\n meta: MetaType\r\n },\r\n typeof neverResolvedError\r\n >\r\n /**\r\n * Promise that allows you to wait for the point in time when the cache entry\r\n * has been removed from the cache, by not being used/subscribed to any more\r\n * in the application for too long or by dispatching `api.util.resetApiState`.\r\n */\r\n cacheEntryRemoved: Promise\r\n }\r\n\r\n export interface QueryCacheLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends QueryBaseLifecycleApi,\r\n CacheLifecyclePromises> {}\r\n\r\n export interface MutationCacheLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends MutationBaseLifecycleApi<\r\n QueryArg,\r\n BaseQuery,\r\n ResultType,\r\n ReducerPath\r\n >,\r\n CacheLifecyclePromises> {}\r\n\r\n interface QueryExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n > {\r\n onCacheEntryAdded?(\r\n arg: QueryArg,\r\n api: QueryCacheLifecycleApi\r\n ): Promise | void\r\n }\r\n\r\n interface MutationExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n > {\r\n onCacheEntryAdded?(\r\n arg: QueryArg,\r\n api: MutationCacheLifecycleApi<\r\n QueryArg,\r\n BaseQuery,\r\n ResultType,\r\n ReducerPath\r\n >\r\n ): Promise | void\r\n }\r\n}\r\n\r\nconst neverResolvedError = new Error(\r\n 'Promise never resolved before cacheEntryRemoved.'\r\n) as Error & {\r\n message: 'Promise never resolved before cacheEntryRemoved.'\r\n}\r\n\r\nexport const buildCacheLifecycleHandler: InternalHandlerBuilder = ({\r\n api,\r\n reducerPath,\r\n context,\r\n queryThunk,\r\n mutationThunk,\r\n internalState,\r\n}) => {\r\n const isQueryThunk = isAsyncThunkAction(queryThunk)\r\n const isMutationThunk = isAsyncThunkAction(mutationThunk)\r\n const isFulfilledThunk = isFulfilled(queryThunk, mutationThunk)\r\n\r\n type CacheLifecycle = {\r\n valueResolved?(value: { data: unknown; meta: unknown }): unknown\r\n cacheEntryRemoved(): void\r\n }\r\n const lifecycleMap: Record = {}\r\n\r\n const handler: ApiMiddlewareInternalHandler = (\r\n action,\r\n mwApi,\r\n stateBefore\r\n ) => {\r\n const cacheKey = getCacheKey(action)\r\n\r\n if (queryThunk.pending.match(action)) {\r\n const oldState = stateBefore[reducerPath].queries[cacheKey]\r\n const state = mwApi.getState()[reducerPath].queries[cacheKey]\r\n if (!oldState && state) {\r\n handleNewKey(\r\n action.meta.arg.endpointName,\r\n action.meta.arg.originalArgs,\r\n cacheKey,\r\n mwApi,\r\n action.meta.requestId\r\n )\r\n }\r\n } else if (mutationThunk.pending.match(action)) {\r\n const state = mwApi.getState()[reducerPath].mutations[cacheKey]\r\n if (state) {\r\n handleNewKey(\r\n action.meta.arg.endpointName,\r\n action.meta.arg.originalArgs,\r\n cacheKey,\r\n mwApi,\r\n action.meta.requestId\r\n )\r\n }\r\n } else if (isFulfilledThunk(action)) {\r\n const lifecycle = lifecycleMap[cacheKey]\r\n if (lifecycle?.valueResolved) {\r\n lifecycle.valueResolved({\r\n data: action.payload,\r\n meta: action.meta.baseQueryMeta,\r\n })\r\n delete lifecycle.valueResolved\r\n }\r\n } else if (\r\n api.internalActions.removeQueryResult.match(action) ||\r\n api.internalActions.removeMutationResult.match(action)\r\n ) {\r\n const lifecycle = lifecycleMap[cacheKey]\r\n if (lifecycle) {\r\n delete lifecycleMap[cacheKey]\r\n lifecycle.cacheEntryRemoved()\r\n }\r\n } else if (api.util.resetApiState.match(action)) {\r\n for (const [cacheKey, lifecycle] of Object.entries(lifecycleMap)) {\r\n delete lifecycleMap[cacheKey]\r\n lifecycle.cacheEntryRemoved()\r\n }\r\n }\r\n }\r\n\r\n function getCacheKey(action: any) {\r\n if (isQueryThunk(action)) return action.meta.arg.queryCacheKey\r\n if (isMutationThunk(action)) return action.meta.requestId\r\n if (api.internalActions.removeQueryResult.match(action))\r\n return action.payload.queryCacheKey\r\n if (api.internalActions.removeMutationResult.match(action))\r\n return getMutationCacheKey(action.payload)\r\n return ''\r\n }\r\n\r\n function handleNewKey(\r\n endpointName: string,\r\n originalArgs: any,\r\n queryCacheKey: string,\r\n mwApi: SubMiddlewareApi,\r\n requestId: string\r\n ) {\r\n const endpointDefinition = context.endpointDefinitions[endpointName]\r\n const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded\r\n if (!onCacheEntryAdded) return\r\n\r\n let lifecycle = {} as CacheLifecycle\r\n\r\n const cacheEntryRemoved = new Promise((resolve) => {\r\n lifecycle.cacheEntryRemoved = resolve\r\n })\r\n const cacheDataLoaded: PromiseWithKnownReason<\r\n { data: unknown; meta: unknown },\r\n typeof neverResolvedError\r\n > = Promise.race([\r\n new Promise<{ data: unknown; meta: unknown }>((resolve) => {\r\n lifecycle.valueResolved = resolve\r\n }),\r\n cacheEntryRemoved.then(() => {\r\n throw neverResolvedError\r\n }),\r\n ])\r\n // prevent uncaught promise rejections from happening.\r\n // if the original promise is used in any way, that will create a new promise that will throw again\r\n cacheDataLoaded.catch(() => {})\r\n lifecycleMap[queryCacheKey] = lifecycle\r\n const selector = (api.endpoints[endpointName] as any).select(\r\n endpointDefinition.type === DefinitionType.query\r\n ? originalArgs\r\n : queryCacheKey\r\n )\r\n\r\n const extra = mwApi.dispatch((_, __, extra) => extra)\r\n const lifecycleApi = {\r\n ...mwApi,\r\n getCacheEntry: () => selector(mwApi.getState()),\r\n requestId,\r\n extra,\r\n updateCachedData: (endpointDefinition.type === DefinitionType.query\r\n ? (updateRecipe: Recipe) =>\r\n mwApi.dispatch(\r\n api.util.updateQueryData(\r\n endpointName as never,\r\n originalArgs,\r\n updateRecipe\r\n )\r\n )\r\n : undefined) as any,\r\n\r\n cacheDataLoaded,\r\n cacheEntryRemoved,\r\n }\r\n\r\n const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi)\r\n // if a `neverResolvedError` was thrown, but not handled in the running handler, do not let it leak out further\r\n Promise.resolve(runningHandler).catch((e) => {\r\n if (e === neverResolvedError) return\r\n throw e\r\n })\r\n }\r\n\r\n return handler\r\n}\r\n", "import { isPending, isRejected, isFulfilled } from '@reduxjs/toolkit'\r\nimport type {\r\n BaseQueryError,\r\n BaseQueryFn,\r\n BaseQueryMeta,\r\n} from '../../baseQueryTypes'\r\nimport { DefinitionType } from '../../endpointDefinitions'\r\nimport type { QueryFulfilledRejectionReason } from '../../endpointDefinitions'\r\nimport type { Recipe } from '../buildThunks'\r\nimport type {\r\n PromiseWithKnownReason,\r\n PromiseConstructorWithKnownReason,\r\n InternalHandlerBuilder,\r\n ApiMiddlewareInternalHandler,\r\n} from './types'\r\n\r\nexport type ReferenceQueryLifecycle = never\r\n\r\ndeclare module '../../endpointDefinitions' {\r\n export interface QueryLifecyclePromises<\r\n ResultType,\r\n BaseQuery extends BaseQueryFn\r\n > {\r\n /**\r\n * Promise that will resolve with the (transformed) query result.\r\n *\r\n * If the query fails, this promise will reject with the error.\r\n *\r\n * This allows you to `await` for the query to finish.\r\n *\r\n * If you don't interact with this promise, it will not throw.\r\n */\r\n queryFulfilled: PromiseWithKnownReason<\r\n {\r\n /**\r\n * The (transformed) query result.\r\n */\r\n data: ResultType\r\n /**\r\n * The `meta` returned by the `baseQuery`\r\n */\r\n meta: BaseQueryMeta\r\n },\r\n QueryFulfilledRejectionReason\r\n >\r\n }\r\n\r\n type QueryFulfilledRejectionReason =\r\n | {\r\n error: BaseQueryError\r\n /**\r\n * If this is `false`, that means this error was returned from the `baseQuery` or `queryFn` in a controlled manner.\r\n */\r\n isUnhandledError: false\r\n /**\r\n * The `meta` returned by the `baseQuery`\r\n */\r\n meta: BaseQueryMeta\r\n }\r\n | {\r\n error: unknown\r\n meta?: undefined\r\n /**\r\n * If this is `true`, that means that this error is the result of `baseQueryFn`, `queryFn`, `transformResponse` or `transformErrorResponse` throwing an error instead of handling it properly.\r\n * There can not be made any assumption about the shape of `error`.\r\n */\r\n isUnhandledError: true\r\n }\r\n\r\n interface QueryExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n > {\r\n /**\r\n * A function that is called when the individual query is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\r\n *\r\n * Can be used to perform side-effects throughout the lifecycle of the query.\r\n *\r\n * @example\r\n * ```ts\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\r\n * import { messageCreated } from './notificationsSlice\r\n * export interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({\r\n * baseUrl: '/',\r\n * }),\r\n * endpoints: (build) => ({\r\n * getPost: build.query({\r\n * query: (id) => `post/${id}`,\r\n * async onQueryStarted(id, { dispatch, queryFulfilled }) {\r\n * // `onStart` side-effect\r\n * dispatch(messageCreated('Fetching posts...'))\r\n * try {\r\n * const { data } = await queryFulfilled\r\n * // `onSuccess` side-effect\r\n * dispatch(messageCreated('Posts received!'))\r\n * } catch (err) {\r\n * // `onError` side-effect\r\n * dispatch(messageCreated('Error fetching posts!'))\r\n * }\r\n * }\r\n * }),\r\n * }),\r\n * })\r\n * ```\r\n */\r\n onQueryStarted?(\r\n arg: QueryArg,\r\n api: QueryLifecycleApi\r\n ): Promise | void\r\n }\r\n\r\n interface MutationExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n > {\r\n /**\r\n * A function that is called when the individual mutation is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\r\n *\r\n * Can be used for `optimistic updates`.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\r\n * export interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({\r\n * baseUrl: '/',\r\n * }),\r\n * tagTypes: ['Post'],\r\n * endpoints: (build) => ({\r\n * getPost: build.query({\r\n * query: (id) => `post/${id}`,\r\n * providesTags: ['Post'],\r\n * }),\r\n * updatePost: build.mutation & Partial>({\r\n * query: ({ id, ...patch }) => ({\r\n * url: `post/${id}`,\r\n * method: 'PATCH',\r\n * body: patch,\r\n * }),\r\n * invalidatesTags: ['Post'],\r\n * async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {\r\n * const patchResult = dispatch(\r\n * api.util.updateQueryData('getPost', id, (draft) => {\r\n * Object.assign(draft, patch)\r\n * })\r\n * )\r\n * try {\r\n * await queryFulfilled\r\n * } catch {\r\n * patchResult.undo()\r\n * }\r\n * },\r\n * }),\r\n * }),\r\n * })\r\n * ```\r\n */\r\n onQueryStarted?(\r\n arg: QueryArg,\r\n api: MutationLifecycleApi\r\n ): Promise | void\r\n }\r\n\r\n export interface QueryLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends QueryBaseLifecycleApi,\r\n QueryLifecyclePromises {}\r\n\r\n export interface MutationLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends MutationBaseLifecycleApi<\r\n QueryArg,\r\n BaseQuery,\r\n ResultType,\r\n ReducerPath\r\n >,\r\n QueryLifecyclePromises {}\r\n}\r\n\r\nexport const buildQueryLifecycleHandler: InternalHandlerBuilder = ({\r\n api,\r\n context,\r\n queryThunk,\r\n mutationThunk,\r\n}) => {\r\n const isPendingThunk = isPending(queryThunk, mutationThunk)\r\n const isRejectedThunk = isRejected(queryThunk, mutationThunk)\r\n const isFullfilledThunk = isFulfilled(queryThunk, mutationThunk)\r\n\r\n type CacheLifecycle = {\r\n resolve(value: { data: unknown; meta: unknown }): unknown\r\n reject(value: QueryFulfilledRejectionReason): unknown\r\n }\r\n const lifecycleMap: Record = {}\r\n\r\n const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\r\n if (isPendingThunk(action)) {\r\n const {\r\n requestId,\r\n arg: { endpointName, originalArgs },\r\n } = action.meta\r\n const endpointDefinition = context.endpointDefinitions[endpointName]\r\n const onQueryStarted = endpointDefinition?.onQueryStarted\r\n if (onQueryStarted) {\r\n const lifecycle = {} as CacheLifecycle\r\n const queryFulfilled =\r\n new (Promise as PromiseConstructorWithKnownReason)<\r\n { data: unknown; meta: unknown },\r\n QueryFulfilledRejectionReason\r\n >((resolve, reject) => {\r\n lifecycle.resolve = resolve\r\n lifecycle.reject = reject\r\n })\r\n // prevent uncaught promise rejections from happening.\r\n // if the original promise is used in any way, that will create a new promise that will throw again\r\n queryFulfilled.catch(() => {})\r\n lifecycleMap[requestId] = lifecycle\r\n const selector = (api.endpoints[endpointName] as any).select(\r\n endpointDefinition.type === DefinitionType.query\r\n ? originalArgs\r\n : requestId\r\n )\r\n\r\n const extra = mwApi.dispatch((_, __, extra) => extra)\r\n const lifecycleApi = {\r\n ...mwApi,\r\n getCacheEntry: () => selector(mwApi.getState()),\r\n requestId,\r\n extra,\r\n updateCachedData: (endpointDefinition.type === DefinitionType.query\r\n ? (updateRecipe: Recipe) =>\r\n mwApi.dispatch(\r\n api.util.updateQueryData(\r\n endpointName as never,\r\n originalArgs,\r\n updateRecipe\r\n )\r\n )\r\n : undefined) as any,\r\n queryFulfilled,\r\n }\r\n onQueryStarted(originalArgs, lifecycleApi)\r\n }\r\n } else if (isFullfilledThunk(action)) {\r\n const { requestId, baseQueryMeta } = action.meta\r\n lifecycleMap[requestId]?.resolve({\r\n data: action.payload,\r\n meta: baseQueryMeta,\r\n })\r\n delete lifecycleMap[requestId]\r\n } else if (isRejectedThunk(action)) {\r\n const { requestId, rejectedWithValue, baseQueryMeta } = action.meta\r\n lifecycleMap[requestId]?.reject({\r\n error: action.payload ?? action.error,\r\n isUnhandledError: !rejectedWithValue,\r\n meta: baseQueryMeta as any,\r\n })\r\n delete lifecycleMap[requestId]\r\n }\r\n }\r\n\r\n return handler\r\n}\r\n", "import type { InternalHandlerBuilder } from './types'\r\n\r\nexport const buildDevCheckHandler: InternalHandlerBuilder = ({\r\n api,\r\n context: { apiUid },\r\n reducerPath,\r\n}) => {\r\n return (action, mwApi) => {\r\n if (api.util.resetApiState.match(action)) {\r\n // dispatch after api reset\r\n mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid))\r\n }\r\n\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (\r\n api.internalActions.middlewareRegistered.match(action) &&\r\n action.payload === apiUid &&\r\n mwApi.getState()[reducerPath]?.config?.middlewareRegistered ===\r\n 'conflict'\r\n ) {\r\n console.warn(`There is a mismatch between slice and middleware for the reducerPath \"${reducerPath}\".\r\nYou can only have one api per reducer path, this will lead to crashes in various situations!${\r\n reducerPath === 'api'\r\n ? `\r\nIf you have multiple apis, you *have* to specify the reducerPath option when using createApi!`\r\n : ''\r\n }`)\r\n }\r\n }\r\n }\r\n}\r\n", "export type Id = { [K in keyof T]: T[K] } & {}\r\nexport type WithRequiredProp = Omit &\r\n Required>\r\nexport type Override = T2 extends any ? Omit & T2 : never\r\nexport function assertCast(v: any): asserts v is T {}\r\n\r\nexport function safeAssign(\r\n target: T,\r\n ...args: Array>>\r\n) {\r\n Object.assign(target, ...args)\r\n}\r\n\r\n/**\r\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\r\n */\r\nexport type UnionToIntersection = (\r\n U extends any ? (k: U) => void : never\r\n) extends (k: infer I) => void\r\n ? I\r\n : never\r\n\r\nexport type NonOptionalKeys = {\r\n [K in keyof T]-?: undefined extends T[K] ? never : K\r\n}[keyof T]\r\n\r\nexport type HasRequiredProps = NonOptionalKeys extends never\r\n ? False\r\n : True\r\n\r\nexport type OptionalIfAllPropsOptional = HasRequiredProps\r\n\r\nexport type NoInfer = [T][T extends any ? 0 : never]\r\n\r\nexport type NonUndefined = T extends undefined ? never : T\r\n\r\nexport type UnwrapPromise = T extends PromiseLike ? V : T\r\n\r\nexport type MaybePromise = T | PromiseLike\r\n\r\nexport type OmitFromUnion = T extends any\r\n ? Omit\r\n : never\r\n\r\nexport type IsAny = true | false extends (\r\n T extends never ? true : false\r\n)\r\n ? True\r\n : False\r\n\r\nexport type CastAny = IsAny\r\n", "/**\r\n * Note: this file should import all other files for type discovery and declaration merging\r\n */\r\nimport type {\r\n PatchQueryDataThunk,\r\n UpdateQueryDataThunk,\r\n UpsertQueryDataThunk,\r\n} from './buildThunks'\r\nimport { buildThunks } from './buildThunks'\r\nimport type {\r\n ActionCreatorWithPayload,\r\n AnyAction,\r\n Middleware,\r\n Reducer,\r\n ThunkAction,\r\n ThunkDispatch,\r\n} from '@reduxjs/toolkit'\r\nimport type {\r\n EndpointDefinitions,\r\n QueryArgFrom,\r\n QueryDefinition,\r\n MutationDefinition,\r\n AssertTagTypes,\r\n TagDescription,\r\n} from '../endpointDefinitions'\r\nimport { isQueryDefinition, isMutationDefinition } from '../endpointDefinitions'\r\nimport type {\r\n CombinedState,\r\n QueryKeys,\r\n MutationKeys,\r\n RootState,\r\n} from './apiState'\r\nimport type { Api, Module } from '../apiTypes'\r\nimport { onFocus, onFocusLost, onOnline, onOffline } from './setupListeners'\r\nimport { buildSlice } from './buildSlice'\r\nimport { buildMiddleware } from './buildMiddleware'\r\nimport { buildSelectors } from './buildSelectors'\r\nimport type {\r\n MutationActionCreatorResult,\r\n QueryActionCreatorResult,\r\n} from './buildInitiate'\r\nimport { buildInitiate } from './buildInitiate'\r\nimport { assertCast, safeAssign } from '../tsHelpers'\r\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'\r\nimport type { SliceActions } from './buildSlice'\r\nimport type { BaseQueryFn } from '../baseQueryTypes'\r\n\r\nimport type { ReferenceCacheLifecycle } from './buildMiddleware/cacheLifecycle'\r\nimport type { ReferenceQueryLifecycle } from './buildMiddleware/queryLifecycle'\r\nimport type { ReferenceCacheCollection } from './buildMiddleware/cacheCollection'\r\nimport { enablePatches } from 'immer'\r\n\r\n/**\r\n * `ifOlderThan` - (default: `false` | `number`) - _number is value in seconds_\r\n * - If specified, it will only run the query if the difference between `new Date()` and the last `fulfilledTimeStamp` is greater than the given value\r\n *\r\n * @overloadSummary\r\n * `force`\r\n * - If `force: true`, it will ignore the `ifOlderThan` value if it is set and the query will be run even if it exists in the cache.\r\n */\r\nexport type PrefetchOptions =\r\n | {\r\n ifOlderThan?: false | number\r\n }\r\n | { force?: boolean }\r\n\r\nexport const coreModuleName = /* @__PURE__ */ Symbol()\r\nexport type CoreModule =\r\n | typeof coreModuleName\r\n | ReferenceCacheLifecycle\r\n | ReferenceQueryLifecycle\r\n | ReferenceCacheCollection\r\n\r\nexport interface ThunkWithReturnValue extends ThunkAction {}\r\n\r\ndeclare module '../apiTypes' {\r\n export interface ApiModules<\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n BaseQuery extends BaseQueryFn,\r\n Definitions extends EndpointDefinitions,\r\n ReducerPath extends string,\r\n TagTypes extends string\r\n > {\r\n [coreModuleName]: {\r\n /**\r\n * This api's reducer should be mounted at `store[api.reducerPath]`.\r\n *\r\n * @example\r\n * ```ts\r\n * configureStore({\r\n * reducer: {\r\n * [api.reducerPath]: api.reducer,\r\n * },\r\n * middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\r\n * })\r\n * ```\r\n */\r\n reducerPath: ReducerPath\r\n /**\r\n * Internal actions not part of the public API. Note: These are subject to change at any given time.\r\n */\r\n internalActions: InternalActions\r\n /**\r\n * A standard redux reducer that enables core functionality. Make sure it's included in your store.\r\n *\r\n * @example\r\n * ```ts\r\n * configureStore({\r\n * reducer: {\r\n * [api.reducerPath]: api.reducer,\r\n * },\r\n * middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\r\n * })\r\n * ```\r\n */\r\n reducer: Reducer<\r\n CombinedState,\r\n AnyAction\r\n >\r\n /**\r\n * This is a standard redux middleware and is responsible for things like polling, garbage collection and a handful of other things. Make sure it's included in your store.\r\n *\r\n * @example\r\n * ```ts\r\n * configureStore({\r\n * reducer: {\r\n * [api.reducerPath]: api.reducer,\r\n * },\r\n * middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\r\n * })\r\n * ```\r\n */\r\n middleware: Middleware<\r\n {},\r\n RootState,\r\n ThunkDispatch\r\n >\r\n /**\r\n * A collection of utility thunks for various situations.\r\n */\r\n util: {\r\n /**\r\n * This method had to be removed due to a conceptual bug in RTK.\r\n *\r\n * Despite TypeScript errors, it will continue working in the \"buggy\" way it did\r\n * before in production builds and will be removed in the next major release.\r\n *\r\n * Nonetheless, you should immediately replace it with the new recommended approach.\r\n * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for new guidance on SSR.\r\n *\r\n * Please see https://github.com/reduxjs/redux-toolkit/pull/2481 for details.\r\n * @deprecated\r\n */\r\n getRunningOperationPromises: never // this is now types as `never` to immediately throw TS errors on use, but still allow for a comment\r\n\r\n /**\r\n * This method had to be removed due to a conceptual bug in RTK.\r\n * It has been replaced by `api.util.getRunningQueryThunk` and `api.util.getRunningMutationThunk`.\r\n * Please see https://github.com/reduxjs/redux-toolkit/pull/2481 for details.\r\n * @deprecated\r\n */\r\n getRunningOperationPromise: never // this is now types as `never` to immediately throw TS errors on use, but still allow for a comment\r\n\r\n /**\r\n * A thunk that (if dispatched) will return a specific running query, identified\r\n * by `endpointName` and `args`.\r\n * If that query is not running, dispatching the thunk will result in `undefined`.\r\n *\r\n * Can be used to await a specific query triggered in any way,\r\n * including via hook calls or manually dispatching `initiate` actions.\r\n *\r\n * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\r\n */\r\n getRunningQueryThunk>(\r\n endpointName: EndpointName,\r\n args: QueryArgFrom\r\n ): ThunkWithReturnValue<\r\n | QueryActionCreatorResult<\r\n Definitions[EndpointName] & { type: 'query' }\r\n >\r\n | undefined\r\n >\r\n\r\n /**\r\n * A thunk that (if dispatched) will return a specific running mutation, identified\r\n * by `endpointName` and `fixedCacheKey` or `requestId`.\r\n * If that mutation is not running, dispatching the thunk will result in `undefined`.\r\n *\r\n * Can be used to await a specific mutation triggered in any way,\r\n * including via hook trigger functions or manually dispatching `initiate` actions.\r\n *\r\n * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\r\n */\r\n getRunningMutationThunk>(\r\n endpointName: EndpointName,\r\n fixedCacheKeyOrRequestId: string\r\n ): ThunkWithReturnValue<\r\n | MutationActionCreatorResult<\r\n Definitions[EndpointName] & { type: 'mutation' }\r\n >\r\n | undefined\r\n >\r\n\r\n /**\r\n * A thunk that (if dispatched) will return all running queries.\r\n *\r\n * Useful for SSR scenarios to await all running queries triggered in any way,\r\n * including via hook calls or manually dispatching `initiate` actions.\r\n *\r\n * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\r\n */\r\n getRunningQueriesThunk(): ThunkWithReturnValue<\r\n Array>\r\n >\r\n\r\n /**\r\n * A thunk that (if dispatched) will return all running mutations.\r\n *\r\n * Useful for SSR scenarios to await all running mutations triggered in any way,\r\n * including via hook calls or manually dispatching `initiate` actions.\r\n *\r\n * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\r\n */\r\n getRunningMutationsThunk(): ThunkWithReturnValue<\r\n Array>\r\n >\r\n\r\n /**\r\n * A Redux thunk that can be used to manually trigger pre-fetching of data.\r\n *\r\n * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a set of options used to determine if the data actually should be re-fetched based on cache staleness.\r\n *\r\n * React Hooks users will most likely never need to use this directly, as the `usePrefetch` hook will dispatch this thunk internally as needed when you call the prefetching function supplied by the hook.\r\n *\r\n * @example\r\n *\r\n * ```ts no-transpile\r\n * dispatch(api.util.prefetch('getPosts', undefined, { force: true }))\r\n * ```\r\n */\r\n prefetch>(\r\n endpointName: EndpointName,\r\n arg: QueryArgFrom,\r\n options: PrefetchOptions\r\n ): ThunkAction\r\n /**\r\n * A Redux thunk action creator that, when dispatched, creates and applies a set of JSON diff/patch objects to the current state. This immediately updates the Redux state with those changes.\r\n *\r\n * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and an `updateRecipe` callback function. The callback receives an Immer-wrapped `draft` of the current state, and may modify the draft to match the expected results after the mutation completes successfully.\r\n *\r\n * The thunk executes _synchronously_, and returns an object containing `{patches: Patch[], inversePatches: Patch[], undo: () => void}`. The `patches` and `inversePatches` are generated using Immer's [`produceWithPatches` method](https://immerjs.github.io/immer/patches).\r\n *\r\n * This is typically used as the first step in implementing optimistic updates. The generated `inversePatches` can be used to revert the updates by calling `dispatch(patchQueryData(endpointName, args, inversePatches))`. Alternatively, the `undo` method can be called directly to achieve the same effect.\r\n *\r\n * Note that the first two arguments (`endpointName` and `args`) are used to determine which existing cache entry to update. If no existing cache entry is found, the `updateRecipe` callback will not run.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * const patchCollection = dispatch(\r\n * api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\r\n * draftPosts.push({ id: 1, name: 'Teddy' })\r\n * })\r\n * )\r\n * ```\r\n */\r\n updateQueryData: UpdateQueryDataThunk<\r\n Definitions,\r\n RootState\r\n >\r\n /** @deprecated renamed to `updateQueryData` */\r\n updateQueryResult: UpdateQueryDataThunk<\r\n Definitions,\r\n RootState\r\n >\r\n /**\r\n * A Redux thunk action creator that, when dispatched, acts as an artificial API request to upsert a value into the cache.\r\n *\r\n * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and the data to upsert.\r\n *\r\n * If no cache entry for that cache key exists, a cache entry will be created and the data added. If a cache entry already exists, this will _overwrite_ the existing cache entry data.\r\n *\r\n * The thunk executes _asynchronously_, and returns a promise that resolves when the store has been updated.\r\n *\r\n * If dispatched while an actual request is in progress, both the upsert and request will be handled as soon as they resolve, resulting in a \"last result wins\" update behavior.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * await dispatch(\r\n * api.util.upsertQueryData('getPost', {id: 1}, {id: 1, text: \"Hello!\"})\r\n * )\r\n * ```\r\n */\r\n upsertQueryData: UpsertQueryDataThunk<\r\n Definitions,\r\n RootState\r\n >\r\n /**\r\n * A Redux thunk that applies a JSON diff/patch array to the cached data for a given query result. This immediately updates the Redux state with those changes.\r\n *\r\n * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a JSON diff/patch array as produced by Immer's `produceWithPatches`.\r\n *\r\n * This is typically used as the second step in implementing optimistic updates. If a request fails, the optimistically-applied changes can be reverted by dispatching `patchQueryData` with the `inversePatches` that were generated by `updateQueryData` earlier.\r\n *\r\n * In cases where it is desired to simply revert the previous changes, it may be preferable to call the `undo` method returned from dispatching `updateQueryData` instead.\r\n *\r\n * @example\r\n * ```ts\r\n * const patchCollection = dispatch(\r\n * api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\r\n * draftPosts.push({ id: 1, name: 'Teddy' })\r\n * })\r\n * )\r\n *\r\n * // later\r\n * dispatch(\r\n * api.util.patchQueryData('getPosts', undefined, patchCollection.inversePatches)\r\n * )\r\n *\r\n * // or\r\n * patchCollection.undo()\r\n * ```\r\n */\r\n patchQueryData: PatchQueryDataThunk<\r\n Definitions,\r\n RootState\r\n >\r\n /** @deprecated renamed to `patchQueryData` */\r\n patchQueryResult: PatchQueryDataThunk<\r\n Definitions,\r\n RootState\r\n >\r\n /**\r\n * A Redux action creator that can be dispatched to manually reset the api state completely. This will immediately remove all existing cache entries, and all queries will be considered 'uninitialized'.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * dispatch(api.util.resetApiState())\r\n * ```\r\n */\r\n resetApiState: SliceActions['resetApiState']\r\n /**\r\n * A Redux action creator that can be used to manually invalidate cache tags for [automated re-fetching](../../usage/automated-refetching.mdx).\r\n *\r\n * The action creator accepts one argument: the cache tags to be invalidated. It returns an action with those tags as a payload, and the corresponding `invalidateTags` action type for the api.\r\n *\r\n * Dispatching the result of this action creator will [invalidate](../../usage/automated-refetching.mdx#invalidating-cache-data) the given tags, causing queries to automatically re-fetch if they are subscribed to cache data that [provides](../../usage/automated-refetching.mdx#providing-cache-data) the corresponding tags.\r\n *\r\n * The array of tags provided to the action creator should be in one of the following formats, where `TagType` is equal to a string provided to the [`tagTypes`](../createApi.mdx#tagtypes) property of the api:\r\n *\r\n * - `[TagType]`\r\n * - `[{ type: TagType }]`\r\n * - `[{ type: TagType, id: number | string }]`\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * dispatch(api.util.invalidateTags(['Post']))\r\n * dispatch(api.util.invalidateTags([{ type: 'Post', id: 1 }]))\r\n * dispatch(\r\n * api.util.invalidateTags([\r\n * { type: 'Post', id: 1 },\r\n * { type: 'Post', id: 'LIST' },\r\n * ])\r\n * )\r\n * ```\r\n */\r\n invalidateTags: ActionCreatorWithPayload<\r\n Array>,\r\n string\r\n >\r\n\r\n /**\r\n * A function to select all `{ endpointName, originalArgs, queryCacheKey }` combinations that would be invalidated by a specific set of tags.\r\n *\r\n * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\r\n */\r\n selectInvalidatedBy: (\r\n state: RootState,\r\n tags: ReadonlyArray>\r\n ) => Array<{\r\n endpointName: string\r\n originalArgs: any\r\n queryCacheKey: string\r\n }>\r\n }\r\n /**\r\n * Endpoints based on the input endpoints provided to `createApi`, containing `select` and `action matchers`.\r\n */\r\n endpoints: {\r\n [K in keyof Definitions]: Definitions[K] extends QueryDefinition<\r\n any,\r\n any,\r\n any,\r\n any,\r\n any\r\n >\r\n ? ApiEndpointQuery\r\n : Definitions[K] extends MutationDefinition\r\n ? ApiEndpointMutation\r\n : never\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport interface ApiEndpointQuery<\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definition extends QueryDefinition,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n> {\r\n name: string\r\n /**\r\n * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\r\n */\r\n Types: NonNullable\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nexport interface ApiEndpointMutation<\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definition extends MutationDefinition,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n> {\r\n name: string\r\n /**\r\n * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\r\n */\r\n Types: NonNullable\r\n}\r\n\r\nexport type ListenerActions = {\r\n /**\r\n * Will cause the RTK Query middleware to trigger any refetchOnReconnect-related behavior\r\n * @link https://rtk-query-docs.netlify.app/api/setupListeners\r\n */\r\n onOnline: typeof onOnline\r\n onOffline: typeof onOffline\r\n /**\r\n * Will cause the RTK Query middleware to trigger any refetchOnFocus-related behavior\r\n * @link https://rtk-query-docs.netlify.app/api/setupListeners\r\n */\r\n onFocus: typeof onFocus\r\n onFocusLost: typeof onFocusLost\r\n}\r\n\r\nexport type InternalActions = SliceActions & ListenerActions\r\n\r\n/**\r\n * Creates a module containing the basic redux logic for use with `buildCreateApi`.\r\n *\r\n * @example\r\n * ```ts\r\n * const createBaseApi = buildCreateApi(coreModule());\r\n * ```\r\n */\r\nexport const coreModule = (): Module => ({\r\n name: coreModuleName,\r\n init(\r\n api,\r\n {\r\n baseQuery,\r\n tagTypes,\r\n reducerPath,\r\n serializeQueryArgs,\r\n keepUnusedDataFor,\r\n refetchOnMountOrArgChange,\r\n refetchOnFocus,\r\n refetchOnReconnect,\r\n },\r\n context\r\n ) {\r\n enablePatches()\r\n\r\n assertCast(serializeQueryArgs)\r\n\r\n const assertTagType: AssertTagTypes = (tag) => {\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (!tagTypes.includes(tag.type as any)) {\r\n console.error(\r\n `Tag type '${tag.type}' was used, but not specified in \\`tagTypes\\`!`\r\n )\r\n }\r\n }\r\n return tag\r\n }\r\n\r\n Object.assign(api, {\r\n reducerPath,\r\n endpoints: {},\r\n internalActions: {\r\n onOnline,\r\n onOffline,\r\n onFocus,\r\n onFocusLost,\r\n },\r\n util: {},\r\n })\r\n\r\n const {\r\n queryThunk,\r\n mutationThunk,\r\n patchQueryData,\r\n updateQueryData,\r\n upsertQueryData,\r\n prefetch,\r\n buildMatchThunkActions,\r\n } = buildThunks({\r\n baseQuery,\r\n reducerPath,\r\n context,\r\n api,\r\n serializeQueryArgs,\r\n })\r\n\r\n const { reducer, actions: sliceActions } = buildSlice({\r\n context,\r\n queryThunk,\r\n mutationThunk,\r\n reducerPath,\r\n assertTagType,\r\n config: {\r\n refetchOnFocus,\r\n refetchOnReconnect,\r\n refetchOnMountOrArgChange,\r\n keepUnusedDataFor,\r\n reducerPath,\r\n },\r\n })\r\n\r\n safeAssign(api.util, {\r\n patchQueryData,\r\n updateQueryData,\r\n upsertQueryData,\r\n prefetch,\r\n resetApiState: sliceActions.resetApiState,\r\n })\r\n safeAssign(api.internalActions, sliceActions)\r\n\r\n const { middleware, actions: middlewareActions } = buildMiddleware({\r\n reducerPath,\r\n context,\r\n queryThunk,\r\n mutationThunk,\r\n api,\r\n assertTagType,\r\n })\r\n safeAssign(api.util, middlewareActions)\r\n\r\n safeAssign(api, { reducer: reducer as any, middleware })\r\n\r\n const { buildQuerySelector, buildMutationSelector, selectInvalidatedBy } =\r\n buildSelectors({\r\n serializeQueryArgs: serializeQueryArgs as any,\r\n reducerPath,\r\n })\r\n\r\n safeAssign(api.util, { selectInvalidatedBy })\r\n\r\n const {\r\n buildInitiateQuery,\r\n buildInitiateMutation,\r\n getRunningMutationThunk,\r\n getRunningMutationsThunk,\r\n getRunningQueriesThunk,\r\n getRunningQueryThunk,\r\n getRunningOperationPromises,\r\n removalWarning,\r\n } = buildInitiate({\r\n queryThunk,\r\n mutationThunk,\r\n api,\r\n serializeQueryArgs: serializeQueryArgs as any,\r\n context,\r\n })\r\n\r\n safeAssign(api.util, {\r\n getRunningOperationPromises: getRunningOperationPromises as any,\r\n getRunningOperationPromise: removalWarning as any,\r\n getRunningMutationThunk,\r\n getRunningMutationsThunk,\r\n getRunningQueryThunk,\r\n getRunningQueriesThunk,\r\n })\r\n\r\n return {\r\n name: coreModuleName,\r\n injectEndpoint(endpointName, definition) {\r\n const anyApi = api as any as Api<\r\n any,\r\n Record,\r\n string,\r\n string,\r\n CoreModule\r\n >\r\n anyApi.endpoints[endpointName] ??= {} as any\r\n if (isQueryDefinition(definition)) {\r\n safeAssign(\r\n anyApi.endpoints[endpointName],\r\n {\r\n name: endpointName,\r\n select: buildQuerySelector(endpointName, definition),\r\n initiate: buildInitiateQuery(endpointName, definition),\r\n },\r\n buildMatchThunkActions(queryThunk, endpointName)\r\n )\r\n } else if (isMutationDefinition(definition)) {\r\n safeAssign(\r\n anyApi.endpoints[endpointName],\r\n {\r\n name: endpointName,\r\n select: buildMutationSelector(),\r\n initiate: buildInitiateMutation(endpointName),\r\n },\r\n buildMatchThunkActions(mutationThunk, endpointName)\r\n )\r\n }\r\n },\r\n }\r\n },\r\n})\r\n", "/**\r\n * Assumes a browser is online if `undefined`, otherwise makes a best effort\r\n * @link https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine\r\n */\r\nexport function isOnline() {\r\n // We set the default config value in the store, so we'd need to check for this in a SSR env\r\n return typeof navigator === 'undefined'\r\n ? true\r\n : navigator.onLine === undefined\r\n ? true\r\n : navigator.onLine\r\n}\r\n", "/**\r\n * Assumes true for a non-browser env, otherwise makes a best effort\r\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState\r\n */\r\nexport function isDocumentVisible(): boolean {\r\n // `document` may not exist in non-browser envs (like RN)\r\n if (typeof document === 'undefined') {\r\n return true\r\n }\r\n // Match true for visible, prerender, undefined\r\n return document.visibilityState !== 'hidden'\r\n}\r\n", "import { QueryStatus } from '../apiState'\r\nimport type { QueryCacheKey } from '../apiState'\r\nimport { onFocus, onOnline } from '../setupListeners'\r\nimport type {\r\n ApiMiddlewareInternalHandler,\r\n InternalHandlerBuilder,\r\n SubMiddlewareApi,\r\n} from './types'\r\n\r\nexport const buildWindowEventHandler: InternalHandlerBuilder = ({\r\n reducerPath,\r\n context,\r\n api,\r\n refetchQuery,\r\n internalState,\r\n}) => {\r\n const { removeQueryResult } = api.internalActions\r\n\r\n const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\r\n if (onFocus.match(action)) {\r\n refetchValidQueries(mwApi, 'refetchOnFocus')\r\n }\r\n if (onOnline.match(action)) {\r\n refetchValidQueries(mwApi, 'refetchOnReconnect')\r\n }\r\n }\r\n\r\n function refetchValidQueries(\r\n api: SubMiddlewareApi,\r\n type: 'refetchOnFocus' | 'refetchOnReconnect'\r\n ) {\r\n const state = api.getState()[reducerPath]\r\n const queries = state.queries\r\n const subscriptions = internalState.currentSubscriptions\r\n\r\n context.batch(() => {\r\n for (const queryCacheKey of Object.keys(subscriptions)) {\r\n const querySubState = queries[queryCacheKey]\r\n const subscriptionSubState = subscriptions[queryCacheKey]\r\n\r\n if (!subscriptionSubState || !querySubState) continue\r\n\r\n const shouldRefetch =\r\n Object.values(subscriptionSubState).some(\r\n (sub) => sub[type] === true\r\n ) ||\r\n (Object.values(subscriptionSubState).every(\r\n (sub) => sub[type] === undefined\r\n ) &&\r\n state.config[type])\r\n\r\n if (shouldRefetch) {\r\n if (Object.keys(subscriptionSubState).length === 0) {\r\n api.dispatch(\r\n removeQueryResult({\r\n queryCacheKey: queryCacheKey as QueryCacheKey,\r\n })\r\n )\r\n } else if (querySubState.status !== QueryStatus.uninitialized) {\r\n api.dispatch(refetchQuery(querySubState, queryCacheKey))\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n return handler\r\n}\r\n", "import { buildCreateApi, CreateApi } from '../createApi'\r\nimport { coreModule, coreModuleName } from './module'\r\n\r\nconst createApi = /* @__PURE__ */ buildCreateApi(coreModule())\r\n\r\nexport { createApi, coreModule }\r\n", "'use strict'\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./rtk-query.cjs.production.min.js')\n} else {\n module.exports = require('./rtk-query.cjs.development.js')\n}", "/**\n * @license React\n * react.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 l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.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\n\nexports.setBatch = setBatch;\n\nconst getBatch = () => batch;\n\nexports.getBatch = getBatch;", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.ReactReduxContext = void 0;\n\nvar _react = require(\"react\");\n\nconst ContextKey = Symbol.for(`react-redux-context-${_react.version}`);\nconst gT = globalThis;\n\nfunction getContext() {\n let realContext = gT[ContextKey];\n\n if (!realContext) {\n realContext = (0, _react.createContext)(null);\n\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux';\n }\n\n gT[ContextKey] = realContext;\n }\n\n return realContext;\n}\n\nconst ReactReduxContext = /*#__PURE__*/new Proxy({}, /*#__PURE__*/new Proxy({}, {\n get(_, handler) {\n const target = getContext(); // @ts-ignore\n\n return (_target, ...args) => Reflect[handler](target, ...args);\n }\n\n}));\nexports.ReactReduxContext = ReactReduxContext;\nvar _default = ReactReduxContext;\nexports.default = _default;", "\"use strict\";\n\nexports.__esModule = true;\nexports.createReduxContextHook = createReduxContextHook;\nexports.useReduxContext = void 0;\n\nvar _react = require(\"react\");\n\nvar _Context = require(\"../components/Context\");\n\n/**\r\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\r\n */\nfunction createReduxContextHook(context = _Context.ReactReduxContext) {\n return function useReduxContext() {\n const contextValue = (0, _react.useContext)(context);\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 };\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 */\n\n\nconst useReduxContext = /*#__PURE__*/createReduxContextHook();\nexports.useReduxContext = useReduxContext;", "\"use strict\";\n\nexports.__esModule = true;\nexports.notInitialized = void 0;\n\nconst notInitialized = () => {\n throw new Error('uSES not initialized!');\n};\n\nexports.notInitialized = notInitialized;", "\"use strict\";\n\nexports.__esModule = true;\nexports.createSelectorHook = createSelectorHook;\nexports.useSelector = exports.initializeUseSelector = void 0;\n\nvar _react = require(\"react\");\n\nvar _useReduxContext = require(\"./useReduxContext\");\n\nvar _Context = require(\"../components/Context\");\n\nvar _useSyncExternalStore = require(\"../utils/useSyncExternalStore\");\n\nlet useSyncExternalStoreWithSelector = _useSyncExternalStore.notInitialized;\n\nconst initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nexports.initializeUseSelector = initializeUseSelector;\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\nfunction createSelectorHook(context = _Context.ReactReduxContext) {\n const useReduxContext = context === _Context.ReactReduxContext ? _useReduxContext.useReduxContext : (0, _useReduxContext.createReduxContextHook)(context);\n return function useSelector(selector, equalityFnOrOptions = {}) {\n const {\n equalityFn = refEquality,\n stabilityCheck = undefined,\n noopCheck = undefined\n } = typeof equalityFnOrOptions === 'function' ? {\n equalityFn: equalityFnOrOptions\n } : equalityFnOrOptions;\n\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 stabilityCheck: globalStabilityCheck,\n noopCheck: globalNoopCheck\n } = useReduxContext();\n const firstRun = (0, _react.useRef)(true);\n const wrappedSelector = (0, _react.useCallback)({\n [selector.name](state) {\n const selected = selector(state);\n\n if (process.env.NODE_ENV !== 'production') {\n const finalStabilityCheck = typeof stabilityCheck === 'undefined' ? globalStabilityCheck : stabilityCheck;\n\n if (finalStabilityCheck === 'always' || finalStabilityCheck === 'once' && firstRun.current) {\n const toCompare = selector(state);\n\n if (!equalityFn(selected, toCompare)) {\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' + '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization', {\n state,\n selected,\n selected2: toCompare\n });\n }\n }\n\n const finalNoopCheck = typeof noopCheck === 'undefined' ? globalNoopCheck : noopCheck;\n\n if (finalNoopCheck === 'always' || finalNoopCheck === 'once' && firstRun.current) {\n // @ts-ignore\n if (selected === state) {\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned the root state when called. This can lead to unnecessary rerenders.' + '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.');\n }\n }\n\n if (firstRun.current) firstRun.current = false;\n }\n\n return selected;\n }\n\n }[selector.name], [selector, globalStabilityCheck, stabilityCheck]);\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn);\n (0, _react.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\n\nconst useSelector = /*#__PURE__*/createSelectorHook();\nexports.useSelector = useSelector;", "function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "/** @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", "'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", "/**\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", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = warning;\n\n/**\r\n * Prints a warning in the console if it exists.\r\n *\r\n * @param {String} message The warning message.\r\n * @returns {void}\r\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 /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = verifySubselectors;\n\nvar _warning = _interopRequireDefault(require(\"../utils/warning\"));\n\nfunction verify(selector, methodName) {\n if (!selector) {\n throw new Error(`Unexpected value for ${methodName} in connect.`);\n } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') {\n if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) {\n (0, _warning.default)(`The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`);\n }\n }\n}\n\nfunction verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps) {\n verify(mapStateToProps, 'mapStateToProps');\n verify(mapDispatchToProps, 'mapDispatchToProps');\n verify(mergeProps, 'mergeProps');\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.pureFinalPropsSelectorFactory = pureFinalPropsSelectorFactory;\nexports.default = finalPropsSelectorFactory;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _verifySubselectors = _interopRequireDefault(require(\"./verifySubselectors\"));\n\nconst _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\n\nfunction pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {\n areStatesEqual,\n areOwnPropsEqual,\n areStatePropsEqual\n}) {\n let hasRunAtLeastOnce = false;\n let state;\n let ownProps;\n let stateProps;\n let dispatchProps;\n let mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n const nextStateProps = mapStateToProps(state, ownProps);\n const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n const stateChanged = !areStatesEqual(nextState, state, nextOwnProps, ownProps);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n}\n\n// TODO: Add more comments\n// The selector returned by selectorFactory will memoize its results,\n// allowing connect's shouldComponentUpdate to return false if final\n// props have not changed.\nfunction finalPropsSelectorFactory(dispatch, _ref) {\n let {\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps\n } = _ref,\n options = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const mapStateToProps = initMapStateToProps(dispatch, options);\n const mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n const mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n (0, _verifySubselectors.default)(mapStateToProps, mapDispatchToProps, mergeProps);\n }\n\n return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = bindActionCreators;\n\nfunction bindActionCreators(actionCreators, dispatch) {\n const boundActionCreators = {};\n\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = (...args) => dispatch(actionCreator(...args));\n }\n }\n\n return boundActionCreators;\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = isPlainObject;\n\n/**\r\n * @param {any} obj The object to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n let proto = Object.getPrototypeOf(obj);\n if (proto === null) return true;\n let baseProto = proto;\n\n while (Object.getPrototypeOf(baseProto) !== null) {\n baseProto = Object.getPrototypeOf(baseProto);\n }\n\n return proto === baseProto;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = verifyPlainObject;\n\nvar _isPlainObject = _interopRequireDefault(require(\"./isPlainObject\"));\n\nvar _warning = _interopRequireDefault(require(\"./warning\"));\n\nfunction verifyPlainObject(value, displayName, methodName) {\n if (!(0, _isPlainObject.default)(value)) {\n (0, _warning.default)(`${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`);\n }\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.wrapMapToPropsConstant = wrapMapToPropsConstant;\nexports.getDependsOnOwnProps = getDependsOnOwnProps;\nexports.wrapMapToPropsFunc = wrapMapToPropsFunc;\n\nvar _verifyPlainObject = _interopRequireDefault(require(\"../utils/verifyPlainObject\"));\n\nfunction wrapMapToPropsConstant( // * Note:\n// It seems that the dispatch argument\n// could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)\n// and a state object in some others (ex: whenMapStateToPropsIsMissing)\n// eslint-disable-next-line no-unused-vars\ngetConstant) {\n return function initConstantSelector(dispatch) {\n const constant = getConstant(dispatch);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n// TODO Can this get pulled out so that we can subscribe directly to the store if we don't need ownProps?\n\n\nfunction getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\n\nfunction wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, {\n displayName\n }) {\n const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, undefined);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n let props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject.default)(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.createInvalidArgFactory = createInvalidArgFactory;\n\nfunction createInvalidArgFactory(arg, name) {\n return (dispatch, options) => {\n throw new Error(`Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.`);\n };\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.mapDispatchToPropsFactory = mapDispatchToPropsFactory;\n\nvar _bindActionCreators = _interopRequireDefault(require(\"../utils/bindActionCreators\"));\n\nvar _wrapMapToProps = require(\"./wrapMapToProps\");\n\nvar _invalidArgFactory = require(\"./invalidArgFactory\");\n\nfunction mapDispatchToPropsFactory(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? (0, _wrapMapToProps.wrapMapToPropsConstant)(dispatch => // @ts-ignore\n (0, _bindActionCreators.default)(mapDispatchToProps, dispatch)) : !mapDispatchToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(dispatch => ({\n dispatch\n })) : typeof mapDispatchToProps === 'function' ? // @ts-ignore\n (0, _wrapMapToProps.wrapMapToPropsFunc)(mapDispatchToProps, 'mapDispatchToProps') : (0, _invalidArgFactory.createInvalidArgFactory)(mapDispatchToProps, 'mapDispatchToProps');\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.mapStateToPropsFactory = mapStateToPropsFactory;\n\nvar _wrapMapToProps = require(\"./wrapMapToProps\");\n\nvar _invalidArgFactory = require(\"./invalidArgFactory\");\n\nfunction mapStateToPropsFactory(mapStateToProps) {\n return !mapStateToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(() => ({})) : typeof mapStateToProps === 'function' ? // @ts-ignore\n (0, _wrapMapToProps.wrapMapToPropsFunc)(mapStateToProps, 'mapStateToProps') : (0, _invalidArgFactory.createInvalidArgFactory)(mapStateToProps, 'mapStateToProps');\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.defaultMergeProps = defaultMergeProps;\nexports.wrapMergePropsFunc = wrapMergePropsFunc;\nexports.mergePropsFactory = mergePropsFactory;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _verifyPlainObject = _interopRequireDefault(require(\"../utils/verifyPlainObject\"));\n\nvar _invalidArgFactory = require(\"./invalidArgFactory\");\n\nfunction defaultMergeProps(stateProps, dispatchProps, ownProps) {\n // @ts-ignore\n return (0, _extends2.default)({}, ownProps, stateProps, dispatchProps);\n}\n\nfunction wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, {\n displayName,\n areMergedPropsEqual\n }) {\n let hasRunOnce = false;\n let mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject.default)(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\n\nfunction mergePropsFactory(mergeProps) {\n return !mergeProps ? () => defaultMergeProps : typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : (0, _invalidArgFactory.createInvalidArgFactory)(mergeProps, 'mergeProps');\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.createSubscription = createSubscription;\n\nvar _batch = require(\"./batch\");\n\nfunction createListenerCollection() {\n const batch = (0, _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};\n\nfunction 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}", "\"use strict\";\n\nexports.__esModule = true;\nexports.useIsomorphicLayoutEffect = exports.canUseDOM = void 0;\n\nvar _react = require(\"react\");\n\n// 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\nconst canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexports.canUseDOM = canUseDOM;\nconst useIsomorphicLayoutEffect = canUseDOM ? _react.useLayoutEffect : _react.useEffect;\nexports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = shallowEqual;\n\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.initializeConnect = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _hoistNonReactStatics = _interopRequireDefault(require(\"hoist-non-react-statics\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactIs = require(\"react-is\");\n\nvar _selectorFactory = _interopRequireDefault(require(\"../connect/selectorFactory\"));\n\nvar _mapDispatchToProps = require(\"../connect/mapDispatchToProps\");\n\nvar _mapStateToProps = require(\"../connect/mapStateToProps\");\n\nvar _mergeProps = require(\"../connect/mergeProps\");\n\nvar _Subscription = require(\"../utils/Subscription\");\n\nvar _useIsomorphicLayoutEffect = require(\"../utils/useIsomorphicLayoutEffect\");\n\nvar _shallowEqual = _interopRequireDefault(require(\"../utils/shallowEqual\"));\n\nvar _warning = _interopRequireDefault(require(\"../utils/warning\"));\n\nvar _Context = require(\"./Context\");\n\nvar _useSyncExternalStore = require(\"../utils/useSyncExternalStore\");\n\nconst _excluded = [\"reactReduxForwardedRef\"];\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nlet useSyncExternalStore = _useSyncExternalStore.notInitialized;\n\nconst initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\n\nexports.initializeConnect = initializeConnect;\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 (0, _useIsomorphicLayoutEffect.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.default,\n areStatePropsEqual = _shallowEqual.default,\n areMergedPropsEqual = _shallowEqual.default,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = _Context.ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n (0, _warning.default)('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = (0, _mapStateToProps.mapStateToPropsFactory)(mapStateToProps);\n const initMapDispatchToProps = (0, _mapDispatchToProps.mapDispatchToPropsFactory)(mapDispatchToProps);\n const initMergeProps = (0, _mergeProps.mergePropsFactory)(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const wrapWithConnect = WrappedComponent => {\n if (process.env.NODE_ENV !== 'production' && !(0, _reactIs.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] = (0, _react.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 = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = (0, _react.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 (0, _reactIs.isContextConsumer)( /*#__PURE__*/_react.default.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = (0, _react.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 = (0, _react.useMemo)(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return (0, _selectorFactory.default)(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = (0, _react.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 = (0, _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 = (0, _react.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 (0, _extends2.default)({}, 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 = (0, _react.useRef)();\n const lastWrapperProps = (0, _react.useRef)(wrapperProps);\n const childPropsFromStoreUpdate = (0, _react.useRef)();\n const renderIsScheduled = (0, _react.useRef)(false);\n const isProcessingDispatch = (0, _react.useRef)(false);\n const isMounted = (0, _react.useRef)(false);\n const latestSubscriptionCallbackError = (0, _react.useRef)();\n (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = (0, _react.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 = (0, _react.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 (0, _useIsomorphicLayoutEffect.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 = (0, _react.useMemo)(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n _react.default.createElement(WrappedComponent, (0, _extends2.default)({}, 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 = (0, _react.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.default.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.default.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.default.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/_react.default.createElement(Connect, (0, _extends2.default)({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return (0, _hoistNonReactStatics.default)(forwarded, WrappedComponent);\n }\n\n return (0, _hoistNonReactStatics.default)(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nvar _default = connect;\nexports.default = _default;", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _Context = require(\"./Context\");\n\nvar _Subscription = require(\"../utils/Subscription\");\n\nvar _useIsomorphicLayoutEffect = require(\"../utils/useIsomorphicLayoutEffect\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction Provider({\n store,\n context,\n children,\n serverState,\n stabilityCheck = 'once',\n noopCheck = 'once'\n}) {\n const contextValue = (0, _react.useMemo)(() => {\n const subscription = (0, _Subscription.createSubscription)(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n stabilityCheck,\n noopCheck\n };\n }, [store, serverState, stabilityCheck, noopCheck]);\n const previousState = (0, _react.useMemo)(() => store.getState(), [store]);\n (0, _useIsomorphicLayoutEffect.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 || _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.default.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nvar _default = Provider;\nexports.default = _default;", "\"use strict\";\n\nexports.__esModule = true;\nexports.createStoreHook = createStoreHook;\nexports.useStore = void 0;\n\nvar _Context = require(\"../components/Context\");\n\nvar _useReduxContext = require(\"./useReduxContext\");\n\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 */\nfunction createStoreHook(context = _Context.ReactReduxContext) {\n const useReduxContext = // @ts-ignore\n context === _Context.ReactReduxContext ? _useReduxContext.useReduxContext : // @ts-ignore\n (0, _useReduxContext.createReduxContextHook)(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\n\nconst useStore = /*#__PURE__*/createStoreHook();\nexports.useStore = useStore;", "\"use strict\";\n\nexports.__esModule = true;\nexports.createDispatchHook = createDispatchHook;\nexports.useDispatch = void 0;\n\nvar _Context = require(\"../components/Context\");\n\nvar _useStore = require(\"./useStore\");\n\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 */\nfunction createDispatchHook(context = _Context.ReactReduxContext) {\n const useStore = // @ts-ignore\n context === _Context.ReactReduxContext ? _useStore.useStore : (0, _useStore.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\n\nconst useDispatch = /*#__PURE__*/createDispatchHook();\nexports.useDispatch = useDispatch;", "\"use strict\";", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nvar _exportNames = {\n Provider: true,\n connect: true,\n ReactReduxContext: true,\n useDispatch: true,\n createDispatchHook: true,\n useSelector: true,\n createSelectorHook: true,\n useStore: true,\n createStoreHook: true,\n shallowEqual: true\n};\nObject.defineProperty(exports, \"Provider\", {\n enumerable: true,\n get: function () {\n return _Provider.default;\n }\n});\nObject.defineProperty(exports, \"connect\", {\n enumerable: true,\n get: function () {\n return _connect.default;\n }\n});\nObject.defineProperty(exports, \"ReactReduxContext\", {\n enumerable: true,\n get: function () {\n return _Context.ReactReduxContext;\n }\n});\nObject.defineProperty(exports, \"useDispatch\", {\n enumerable: true,\n get: function () {\n return _useDispatch.useDispatch;\n }\n});\nObject.defineProperty(exports, \"createDispatchHook\", {\n enumerable: true,\n get: function () {\n return _useDispatch.createDispatchHook;\n }\n});\nObject.defineProperty(exports, \"useSelector\", {\n enumerable: true,\n get: function () {\n return _useSelector.useSelector;\n }\n});\nObject.defineProperty(exports, \"createSelectorHook\", {\n enumerable: true,\n get: function () {\n return _useSelector.createSelectorHook;\n }\n});\nObject.defineProperty(exports, \"useStore\", {\n enumerable: true,\n get: function () {\n return _useStore.useStore;\n }\n});\nObject.defineProperty(exports, \"createStoreHook\", {\n enumerable: true,\n get: function () {\n return _useStore.createStoreHook;\n }\n});\nObject.defineProperty(exports, \"shallowEqual\", {\n enumerable: true,\n get: function () {\n return _shallowEqual.default;\n }\n});\n\nvar _Provider = _interopRequireDefault(require(\"./components/Provider\"));\n\nvar _connect = _interopRequireDefault(require(\"./components/connect\"));\n\nvar _Context = require(\"./components/Context\");\n\nvar _useDispatch = require(\"./hooks/useDispatch\");\n\nvar _useSelector = require(\"./hooks/useSelector\");\n\nvar _useStore = require(\"./hooks/useStore\");\n\nvar _shallowEqual = _interopRequireDefault(require(\"./utils/shallowEqual\"));\n\nvar _types = require(\"./types\");\n\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _types[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _types[key];\n }\n });\n});", "\"use strict\";\n\nexports.__esModule = true;\nvar _exportNames = {\n batch: true\n};\nObject.defineProperty(exports, \"batch\", {\n enumerable: true,\n get: function () {\n return _reactBatchedUpdates.unstable_batchedUpdates;\n }\n});\n\nvar _shim = require(\"use-sync-external-store/shim\");\n\nvar _withSelector = require(\"use-sync-external-store/shim/with-selector\");\n\nvar _reactBatchedUpdates = require(\"./utils/reactBatchedUpdates\");\n\nvar _batch = require(\"./utils/batch\");\n\nvar _useSelector = require(\"./hooks/useSelector\");\n\nvar _connect = require(\"./components/connect\");\n\nvar _exports = require(\"./exports\");\n\nObject.keys(_exports).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _exports[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _exports[key];\n }\n });\n});\n// 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.\n(0, _useSelector.initializeUseSelector)(_withSelector.useSyncExternalStoreWithSelector);\n(0, _connect.initializeConnect)(_shim.useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\n(0, _batch.setBatch)(_reactBatchedUpdates.unstable_batchedUpdates);", "import { coreModule, buildCreateApi, CreateApi } from '@reduxjs/toolkit/query'\r\nimport { reactHooksModule, reactHooksModuleName } from './module'\r\n\r\nimport type { MutationHooks, QueryHooks } from './buildHooks'\r\nimport type {\r\n EndpointDefinitions,\r\n QueryDefinition,\r\n MutationDefinition,\r\n QueryArgFrom,\r\n} from '@reduxjs/toolkit/dist/query/endpointDefinitions'\r\nimport type { BaseQueryFn } from '@reduxjs/toolkit/dist/query/baseQueryTypes'\r\n\r\nimport type { QueryKeys } from '@reduxjs/toolkit/dist/query/core/apiState'\r\nimport type { PrefetchOptions } from '@reduxjs/toolkit/dist/query/core/module'\r\n\r\nexport * from '@reduxjs/toolkit/query'\r\nexport { ApiProvider } from './ApiProvider'\r\n\r\nconst createApi = /* @__PURE__ */ buildCreateApi(\r\n coreModule(),\r\n reactHooksModule()\r\n)\r\n\r\nexport type {\r\n TypedUseQueryHookResult,\r\n TypedUseQueryStateResult,\r\n TypedUseQuerySubscriptionResult,\r\n TypedUseMutationResult,\r\n} from './buildHooks'\r\nexport { createApi, reactHooksModule }\r\n", "import type { AnyAction, ThunkAction, ThunkDispatch } from '@reduxjs/toolkit'\r\nimport { createSelector } from '@reduxjs/toolkit'\r\nimport type { Selector } from '@reduxjs/toolkit'\r\nimport type { DependencyList } from 'react'\r\nimport {\r\n useCallback,\r\n useDebugValue,\r\n useEffect,\r\n useLayoutEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from 'react'\r\nimport { QueryStatus, skipToken } from '@reduxjs/toolkit/query'\r\nimport type {\r\n QuerySubState,\r\n SubscriptionOptions,\r\n QueryKeys,\r\n RootState,\r\n} from '@reduxjs/toolkit/dist/query/core/apiState'\r\nimport type {\r\n EndpointDefinitions,\r\n MutationDefinition,\r\n QueryDefinition,\r\n QueryArgFrom,\r\n ResultTypeFrom,\r\n} from '@reduxjs/toolkit/dist/query/endpointDefinitions'\r\nimport type {\r\n QueryResultSelectorResult,\r\n MutationResultSelectorResult,\r\n SkipToken,\r\n} from '@reduxjs/toolkit/dist/query/core/buildSelectors'\r\nimport type {\r\n QueryActionCreatorResult,\r\n MutationActionCreatorResult,\r\n} from '@reduxjs/toolkit/dist/query/core/buildInitiate'\r\nimport type { SerializeQueryArgs } from '@reduxjs/toolkit/dist/query/defaultSerializeQueryArgs'\r\nimport { shallowEqual } from 'react-redux'\r\nimport type { Api, ApiContext } from '@reduxjs/toolkit/dist/query/apiTypes'\r\nimport type {\r\n Id,\r\n NoInfer,\r\n Override,\r\n} from '@reduxjs/toolkit/dist/query/tsHelpers'\r\nimport type {\r\n ApiEndpointMutation,\r\n ApiEndpointQuery,\r\n CoreModule,\r\n PrefetchOptions,\r\n} from '@reduxjs/toolkit/dist/query/core/module'\r\nimport type { ReactHooksModuleOptions } from './module'\r\nimport { useStableQueryArgs } from './useSerializedStableValue'\r\nimport type { UninitializedValue } from './constants'\r\nimport { UNINITIALIZED_VALUE } from './constants'\r\nimport { useShallowStableValue } from './useShallowStableValue'\r\nimport type { BaseQueryFn } from '../baseQueryTypes'\r\nimport { defaultSerializeQueryArgs } from '../defaultSerializeQueryArgs'\r\n\r\n// Copy-pasted from React-Redux\r\nexport const useIsomorphicLayoutEffect =\r\n typeof window !== 'undefined' &&\r\n !!window.document &&\r\n !!window.document.createElement\r\n ? useLayoutEffect\r\n : useEffect\r\n\r\nexport interface QueryHooks<\r\n Definition extends QueryDefinition\r\n> {\r\n useQuery: UseQuery\r\n useLazyQuery: UseLazyQuery\r\n useQuerySubscription: UseQuerySubscription\r\n useLazyQuerySubscription: UseLazyQuerySubscription\r\n useQueryState: UseQueryState\r\n}\r\n\r\nexport interface MutationHooks<\r\n Definition extends MutationDefinition\r\n> {\r\n useMutation: UseMutation\r\n}\r\n\r\n/**\r\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\r\n *\r\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\r\n *\r\n * This hook combines the functionality of both [`useQueryState`](#usequerystate) and [`useQuerySubscription`](#usequerysubscription) together, and is intended to be used in the majority of situations.\r\n *\r\n * #### Features\r\n *\r\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\r\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\r\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\r\n * - Returns the latest request status and cached data from the Redux store\r\n * - Re-renders as the request status changes and data becomes available\r\n */\r\nexport type UseQuery> = <\r\n R extends Record = UseQueryStateDefaultResult\r\n>(\r\n arg: QueryArgFrom | SkipToken,\r\n options?: UseQuerySubscriptionOptions & UseQueryStateOptions\r\n) => UseQueryHookResult\r\n\r\nexport type UseQueryHookResult<\r\n D extends QueryDefinition,\r\n R = UseQueryStateDefaultResult\r\n> = UseQueryStateResult & UseQuerySubscriptionResult\r\n\r\n/**\r\n * Helper type to manually type the result\r\n * of the `useQuery` hook in userland code.\r\n */\r\nexport type TypedUseQueryHookResult<\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n R = UseQueryStateDefaultResult<\r\n QueryDefinition\r\n >\r\n> = TypedUseQueryStateResult &\r\n TypedUseQuerySubscriptionResult\r\n\r\ninterface UseQuerySubscriptionOptions extends SubscriptionOptions {\r\n /**\r\n * Prevents a query from automatically running.\r\n *\r\n * @remarks\r\n * When `skip` is true (or `skipToken` is passed in as `arg`):\r\n *\r\n * - **If the query has cached data:**\r\n * * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\r\n * * The query will have a status of `uninitialized`\r\n * * If `skip: false` is set after the initial load, the cached result will be used\r\n * - **If the query does not have cached data:**\r\n * * The query will have a status of `uninitialized`\r\n * * The query will not exist in the state when viewed with the dev tools\r\n * * The query will not automatically fetch on mount\r\n * * The query will not automatically run when additional components with the same query are added that do run\r\n *\r\n * @example\r\n * ```tsx\r\n * // codeblock-meta no-transpile title=\"Skip example\"\r\n * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\r\n * const { data, error, status } = useGetPokemonByNameQuery(name, {\r\n * skip,\r\n * });\r\n *\r\n * return (\r\n *
\r\n * {name} - {status}\r\n *
\r\n * );\r\n * };\r\n * ```\r\n */\r\n skip?: boolean\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\r\n * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\r\n * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\r\n * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n */\r\n refetchOnMountOrArgChange?: boolean | number\r\n}\r\n\r\n/**\r\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data.\r\n *\r\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\r\n *\r\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useQuery`](#usequery) or [`useQueryState`](#usequerystate).\r\n *\r\n * #### Features\r\n *\r\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\r\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\r\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\r\n */\r\nexport type UseQuerySubscription<\r\n D extends QueryDefinition\r\n> = (\r\n arg: QueryArgFrom | SkipToken,\r\n options?: UseQuerySubscriptionOptions\r\n) => UseQuerySubscriptionResult\r\n\r\nexport type UseQuerySubscriptionResult<\r\n D extends QueryDefinition\r\n> = Pick, 'refetch'>\r\n\r\n/**\r\n * Helper type to manually type the result\r\n * of the `useQuerySubscription` hook in userland code.\r\n */\r\nexport type TypedUseQuerySubscriptionResult<\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn\r\n> = UseQuerySubscriptionResult<\r\n QueryDefinition\r\n>\r\n\r\nexport type UseLazyQueryLastPromiseInfo<\r\n D extends QueryDefinition\r\n> = {\r\n lastArg: QueryArgFrom\r\n}\r\n\r\n/**\r\n * A React hook similar to [`useQuery`](#usequery), but with manual control over when the data fetching occurs.\r\n *\r\n * This hook includes the functionality of [`useLazyQuerySubscription`](#uselazyquerysubscription).\r\n *\r\n * #### Features\r\n *\r\n * - Manual control over firing a request to retrieve data\r\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\r\n * - Returns the latest request status and cached data from the Redux store\r\n * - Re-renders as the request status changes and data becomes available\r\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\r\n *\r\n * #### Note\r\n *\r\n * When the trigger function returned from a LazyQuery is called, it always initiates a new request to the server even if there is cached data. Set `preferCacheValue`(the second argument to the function) as `true` if you want it to immediately return a cached value if one exists.\r\n */\r\nexport type UseLazyQuery> = <\r\n R extends Record = UseQueryStateDefaultResult\r\n>(\r\n options?: SubscriptionOptions & Omit, 'skip'>\r\n) => [\r\n LazyQueryTrigger,\r\n UseQueryStateResult,\r\n UseLazyQueryLastPromiseInfo\r\n]\r\n\r\nexport type LazyQueryTrigger> = {\r\n /**\r\n * Triggers a lazy query.\r\n *\r\n * By default, this will start a new request even if there is already a value in the cache.\r\n * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\r\n *\r\n * @remarks\r\n * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Using .unwrap with async await\"\r\n * try {\r\n * const payload = await getUserById(1).unwrap();\r\n * console.log('fulfilled', payload)\r\n * } catch (error) {\r\n * console.error('rejected', error);\r\n * }\r\n * ```\r\n */\r\n (\r\n arg: QueryArgFrom,\r\n preferCacheValue?: boolean\r\n ): QueryActionCreatorResult\r\n}\r\n\r\n/**\r\n * A React hook similar to [`useQuerySubscription`](#usequerysubscription), but with manual control over when the data fetching occurs.\r\n *\r\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useLazyQuery`](#uselazyquery).\r\n *\r\n * #### Features\r\n *\r\n * - Manual control over firing a request to retrieve data\r\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\r\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\r\n */\r\nexport type UseLazyQuerySubscription<\r\n D extends QueryDefinition\r\n> = (\r\n options?: SubscriptionOptions\r\n) => readonly [LazyQueryTrigger, QueryArgFrom | UninitializedValue]\r\n\r\nexport type QueryStateSelector<\r\n R extends Record,\r\n D extends QueryDefinition\r\n> = (state: UseQueryStateDefaultResult) => R\r\n\r\n/**\r\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\r\n *\r\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useQuery`](#usequery) or [`useQuerySubscription`](#usequerysubscription).\r\n *\r\n * #### Features\r\n *\r\n * - Returns the latest request status and cached data from the Redux store\r\n * - Re-renders as the request status changes and data becomes available\r\n */\r\nexport type UseQueryState> = <\r\n R extends Record = UseQueryStateDefaultResult\r\n>(\r\n arg: QueryArgFrom | SkipToken,\r\n options?: UseQueryStateOptions\r\n) => UseQueryStateResult\r\n\r\nexport type UseQueryStateOptions<\r\n D extends QueryDefinition,\r\n R extends Record\r\n> = {\r\n /**\r\n * Prevents a query from automatically running.\r\n *\r\n * @remarks\r\n * When skip is true:\r\n *\r\n * - **If the query has cached data:**\r\n * * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\r\n * * The query will have a status of `uninitialized`\r\n * * If `skip: false` is set after skipping the initial load, the cached result will be used\r\n * - **If the query does not have cached data:**\r\n * * The query will have a status of `uninitialized`\r\n * * The query will not exist in the state when viewed with the dev tools\r\n * * The query will not automatically fetch on mount\r\n * * The query will not automatically run when additional components with the same query are added that do run\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Skip example\"\r\n * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\r\n * const { data, error, status } = useGetPokemonByNameQuery(name, {\r\n * skip,\r\n * });\r\n *\r\n * return (\r\n *
\r\n * {name} - {status}\r\n *
\r\n * );\r\n * };\r\n * ```\r\n */\r\n skip?: boolean\r\n /**\r\n * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\r\n * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\r\n * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\r\n * function PostsList() {\r\n * const { data: posts } = api.useGetPostsQuery();\r\n *\r\n * return (\r\n *
    \r\n * {posts?.data?.map((post) => (\r\n * \r\n * ))}\r\n *
\r\n * );\r\n * }\r\n *\r\n * function PostById({ id }: { id: number }) {\r\n * // Will select the post with the given id, and will only rerender if the given posts data changes\r\n * const { post } = api.useGetPostsQuery(undefined, {\r\n * selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\r\n * });\r\n *\r\n * return
  • {post?.name}
  • ;\r\n * }\r\n * ```\r\n */\r\n selectFromResult?: QueryStateSelector\r\n}\r\n\r\nexport type UseQueryStateResult<\r\n _ extends QueryDefinition,\r\n R\r\n> = NoInfer\r\n\r\n/**\r\n * Helper type to manually type the result\r\n * of the `useQueryState` hook in userland code.\r\n */\r\nexport type TypedUseQueryStateResult<\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n R = UseQueryStateDefaultResult<\r\n QueryDefinition\r\n >\r\n> = NoInfer\r\n\r\ntype UseQueryStateBaseResult> =\r\n QuerySubState & {\r\n /**\r\n * Where `data` tries to hold data as much as possible, also re-using\r\n * data from the last arguments passed into the hook, this property\r\n * will always contain the received data from the query, for the current query arguments.\r\n */\r\n currentData?: ResultTypeFrom\r\n /**\r\n * Query has not started yet.\r\n */\r\n isUninitialized: false\r\n /**\r\n * Query is currently loading for the first time. No data yet.\r\n */\r\n isLoading: false\r\n /**\r\n * Query is currently fetching, but might have data from an earlier request.\r\n */\r\n isFetching: false\r\n /**\r\n * Query has data from a successful load.\r\n */\r\n isSuccess: false\r\n /**\r\n * Query is currently in \"error\" state.\r\n */\r\n isError: false\r\n }\r\n\r\ntype UseQueryStateDefaultResult> =\r\n Id<\r\n | Override<\r\n Extract<\r\n UseQueryStateBaseResult,\r\n { status: QueryStatus.uninitialized }\r\n >,\r\n { isUninitialized: true }\r\n >\r\n | Override<\r\n UseQueryStateBaseResult,\r\n | { isLoading: true; isFetching: boolean; data: undefined }\r\n | ({\r\n isSuccess: true\r\n isFetching: true\r\n error: undefined\r\n } & Required<\r\n Pick, 'data' | 'fulfilledTimeStamp'>\r\n >)\r\n | ({\r\n isSuccess: true\r\n isFetching: false\r\n error: undefined\r\n } & Required<\r\n Pick<\r\n UseQueryStateBaseResult,\r\n 'data' | 'fulfilledTimeStamp' | 'currentData'\r\n >\r\n >)\r\n | ({ isError: true } & Required<\r\n Pick, 'error'>\r\n >)\r\n >\r\n > & {\r\n /**\r\n * @deprecated will be removed in the next version\r\n * please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\r\n * and `isUninitialized` flags instead\r\n */\r\n status: QueryStatus\r\n }\r\n\r\nexport type MutationStateSelector<\r\n R extends Record,\r\n D extends MutationDefinition\r\n> = (state: MutationResultSelectorResult) => R\r\n\r\nexport type UseMutationStateOptions<\r\n D extends MutationDefinition,\r\n R extends Record\r\n> = {\r\n selectFromResult?: MutationStateSelector\r\n fixedCacheKey?: string\r\n}\r\n\r\nexport type UseMutationStateResult<\r\n D extends MutationDefinition,\r\n R\r\n> = NoInfer & {\r\n originalArgs?: QueryArgFrom\r\n /**\r\n * Resets the hook state to it's initial `uninitialized` state.\r\n * This will also remove the last result from the cache.\r\n */\r\n reset: () => void\r\n}\r\n\r\n/**\r\n * Helper type to manually type the result\r\n * of the `useMutation` hook in userland code.\r\n */\r\nexport type TypedUseMutationResult<\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n R = MutationResultSelectorResult<\r\n MutationDefinition\r\n >\r\n> = UseMutationStateResult<\r\n MutationDefinition,\r\n R\r\n>\r\n\r\n/**\r\n * A React hook that lets you trigger an update request for a given endpoint, and subscribes the component to read the request status from the Redux store. The component will re-render as the loading status changes.\r\n *\r\n * #### Features\r\n *\r\n * - Manual control over firing a request to alter data on the server or possibly invalidate the cache\r\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\r\n * - Returns the latest request status and cached data from the Redux store\r\n * - Re-renders as the request status changes and data becomes available\r\n */\r\nexport type UseMutation> = <\r\n R extends Record = MutationResultSelectorResult\r\n>(\r\n options?: UseMutationStateOptions\r\n) => readonly [MutationTrigger, UseMutationStateResult]\r\n\r\nexport type MutationTrigger> =\r\n {\r\n /**\r\n * Triggers the mutation and returns a Promise.\r\n * @remarks\r\n * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Using .unwrap with async await\"\r\n * try {\r\n * const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\r\n * console.log('fulfilled', payload)\r\n * } catch (error) {\r\n * console.error('rejected', error);\r\n * }\r\n * ```\r\n */\r\n (arg: QueryArgFrom): MutationActionCreatorResult\r\n }\r\n\r\nconst defaultQueryStateSelector: QueryStateSelector = (x) => x\r\nconst defaultMutationStateSelector: MutationStateSelector = (x) => x\r\n\r\n/**\r\n * Wrapper around `defaultQueryStateSelector` to be used in `useQuery`.\r\n * We want the initial render to already come back with\r\n * `{ isUninitialized: false, isFetching: true, isLoading: true }`\r\n * to prevent that the library user has to do an additional check for `isUninitialized`/\r\n */\r\nconst noPendingQueryStateSelector: QueryStateSelector = (\r\n selected\r\n) => {\r\n if (selected.isUninitialized) {\r\n return {\r\n ...selected,\r\n isUninitialized: false,\r\n isFetching: true,\r\n isLoading: selected.data !== undefined ? false : true,\r\n status: QueryStatus.pending,\r\n } as any\r\n }\r\n return selected\r\n}\r\n\r\ntype GenericPrefetchThunk = (\r\n endpointName: any,\r\n arg: any,\r\n options: PrefetchOptions\r\n) => ThunkAction\r\n\r\n/**\r\n *\r\n * @param opts.api - An API with defined endpoints to create hooks for\r\n * @param opts.moduleOptions.batch - The version of the `batchedUpdates` function to be used\r\n * @param opts.moduleOptions.useDispatch - The version of the `useDispatch` hook to be used\r\n * @param opts.moduleOptions.useSelector - The version of the `useSelector` hook to be used\r\n * @returns An object containing functions to generate hooks based on an endpoint\r\n */\r\nexport function buildHooks({\r\n api,\r\n moduleOptions: {\r\n batch,\r\n useDispatch,\r\n useSelector,\r\n useStore,\r\n unstable__sideEffectsInRender,\r\n },\r\n serializeQueryArgs,\r\n context,\r\n}: {\r\n api: Api\r\n moduleOptions: Required\r\n serializeQueryArgs: SerializeQueryArgs\r\n context: ApiContext\r\n}) {\r\n const usePossiblyImmediateEffect: (\r\n effect: () => void | undefined,\r\n deps?: DependencyList\r\n ) => void = unstable__sideEffectsInRender ? (cb) => cb() : useEffect\r\n\r\n return { buildQueryHooks, buildMutationHook, usePrefetch }\r\n\r\n function queryStatePreSelector(\r\n currentState: QueryResultSelectorResult,\r\n lastResult: UseQueryStateDefaultResult | undefined,\r\n queryArgs: any\r\n ): UseQueryStateDefaultResult {\r\n // if we had a last result and the current result is uninitialized,\r\n // we might have called `api.util.resetApiState`\r\n // in this case, reset the hook\r\n if (lastResult?.endpointName && currentState.isUninitialized) {\r\n const { endpointName } = lastResult\r\n const endpointDefinition = context.endpointDefinitions[endpointName]\r\n if (\r\n serializeQueryArgs({\r\n queryArgs: lastResult.originalArgs,\r\n endpointDefinition,\r\n endpointName,\r\n }) ===\r\n serializeQueryArgs({\r\n queryArgs,\r\n endpointDefinition,\r\n endpointName,\r\n })\r\n )\r\n lastResult = undefined\r\n }\r\n\r\n // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\r\n let data = currentState.isSuccess ? currentState.data : lastResult?.data\r\n if (data === undefined) data = currentState.data\r\n\r\n const hasData = data !== undefined\r\n\r\n // isFetching = true any time a request is in flight\r\n const isFetching = currentState.isLoading\r\n // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\r\n const isLoading = !hasData && isFetching\r\n // isSuccess = true when data is present\r\n const isSuccess = currentState.isSuccess || (isFetching && hasData)\r\n\r\n return {\r\n ...currentState,\r\n data,\r\n currentData: currentState.data,\r\n isFetching,\r\n isLoading,\r\n isSuccess,\r\n } as UseQueryStateDefaultResult\r\n }\r\n\r\n function usePrefetch>(\r\n endpointName: EndpointName,\r\n defaultOptions?: PrefetchOptions\r\n ) {\r\n const dispatch = useDispatch>()\r\n const stableDefaultOptions = useShallowStableValue(defaultOptions)\r\n\r\n return useCallback(\r\n (arg: any, options?: PrefetchOptions) =>\r\n dispatch(\r\n (api.util.prefetch as GenericPrefetchThunk)(endpointName, arg, {\r\n ...stableDefaultOptions,\r\n ...options,\r\n })\r\n ),\r\n [endpointName, dispatch, stableDefaultOptions]\r\n )\r\n }\r\n\r\n function buildQueryHooks(name: string): QueryHooks {\r\n const useQuerySubscription: UseQuerySubscription = (\r\n arg: any,\r\n {\r\n refetchOnReconnect,\r\n refetchOnFocus,\r\n refetchOnMountOrArgChange,\r\n skip = false,\r\n pollingInterval = 0,\r\n } = {}\r\n ) => {\r\n const { initiate } = api.endpoints[name] as ApiEndpointQuery<\r\n QueryDefinition,\r\n Definitions\r\n >\r\n const dispatch = useDispatch>()\r\n const stableArg = useStableQueryArgs(\r\n skip ? skipToken : arg,\r\n // Even if the user provided a per-endpoint `serializeQueryArgs` with\r\n // a consistent return value, _here_ we want to use the default behavior\r\n // so we can tell if _anything_ actually changed. Otherwise, we can end up\r\n // with a case where the query args did change but the serialization doesn't,\r\n // and then we never try to initiate a refetch.\r\n defaultSerializeQueryArgs,\r\n context.endpointDefinitions[name],\r\n name\r\n )\r\n const stableSubscriptionOptions = useShallowStableValue({\r\n refetchOnReconnect,\r\n refetchOnFocus,\r\n pollingInterval,\r\n })\r\n\r\n const lastRenderHadSubscription = useRef(false)\r\n\r\n const promiseRef = useRef>()\r\n\r\n let { queryCacheKey, requestId } = promiseRef.current || {}\r\n\r\n // HACK Because the latest state is in the middleware, we actually\r\n // dispatch an action that will be intercepted and returned.\r\n let currentRenderHasSubscription = false\r\n if (queryCacheKey && requestId) {\r\n // This _should_ return a boolean, even if the types don't line up\r\n const returnedValue = dispatch(\r\n api.internalActions.internal_probeSubscription({\r\n queryCacheKey,\r\n requestId,\r\n })\r\n )\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof returnedValue !== 'boolean') {\r\n throw new Error(\r\n `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\r\n You must add the middleware for RTK-Query to function correctly!`\r\n )\r\n }\r\n }\r\n\r\n currentRenderHasSubscription = !!returnedValue\r\n }\r\n\r\n const subscriptionRemoved =\r\n !currentRenderHasSubscription && lastRenderHadSubscription.current\r\n\r\n usePossiblyImmediateEffect(() => {\r\n lastRenderHadSubscription.current = currentRenderHasSubscription\r\n })\r\n\r\n usePossiblyImmediateEffect((): void | undefined => {\r\n if (subscriptionRemoved) {\r\n promiseRef.current = undefined\r\n }\r\n }, [subscriptionRemoved])\r\n\r\n usePossiblyImmediateEffect((): void | undefined => {\r\n const lastPromise = promiseRef.current\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'removeMeOnCompilation'\r\n ) {\r\n // this is only present to enforce the rule of hooks to keep `isSubscribed` in the dependency array\r\n console.log(subscriptionRemoved)\r\n }\r\n\r\n if (stableArg === skipToken) {\r\n lastPromise?.unsubscribe()\r\n promiseRef.current = undefined\r\n return\r\n }\r\n\r\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions\r\n\r\n if (!lastPromise || lastPromise.arg !== stableArg) {\r\n lastPromise?.unsubscribe()\r\n const promise = dispatch(\r\n initiate(stableArg, {\r\n subscriptionOptions: stableSubscriptionOptions,\r\n forceRefetch: refetchOnMountOrArgChange,\r\n })\r\n )\r\n\r\n promiseRef.current = promise\r\n } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {\r\n lastPromise.updateSubscriptionOptions(stableSubscriptionOptions)\r\n }\r\n }, [\r\n dispatch,\r\n initiate,\r\n refetchOnMountOrArgChange,\r\n stableArg,\r\n stableSubscriptionOptions,\r\n subscriptionRemoved,\r\n ])\r\n\r\n useEffect(() => {\r\n return () => {\r\n promiseRef.current?.unsubscribe()\r\n promiseRef.current = undefined\r\n }\r\n }, [])\r\n\r\n return useMemo(\r\n () => ({\r\n /**\r\n * A method to manually refetch data for the query\r\n */\r\n refetch: () => {\r\n if (!promiseRef.current)\r\n throw new Error(\r\n 'Cannot refetch a query that has not been started yet.'\r\n )\r\n return promiseRef.current?.refetch()\r\n },\r\n }),\r\n []\r\n )\r\n }\r\n\r\n const useLazyQuerySubscription: UseLazyQuerySubscription = ({\r\n refetchOnReconnect,\r\n refetchOnFocus,\r\n pollingInterval = 0,\r\n } = {}) => {\r\n const { initiate } = api.endpoints[name] as ApiEndpointQuery<\r\n QueryDefinition,\r\n Definitions\r\n >\r\n const dispatch = useDispatch>()\r\n\r\n const [arg, setArg] = useState(UNINITIALIZED_VALUE)\r\n const promiseRef = useRef | undefined>()\r\n\r\n const stableSubscriptionOptions = useShallowStableValue({\r\n refetchOnReconnect,\r\n refetchOnFocus,\r\n pollingInterval,\r\n })\r\n\r\n usePossiblyImmediateEffect(() => {\r\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions\r\n\r\n if (stableSubscriptionOptions !== lastSubscriptionOptions) {\r\n promiseRef.current?.updateSubscriptionOptions(\r\n stableSubscriptionOptions\r\n )\r\n }\r\n }, [stableSubscriptionOptions])\r\n\r\n const subscriptionOptionsRef = useRef(stableSubscriptionOptions)\r\n usePossiblyImmediateEffect(() => {\r\n subscriptionOptionsRef.current = stableSubscriptionOptions\r\n }, [stableSubscriptionOptions])\r\n\r\n const trigger = useCallback(\r\n function (arg: any, preferCacheValue = false) {\r\n let promise: QueryActionCreatorResult\r\n\r\n batch(() => {\r\n promiseRef.current?.unsubscribe()\r\n\r\n promiseRef.current = promise = dispatch(\r\n initiate(arg, {\r\n subscriptionOptions: subscriptionOptionsRef.current,\r\n forceRefetch: !preferCacheValue,\r\n })\r\n )\r\n\r\n setArg(arg)\r\n })\r\n\r\n return promise!\r\n },\r\n [dispatch, initiate]\r\n )\r\n\r\n /* cleanup on unmount */\r\n useEffect(() => {\r\n return () => {\r\n promiseRef?.current?.unsubscribe()\r\n }\r\n }, [])\r\n\r\n /* if \"cleanup on unmount\" was triggered from a fast refresh, we want to reinstate the query */\r\n useEffect(() => {\r\n if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {\r\n trigger(arg, true)\r\n }\r\n }, [arg, trigger])\r\n\r\n return useMemo(() => [trigger, arg] as const, [trigger, arg])\r\n }\r\n\r\n const useQueryState: UseQueryState = (\r\n arg: any,\r\n { skip = false, selectFromResult } = {}\r\n ) => {\r\n const { select } = api.endpoints[name] as ApiEndpointQuery<\r\n QueryDefinition,\r\n Definitions\r\n >\r\n const stableArg = useStableQueryArgs(\r\n skip ? skipToken : arg,\r\n serializeQueryArgs,\r\n context.endpointDefinitions[name],\r\n name\r\n )\r\n\r\n type ApiRootState = Parameters>[0]\r\n\r\n const lastValue = useRef()\r\n\r\n const selectDefaultResult: Selector = useMemo(\r\n () =>\r\n createSelector(\r\n [\r\n select(stableArg),\r\n (_: ApiRootState, lastResult: any) => lastResult,\r\n (_: ApiRootState) => stableArg,\r\n ],\r\n queryStatePreSelector\r\n ),\r\n [select, stableArg]\r\n )\r\n\r\n const querySelector: Selector = useMemo(\r\n () =>\r\n selectFromResult\r\n ? createSelector([selectDefaultResult], selectFromResult)\r\n : selectDefaultResult,\r\n [selectDefaultResult, selectFromResult]\r\n )\r\n\r\n const currentState = useSelector(\r\n (state: RootState) =>\r\n querySelector(state, lastValue.current),\r\n shallowEqual\r\n )\r\n\r\n const store = useStore>()\r\n const newLastValue = selectDefaultResult(\r\n store.getState(),\r\n lastValue.current\r\n )\r\n useIsomorphicLayoutEffect(() => {\r\n lastValue.current = newLastValue\r\n }, [newLastValue])\r\n\r\n return currentState\r\n }\r\n\r\n return {\r\n useQueryState,\r\n useQuerySubscription,\r\n useLazyQuerySubscription,\r\n useLazyQuery(options) {\r\n const [trigger, arg] = useLazyQuerySubscription(options)\r\n const queryStateResults = useQueryState(arg, {\r\n ...options,\r\n skip: arg === UNINITIALIZED_VALUE,\r\n })\r\n\r\n const info = useMemo(() => ({ lastArg: arg }), [arg])\r\n return useMemo(\r\n () => [trigger, queryStateResults, info],\r\n [trigger, queryStateResults, info]\r\n )\r\n },\r\n useQuery(arg, options) {\r\n const querySubscriptionResults = useQuerySubscription(arg, options)\r\n const queryStateResults = useQueryState(arg, {\r\n selectFromResult:\r\n arg === skipToken || options?.skip\r\n ? undefined\r\n : noPendingQueryStateSelector,\r\n ...options,\r\n })\r\n\r\n const { data, status, isLoading, isSuccess, isError, error } =\r\n queryStateResults\r\n useDebugValue({ data, status, isLoading, isSuccess, isError, error })\r\n\r\n return useMemo(\r\n () => ({ ...queryStateResults, ...querySubscriptionResults }),\r\n [queryStateResults, querySubscriptionResults]\r\n )\r\n },\r\n }\r\n }\r\n\r\n function buildMutationHook(name: string): UseMutation {\r\n return ({\r\n selectFromResult = defaultMutationStateSelector,\r\n fixedCacheKey,\r\n } = {}) => {\r\n const { select, initiate } = api.endpoints[name] as ApiEndpointMutation<\r\n MutationDefinition,\r\n Definitions\r\n >\r\n const dispatch = useDispatch>()\r\n const [promise, setPromise] = useState>()\r\n\r\n useEffect(\r\n () => () => {\r\n if (!promise?.arg.fixedCacheKey) {\r\n promise?.reset()\r\n }\r\n },\r\n [promise]\r\n )\r\n\r\n const triggerMutation = useCallback(\r\n function (arg: Parameters['0']) {\r\n const promise = dispatch(initiate(arg, { fixedCacheKey }))\r\n setPromise(promise)\r\n return promise\r\n },\r\n [dispatch, initiate, fixedCacheKey]\r\n )\r\n\r\n const { requestId } = promise || {}\r\n const mutationSelector = useMemo(\r\n () =>\r\n createSelector(\r\n [select({ fixedCacheKey, requestId: promise?.requestId })],\r\n selectFromResult\r\n ),\r\n [select, promise, selectFromResult, fixedCacheKey]\r\n )\r\n\r\n const currentState = useSelector(mutationSelector, shallowEqual)\r\n const originalArgs =\r\n fixedCacheKey == null ? promise?.arg.originalArgs : undefined\r\n const reset = useCallback(() => {\r\n batch(() => {\r\n if (promise) {\r\n setPromise(undefined)\r\n }\r\n if (fixedCacheKey) {\r\n dispatch(\r\n api.internalActions.removeMutationResult({\r\n requestId,\r\n fixedCacheKey,\r\n })\r\n )\r\n }\r\n })\r\n }, [dispatch, fixedCacheKey, promise, requestId])\r\n\r\n const {\r\n endpointName,\r\n data,\r\n status,\r\n isLoading,\r\n isSuccess,\r\n isError,\r\n error,\r\n } = currentState\r\n useDebugValue({\r\n endpointName,\r\n data,\r\n status,\r\n isLoading,\r\n isSuccess,\r\n isError,\r\n error,\r\n })\r\n\r\n const finalState = useMemo(\r\n () => ({ ...currentState, originalArgs, reset }),\r\n [currentState, originalArgs, reset]\r\n )\r\n\r\n return useMemo(\r\n () => [triggerMutation, finalState] as const,\r\n [triggerMutation, finalState]\r\n )\r\n }\r\n }\r\n}\r\n", "import { useEffect, useRef, useMemo } from 'react'\r\nimport type { SerializeQueryArgs } from '@reduxjs/toolkit/dist/query/defaultSerializeQueryArgs'\r\nimport type { EndpointDefinition } from '@reduxjs/toolkit/dist/query/endpointDefinitions'\r\n\r\nexport function useStableQueryArgs(\r\n queryArgs: T,\r\n serialize: SerializeQueryArgs,\r\n endpointDefinition: EndpointDefinition,\r\n endpointName: string\r\n) {\r\n const incoming = useMemo(\r\n () => ({\r\n queryArgs,\r\n serialized:\r\n typeof queryArgs == 'object'\r\n ? serialize({ queryArgs, endpointDefinition, endpointName })\r\n : queryArgs,\r\n }),\r\n [queryArgs, serialize, endpointDefinition, endpointName]\r\n )\r\n const cache = useRef(incoming)\r\n useEffect(() => {\r\n if (cache.current.serialized !== incoming.serialized) {\r\n cache.current = incoming\r\n }\r\n }, [incoming])\r\n\r\n return cache.current.serialized === incoming.serialized\r\n ? cache.current.queryArgs\r\n : queryArgs\r\n}\r\n", "export const UNINITIALIZED_VALUE = Symbol()\r\nexport type UninitializedValue = typeof UNINITIALIZED_VALUE\r\n", "import { useEffect, useRef } from 'react'\r\nimport { shallowEqual } from 'react-redux'\r\n\r\nexport function useShallowStableValue(value: T) {\r\n const cache = useRef(value)\r\n useEffect(() => {\r\n if (!shallowEqual(cache.current, value)) {\r\n cache.current = value\r\n }\r\n }, [value])\r\n\r\n return shallowEqual(cache.current, value) ? cache.current : value\r\n}\r\n", "import type { QueryCacheKey } from './core/apiState'\r\nimport type { EndpointDefinition } from './endpointDefinitions'\r\nimport { isPlainObject } from '@reduxjs/toolkit'\r\n\r\nconst cache: WeakMap | undefined = WeakMap\r\n ? new WeakMap()\r\n : undefined\r\n\r\nexport const defaultSerializeQueryArgs: SerializeQueryArgs = ({\r\n endpointName,\r\n queryArgs,\r\n}) => {\r\n let serialized = ''\r\n\r\n const cached = cache?.get(queryArgs)\r\n\r\n if (typeof cached === 'string') {\r\n serialized = cached\r\n } else {\r\n const stringified = JSON.stringify(queryArgs, (key, value) =>\r\n isPlainObject(value)\r\n ? Object.keys(value)\r\n .sort()\r\n .reduce((acc, key) => {\r\n acc[key] = (value as any)[key]\r\n return acc\r\n }, {})\r\n : value\r\n )\r\n if (isPlainObject(queryArgs)) {\r\n cache?.set(queryArgs, stringified)\r\n }\r\n serialized = stringified\r\n }\r\n // Sort the object keys before stringifying, to prevent useQuery({ a: 1, b: 2 }) having a different cache key than useQuery({ b: 2, a: 1 })\r\n return `${endpointName}(${serialized})`\r\n}\r\n\r\nexport type SerializeQueryArgs = (_: {\r\n queryArgs: QueryArgs\r\n endpointDefinition: EndpointDefinition\r\n endpointName: string\r\n}) => ReturnType\r\n\r\nexport type InternalSerializeQueryArgs = (_: {\r\n queryArgs: any\r\n endpointDefinition: EndpointDefinition\r\n endpointName: string\r\n}) => QueryCacheKey\r\n", "import type { AnyAction, ThunkDispatch } from '@reduxjs/toolkit'\r\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs'\r\nimport type { QuerySubState, RootState } from './core/apiState'\r\nimport type {\r\n BaseQueryExtraOptions,\r\n BaseQueryFn,\r\n BaseQueryResult,\r\n BaseQueryArg,\r\n BaseQueryApi,\r\n QueryReturnValue,\r\n BaseQueryError,\r\n BaseQueryMeta,\r\n} from './baseQueryTypes'\r\nimport type {\r\n HasRequiredProps,\r\n MaybePromise,\r\n OmitFromUnion,\r\n CastAny,\r\n NonUndefined,\r\n} from './tsHelpers'\r\nimport type { NEVER } from './fakeBaseQuery'\r\nimport type { Api } from '@reduxjs/toolkit/query'\r\n\r\nconst resultType = /* @__PURE__ */ Symbol()\r\nconst baseQuery = /* @__PURE__ */ Symbol()\r\n\r\ninterface EndpointDefinitionWithQuery<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> {\r\n /**\r\n * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"query example\"\r\n *\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * tagTypes: ['Post'],\r\n * endpoints: (build) => ({\r\n * getPosts: build.query({\r\n * // highlight-start\r\n * query: () => 'posts',\r\n * // highlight-end\r\n * }),\r\n * addPost: build.mutation>({\r\n * // highlight-start\r\n * query: (body) => ({\r\n * url: `posts`,\r\n * method: 'POST',\r\n * body,\r\n * }),\r\n * // highlight-end\r\n * invalidatesTags: [{ type: 'Post', id: 'LIST' }],\r\n * }),\r\n * })\r\n * })\r\n * ```\r\n */\r\n query(arg: QueryArg): BaseQueryArg\r\n queryFn?: never\r\n /**\r\n * A function to manipulate the data returned by a query or mutation.\r\n */\r\n transformResponse?(\r\n baseQueryReturnValue: BaseQueryResult,\r\n meta: BaseQueryMeta,\r\n arg: QueryArg\r\n ): ResultType | Promise\r\n /**\r\n * A function to manipulate the data returned by a failed query or mutation.\r\n */\r\n transformErrorResponse?(\r\n baseQueryReturnValue: BaseQueryError,\r\n meta: BaseQueryMeta,\r\n arg: QueryArg\r\n ): unknown\r\n /**\r\n * Defaults to `true`.\r\n *\r\n * Most apps should leave this setting on. The only time it can be a performance issue\r\n * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\r\n * you're unable to paginate it.\r\n *\r\n * For details of how this works, please see the below. When it is set to `false`,\r\n * every request will cause subscribed components to rerender, even when the data has not changed.\r\n *\r\n * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\r\n */\r\n structuralSharing?: boolean\r\n}\r\n\r\ninterface EndpointDefinitionWithQueryFn<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> {\r\n /**\r\n * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Basic queryFn example\"\r\n *\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * getPosts: build.query({\r\n * query: () => 'posts',\r\n * }),\r\n * flipCoin: build.query<'heads' | 'tails', void>({\r\n * // highlight-start\r\n * queryFn(arg, queryApi, extraOptions, baseQuery) {\r\n * const randomVal = Math.random()\r\n * if (randomVal < 0.45) {\r\n * return { data: 'heads' }\r\n * }\r\n * if (randomVal < 0.9) {\r\n * return { data: 'tails' }\r\n * }\r\n * return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on it's edge!\" } }\r\n * }\r\n * // highlight-end\r\n * })\r\n * })\r\n * })\r\n * ```\r\n */\r\n queryFn(\r\n arg: QueryArg,\r\n api: BaseQueryApi,\r\n extraOptions: BaseQueryExtraOptions,\r\n baseQuery: (arg: Parameters[0]) => ReturnType\r\n ): MaybePromise>>\r\n query?: never\r\n transformResponse?: never\r\n transformErrorResponse?: never\r\n /**\r\n * Defaults to `true`.\r\n *\r\n * Most apps should leave this setting on. The only time it can be a performance issue\r\n * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\r\n * you're unable to paginate it.\r\n *\r\n * For details of how this works, please see the below. When it is set to `false`,\r\n * every request will cause subscribed components to rerender, even when the data has not changed.\r\n *\r\n * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\r\n */\r\n structuralSharing?: boolean\r\n}\r\n\r\nexport interface BaseEndpointTypes<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> {\r\n QueryArg: QueryArg\r\n BaseQuery: BaseQuery\r\n ResultType: ResultType\r\n}\r\n\r\nexport type BaseEndpointDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> = (\r\n | ([CastAny, {}>] extends [NEVER]\r\n ? never\r\n : EndpointDefinitionWithQuery)\r\n | EndpointDefinitionWithQueryFn\r\n) & {\r\n /* phantom type */\r\n [resultType]?: ResultType\r\n /* phantom type */\r\n [baseQuery]?: BaseQuery\r\n} & HasRequiredProps<\r\n BaseQueryExtraOptions,\r\n { extraOptions: BaseQueryExtraOptions },\r\n { extraOptions?: BaseQueryExtraOptions }\r\n >\r\n\r\nexport enum DefinitionType {\r\n query = 'query',\r\n mutation = 'mutation',\r\n}\r\n\r\nexport type GetResultDescriptionFn<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n ErrorType,\r\n MetaType\r\n> = (\r\n result: ResultType | undefined,\r\n error: ErrorType | undefined,\r\n arg: QueryArg,\r\n meta: MetaType\r\n) => ReadonlyArray>\r\n\r\nexport type FullTagDescription = {\r\n type: TagType\r\n id?: number | string\r\n}\r\nexport type TagDescription = TagType | FullTagDescription\r\nexport type ResultDescription<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n ErrorType,\r\n MetaType\r\n> =\r\n | ReadonlyArray>\r\n | GetResultDescriptionFn\r\n\r\n/** @deprecated please use `onQueryStarted` instead */\r\nexport interface QueryApi {\r\n /** @deprecated please use `onQueryStarted` instead */\r\n dispatch: ThunkDispatch\r\n /** @deprecated please use `onQueryStarted` instead */\r\n getState(): RootState\r\n /** @deprecated please use `onQueryStarted` instead */\r\n extra: unknown\r\n /** @deprecated please use `onQueryStarted` instead */\r\n requestId: string\r\n /** @deprecated please use `onQueryStarted` instead */\r\n context: Context\r\n}\r\n\r\nexport interface QueryTypes<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> extends BaseEndpointTypes {\r\n /**\r\n * The endpoint definition type. To be used with some internal generic types.\r\n * @example\r\n * ```ts\r\n * const useMyWrappedHook: UseQuery = ...\r\n * ```\r\n */\r\n QueryDefinition: QueryDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n ResultType,\r\n ReducerPath\r\n >\r\n TagTypes: TagTypes\r\n ReducerPath: ReducerPath\r\n}\r\n\r\nexport interface QueryExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n> {\r\n type: DefinitionType.query\r\n /**\r\n * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\r\n * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\r\n * 1. `['Post']` - equivalent to `2`\r\n * 2. `[{ type: 'Post' }]` - equivalent to `1`\r\n * 3. `[{ type: 'Post', id: 1 }]`\r\n * 4. `(result, error, arg) => ['Post']` - equivalent to `5`\r\n * 5. `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\r\n * 6. `(result, error, arg) => [{ type: 'Post', id: 1 }]`\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"providesTags example\"\r\n *\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * tagTypes: ['Posts'],\r\n * endpoints: (build) => ({\r\n * getPosts: build.query({\r\n * query: () => 'posts',\r\n * // highlight-start\r\n * providesTags: (result) =>\r\n * result\r\n * ? [\r\n * ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\r\n * { type: 'Posts', id: 'LIST' },\r\n * ]\r\n * : [{ type: 'Posts', id: 'LIST' }],\r\n * // highlight-end\r\n * })\r\n * })\r\n * })\r\n * ```\r\n */\r\n providesTags?: ResultDescription<\r\n TagTypes,\r\n ResultType,\r\n QueryArg,\r\n BaseQueryError,\r\n BaseQueryMeta\r\n >\r\n /**\r\n * Not to be used. A query should not invalidate tags in the cache.\r\n */\r\n invalidatesTags?: never\r\n\r\n /**\r\n * Can be provided to return a custom cache key value based on the query arguments.\r\n *\r\n * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key. It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\r\n *\r\n * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean. If it returns a string, that value will be used as the cache key directly. If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`. This simplifies the use case of stripping out args you don't want included in the cache key.\r\n *\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\r\n *\r\n * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * interface MyApiClient {\r\n * fetchPost: (id: string) => Promise\r\n * }\r\n *\r\n * createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * // Example: an endpoint with an API client passed in as an argument,\r\n * // but only the item ID should be used as the cache key\r\n * getPost: build.query({\r\n * queryFn: async ({ id, client }) => {\r\n * const post = await client.fetchPost(id)\r\n * return { data: post }\r\n * },\r\n * // highlight-start\r\n * serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\r\n * const { id } = queryArgs\r\n * // This can return a string, an object, a number, or a boolean.\r\n * // If it returns an object, number or boolean, that value\r\n * // will be serialized automatically via `defaultSerializeQueryArgs`\r\n * return { id } // omit `client` from the cache key\r\n *\r\n * // Alternately, you can use `defaultSerializeQueryArgs` yourself:\r\n * // return defaultSerializeQueryArgs({\r\n * // endpointName,\r\n * // queryArgs: { id },\r\n * // endpointDefinition\r\n * // })\r\n * // Or create and return a string yourself:\r\n * // return `getPost(${id})`\r\n * },\r\n * // highlight-end\r\n * }),\r\n * }),\r\n *})\r\n * ```\r\n */\r\n serializeQueryArgs?: SerializeQueryArgs<\r\n QueryArg,\r\n string | number | boolean | Record\r\n >\r\n\r\n /**\r\n * Can be provided to merge an incoming response value into the current cache data.\r\n * If supplied, no automatic structural sharing will be applied - it's up to\r\n * you to update the cache appropriately.\r\n *\r\n * Since RTKQ normally replaces cache entries with the new response, you will usually\r\n * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\r\n * an existing cache entry so that it can be updated.\r\n *\r\n * Since this is wrapped with Immer, you , you may either mutate the `currentCacheValue` directly,\r\n * or return a new value, but _not_ both at once.\r\n *\r\n * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\r\n * the cache entry will just save the response data directly.\r\n *\r\n * Useful if you don't want a new request to completely override the current cache value,\r\n * maybe because you have manually updated it from another source and don't want those\r\n * updates to get lost.\r\n *\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"merge: pagination\"\r\n *\r\n * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * listItems: build.query({\r\n * query: (pageNumber) => `/listItems?page=${pageNumber}`,\r\n * // Only have one cache entry because the arg always maps to one string\r\n * serializeQueryArgs: ({ endpointName }) => {\r\n * return endpointName\r\n * },\r\n * // Always merge incoming data to the cache entry\r\n * merge: (currentCache, newItems) => {\r\n * currentCache.push(...newItems)\r\n * },\r\n * // Refetch when the page arg changes\r\n * forceRefetch({ currentArg, previousArg }) {\r\n * return currentArg !== previousArg\r\n * },\r\n * }),\r\n * }),\r\n *})\r\n * ```\r\n */\r\n merge?(\r\n currentCacheData: ResultType,\r\n responseData: ResultType,\r\n otherArgs: {\r\n arg: QueryArg\r\n baseQueryMeta: BaseQueryMeta\r\n requestId: string\r\n fulfilledTimeStamp: number\r\n }\r\n ): ResultType | void\r\n\r\n /**\r\n * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\r\n * This is primarily useful for \"infinite scroll\" / pagination use cases where\r\n * RTKQ is keeping a single cache entry that is added to over time, in combination\r\n * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\r\n * set to add incoming data to the cache entry each time.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"forceRefresh: pagination\"\r\n *\r\n * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * listItems: build.query({\r\n * query: (pageNumber) => `/listItems?page=${pageNumber}`,\r\n * // Only have one cache entry because the arg always maps to one string\r\n * serializeQueryArgs: ({ endpointName }) => {\r\n * return endpointName\r\n * },\r\n * // Always merge incoming data to the cache entry\r\n * merge: (currentCache, newItems) => {\r\n * currentCache.push(...newItems)\r\n * },\r\n * // Refetch when the page arg changes\r\n * forceRefetch({ currentArg, previousArg }) {\r\n * return currentArg !== previousArg\r\n * },\r\n * }),\r\n * }),\r\n *})\r\n * ```\r\n */\r\n forceRefetch?(params: {\r\n currentArg: QueryArg | undefined\r\n previousArg: QueryArg | undefined\r\n state: RootState\r\n endpointState?: QuerySubState\r\n }): boolean\r\n\r\n /**\r\n * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\r\n */\r\n Types?: QueryTypes\r\n}\r\n\r\nexport type QueryDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> = BaseEndpointDefinition &\r\n QueryExtraOptions\r\n\r\nexport interface MutationTypes<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> extends BaseEndpointTypes {\r\n /**\r\n * The endpoint definition type. To be used with some internal generic types.\r\n * @example\r\n * ```ts\r\n * const useMyWrappedHook: UseMutation = ...\r\n * ```\r\n */\r\n MutationDefinition: MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n ResultType,\r\n ReducerPath\r\n >\r\n TagTypes: TagTypes\r\n ReducerPath: ReducerPath\r\n}\r\n\r\nexport interface MutationExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n> {\r\n type: DefinitionType.mutation\r\n /**\r\n * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\r\n * Expects the same shapes as `providesTags`.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"invalidatesTags example\"\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * tagTypes: ['Posts'],\r\n * endpoints: (build) => ({\r\n * getPosts: build.query({\r\n * query: () => 'posts',\r\n * providesTags: (result) =>\r\n * result\r\n * ? [\r\n * ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\r\n * { type: 'Posts', id: 'LIST' },\r\n * ]\r\n * : [{ type: 'Posts', id: 'LIST' }],\r\n * }),\r\n * addPost: build.mutation>({\r\n * query(body) {\r\n * return {\r\n * url: `posts`,\r\n * method: 'POST',\r\n * body,\r\n * }\r\n * },\r\n * // highlight-start\r\n * invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\r\n * // highlight-end\r\n * }),\r\n * })\r\n * })\r\n * ```\r\n */\r\n invalidatesTags?: ResultDescription<\r\n TagTypes,\r\n ResultType,\r\n QueryArg,\r\n BaseQueryError,\r\n BaseQueryMeta\r\n >\r\n /**\r\n * Not to be used. A mutation should not provide tags to the cache.\r\n */\r\n providesTags?: never\r\n\r\n /**\r\n * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\r\n */\r\n Types?: MutationTypes\r\n}\r\n\r\nexport type MutationDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> = BaseEndpointDefinition &\r\n MutationExtraOptions\r\n\r\nexport type EndpointDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> =\r\n | QueryDefinition\r\n | MutationDefinition\r\n\r\nexport type EndpointDefinitions = Record<\r\n string,\r\n EndpointDefinition\r\n>\r\n\r\nexport function isQueryDefinition(\r\n e: EndpointDefinition\r\n): e is QueryDefinition {\r\n return e.type === DefinitionType.query\r\n}\r\n\r\nexport function isMutationDefinition(\r\n e: EndpointDefinition\r\n): e is MutationDefinition {\r\n return e.type === DefinitionType.mutation\r\n}\r\n\r\nexport type EndpointBuilder<\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ReducerPath extends string\r\n> = {\r\n /**\r\n * An endpoint definition that retrieves data, and may provide tags to the cache.\r\n *\r\n * @example\r\n * ```js\r\n * // codeblock-meta title=\"Example of all query endpoint options\"\r\n * const api = createApi({\r\n * baseQuery,\r\n * endpoints: (build) => ({\r\n * getPost: build.query({\r\n * query: (id) => ({ url: `post/${id}` }),\r\n * // Pick out data and prevent nested properties in a hook or selector\r\n * transformResponse: (response) => response.data,\r\n * // Pick out error and prevent nested properties in a hook or selector\r\n * transformErrorResponse: (response) => response.error,\r\n * // `result` is the server response\r\n * providesTags: (result, error, id) => [{ type: 'Post', id }],\r\n * // trigger side effects or optimistic updates\r\n * onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\r\n * // handle subscriptions etc\r\n * onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\r\n * }),\r\n * }),\r\n *});\r\n *```\r\n */\r\n query(\r\n definition: OmitFromUnion<\r\n QueryDefinition,\r\n 'type'\r\n >\r\n ): QueryDefinition\r\n /**\r\n * An endpoint definition that alters data on the server or will possibly invalidate the cache.\r\n *\r\n * @example\r\n * ```js\r\n * // codeblock-meta title=\"Example of all mutation endpoint options\"\r\n * const api = createApi({\r\n * baseQuery,\r\n * endpoints: (build) => ({\r\n * updatePost: build.mutation({\r\n * query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\r\n * // Pick out data and prevent nested properties in a hook or selector\r\n * transformResponse: (response) => response.data,\r\n * // Pick out error and prevent nested properties in a hook or selector\r\n * transformErrorResponse: (response) => response.error,\r\n * // `result` is the server response\r\n * invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\r\n * // trigger side effects or optimistic updates\r\n * onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\r\n * // handle subscriptions etc\r\n * onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\r\n * }),\r\n * }),\r\n * });\r\n * ```\r\n */\r\n mutation(\r\n definition: OmitFromUnion<\r\n MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n ResultType,\r\n ReducerPath\r\n >,\r\n 'type'\r\n >\r\n ): MutationDefinition\r\n}\r\n\r\nexport type AssertTagTypes = >(t: T) => T\r\n\r\nexport function calculateProvidedBy(\r\n description:\r\n | ResultDescription\r\n | undefined,\r\n result: ResultType | undefined,\r\n error: ErrorType | undefined,\r\n queryArg: QueryArg,\r\n meta: MetaType | undefined,\r\n assertTagTypes: AssertTagTypes\r\n): readonly FullTagDescription[] {\r\n if (isFunction(description)) {\r\n return description(\r\n result as ResultType,\r\n error as undefined,\r\n queryArg,\r\n meta as MetaType\r\n )\r\n .map(expandTagDescription)\r\n .map(assertTagTypes)\r\n }\r\n if (Array.isArray(description)) {\r\n return description.map(expandTagDescription).map(assertTagTypes)\r\n }\r\n return []\r\n}\r\n\r\nfunction isFunction(t: T): t is Extract {\r\n return typeof t === 'function'\r\n}\r\n\r\nexport function expandTagDescription(\r\n description: TagDescription\r\n): FullTagDescription {\r\n return typeof description === 'string' ? { type: description } : description\r\n}\r\n\r\nexport type QueryArgFrom> =\r\n D extends BaseEndpointDefinition ? QA : unknown\r\nexport type ResultTypeFrom> =\r\n D extends BaseEndpointDefinition ? RT : unknown\r\n\r\nexport type ReducerPathFrom<\r\n D extends EndpointDefinition\r\n> = D extends EndpointDefinition ? RP : unknown\r\n\r\nexport type TagTypesFrom> =\r\n D extends EndpointDefinition ? RP : unknown\r\n\r\nexport type TagTypesFromApi = T extends Api\r\n ? TagTypes\r\n : never\r\n\r\nexport type DefinitionsFromApi = T extends Api<\r\n any,\r\n infer Definitions,\r\n any,\r\n any\r\n>\r\n ? Definitions\r\n : never\r\n\r\nexport type TransformedResponse<\r\n NewDefinitions extends EndpointDefinitions,\r\n K,\r\n ResultType\r\n> = K extends keyof NewDefinitions\r\n ? NewDefinitions[K]['transformResponse'] extends undefined\r\n ? ResultType\r\n : ReturnType>\r\n : ResultType\r\n\r\nexport type OverrideResultType =\r\n Definition extends QueryDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n infer TagTypes,\r\n any,\r\n infer ReducerPath\r\n >\r\n ? QueryDefinition\r\n : Definition extends MutationDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n infer TagTypes,\r\n any,\r\n infer ReducerPath\r\n >\r\n ? MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n NewResultType,\r\n ReducerPath\r\n >\r\n : never\r\n\r\nexport type UpdateDefinitions<\r\n Definitions extends EndpointDefinitions,\r\n NewTagTypes extends string,\r\n NewDefinitions extends EndpointDefinitions\r\n> = {\r\n [K in keyof Definitions]: Definitions[K] extends QueryDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n any,\r\n infer ResultType,\r\n infer ReducerPath\r\n >\r\n ? QueryDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n NewTagTypes,\r\n TransformedResponse,\r\n ReducerPath\r\n >\r\n : Definitions[K] extends MutationDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n any,\r\n infer ResultType,\r\n infer ReducerPath\r\n >\r\n ? MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n NewTagTypes,\r\n TransformedResponse,\r\n ReducerPath\r\n >\r\n : never\r\n}\r\n", "export function capitalize(str: string) {\r\n return str.replace(str[0], str[0].toUpperCase())\r\n}\r\n", "export type Id = { [K in keyof T]: T[K] } & {}\r\nexport type WithRequiredProp = Omit &\r\n Required>\r\nexport type Override = T2 extends any ? Omit & T2 : never\r\nexport function assertCast(v: any): asserts v is T {}\r\n\r\nexport function safeAssign(\r\n target: T,\r\n ...args: Array>>\r\n) {\r\n Object.assign(target, ...args)\r\n}\r\n\r\n/**\r\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\r\n */\r\nexport type UnionToIntersection = (\r\n U extends any ? (k: U) => void : never\r\n) extends (k: infer I) => void\r\n ? I\r\n : never\r\n\r\nexport type NonOptionalKeys = {\r\n [K in keyof T]-?: undefined extends T[K] ? never : K\r\n}[keyof T]\r\n\r\nexport type HasRequiredProps = NonOptionalKeys extends never\r\n ? False\r\n : True\r\n\r\nexport type OptionalIfAllPropsOptional = HasRequiredProps\r\n\r\nexport type NoInfer = [T][T extends any ? 0 : never]\r\n\r\nexport type NonUndefined = T extends undefined ? never : T\r\n\r\nexport type UnwrapPromise = T extends PromiseLike ? V : T\r\n\r\nexport type MaybePromise = T | PromiseLike\r\n\r\nexport type OmitFromUnion = T extends any\r\n ? Omit\r\n : never\r\n\r\nexport type IsAny = true | false extends (\r\n T extends never ? true : false\r\n)\r\n ? True\r\n : False\r\n\r\nexport type CastAny = IsAny\r\n", "import type { MutationHooks, QueryHooks } from './buildHooks'\r\nimport { buildHooks } from './buildHooks'\r\nimport { isQueryDefinition, isMutationDefinition } from '../endpointDefinitions'\r\nimport type {\r\n EndpointDefinitions,\r\n QueryDefinition,\r\n MutationDefinition,\r\n QueryArgFrom,\r\n} from '@reduxjs/toolkit/dist/query/endpointDefinitions'\r\nimport type { Api, Module } from '../apiTypes'\r\nimport { capitalize } from '../utils'\r\nimport { safeAssign } from '../tsHelpers'\r\nimport type { BaseQueryFn } from '@reduxjs/toolkit/dist/query/baseQueryTypes'\r\n\r\nimport type { HooksWithUniqueNames } from './namedHooks'\r\n\r\nimport {\r\n useDispatch as rrUseDispatch,\r\n useSelector as rrUseSelector,\r\n useStore as rrUseStore,\r\n batch as rrBatch,\r\n} from 'react-redux'\r\nimport type { QueryKeys } from '../core/apiState'\r\nimport type { PrefetchOptions } from '../core/module'\r\n\r\nexport const reactHooksModuleName = /* @__PURE__ */ Symbol()\r\nexport type ReactHooksModule = typeof reactHooksModuleName\r\n\r\ndeclare module '@reduxjs/toolkit/dist/query/apiTypes' {\r\n export interface ApiModules<\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n BaseQuery extends BaseQueryFn,\r\n Definitions extends EndpointDefinitions,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n ReducerPath extends string,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n TagTypes extends string\r\n > {\r\n [reactHooksModuleName]: {\r\n /**\r\n * Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`.\r\n */\r\n endpoints: {\r\n [K in keyof Definitions]: Definitions[K] extends QueryDefinition<\r\n any,\r\n any,\r\n any,\r\n any,\r\n any\r\n >\r\n ? QueryHooks\r\n : Definitions[K] extends MutationDefinition\r\n ? MutationHooks\r\n : never\r\n }\r\n /**\r\n * A hook that accepts a string endpoint name, and provides a callback that when called, pre-fetches the data for that endpoint.\r\n */\r\n usePrefetch>(\r\n endpointName: EndpointName,\r\n options?: PrefetchOptions\r\n ): (\r\n arg: QueryArgFrom,\r\n options?: PrefetchOptions\r\n ) => void\r\n } & HooksWithUniqueNames\r\n }\r\n}\r\n\r\ntype RR = typeof import('react-redux')\r\n\r\nexport interface ReactHooksModuleOptions {\r\n /**\r\n * The version of the `batchedUpdates` function to be used\r\n */\r\n batch?: RR['batch']\r\n /**\r\n * The version of the `useDispatch` hook to be used\r\n */\r\n useDispatch?: RR['useDispatch']\r\n /**\r\n * The version of the `useSelector` hook to be used\r\n */\r\n useSelector?: RR['useSelector']\r\n /**\r\n * The version of the `useStore` hook to be used\r\n */\r\n useStore?: RR['useStore']\r\n /**\r\n * Enables performing asynchronous tasks immediately within a render.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * import {\r\n * buildCreateApi,\r\n * coreModule,\r\n * reactHooksModule\r\n * } from '@reduxjs/toolkit/query/react'\r\n *\r\n * const createApi = buildCreateApi(\r\n * coreModule(),\r\n * reactHooksModule({ unstable__sideEffectsInRender: true })\r\n * )\r\n * ```\r\n */\r\n unstable__sideEffectsInRender?: boolean\r\n}\r\n\r\n/**\r\n * Creates a module that generates react hooks from endpoints, for use with `buildCreateApi`.\r\n *\r\n * @example\r\n * ```ts\r\n * const MyContext = React.createContext(null as any);\r\n * const customCreateApi = buildCreateApi(\r\n * coreModule(),\r\n * reactHooksModule({ useDispatch: createDispatchHook(MyContext) })\r\n * );\r\n * ```\r\n *\r\n * @returns A module for use with `buildCreateApi`\r\n */\r\nexport const reactHooksModule = ({\r\n batch = rrBatch,\r\n useDispatch = rrUseDispatch,\r\n useSelector = rrUseSelector,\r\n useStore = rrUseStore,\r\n unstable__sideEffectsInRender = false,\r\n}: ReactHooksModuleOptions = {}): Module => ({\r\n name: reactHooksModuleName,\r\n init(api, { serializeQueryArgs }, context) {\r\n const anyApi = api as any as Api<\r\n any,\r\n Record,\r\n string,\r\n string,\r\n ReactHooksModule\r\n >\r\n const { buildQueryHooks, buildMutationHook, usePrefetch } = buildHooks({\r\n api,\r\n moduleOptions: {\r\n batch,\r\n useDispatch,\r\n useSelector,\r\n useStore,\r\n unstable__sideEffectsInRender,\r\n },\r\n serializeQueryArgs,\r\n context,\r\n })\r\n safeAssign(anyApi, { usePrefetch })\r\n safeAssign(context, { batch })\r\n\r\n return {\r\n injectEndpoint(endpointName, definition) {\r\n if (isQueryDefinition(definition)) {\r\n const {\r\n useQuery,\r\n useLazyQuery,\r\n useLazyQuerySubscription,\r\n useQueryState,\r\n useQuerySubscription,\r\n } = buildQueryHooks(endpointName)\r\n safeAssign(anyApi.endpoints[endpointName], {\r\n useQuery,\r\n useLazyQuery,\r\n useLazyQuerySubscription,\r\n useQueryState,\r\n useQuerySubscription,\r\n })\r\n ;(api as any)[`use${capitalize(endpointName)}Query`] = useQuery\r\n ;(api as any)[`useLazy${capitalize(endpointName)}Query`] =\r\n useLazyQuery\r\n } else if (isMutationDefinition(definition)) {\r\n const useMutation = buildMutationHook(endpointName)\r\n safeAssign(anyApi.endpoints[endpointName], {\r\n useMutation,\r\n })\r\n ;(api as any)[`use${capitalize(endpointName)}Mutation`] = useMutation\r\n }\r\n },\r\n }\r\n },\r\n})\r\n", "import { configureStore } from '@reduxjs/toolkit'\r\nimport type { Context } from 'react'\r\nimport { useEffect } from 'react'\r\nimport React from 'react'\r\nimport type { ReactReduxContextValue } from 'react-redux'\r\nimport { Provider } from 'react-redux'\r\nimport { setupListeners } from '@reduxjs/toolkit/query'\r\nimport type { Api } from '@reduxjs/toolkit/dist/query/apiTypes'\r\n\r\n/**\r\n * Can be used as a `Provider` if you **do not already have a Redux store**.\r\n *\r\n * @example\r\n * ```tsx\r\n * // codeblock-meta no-transpile title=\"Basic usage - wrap your App with ApiProvider\"\r\n * import * as React from 'react';\r\n * import { ApiProvider } from '@reduxjs/toolkit/query/react';\r\n * import { Pokemon } from './features/Pokemon';\r\n *\r\n * function App() {\r\n * return (\r\n * \r\n * \r\n * \r\n * );\r\n * }\r\n * ```\r\n *\r\n * @remarks\r\n * Using this together with an existing redux store, both will\r\n * conflict with each other - please use the traditional redux setup\r\n * in that case.\r\n */\r\nexport function ApiProvider
    >(props: {\r\n children: any\r\n api: A\r\n setupListeners?: Parameters[1] | false\r\n context?: Context\r\n}) {\r\n const [store] = React.useState(() =>\r\n configureStore({\r\n reducer: {\r\n [props.api.reducerPath]: props.api.reducer,\r\n },\r\n middleware: (gDM) => gDM().concat(props.api.middleware),\r\n })\r\n )\r\n // Adds the event listeners for online/offline/focus/etc\r\n useEffect(\r\n (): undefined | (() => void) =>\r\n props.setupListeners === false\r\n ? undefined\r\n : setupListeners(store.dispatch, props.setupListeners),\r\n [props.setupListeners, store.dispatch]\r\n )\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n", "'use strict'\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./rtk-query-react.cjs.production.min.js')\n} else {\n module.exports = require('./rtk-query-react.cjs.development.js')\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.DEFAULT_VERSION = exports.REGISTER = exports.PURGE = exports.PERSIST = exports.PAUSE = exports.REHYDRATE = exports.FLUSH = exports.KEY_PREFIX = void 0;\nvar KEY_PREFIX = 'persist:';\nexports.KEY_PREFIX = KEY_PREFIX;\nvar FLUSH = 'persist/FLUSH';\nexports.FLUSH = FLUSH;\nvar REHYDRATE = 'persist/REHYDRATE';\nexports.REHYDRATE = REHYDRATE;\nvar PAUSE = 'persist/PAUSE';\nexports.PAUSE = PAUSE;\nvar PERSIST = 'persist/PERSIST';\nexports.PERSIST = PERSIST;\nvar PURGE = 'persist/PURGE';\nexports.PURGE = PURGE;\nvar REGISTER = 'persist/REGISTER';\nexports.REGISTER = REGISTER;\nvar DEFAULT_VERSION = -1;\nexports.DEFAULT_VERSION = DEFAULT_VERSION;", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = autoMergeLevel1;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel1: \n - merges 1 level of substate\n - skips substate if already modified\n*/\nfunction autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n } // otherwise hard set the new value\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = createPersistoid;\n\nvar _constants = require(\"./constants\");\n\n// @TODO remove once flow < 0.63 support is no longer required.\nfunction createPersistoid(config) {\n // defaults\n var blacklist = config.blacklist || null;\n var whitelist = config.whitelist || null;\n var transforms = config.transforms || [];\n var throttle = config.throttle || 0;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : _constants.KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var serialize;\n\n if (config.serialize === false) {\n serialize = function serialize(x) {\n return x;\n };\n } else if (typeof config.serialize === 'function') {\n serialize = config.serialize;\n } else {\n serialize = defaultSerialize;\n }\n\n var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n var lastState = {};\n var stagedState = {};\n var keysToProcess = [];\n var timeIterator = null;\n var writePromise = null;\n\n var update = function update(state) {\n // add any changed keys to the queue\n Object.keys(state).forEach(function (key) {\n if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n if (lastState[key] === state[key]) return; // value unchanged? noop\n\n if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n keysToProcess.push(key); // add key to queue\n }); //if any key is missing in the new state which was present in the lastState,\n //add it for processing too\n\n Object.keys(lastState).forEach(function (key) {\n if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n keysToProcess.push(key);\n }\n }); // start the time iterator if not running (read: throttle)\n\n if (timeIterator === null) {\n timeIterator = setInterval(processNextKey, throttle);\n }\n\n lastState = state;\n };\n\n function processNextKey() {\n if (keysToProcess.length === 0) {\n if (timeIterator) clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = keysToProcess.shift();\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key, lastState);\n }, lastState[key]);\n\n if (endState !== undefined) {\n try {\n stagedState[key] = serialize(endState);\n } catch (err) {\n console.error('redux-persist/createPersistoid: error serializing state', err);\n }\n } else {\n //if the endState is undefined, no need to persist the existing serialized content\n delete stagedState[key];\n }\n\n if (keysToProcess.length === 0) {\n writeStagedState();\n }\n }\n\n function writeStagedState() {\n // cleanup any removed keys just before write.\n Object.keys(stagedState).forEach(function (key) {\n if (lastState[key] === undefined) {\n delete stagedState[key];\n }\n });\n writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n if (blacklist && blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function onWriteFail(err) {\n // @TODO add fail handlers (typically storage full)\n if (writeFailHandler) writeFailHandler(err);\n\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('Error storing data', err);\n }\n }\n\n var flush = function flush() {\n while (keysToProcess.length !== 0) {\n processNextKey();\n }\n\n return writePromise || Promise.resolve();\n }; // return `persistoid`\n\n\n return {\n update: update,\n flush: flush\n };\n} // @NOTE in the future this may be exposed via config\n\n\nfunction defaultSerialize(data) {\n return JSON.stringify(data);\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = getStoredState;\n\nvar _constants = require(\"./constants\");\n\nfunction getStoredState(config) {\n var transforms = config.transforms || [];\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : _constants.KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var debug = config.debug;\n var deserialize;\n\n if (config.deserialize === false) {\n deserialize = function deserialize(x) {\n return x;\n };\n } else if (typeof config.deserialize === 'function') {\n deserialize = config.deserialize;\n } else {\n deserialize = defaultDeserialize;\n }\n\n return storage.getItem(storageKey).then(function (serialized) {\n if (!serialized) return undefined;else {\n try {\n var state = {};\n var rawState = deserialize(serialized);\n Object.keys(rawState).forEach(function (key) {\n state[key] = transforms.reduceRight(function (subState, transformer) {\n return transformer.out(subState, key, rawState);\n }, deserialize(rawState[key]));\n });\n return state;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log(\"redux-persist/getStoredState: Error restoring data \".concat(serialized), err);\n throw err;\n }\n }\n });\n}\n\nfunction defaultDeserialize(serial) {\n return JSON.parse(serial);\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = purgeStoredState;\n\nvar _constants = require(\"./constants\");\n\nfunction purgeStoredState(config) {\n var storage = config.storage;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : _constants.KEY_PREFIX).concat(config.key);\n return storage.removeItem(storageKey, warnIfRemoveError);\n}\n\nfunction warnIfRemoveError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('redux-persist/purgeStoredState: Error purging data stored state', err);\n }\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = persistReducer;\n\nvar _constants = require(\"./constants\");\n\nvar _autoMergeLevel = _interopRequireDefault(require(\"./stateReconciler/autoMergeLevel1\"));\n\nvar _createPersistoid = _interopRequireDefault(require(\"./createPersistoid\"));\n\nvar _getStoredState = _interopRequireDefault(require(\"./getStoredState\"));\n\nvar _purgeStoredState = _interopRequireDefault(require(\"./purgeStoredState\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar DEFAULT_TIMEOUT = 5000;\n/*\n @TODO add validation / handling for:\n - persisting a reducer which has nested _persist\n - handling actions that fire before reydrate is called\n*/\n\nfunction persistReducer(config, baseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (!config) throw new Error('config is required for persistReducer');\n if (!config.key) throw new Error('key is required in persistor config');\n if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n }\n\n var version = config.version !== undefined ? config.version : _constants.DEFAULT_VERSION;\n var debug = config.debug || false;\n var stateReconciler = config.stateReconciler === undefined ? _autoMergeLevel.default : config.stateReconciler;\n var getStoredState = config.getStoredState || _getStoredState.default;\n var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n var _persistoid = null;\n var _purge = false;\n var _paused = true;\n\n var conditionalUpdate = function conditionalUpdate(state) {\n // update the persistoid only if we are rehydrated and not paused\n state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n return state;\n };\n\n return function (state, action) {\n var _ref = state || {},\n _persist = _ref._persist,\n rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n var restState = rest;\n\n if (action.type === _constants.PERSIST) {\n var _sealed = false;\n\n var _rehydrate = function _rehydrate(payload, err) {\n // dev warning if we are already sealed\n if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n if (!_sealed) {\n action.rehydrate(config.key, payload, err);\n _sealed = true;\n }\n };\n\n timeout && setTimeout(function () {\n !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n }, timeout); // @NOTE PERSIST resumes if paused.\n\n _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n if (!_persistoid) _persistoid = (0, _createPersistoid.default)(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n if (_persist) {\n // We still need to call the base reducer because there might be nested\n // uses of persistReducer which need to be aware of the PERSIST action\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n }\n\n if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n action.register(config.key);\n getStoredState(config).then(function (restoredState) {\n var migrate = config.migrate || function (s, v) {\n return Promise.resolve(s);\n };\n\n migrate(restoredState, version).then(function (migratedState) {\n _rehydrate(migratedState);\n }, function (migrateErr) {\n if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n _rehydrate(undefined, migrateErr);\n });\n }, function (err) {\n _rehydrate(undefined, err);\n });\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: {\n version: version,\n rehydrated: false\n }\n });\n } else if (action.type === _constants.PURGE) {\n _purge = true;\n action.result((0, _purgeStoredState.default)(config));\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === _constants.FLUSH) {\n action.result(_persistoid && _persistoid.flush());\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === _constants.PAUSE) {\n _paused = true;\n } else if (action.type === _constants.REHYDRATE) {\n // noop on restState if purging\n if (_purge) return _objectSpread({}, restState, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n }) // @NOTE if key does not match, will continue to default else below\n\n });\n\n if (action.key === config.key) {\n var reducedState = baseReducer(restState, action);\n var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n var _newState = _objectSpread({}, reconciledRest, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n })\n });\n\n return conditionalUpdate(_newState);\n }\n } // if we have not already handled PERSIST, straight passthrough\n\n\n if (!_persist) return baseReducer(state, action); // run base reducer:\n // is state modified ? return original : return updated\n\n var newState = baseReducer(restState, action);\n if (newState === restState) return state;\n return conditionalUpdate(_objectSpread({}, newState, {\n _persist: _persist\n }));\n };\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = autoMergeLevel2;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel2: \n - merges 2 level of substate\n - skips substate if already modified\n - this is essentially redux-perist v4 behavior\n*/\nfunction autoMergeLevel2(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n }\n\n if (isPlainEnoughObject(reducedState[key])) {\n // if object is plain enough shallow merge the new values (hence \"Level2\")\n newState[key] = _objectSpread({}, newState[key], {}, inboundState[key]);\n return;\n } // otherwise hard set\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}\n\nfunction isPlainEnoughObject(o) {\n return o !== null && !Array.isArray(o) && _typeof(o) === 'object';\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = persistCombineReducers;\n\nvar _redux = require(\"redux\");\n\nvar _persistReducer = _interopRequireDefault(require(\"./persistReducer\"));\n\nvar _autoMergeLevel = _interopRequireDefault(require(\"./stateReconciler/autoMergeLevel2\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// combineReducers + persistReducer with stateReconciler defaulted to autoMergeLevel2\nfunction persistCombineReducers(config, reducers) {\n config.stateReconciler = config.stateReconciler === undefined ? _autoMergeLevel.default : config.stateReconciler;\n return (0, _persistReducer.default)(config, (0, _redux.combineReducers)(reducers));\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = persistStore;\n\nvar _redux = require(\"redux\");\n\nvar _constants = require(\"./constants\");\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar initialState = {\n registry: [],\n bootstrapped: false\n};\n\nvar persistorReducer = function persistorReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case _constants.REGISTER:\n return _objectSpread({}, state, {\n registry: [].concat(_toConsumableArray(state.registry), [action.key])\n });\n\n case _constants.REHYDRATE:\n var firstIndex = state.registry.indexOf(action.key);\n\n var registry = _toConsumableArray(state.registry);\n\n registry.splice(firstIndex, 1);\n return _objectSpread({}, state, {\n registry: registry,\n bootstrapped: registry.length === 0\n });\n\n default:\n return state;\n }\n};\n\nfunction persistStore(store, options, cb) {\n // help catch incorrect usage of passing PersistConfig in as PersistorOptions\n if (process.env.NODE_ENV !== 'production') {\n var optionsToTest = options || {};\n var bannedKeys = ['blacklist', 'whitelist', 'transforms', 'storage', 'keyPrefix', 'migrate'];\n bannedKeys.forEach(function (k) {\n if (!!optionsToTest[k]) console.error(\"redux-persist: invalid option passed to persistStore: \\\"\".concat(k, \"\\\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer.\"));\n });\n }\n\n var boostrappedCb = cb || false;\n\n var _pStore = (0, _redux.createStore)(persistorReducer, initialState, options && options.enhancer ? options.enhancer : undefined);\n\n var register = function register(key) {\n _pStore.dispatch({\n type: _constants.REGISTER,\n key: key\n });\n };\n\n var rehydrate = function rehydrate(key, payload, err) {\n var rehydrateAction = {\n type: _constants.REHYDRATE,\n payload: payload,\n err: err,\n key: key // dispatch to `store` to rehydrate and `persistor` to track result\n\n };\n store.dispatch(rehydrateAction);\n\n _pStore.dispatch(rehydrateAction);\n\n if (boostrappedCb && persistor.getState().bootstrapped) {\n boostrappedCb();\n boostrappedCb = false;\n }\n };\n\n var persistor = _objectSpread({}, _pStore, {\n purge: function purge() {\n var results = [];\n store.dispatch({\n type: _constants.PURGE,\n result: function result(purgeResult) {\n results.push(purgeResult);\n }\n });\n return Promise.all(results);\n },\n flush: function flush() {\n var results = [];\n store.dispatch({\n type: _constants.FLUSH,\n result: function result(flushResult) {\n results.push(flushResult);\n }\n });\n return Promise.all(results);\n },\n pause: function pause() {\n store.dispatch({\n type: _constants.PAUSE\n });\n },\n persist: function persist() {\n store.dispatch({\n type: _constants.PERSIST,\n register: register,\n rehydrate: rehydrate\n });\n }\n });\n\n if (!(options && options.manualPersist)) {\n persistor.persist();\n }\n\n return persistor;\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = createMigrate;\n\nvar _constants = require(\"./constants\");\n\nfunction createMigrate(migrations, config) {\n var _ref = config || {},\n debug = _ref.debug;\n\n return function (state, currentVersion) {\n if (!state) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: no inbound state, skipping migration');\n return Promise.resolve(undefined);\n }\n\n var inboundVersion = state._persist && state._persist.version !== undefined ? state._persist.version : _constants.DEFAULT_VERSION;\n\n if (inboundVersion === currentVersion) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: versions match, noop migration');\n return Promise.resolve(state);\n }\n\n if (inboundVersion > currentVersion) {\n if (process.env.NODE_ENV !== 'production') console.error('redux-persist: downgrading version is not supported');\n return Promise.resolve(state);\n }\n\n var migrationKeys = Object.keys(migrations).map(function (ver) {\n return parseInt(ver);\n }).filter(function (key) {\n return currentVersion >= key && key > inboundVersion;\n }).sort(function (a, b) {\n return a - b;\n });\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: migrationKeys', migrationKeys);\n\n try {\n var migratedState = migrationKeys.reduce(function (state, versionKey) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: running migration for versionKey', versionKey);\n return migrations[versionKey](state);\n }, state);\n return Promise.resolve(migratedState);\n } catch (err) {\n return Promise.reject(err);\n }\n };\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = createTransform;\n\nfunction createTransform( // @NOTE inbound: transform state coming from redux on its way to being serialized and stored\ninbound, // @NOTE outbound: transform state coming from storage, on its way to be rehydrated into redux\noutbound) {\n var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var whitelist = config.whitelist || null;\n var blacklist = config.blacklist || null;\n\n function whitelistBlacklistCheck(key) {\n if (whitelist && whitelist.indexOf(key) === -1) return true;\n if (blacklist && blacklist.indexOf(key) !== -1) return true;\n return false;\n }\n\n return {\n in: function _in(state, key, fullState) {\n return !whitelistBlacklistCheck(key) && inbound ? inbound(state, key, fullState) : state;\n },\n out: function out(state, key, fullState) {\n return !whitelistBlacklistCheck(key) && outbound ? outbound(state, key, fullState) : state;\n }\n };\n}", "\"use strict\";\n\nexports.__esModule = true;\nvar _exportNames = {\n persistReducer: true,\n persistCombineReducers: true,\n persistStore: true,\n createMigrate: true,\n createTransform: true,\n getStoredState: true,\n createPersistoid: true,\n purgeStoredState: true\n};\nexports.purgeStoredState = exports.createPersistoid = exports.getStoredState = exports.createTransform = exports.createMigrate = exports.persistStore = exports.persistCombineReducers = exports.persistReducer = void 0;\n\nvar _persistReducer = _interopRequireDefault(require(\"./persistReducer\"));\n\nexports.persistReducer = _persistReducer.default;\n\nvar _persistCombineReducers = _interopRequireDefault(require(\"./persistCombineReducers\"));\n\nexports.persistCombineReducers = _persistCombineReducers.default;\n\nvar _persistStore = _interopRequireDefault(require(\"./persistStore\"));\n\nexports.persistStore = _persistStore.default;\n\nvar _createMigrate = _interopRequireDefault(require(\"./createMigrate\"));\n\nexports.createMigrate = _createMigrate.default;\n\nvar _createTransform = _interopRequireDefault(require(\"./createTransform\"));\n\nexports.createTransform = _createTransform.default;\n\nvar _getStoredState = _interopRequireDefault(require(\"./getStoredState\"));\n\nexports.getStoredState = _getStoredState.default;\n\nvar _createPersistoid = _interopRequireDefault(require(\"./createPersistoid\"));\n\nexports.createPersistoid = _createPersistoid.default;\n\nvar _purgeStoredState = _interopRequireDefault(require(\"./purgeStoredState\"));\n\nexports.purgeStoredState = _purgeStoredState.default;\n\nvar _constants = require(\"./constants\");\n\nObject.keys(_constants).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = _constants[key];\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }", "function e(r){var o,t,f=\"\";if(\"string\"==typeof r||\"number\"==typeof r)f+=r;else if(\"object\"==typeof r)if(Array.isArray(r))for(o=0;o\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,l=/\\/\\*[^]*?\\*\\/| +/g,a=/\\n+/g,s=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let o=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+o+\";\":l+=\"f\"==n[1]?s(o,n):n+\"{\"+s(o,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof o?l+=s(o,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=o&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=s.p?s.p(n,o):n+\":\"+o+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},n={},o=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+o(e[r]);return t}return e},c=(e,t,c,p,i)=>{let u=o(e),d=n[u]||(n[u]=(e=>{let t=0,r=11;for(;t>>0;return\"go\"+r})(u));if(!n[d]){let t=u!==e?e:(e=>{let t,s,n=[{}];for(;t=r.exec(e.replace(l,\"\"));)t[4]?n.shift():t[3]?(s=t[3].replace(a,\" \").trim(),n.unshift(n[0][s]=n[0][s]||{})):n[0][t[1]]=t[2].replace(a,\" \").trim();return n[0]})(e);n[d]=s(i?{[\"@keyframes \"+d]:t}:t,c?\"\":\".\"+d)}let f=c&&n.g?n.g:null;return c&&(n.g=n[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(n[d],t,p,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":s(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function i(e){let r=this||{},l=e.call?e(r.p):e;return c(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let u,d,f,g=i.bind({g:1}),b=i.bind({k:1});exports.css=i,exports.extractCss=e=>{let r=t(e),l=r.data;return r.data=\"\",l},exports.glob=g,exports.keyframes=b,exports.setup=function(e,t,r,l){s.p=t,u=e,d=r,f=l},exports.styled=function(e,t){let r=this||{};return function(){let l=arguments;function a(s,n){let o=Object.assign({},s),c=o.className||a.className;r.p=Object.assign({theme:d&&d()},o),r.o=/ *go\\d+/.test(c),o.className=i.apply(r,l)+(c?\" \"+c:\"\"),t&&(o.ref=n);let p=e;return e[0]&&(p=o.as||e,delete o.as),f&&p[0]&&f(o),u(p,o)}return t?t(a):a}};\n", "import React from 'react';\nimport { ProviderContext } from './types';\n\nconst noOp = () => {\n return '';\n};\n\nexport default React.createContext({\n enqueueSnackbar: noOp,\n closeSnackbar: noOp,\n});\n", "import { InternalSnack } from '../types';\n\nexport const breakpoints = {\n downXs: '@media (max-width:599.95px)',\n upSm: '@media (min-width:600px)',\n};\n\nconst capitalise = (text: string): string => text.charAt(0).toUpperCase() + text.slice(1);\n\nexport const originKeyExtractor = (anchor: InternalSnack['anchorOrigin']): string =>\n `${capitalise(anchor.vertical)}${capitalise(anchor.horizontal)}`;\n\nexport const isDefined = (value: string | null | undefined | number): boolean => !!value || value === 0;\n", "/**\n * BSD 3-Clause License\n *\n * Copyright (c) 2018, React Community\n * Forked from React (https://github.com/facebook/react) Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * * Neither the name of the copyright holder nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\nimport React from 'react';\nimport { TransitionComponentProps, TransitionStatus } from '../../types';\n\nconst UNMOUNTED = 'unmounted';\nconst EXITED = 'exited';\nconst ENTERING = 'entering';\nconst ENTERED = 'entered';\nconst EXITING = 'exiting';\n\ninterface State {\n status: TransitionStatus;\n}\n\ninterface NextCallback {\n (): void;\n cancel?: () => void;\n}\n\nclass Transition extends React.Component {\n appearStatus: TransitionStatus | null;\n\n nextCallback: NextCallback | null;\n\n constructor(props: TransitionComponentProps) {\n super(props);\n\n const { appear } = props;\n\n let initialStatus: TransitionStatus;\n\n this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n\n this.state = { status: initialStatus };\n\n this.nextCallback = null;\n }\n\n static getDerivedStateFromProps({ in: nextIn }: TransitionComponentProps, prevState: State) {\n if (nextIn && prevState.status === UNMOUNTED) {\n return { status: EXITED };\n }\n return null;\n }\n\n componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n }\n\n componentDidUpdate(prevProps: TransitionComponentProps) {\n let nextStatus: TransitionStatus | null = null;\n if (prevProps !== this.props) {\n const { status } = this.state;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n this.updateStatus(false, nextStatus);\n }\n\n componentWillUnmount() {\n this.cancelNextCallback();\n }\n\n getTimeouts(): { exit: number; enter: number } {\n const { timeout } = this.props;\n let enter = timeout;\n let exit = timeout;\n\n if (timeout != null && typeof timeout !== 'number' && typeof timeout !== 'string') {\n exit = timeout.exit;\n enter = timeout.enter;\n }\n return {\n exit: exit as number,\n enter: enter as number,\n };\n }\n\n updateStatus(mounting = false, nextStatus: TransitionStatus | null) {\n if (nextStatus !== null) {\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({ status: UNMOUNTED });\n }\n }\n\n get node() {\n const node = this.props.nodeRef?.current;\n if (!node) {\n throw new Error('notistack - Custom snackbar is not refForwarding');\n }\n return node;\n }\n\n performEnter(mounting: boolean) {\n const { enter } = this.props;\n const isAppearing = mounting;\n\n const timeouts = this.getTimeouts();\n\n if (!mounting && !enter) {\n this.safeSetState({ status: ENTERED }, () => {\n if (this.props.onEntered) {\n this.props.onEntered(this.node, isAppearing);\n }\n });\n return;\n }\n\n if (this.props.onEnter) {\n this.props.onEnter(this.node, isAppearing);\n }\n\n this.safeSetState({ status: ENTERING }, () => {\n if (this.props.onEntering) {\n this.props.onEntering(this.node, isAppearing);\n }\n\n this.onTransitionEnd(timeouts.enter, () => {\n this.safeSetState({ status: ENTERED }, () => {\n if (this.props.onEntered) {\n this.props.onEntered(this.node, isAppearing);\n }\n });\n });\n });\n }\n\n performExit() {\n const { exit } = this.props;\n const timeouts = this.getTimeouts();\n\n // no exit animation skip right to EXITED\n if (!exit) {\n this.safeSetState({ status: EXITED }, () => {\n if (this.props.onExited) {\n this.props.onExited(this.node);\n }\n });\n return;\n }\n\n if (this.props.onExit) {\n this.props.onExit(this.node);\n }\n\n this.safeSetState({ status: EXITING }, () => {\n if (this.props.onExiting) {\n this.props.onExiting(this.node);\n }\n\n this.onTransitionEnd(timeouts.exit, () => {\n this.safeSetState({ status: EXITED }, () => {\n if (this.props.onExited) {\n this.props.onExited(this.node);\n }\n });\n });\n });\n }\n\n cancelNextCallback() {\n if (this.nextCallback !== null && this.nextCallback.cancel) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n }\n\n safeSetState(nextState: State, callback: () => void) {\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n }\n\n setNextCallback(callback: () => void) {\n let active = true;\n\n this.nextCallback = () => {\n if (active) {\n active = false;\n this.nextCallback = null;\n\n callback();\n }\n };\n\n (this.nextCallback as NextCallback).cancel = () => {\n active = false;\n };\n\n return this.nextCallback;\n }\n\n onTransitionEnd(timeout: number, handler: () => void) {\n this.setNextCallback(handler);\n const doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n if (!this.node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback as NextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(this.node, this.nextCallback as NextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback as NextCallback, timeout);\n }\n }\n\n render() {\n const { status } = this.state;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n const {\n children,\n // filter props for `Transition`\n in: _in,\n mountOnEnter: _mountOnEnter,\n unmountOnExit: _unmountOnExit,\n appear: _appear,\n enter: _enter,\n exit: _exit,\n timeout: _timeout,\n addEndListener: _addEndListener,\n onEnter: _onEnter,\n onEntering: _onEntering,\n onEntered: _onEntered,\n onExit: _onExit,\n onExiting: _onExiting,\n onExited: _onExited,\n nodeRef: _nodeRef,\n ...childProps\n } = this.props;\n\n return children(status, childProps);\n }\n}\n\nfunction noop() {\n //\n}\n\n(Transition as any).defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n\n onExit: noop,\n onExiting: noop,\n onExited: noop,\n};\n\nexport default Transition;\n", "/**\n * Credit to MUI team @ https://mui.com\n */\nimport * as React from 'react';\n\n/**\n * passes {value} to {ref}\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nfunction setRef(\n ref: React.MutableRefObject | ((instance: T | null) => void) | null | undefined,\n value: T | null\n): void {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nexport default function useForkRef(\n refA: React.Ref | null | undefined,\n refB: React.Ref | null | undefined\n): React.Ref | null {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refA == null && refB == null) {\n return null;\n }\n return (refValue) => {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}\n", "import { TransitionDuration } from '../types';\n\ninterface ComponentProps {\n style?: React.CSSProperties | undefined;\n /**\n * number: 400\n * TransitionDuration: { enter: 200, exit: 400 }\n */\n timeout: number | TransitionDuration;\n mode: 'enter' | 'exit';\n}\n\ninterface TransitionPropsReturnType {\n duration: number;\n easing: string | undefined;\n delay: string | undefined;\n}\n\nexport default function getTransitionProps(props: ComponentProps): TransitionPropsReturnType {\n const { timeout, style = {}, mode } = props;\n return {\n duration: typeof timeout === 'object' ? timeout[mode] || 0 : timeout,\n easing: style.transitionTimingFunction,\n delay: style.transitionDelay,\n };\n}\n", "/**\n * Credit to MUI team @ https://mui.com\n */\nexport const defaultEasing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)',\n};\n\n/**\n * CSS hack to force a repaint\n */\nexport const reflow = (node: Element): void => {\n // We have to do something with node.scrollTop.\n // Otherwise it's removed from the compiled code by optimisers\n // eslint-disable-next-line no-self-assign\n node.scrollTop = node.scrollTop;\n};\n", "import { defaultEasing } from './utils';\n\ninterface CreateTransitionOptions {\n duration: string | number;\n easing?: string;\n delay?: string | number;\n}\n\nconst formatMs = (milliseconds: number) => `${Math.round(milliseconds)}ms`;\n\nexport default function createTransition(\n props: string | string[] = ['all'],\n options?: CreateTransitionOptions\n): string {\n const { duration = 300, easing = defaultEasing.easeInOut, delay = 0 } = options || {};\n\n const properties = Array.isArray(props) ? props : [props];\n\n return properties\n .map((animatedProp) => {\n const formattedDuration = typeof duration === 'string' ? duration : formatMs(duration);\n const formattedDelay = typeof delay === 'string' ? delay : formatMs(delay);\n return `${animatedProp} ${formattedDuration} ${easing} ${formattedDelay}`;\n })\n .join(',');\n}\n", "/**\n * Credit to MUI team @ https://mui.com\n */\nimport * as React from 'react';\nimport TransitionComponent from '../Transition';\nimport useForkRef from '../useForkRef';\nimport getTransitionProps from '../getTransitionProps';\nimport createTransition from '../createTransition';\nimport { defaultEasing, reflow } from '../utils';\nimport { SlideTransitionDirection, TransitionProps } from '../../types';\n\nfunction ownerDocument(node: Node | null | undefined): Document {\n return (node && node.ownerDocument) || document;\n}\n\nfunction ownerWindow(node: Node | null): Window {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}\n\n/**\n * Corresponds to 10 frames at 60 Hz.\n * A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\n */\nfunction debounce(func: () => void, wait = 166) {\n let timeout: ReturnType;\n function debounced(...args: any[]) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n\n return debounced;\n}\n\n/**\n * Translate the node so it can't be seen on the screen.\n * Later, we're going to translate the node back to its original location with `none`.\n */\nfunction getTranslateValue(\n direction: SlideTransitionDirection,\n node: HTMLElement & { fakeTransform?: string }\n): string {\n const rect = node.getBoundingClientRect();\n const containerWindow = ownerWindow(node);\n let transform;\n\n if (node.fakeTransform) {\n transform = node.fakeTransform;\n } else {\n const computedStyle = containerWindow.getComputedStyle(node);\n transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n }\n\n let offsetX = 0;\n let offsetY = 0;\n\n if (transform && transform !== 'none' && typeof transform === 'string') {\n const transformValues = transform.split('(')[1].split(')')[0].split(',');\n offsetX = parseInt(transformValues[4], 10);\n offsetY = parseInt(transformValues[5], 10);\n }\n\n switch (direction) {\n case 'left':\n return `translateX(${containerWindow.innerWidth + offsetX - rect.left}px)`;\n case 'right':\n return `translateX(-${rect.left + rect.width - offsetX}px)`;\n case 'up':\n return `translateY(${containerWindow.innerHeight + offsetY - rect.top}px)`;\n default:\n // down\n return `translateY(-${rect.top + rect.height - offsetY}px)`;\n }\n}\n\nfunction setTranslateValue(direction: SlideTransitionDirection, node: HTMLElement | null): void {\n if (!node) return;\n const transform = getTranslateValue(direction, node);\n if (transform) {\n node.style.webkitTransform = transform;\n node.style.transform = transform;\n }\n}\n\nconst Slide = React.forwardRef((props, ref) => {\n const {\n children,\n direction = 'down',\n in: inProp,\n style,\n timeout = 0,\n onEnter,\n onEntered,\n onExit,\n onExited,\n ...other\n } = props;\n\n const nodeRef = React.useRef(null);\n const handleRefIntermediary = useForkRef((children as any).ref, nodeRef);\n const handleRef = useForkRef(handleRefIntermediary, ref);\n\n const handleEnter: TransitionProps['onEnter'] = (node, isAppearing) => {\n setTranslateValue(direction, node);\n reflow(node);\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n };\n\n const handleEntering = (node: HTMLElement) => {\n const easing = style?.transitionTimingFunction || defaultEasing.easeOut;\n const transitionProps = getTransitionProps({\n timeout,\n mode: 'enter',\n style: { ...style, transitionTimingFunction: easing },\n });\n\n node.style.webkitTransition = createTransition('-webkit-transform', transitionProps);\n node.style.transition = createTransition('transform', transitionProps);\n\n node.style.webkitTransform = 'none';\n node.style.transform = 'none';\n };\n\n const handleExit: TransitionProps['onExit'] = (node) => {\n const easing = style?.transitionTimingFunction || defaultEasing.sharp;\n const transitionProps = getTransitionProps({\n timeout,\n mode: 'exit',\n style: { ...style, transitionTimingFunction: easing },\n });\n\n node.style.webkitTransition = createTransition('-webkit-transform', transitionProps);\n node.style.transition = createTransition('transform', transitionProps);\n\n setTranslateValue(direction, node);\n\n if (onExit) {\n onExit(node);\n }\n };\n\n const handleExited: TransitionProps['onExited'] = (node) => {\n // No need for transitions when the component is hidden\n node.style.webkitTransition = '';\n node.style.transition = '';\n\n if (onExited) {\n onExited(node);\n }\n };\n\n const updatePosition = React.useCallback(() => {\n if (nodeRef.current) {\n setTranslateValue(direction, nodeRef.current);\n }\n }, [direction]);\n\n React.useEffect(() => {\n // Skip configuration where the position is screen size invariant.\n if (inProp || direction === 'down' || direction === 'right') {\n return undefined;\n }\n\n const handleResize = debounce(() => {\n if (nodeRef.current) {\n setTranslateValue(direction, nodeRef.current);\n }\n });\n\n const containerWindow = ownerWindow(nodeRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [direction, inProp]);\n\n React.useEffect(() => {\n if (!inProp) {\n // We need to update the position of the drawer when the direction change and\n // when it's hidden.\n updatePosition();\n }\n }, [inProp, updatePosition]);\n\n return (\n \n {(state, childProps) =>\n React.cloneElement(children as any, {\n ref: handleRef,\n style: {\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined,\n ...style,\n ...(children as any).props.style,\n },\n ...childProps,\n })\n }\n \n );\n});\n\nSlide.displayName = 'Slide';\n\nexport default Slide;\n", "import React from 'react';\n\nconst SvgIcon = (props: { children: JSX.Element }) => (\n \n);\n\nconst CheckIcon: React.FC = () => (\n \n \n \n);\n\nconst WarningIcon: React.FC = () => (\n \n \n \n);\n\nconst ErrorIcon: React.FC = () => (\n \n \n \n);\n\nconst InfoIcon: React.FC = () => (\n \n \n \n);\n\nconst defaultIconVariants: Record = {\n default: undefined,\n success: ,\n warning: ,\n error: ,\n info: ,\n};\n\nexport default defaultIconVariants;\n", "import Slide from '../transitions/Slide';\nimport defaultIconVariants from '../utils/defaultIconVariants';\nimport { InternalSnack } from '../types';\n\nexport const defaults = {\n maxSnack: 3,\n persist: false,\n hideIconVariant: false,\n disableWindowBlurListener: false,\n variant: 'default',\n autoHideDuration: 5000,\n iconVariant: defaultIconVariants,\n anchorOrigin: { vertical: 'bottom', horizontal: 'left' },\n TransitionComponent: Slide,\n transitionDuration: {\n enter: 225,\n exit: 195,\n },\n};\n\n/**\n * Derives the right autoHideDuration taking into account the following\n * prority order: 1: Options, 2: Props, 3: default fallback\n */\nconst getAutoHideDuration = (optionsDuration: any, propsDuration: any) => {\n const isNumberOrNull = (numberish: number | null) => typeof numberish === 'number' || numberish === null;\n\n if (isNumberOrNull(optionsDuration)) return optionsDuration;\n if (isNumberOrNull(propsDuration)) return propsDuration;\n return defaults.autoHideDuration;\n};\n\n/**\n * Derives the right transitionDuration taking into account the following\n * prority order: 1: Options, 2: Props, 3: default fallback\n */\nconst getTransitionDuration = (optionsDuration: any, propsDuration: any) => {\n const is = (item: any, types: string[]) => types.some((t) => typeof item === t);\n\n if (is(optionsDuration, ['string', 'number'])) {\n return optionsDuration;\n }\n\n if (is(optionsDuration, ['object'])) {\n return {\n ...defaults.transitionDuration,\n ...(is(propsDuration, ['object']) && propsDuration),\n ...optionsDuration,\n };\n }\n\n if (is(propsDuration, ['string', 'number'])) {\n return propsDuration;\n }\n\n if (is(propsDuration, ['object'])) {\n return {\n ...defaults.transitionDuration,\n ...propsDuration,\n };\n }\n\n return defaults.transitionDuration;\n};\n\nexport const merge =\n (options: any, props: any) =>\n (name: keyof InternalSnack, shouldObjectMerge = false): any => {\n if (shouldObjectMerge) {\n return {\n ...(defaults as any)[name],\n ...props[name],\n ...options[name],\n };\n }\n\n if (name === 'autoHideDuration') {\n return getAutoHideDuration(options.autoHideDuration, props.autoHideDuration);\n }\n\n if (name === 'transitionDuration') {\n return getTransitionDuration(options.transitionDuration, props.transitionDuration);\n }\n\n return options[name] || props[name] || (defaults as any)[name];\n };\n", "import { css, CSSAttribute } from 'goober';\n\nexport function makeStyles(\n styles: S\n): { [key in K]: string } {\n return Object.entries(styles).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: css(value),\n }),\n {} as { [key in K]: string }\n );\n}\n\nexport const ComponentClasses = {\n SnackbarContainer: 'notistack-SnackbarContainer',\n Snackbar: 'notistack-Snackbar',\n CollapseWrapper: 'notistack-CollapseWrapper',\n MuiContent: 'notistack-MuiContent',\n MuiContentVariant: (variant: string) => `notistack-MuiContent-${variant}`,\n};\n", "/**\n * Credit to MUI team @ https://mui.com\n */\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { reflow } from '../utils';\nimport TransitionComponent from '../Transition';\nimport useForkRef from '../useForkRef';\nimport { TransitionProps } from '../../types';\nimport getTransitionProps from '../getTransitionProps';\nimport createTransition from '../createTransition';\nimport { ComponentClasses, makeStyles } from '../../utils/styles';\n\nconst classes = makeStyles({\n root: {\n height: 0,\n },\n entered: {\n height: 'auto',\n },\n});\n\nconst collapsedSize = '0px';\nconst timeout = 175;\n\ninterface CollapseProps {\n children: JSX.Element;\n in: boolean;\n onExited: TransitionProps['onExited'];\n}\n\nconst Collapse = React.forwardRef((props, ref) => {\n const { children, in: inProp, onExited } = props;\n\n const wrapperRef = React.useRef(null);\n\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(ref, nodeRef);\n\n const getWrapperSize = () => (wrapperRef.current ? wrapperRef.current.clientHeight : 0);\n\n const handleEnter: TransitionProps['onEnter'] = (node) => {\n node.style.height = collapsedSize;\n };\n\n const handleEntering = (node: HTMLElement) => {\n const wrapperSize = getWrapperSize();\n\n const { duration: transitionDuration, easing } = getTransitionProps({\n timeout,\n mode: 'enter',\n });\n\n node.style.transitionDuration =\n typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n\n node.style.height = `${wrapperSize}px`;\n node.style.transitionTimingFunction = easing || '';\n };\n\n const handleEntered: TransitionProps['onEntered'] = (node) => {\n node.style.height = 'auto';\n };\n\n const handleExit: TransitionProps['onExit'] = (node) => {\n node.style.height = `${getWrapperSize()}px`;\n };\n\n const handleExiting = (node: HTMLElement) => {\n reflow(node);\n\n const { duration: transitionDuration, easing } = getTransitionProps({\n timeout,\n mode: 'exit',\n });\n\n node.style.transitionDuration =\n typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n node.style.height = collapsedSize;\n node.style.transitionTimingFunction = easing || '';\n };\n\n return (\n \n {(state, childProps) => (\n \n \n {children}\n \n \n )}\n \n );\n});\n\nCollapse.displayName = 'Collapse';\n\nexport default Collapse;\n", "import {\n InternalSnack,\n SlideTransitionDirection,\n SnackbarOrigin,\n SnackbarClassKey,\n SnackbarProviderProps,\n ClassNameMap,\n ContainerClassKey,\n} from '../types';\nimport { originKeyExtractor } from '../utils';\n\nconst direction: Record = {\n right: 'left',\n left: 'right',\n bottom: 'up',\n top: 'down',\n};\n\nexport const getSlideDirection = (anchorOrigin: InternalSnack['anchorOrigin']): SlideTransitionDirection => {\n if (anchorOrigin.horizontal !== 'center') {\n return direction[anchorOrigin.horizontal];\n }\n return direction[anchorOrigin.vertical];\n};\n\n/** Tranforms classes name */\nexport const toSnackbarAnchorOrigin = (anchorOrigin: SnackbarOrigin): SnackbarClassKey =>\n `anchorOrigin${originKeyExtractor(anchorOrigin)}` as SnackbarClassKey;\n\n/**\n * Omit SnackbarContainer class keys that are not needed for SnackbarItem\n */\nexport const keepSnackbarClassKeys = (\n classes: SnackbarProviderProps['classes'] = {}\n): Partial> => {\n const containerClasses: Record = {\n containerRoot: true,\n containerAnchorOriginTopCenter: true,\n containerAnchorOriginBottomCenter: true,\n containerAnchorOriginTopRight: true,\n containerAnchorOriginBottomRight: true,\n containerAnchorOriginTopLeft: true,\n containerAnchorOriginBottomLeft: true,\n };\n return (Object.keys(classes) as ContainerClassKey[])\n .filter((key) => !containerClasses[key])\n .reduce((obj, key) => ({ ...obj, [key]: classes[key] }), {});\n};\n", "import { SnackbarKey } from 'src/types';\n\nconst noOp = () => {\n /* */\n};\n\n/**\n * Credit to MUI team @ https://mui.com\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(\n funcs: Array<((this: This, ...args: Args) => any) | undefined>,\n snackbarId?: SnackbarKey\n): (this: This, ...args: Args) => void {\n // @ts-ignore\n return funcs.reduce((acc, func) => {\n if (func === null || func === undefined) {\n return acc;\n }\n\n return function chainedFunction(...args) {\n const argums = [...args] as any;\n if (snackbarId && argums.indexOf(snackbarId) === -1) {\n argums.push(snackbarId);\n }\n // @ts-ignore\n acc.apply(this, argums);\n func.apply(this, argums);\n };\n }, noOp);\n}\n", "/**\n * Credit to MUI team @ https://mui.com\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n */\nimport * as React from 'react';\n\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\nexport default function useEventCallback(\n fn: (...args: Args) => Return\n): (...args: Args) => Return {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useCallback(\n (...args: Args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args),\n []\n );\n}\n", "/**\n * Credit to MUI team @ https://mui.com\n */\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport useEventCallback from '../utils/useEventCallback';\nimport { CloseReason, SharedProps, SnackbarKey } from '../types';\nimport { ComponentClasses } from '../utils/styles';\n\ninterface SnackbarProps extends Required> {\n open: boolean;\n id: SnackbarKey;\n className: string;\n children: JSX.Element;\n autoHideDuration: number | null | undefined;\n SnackbarProps: SharedProps['SnackbarProps'];\n}\n\nconst Snackbar = React.forwardRef((props, ref) => {\n const {\n children,\n className,\n autoHideDuration,\n disableWindowBlurListener = false,\n onClose,\n id,\n open,\n SnackbarProps = {},\n } = props;\n\n const timerAutoHide = React.useRef>();\n\n const handleClose = useEventCallback((...args: [null, CloseReason, SnackbarKey]) => {\n if (onClose) {\n onClose(...args);\n }\n });\n\n const setAutoHideTimer = useEventCallback((autoHideDurationParam?: number | null) => {\n if (!onClose || autoHideDurationParam == null) {\n return;\n }\n\n if (timerAutoHide.current) {\n clearTimeout(timerAutoHide.current);\n }\n timerAutoHide.current = setTimeout(() => {\n handleClose(null, 'timeout', id);\n }, autoHideDurationParam);\n });\n\n React.useEffect(() => {\n if (open) {\n setAutoHideTimer(autoHideDuration);\n }\n\n return () => {\n if (timerAutoHide.current) {\n clearTimeout(timerAutoHide.current);\n }\n };\n }, [open, autoHideDuration, setAutoHideTimer]);\n\n /**\n * Pause the timer when the user is interacting with the Snackbar\n * or when the user hide the window.\n */\n const handlePause = () => {\n if (timerAutoHide.current) {\n clearTimeout(timerAutoHide.current);\n }\n };\n\n /**\n * Restart the timer when the user is no longer interacting with the Snackbar\n * or when the window is shown back.\n */\n const handleResume = React.useCallback(() => {\n if (autoHideDuration != null) {\n setAutoHideTimer(autoHideDuration * 0.5);\n }\n }, [autoHideDuration, setAutoHideTimer]);\n\n const handleMouseEnter: React.MouseEventHandler = (event) => {\n if (SnackbarProps.onMouseEnter) {\n SnackbarProps.onMouseEnter(event);\n }\n handlePause();\n };\n\n const handleMouseLeave: React.MouseEventHandler = (event) => {\n if (SnackbarProps.onMouseLeave) {\n SnackbarProps.onMouseLeave(event);\n }\n handleResume();\n };\n\n React.useEffect(() => {\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n\n return () => {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n\n return undefined;\n }, [disableWindowBlurListener, handleResume, open]);\n\n return (\n \n {children}\n \n );\n});\n\nSnackbar.displayName = 'Snackbar';\n\nexport default Snackbar;\n", "import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SnackbarContentProps } from '../types';\nimport { breakpoints } from '../utils';\nimport { makeStyles } from '../utils/styles';\n\nconst classes = makeStyles({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n flexGrow: 1,\n [breakpoints.upSm]: {\n flexGrow: 'initial',\n minWidth: '288px',\n },\n },\n});\n\nconst SnackbarContent = forwardRef(({ className, ...props }, ref) => (\n
    \n));\n\nSnackbarContent.displayName = 'SnackbarContent';\n\nexport default SnackbarContent;\n", "import React, { memo, forwardRef } from 'react';\nimport clsx from 'clsx';\nimport SnackbarContent from '../../SnackbarContent';\nimport { CustomContentProps } from '../../types';\nimport { ComponentClasses, makeStyles } from '../../utils/styles';\n\nconst classes = makeStyles({\n root: {\n backgroundColor: '#313131', // dark grey\n fontSize: '0.875rem',\n lineHeight: 1.43,\n letterSpacing: '0.01071em',\n color: '#fff',\n alignItems: 'center',\n padding: '6px 16px',\n borderRadius: '4px',\n boxShadow:\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)',\n },\n lessPadding: {\n paddingLeft: `${8 * 2.5}px`,\n },\n default: {\n backgroundColor: '#313131', // dark grey\n },\n success: {\n backgroundColor: '#43a047', // green\n },\n error: {\n backgroundColor: '#d32f2f', // dark red\n },\n warning: {\n backgroundColor: '#ff9800', // amber\n },\n info: {\n backgroundColor: '#2196f3', // nice blue\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n padding: '8px 0',\n },\n action: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: '16px',\n marginRight: '-8px',\n },\n});\n\nconst ariaDescribedby = 'notistack-snackbar';\n\nconst MaterialDesignContent = forwardRef((props, forwardedRef) => {\n const {\n id,\n message,\n action: componentOrFunctionAction,\n iconVariant,\n variant,\n hideIconVariant,\n style,\n className,\n } = props;\n\n const icon = iconVariant[variant];\n\n let action = componentOrFunctionAction;\n if (typeof action === 'function') {\n action = action(id);\n }\n\n return (\n \n
    \n {!hideIconVariant ? icon : null}\n {message}\n
    \n {action &&
    {action}
    }\n \n );\n});\n\nMaterialDesignContent.displayName = 'MaterialDesignContent';\n\nexport default memo(MaterialDesignContent);\n", "import React, { useState, useEffect, useRef, useCallback, useMemo } from 'react';\nimport clsx from 'clsx';\nimport Collapse from '../transitions/Collapse';\nimport { getSlideDirection, toSnackbarAnchorOrigin, keepSnackbarClassKeys } from './utils';\nimport {\n TransitionHandlerProps,\n SnackbarProviderProps,\n CustomContentProps,\n InternalSnack,\n SharedProps,\n} from '../types';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport Snackbar from './Snackbar';\nimport { makeStyles } from '../utils/styles';\nimport MaterialDesignContent from '../ui/MaterialDesignContent';\n\nconst styles = makeStyles({\n wrappedRoot: {\n width: '100%',\n position: 'relative',\n transform: 'translateX(0)',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n minWidth: '288px',\n },\n});\n\ninterface SnackbarItemProps extends Required> {\n snack: InternalSnack;\n classes: SnackbarProviderProps['classes'];\n onEnter: SnackbarProviderProps['onEnter'];\n onExit: SnackbarProviderProps['onExit'];\n Component?: React.ComponentType;\n}\n\nconst SnackbarItem: React.FC = (props) => {\n const timeout = useRef>();\n const [collapsed, setCollapsed] = useState(true);\n\n const handleClose: NonNullable = createChainedFunction([\n props.snack.onClose,\n props.onClose,\n ]);\n\n const handleEntered: TransitionHandlerProps['onEntered'] = () => {\n if (props.snack.requestClose) {\n handleClose(null, 'instructed', props.snack.id);\n }\n };\n\n const handleExitedScreen = useCallback((): void => {\n timeout.current = setTimeout(() => {\n setCollapsed((col) => !col);\n }, 125);\n }, []);\n\n useEffect(\n () => (): void => {\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n },\n []\n );\n\n const { snack, classes: allClasses, Component = MaterialDesignContent } = props;\n\n const classes = useMemo(() => keepSnackbarClassKeys(allClasses), [allClasses]);\n\n const {\n open,\n SnackbarProps,\n TransitionComponent,\n TransitionProps,\n transitionDuration,\n disableWindowBlurListener,\n content: componentOrFunctionContent,\n entered: ignoredEntered,\n requestClose: ignoredRequestClose,\n onEnter: ignoreOnEnter,\n onEntered: ignoreOnEntered,\n onExit: ignoreOnExit,\n onExited: ignoreOnExited,\n ...otherSnack\n } = snack;\n\n const transitionProps = {\n direction: getSlideDirection(otherSnack.anchorOrigin),\n timeout: transitionDuration,\n ...TransitionProps,\n };\n\n let content = componentOrFunctionContent;\n if (typeof content === 'function') {\n content = content(otherSnack.id, otherSnack.message);\n }\n\n const callbacks: { [key in keyof TransitionHandlerProps]?: any } = (\n ['onEnter', 'onEntered', 'onExit', 'onExited'] as (keyof TransitionHandlerProps)[]\n ).reduce(\n (acc, cbName) => ({\n ...acc,\n [cbName]: createChainedFunction([props.snack[cbName] as any, props[cbName] as any], otherSnack.id),\n }),\n {}\n );\n\n return (\n \n \n \n {(content as React.ReactElement) || }\n \n \n \n );\n};\n\nexport default SnackbarItem;\n", "import React, { memo } from 'react';\nimport clsx from 'clsx';\nimport createTransition from '../transitions/createTransition';\nimport { makeStyles, ComponentClasses } from '../utils/styles';\nimport { breakpoints, originKeyExtractor } from '../utils';\nimport { ContainerClassKey, SnackbarProviderProps } from '../types';\n\nconst indents = {\n view: { default: 20, dense: 4 },\n snackbar: { default: 6, dense: 2 },\n};\n\nconst collapseWrapper = `.${ComponentClasses.CollapseWrapper}`;\n\nconst xsWidthMargin = 16;\n\nconst styles = makeStyles({\n root: {\n boxSizing: 'border-box',\n display: 'flex',\n maxHeight: '100%',\n position: 'fixed',\n zIndex: 1400,\n height: 'auto',\n width: 'auto',\n transition: createTransition(['top', 'right', 'bottom', 'left', 'max-width'], {\n duration: 300,\n easing: 'ease',\n }),\n // container itself is invisible and should not block clicks, clicks should be passed to its children\n // a pointerEvents: all is applied in the collapse component\n pointerEvents: 'none',\n [collapseWrapper]: {\n padding: `${indents.snackbar.default}px 0px`,\n transition: 'padding 300ms ease 0ms',\n },\n maxWidth: `calc(100% - ${indents.view.default * 2}px)`,\n [breakpoints.downXs]: {\n width: '100%',\n maxWidth: `calc(100% - ${xsWidthMargin * 2}px)`,\n },\n },\n rootDense: {\n [collapseWrapper]: {\n padding: `${indents.snackbar.dense}px 0px`,\n },\n },\n top: {\n top: `${indents.view.default - indents.snackbar.default}px`,\n flexDirection: 'column',\n },\n bottom: {\n bottom: `${indents.view.default - indents.snackbar.default}px`,\n flexDirection: 'column-reverse',\n },\n left: {\n left: `${indents.view.default}px`,\n [breakpoints.upSm]: {\n alignItems: 'flex-start',\n },\n [breakpoints.downXs]: {\n left: `${xsWidthMargin}px`,\n },\n },\n right: {\n right: `${indents.view.default}px`,\n [breakpoints.upSm]: {\n alignItems: 'flex-end',\n },\n [breakpoints.downXs]: {\n right: `${xsWidthMargin}px`,\n },\n },\n center: {\n left: '50%',\n transform: 'translateX(-50%)',\n [breakpoints.upSm]: {\n alignItems: 'center',\n },\n },\n});\n\ninterface SnackbarContainerProps {\n children: React.ReactNode;\n dense: SnackbarProviderProps['dense'];\n anchorOrigin: NonNullable;\n classes: SnackbarProviderProps['classes'];\n}\n\nconst SnackbarContainer: React.FC = (props) => {\n const { classes = {}, anchorOrigin, dense, children } = props;\n\n const combinedClassname = clsx(\n ComponentClasses.SnackbarContainer,\n styles[anchorOrigin.vertical],\n styles[anchorOrigin.horizontal],\n { [styles.rootDense]: dense },\n styles.root, // root should come after others to override maxWidth\n classes.containerRoot,\n classes[`containerAnchorOrigin${originKeyExtractor(anchorOrigin)}` as ContainerClassKey]\n );\n\n return
    {children}
    ;\n};\n\nexport default memo(SnackbarContainer);\n", "import React, { Component, isValidElement } from 'react';\nimport { createPortal } from 'react-dom';\nimport clsx from 'clsx';\nimport SnackbarContext from '../SnackbarContext';\nimport { originKeyExtractor, isDefined } from '../utils';\nimport { defaults, merge } from './merger';\nimport SnackbarItem from '../SnackbarItem';\nimport SnackbarContainer from '../SnackbarContainer';\nimport warning from '../utils/warning';\nimport {\n SnackbarProviderProps,\n SnackbarKey,\n ProviderContext,\n TransitionHandlerProps,\n InternalSnack,\n OptionsObject,\n SharedProps,\n SnackbarMessage,\n} from '../types';\nimport createChainedFunction from '../utils/createChainedFunction';\n\nconst isOptions = (\n messageOrOptions: SnackbarMessage | (OptionsObject & { message?: SnackbarMessage })\n): messageOrOptions is OptionsObject & { message?: SnackbarMessage } => {\n const isMessage = typeof messageOrOptions === 'string' || isValidElement(messageOrOptions);\n return !isMessage;\n};\n\ntype Reducer = (state: State) => State;\ntype SnacksByPosition = { [key: string]: InternalSnack[] };\n\ninterface State {\n snacks: InternalSnack[];\n queue: InternalSnack[];\n contextValue: ProviderContext;\n}\n\nexport let enqueueSnackbar: ProviderContext['enqueueSnackbar'];\nexport let closeSnackbar: ProviderContext['closeSnackbar'];\n\nclass SnackbarProvider extends Component {\n constructor(props: SnackbarProviderProps) {\n super(props);\n enqueueSnackbar = this.enqueueSnackbar;\n closeSnackbar = this.closeSnackbar;\n\n this.state = {\n snacks: [],\n queue: [],\n contextValue: {\n enqueueSnackbar: this.enqueueSnackbar.bind(this),\n closeSnackbar: this.closeSnackbar.bind(this),\n },\n };\n }\n\n get maxSnack(): number {\n return this.props.maxSnack || defaults.maxSnack;\n }\n\n /**\n * Adds a new snackbar to the queue to be presented.\n * Returns generated or user defined key referencing the new snackbar or null\n */\n enqueueSnackbar = (\n messageOrOptions: SnackbarMessage | (OptionsObject & { message?: SnackbarMessage }),\n optsOrUndefined: OptionsObject = {}\n ): SnackbarKey => {\n if (messageOrOptions === undefined || messageOrOptions === null) {\n throw new Error('enqueueSnackbar called with invalid argument');\n }\n\n const opts = isOptions(messageOrOptions) ? messageOrOptions : optsOrUndefined;\n\n const message: SnackbarMessage | undefined = isOptions(messageOrOptions)\n ? messageOrOptions.message\n : messageOrOptions;\n\n const { key, preventDuplicate, ...options } = opts;\n\n const hasSpecifiedKey = isDefined(key);\n const id = hasSpecifiedKey ? (key as SnackbarKey) : new Date().getTime() + Math.random();\n\n const merger = merge(options, this.props);\n const snack: InternalSnack = {\n id,\n ...options,\n message,\n open: true,\n entered: false,\n requestClose: false,\n persist: merger('persist'),\n action: merger('action'),\n content: merger('content'),\n variant: merger('variant'),\n anchorOrigin: merger('anchorOrigin'),\n disableWindowBlurListener: merger('disableWindowBlurListener'),\n autoHideDuration: merger('autoHideDuration'),\n hideIconVariant: merger('hideIconVariant'),\n TransitionComponent: merger('TransitionComponent'),\n transitionDuration: merger('transitionDuration'),\n TransitionProps: merger('TransitionProps', true),\n iconVariant: merger('iconVariant', true),\n style: merger('style', true),\n SnackbarProps: merger('SnackbarProps', true),\n className: clsx(this.props.className, options.className),\n };\n\n if (snack.persist) {\n snack.autoHideDuration = undefined;\n }\n\n this.setState((state) => {\n if ((preventDuplicate === undefined && this.props.preventDuplicate) || preventDuplicate) {\n const compareFunction = (item: InternalSnack): boolean =>\n hasSpecifiedKey ? item.id === id : item.message === message;\n\n const inQueue = state.queue.findIndex(compareFunction) > -1;\n const inView = state.snacks.findIndex(compareFunction) > -1;\n if (inQueue || inView) {\n return state;\n }\n }\n\n return this.handleDisplaySnack({\n ...state,\n queue: [...state.queue, snack],\n });\n });\n\n return id;\n };\n\n /**\n * Reducer: Display snack if there's space for it. Otherwise, immediately\n * begin dismissing the oldest message to start showing the new one.\n */\n handleDisplaySnack: Reducer = (state) => {\n const { snacks } = state;\n if (snacks.length >= this.maxSnack) {\n return this.handleDismissOldest(state);\n }\n return this.processQueue(state);\n };\n\n /**\n * Reducer: Display items (notifications) in the queue if there's space for them.\n */\n processQueue: Reducer = (state) => {\n const { queue, snacks } = state;\n if (queue.length > 0) {\n return {\n ...state,\n snacks: [...snacks, queue[0]],\n queue: queue.slice(1, queue.length),\n };\n }\n return state;\n };\n\n /**\n * Reducer: Hide oldest snackbar on the screen because there exists a new one which we have to display.\n * (ignoring the one with 'persist' flag. i.e. explicitly told by user not to get dismissed).\n *\n * Note 1: If there is already a message leaving the screen, no new messages are dismissed.\n * Note 2: If the oldest message has not yet entered the screen, only a request to close the\n * snackbar is made. Once it entered the screen, it will be immediately dismissed.\n */\n handleDismissOldest: Reducer = (state) => {\n if (state.snacks.some((item) => !item.open || item.requestClose)) {\n return state;\n }\n\n let popped = false;\n let ignore = false;\n\n const persistentCount = state.snacks.reduce(\n (acc, current) => acc + (current.open && current.persist ? 1 : 0),\n 0\n );\n\n if (persistentCount === this.maxSnack) {\n warning('NO_PERSIST_ALL');\n ignore = true;\n }\n\n const snacks = state.snacks.map((item) => {\n if (!popped && (!item.persist || ignore)) {\n popped = true;\n\n if (!item.entered) {\n return {\n ...item,\n requestClose: true,\n };\n }\n\n if (item.onClose) {\n item.onClose(null, 'maxsnack', item.id);\n }\n\n if (this.props.onClose) {\n this.props.onClose(null, 'maxsnack', item.id);\n }\n\n return {\n ...item,\n open: false,\n };\n }\n\n return { ...item };\n });\n\n return { ...state, snacks };\n };\n\n /**\n * Set the entered state of the snackbar with the given key.\n */\n handleEnteredSnack: TransitionHandlerProps['onEntered'] = (node, isAppearing, key) => {\n if (!isDefined(key)) {\n throw new Error('handleEnteredSnack Cannot be called with undefined key');\n }\n\n this.setState(({ snacks }) => ({\n snacks: snacks.map((item) => (item.id === key ? { ...item, entered: true } : { ...item })),\n }));\n };\n\n /**\n * Hide a snackbar after its timeout.\n */\n handleCloseSnack: NonNullable = (event, reason, key) => {\n // should not use createChainedFunction for onClose.\n // because this.closeSnackbar called this function\n if (this.props.onClose) {\n this.props.onClose(event, reason, key);\n }\n\n const shouldCloseAll = key === undefined;\n\n this.setState(({ snacks, queue }) => ({\n snacks: snacks.map((item) => {\n if (!shouldCloseAll && item.id !== key) {\n return { ...item };\n }\n\n return item.entered ? { ...item, open: false } : { ...item, requestClose: true };\n }),\n queue: queue.filter((item) => item.id !== key),\n }));\n };\n\n /**\n * Close snackbar with the given key\n */\n closeSnackbar: ProviderContext['closeSnackbar'] = (key) => {\n // call individual snackbar onClose callback passed through options parameter\n const toBeClosed = this.state.snacks.find((item) => item.id === key);\n if (isDefined(key) && toBeClosed && toBeClosed.onClose) {\n toBeClosed.onClose(null, 'instructed', key);\n }\n\n this.handleCloseSnack(null, 'instructed', key);\n };\n\n /**\n * When we set open attribute of a snackbar to false (i.e. after we hide a snackbar),\n * it leaves the screen and immediately after leaving animation is done, this method\n * gets called. We remove the hidden snackbar from state and then display notifications\n * waiting in the queue (if any). If after this process the queue is not empty, the\n * oldest message is dismissed.\n */\n handleExitedSnack: TransitionHandlerProps['onExited'] = (node, key) => {\n if (!isDefined(key)) {\n throw new Error('handleExitedSnack Cannot be called with undefined key');\n }\n\n this.setState((state) => {\n const newState = this.processQueue({\n ...state,\n snacks: state.snacks.filter((item) => item.id !== key),\n });\n\n if (newState.queue.length === 0) {\n return newState;\n }\n\n return this.handleDismissOldest(newState);\n });\n };\n\n render(): JSX.Element {\n const { contextValue } = this.state;\n const { domRoot, children, dense = false, Components = {}, classes } = this.props;\n\n const categ = this.state.snacks.reduce((acc, current) => {\n const category = originKeyExtractor(current.anchorOrigin);\n const existingOfCategory = acc[category] || [];\n return {\n ...acc,\n [category]: [...existingOfCategory, current],\n };\n }, {});\n\n const snackbars = Object.keys(categ).map((origin) => {\n const snacks = categ[origin];\n const [nomineeSnack] = snacks;\n return (\n \n {snacks.map((snack) => (\n \n ))}\n \n );\n });\n\n return (\n \n {children}\n {domRoot ? createPortal(snackbars, domRoot) : snackbars}\n \n );\n }\n}\n\nexport default SnackbarProvider;\n", "import { useContext } from 'react';\nimport SnackbarContext from './SnackbarContext';\nimport { ProviderContext } from './types';\n\nexport default (): ProviderContext => useContext(SnackbarContext);\n", "\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./notistack.cjs.production.min.js')\n} else {\n module.exports = require('./notistack.cjs.development.js')\n}\n", "function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction noop() {}\n\nvar noopStorage = {\n getItem: noop,\n setItem: noop,\n removeItem: noop\n};\n\nfunction hasStorage(storageType) {\n if ((typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) !== 'object' || !(storageType in self)) {\n return false;\n }\n\n try {\n var storage = self[storageType];\n var testKey = \"redux-persist \".concat(storageType, \" test\");\n storage.setItem(testKey, 'test');\n storage.getItem(testKey);\n storage.removeItem(testKey);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') console.warn(\"redux-persist \".concat(storageType, \" test failed, persistence will be disabled.\"));\n return false;\n }\n\n return true;\n}\n\nexport default function getStorage(type) {\n var storageType = \"\".concat(type, \"Storage\");\n if (hasStorage(storageType)) return self[storageType];else {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\"redux-persist failed to create sync storage. falling back to noop storage.\");\n }\n\n return noopStorage;\n }\n}", "import getStorage from './getStorage';\nexport default function createWebStorage(type) {\n var storage = getStorage(type);\n return {\n getItem: function getItem(key) {\n return new Promise(function (resolve, reject) {\n resolve(storage.getItem(key));\n });\n },\n setItem: function setItem(key, item) {\n return new Promise(function (resolve, reject) {\n resolve(storage.setItem(key, item));\n });\n },\n removeItem: function removeItem(key) {\n return new Promise(function (resolve, reject) {\n resolve(storage.removeItem(key));\n });\n }\n };\n}", "import createWebStorage from './createWebStorage';\nexport default createWebStorage('local');", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n", "var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n", "var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n", "/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n", "var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n", "var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n", "var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n", "/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n", "var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n", "/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n", "var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n", "var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n", "var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n", "var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n", "var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n", "/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n", "var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n", "/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n", "var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n", "var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n", "/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n", "var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n", "var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n", "var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n", "/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\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 buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n", "!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)(\"object\"==typeof exports?exports:e)[n]=r[n]}}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=0)}([function(e,t,r){\"use strict\";r.r(t),r.d(t,\"set\",(function(){return l}));var n=function(e){var t=[];return e(function(e){var t=new Proxy({},{get:function(r,n){return e.push(n),t}});return t}(t)),t},o=function(){function e(e){this.value=e}return e.prototype.set=function(e,t){return this.value=l(this.value,e,t),this},e.prototype.end=function(){return this.value},e}(),u=Object.prototype.hasOwnProperty;var f=\"function\"==typeof Object.assign?Object.assign:function(e){for(var t=[],r=1;r 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action,\n setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yFork(action)\n };\n }\n }, 'q1', \"takeEvery(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLatest(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yCancel = function yCancel(task) {\n return {\n done: false,\n value: cancel(task)\n };\n };\n\n var task, action;\n\n var setTask = function setTask(t) {\n return task = t;\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return task ? {\n nextState: 'q3',\n effect: yCancel(task)\n } : {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n },\n q3: function q3() {\n return {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n }\n }, 'q1', \"takeLatest(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLeading(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yCall = function yCall(ac) {\n return {\n done: false,\n value: call.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action;\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yCall(action)\n };\n }\n }, 'q1', \"takeLeading(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction throttle(delayLength, patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, channel$1;\n\n var yTake = function yTake() {\n return {\n done: false,\n value: take(channel$1)\n };\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setChannel = function setChannel(ch) {\n return channel$1 = ch;\n };\n\n var needsChannel = !channel(patternOrChannel);\n\n if (!needsChannel) {\n setChannel(patternOrChannel);\n }\n\n return fsmIterator({\n q1: function q1() {\n var yActionChannel = {\n done: false,\n value: actionChannel(patternOrChannel, sliding(1))\n };\n return {\n nextState: 'q2',\n effect: yActionChannel,\n stateUpdater: setChannel\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yTake(),\n stateUpdater: setAction\n };\n },\n q3: function q3() {\n return {\n nextState: 'q4',\n effect: yFork(action)\n };\n },\n q4: function q4() {\n return {\n nextState: 'q2',\n effect: yDelay\n };\n }\n }, needsChannel ? 'q1' : 'q2', \"throttle(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction retry(maxTries, delayLength, fn) {\n var counter = maxTries;\n\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var yCall = {\n done: false,\n value: call.apply(void 0, [fn].concat(args))\n };\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yCall,\n errorState: 'q10'\n };\n },\n q2: function q2() {\n return {\n nextState: qEnd\n };\n },\n q10: function q10(error) {\n counter -= 1;\n\n if (counter <= 0) {\n throw error;\n }\n\n return {\n nextState: 'q1',\n effect: yDelay\n };\n }\n }, 'q1', \"retry(\" + fn.name + \")\");\n}\n\nfunction debounceHelper(delayLength, patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, raceOutput;\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n var yRace = {\n done: false,\n value: race({\n action: take(patternOrChannel),\n debounce: delay(delayLength)\n })\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yNoop = function yNoop(value) {\n return {\n done: false,\n value: value\n };\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setRaceOutput = function setRaceOutput(ro) {\n return raceOutput = ro;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yRace,\n stateUpdater: setRaceOutput\n };\n },\n q3: function q3() {\n return raceOutput.debounce ? {\n nextState: 'q1',\n effect: yFork(action)\n } : {\n nextState: 'q2',\n effect: yNoop(raceOutput.action),\n stateUpdater: setAction\n };\n }\n }, 'q1', \"debounce(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nvar validateTakeEffect = function validateTakeEffect(fn, patternOrChannel, worker) {\n check(patternOrChannel, notUndef, fn.name + \" requires a pattern or channel\");\n check(worker, notUndef, fn.name + \" requires a saga parameter\");\n};\n\nfunction takeEvery$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeEvery$1, patternOrChannel, worker);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n return fork.apply(void 0, [takeEvery, patternOrChannel, worker].concat(args));\n}\nfunction takeLatest$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLatest$1, patternOrChannel, worker);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n return fork.apply(void 0, [takeLatest, patternOrChannel, worker].concat(args));\n}\nfunction takeLeading$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLeading$1, patternOrChannel, worker);\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n return fork.apply(void 0, [takeLeading, patternOrChannel, worker].concat(args));\n}\nfunction throttle$1(ms, patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n check(patternOrChannel, notUndef, \"throttle requires a pattern or channel\");\n check(worker, notUndef, 'throttle requires a saga parameter');\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++) {\n args[_key4 - 3] = arguments[_key4];\n }\n\n return fork.apply(void 0, [throttle, ms, patternOrChannel, worker].concat(args));\n}\nfunction retry$1(maxTries, delayLength, worker) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++) {\n args[_key5 - 3] = arguments[_key5];\n }\n\n return call.apply(void 0, [retry, maxTries, delayLength, worker].concat(args));\n}\nfunction debounce(delayLength, pattern, worker) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++) {\n args[_key6 - 3] = arguments[_key6];\n }\n\n return fork.apply(void 0, [debounceHelper, delayLength, pattern, worker].concat(args));\n}\n\nexport { debounce, retry$1 as retry, takeEvery$1 as takeEvery, takeLatest$1 as takeLatest, takeLeading$1 as takeLeading, throttle$1 as throttle };\n", "export * from '@redux-saga/core/effects';\n", "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n", "'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.formatCookie = void 0;\n\nvar getSameSiteValue = function getSameSiteValue(o) {\n var sameSite = o.sameSite;\n if (typeof sameSite === \"undefined\") return null;\n if ([\"none\", \"lax\", \"strict\"].indexOf(sameSite.toLowerCase()) >= 0) return sameSite;\n return null;\n};\n\nvar formatOptions = function formatOptions(o) {\n var path = o.path,\n domain = o.domain,\n expires = o.expires,\n secure = o.secure;\n var sameSiteValue = getSameSiteValue(o);\n return [typeof path === \"undefined\" || path === null ? \"\" : \";path=\" + path, typeof domain === \"undefined\" || domain === null ? \"\" : \";domain=\" + domain, typeof expires === \"undefined\" || expires === null ? \"\" : \";expires=\" + expires.toUTCString(), typeof secure === \"undefined\" || secure === false ? \"\" : \";secure\", sameSiteValue === null ? \"\" : \";SameSite=\" + sameSiteValue].join(\"\");\n};\n\nvar formatCookie = function formatCookie(k, d, o) {\n return [encodeURIComponent(k), \"=\", encodeURIComponent(d), formatOptions(o)].join(\"\");\n};\n\nexports.formatCookie = formatCookie;", "\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseCookies = void 0;\n\nvar parseCookies = function parseCookies(s) {\n if (s.length === 0) return {};\n var parsed = {};\n var pattern = new RegExp(\"\\\\s*;\\\\s*\");\n s.split(pattern).forEach(function (i) {\n var _i$split = i.split(\"=\"),\n _i$split2 = _slicedToArray(_i$split, 2),\n encodedKey = _i$split2[0],\n encodedValue = _i$split2[1];\n\n var key = decodeURIComponent(encodedKey);\n var value = decodeURIComponent(encodedValue);\n parsed[key] = value;\n });\n return parsed;\n};\n\nexports.parseCookies = parseCookies;", "\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CookieStorage = void 0;\n\nvar format_cookie_1 = require(\"./format-cookie\");\n\nvar parse_cookies_1 = require(\"./parse-cookies\");\n\nvar CookieStorage = function () {\n function CookieStorage(defaultOptions) {\n _classCallCheck(this, CookieStorage);\n\n this._defaultOptions = Object.assign({\n domain: null,\n expires: null,\n path: null,\n secure: false\n }, defaultOptions);\n if (typeof Proxy !== \"undefined\") return new Proxy(this, cookieStorageHandler);\n }\n\n _createClass(CookieStorage, [{\n key: \"clear\",\n value: function clear() {\n var _this = this;\n\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n var keys = Object.keys(parsed);\n keys.forEach(function (key) {\n return _this.removeItem(key);\n });\n }\n }, {\n key: \"getItem\",\n value: function getItem(key) {\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n return Object.prototype.hasOwnProperty.call(parsed, key) ? parsed[key] : null;\n }\n }, {\n key: \"key\",\n value: function key(index) {\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n var sortedKeys = Object.keys(parsed).sort();\n return index < sortedKeys.length ? sortedKeys[index] : null;\n }\n }, {\n key: \"removeItem\",\n value: function removeItem(key, cookieOptions) {\n var data = \"\";\n var options = Object.assign(Object.assign(Object.assign({}, this._defaultOptions), cookieOptions), {\n expires: new Date(0)\n });\n var formatted = format_cookie_1.formatCookie(key, data, options);\n\n this._setCookie(formatted);\n }\n }, {\n key: \"setItem\",\n value: function setItem(key, data, options) {\n var opts = Object.assign(Object.assign({}, this._defaultOptions), options);\n var formatted = format_cookie_1.formatCookie(key, data, opts);\n\n this._setCookie(formatted);\n }\n }, {\n key: \"_getCookie\",\n value: function _getCookie() {\n return typeof document === \"undefined\" ? \"\" : typeof document.cookie === \"undefined\" ? \"\" : document.cookie;\n }\n }, {\n key: \"_setCookie\",\n value: function _setCookie(value) {\n document.cookie = value;\n }\n }, {\n key: \"length\",\n get: function get() {\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n var keys = Object.keys(parsed);\n return keys.length;\n }\n }]);\n\n return CookieStorage;\n}();\n\nexports.CookieStorage = CookieStorage;\nvar cookieStorageHandler = {\n defineProperty: function defineProperty(target, p, attributes) {\n target.setItem(p.toString(), String(attributes.value));\n return true;\n },\n deleteProperty: function deleteProperty(target, p) {\n target.removeItem(p.toString());\n return true;\n },\n get: function get(target, p, _receiver) {\n if (typeof p === \"string\" && p in target) return target[p];\n var result = target.getItem(p.toString());\n return result !== null ? result : undefined;\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, p) {\n if (p in target) return undefined;\n return {\n configurable: true,\n enumerable: true,\n value: target.getItem(p.toString()),\n writable: true\n };\n },\n has: function has(target, p) {\n if (typeof p === \"string\" && p in target) return true;\n return target.getItem(p.toString()) !== null;\n },\n ownKeys: function ownKeys(target) {\n var keys = [];\n\n for (var i = 0; i < target.length; i++) {\n var key = target.key(i);\n if (key !== null) keys.push(key);\n }\n\n return keys;\n },\n preventExtensions: function preventExtensions(_) {\n throw new TypeError(\"can't prevent extensions on this proxy object\");\n },\n set: function set(target, p, value, _) {\n target.setItem(p.toString(), String(value));\n return true;\n }\n};", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar cookie_storage_1 = require(\"./cookie-storage\");\n\nObject.defineProperty(exports, \"CookieStorage\", {\n enumerable: true,\n get: function get() {\n return cookie_storage_1.CookieStorage;\n }\n});\n\nvar format_cookie_1 = require(\"./format-cookie\");\n\nObject.defineProperty(exports, \"formatCookie\", {\n enumerable: true,\n get: function get() {\n return format_cookie_1.formatCookie;\n }\n});\n\nvar parse_cookies_1 = require(\"./parse-cookies\");\n\nObject.defineProperty(exports, \"parseCookies\", {\n enumerable: true,\n get: function get() {\n return parse_cookies_1.parseCookies;\n }\n});", "/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n", "var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n", "var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n", "/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n", "var baseProperty = require('./_baseProperty');\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nmodule.exports = asciiSize;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nmodule.exports = unicodeSize;\n", "var asciiSize = require('./_asciiSize'),\n hasUnicode = require('./_hasUnicode'),\n unicodeSize = require('./_unicodeSize');\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nmodule.exports = stringSize;\n", "var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n stringSize = require('./_stringSize');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n}\n\nmodule.exports = size;\n", "(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Bugsnag = f()}})(function(){var define,module,exports;\n", "module.exports = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual']\n", "// Array#reduce\nmodule.exports = (arr, fn, accum) => {\n let val = accum\n for (let i = 0, len = arr.length; i < len; i++) val = fn(val, arr[i], i, arr)\n return val\n}\n", "const reduce = require('./reduce')\n\n// Array#filter\nmodule.exports = (arr, fn) =>\n reduce(arr, (accum, item, i, arr) => !fn(item, i, arr) ? accum : accum.concat(item), [])\n", "const reduce = require('./reduce')\n// Array#includes\nmodule.exports = (arr, x) =>\n reduce(arr, (accum, item, i, arr) => accum === true || item === x, false)\n", "// Array#isArray\nmodule.exports = obj => Object.prototype.toString.call(obj) === '[object Array]'\n", "/* eslint-disable-next-line no-prototype-builtins */\nconst _hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString')\nconst _dontEnums = [\n 'toString', 'toLocaleString', 'valueOf', 'hasOwnProperty',\n 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'\n]\n\n// Object#keys\nmodule.exports = obj => {\n // stripped down version of\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n const result = []\n let prop\n for (prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) result.push(prop)\n }\n if (!_hasDontEnumBug) return result\n for (let i = 0, len = _dontEnums.length; i < len; i++) {\n if (Object.prototype.hasOwnProperty.call(obj, _dontEnums[i])) result.push(_dontEnums[i])\n }\n return result\n}\n", "module.exports = (min = 1, max = Infinity) => value =>\n typeof value === 'number' &&\n parseInt('' + value, 10) === value &&\n value >= min && value <= max\n", "const filter = require('../es-utils/filter')\nconst isArray = require('../es-utils/is-array')\n\nmodule.exports = value => typeof value === 'function' || (isArray(value) && filter(value, f => typeof f === 'function').length === value.length)\n", "module.exports = value => typeof value === 'string' && !!value.length\n", "const filter = require('./lib/es-utils/filter')\nconst reduce = require('./lib/es-utils/reduce')\nconst keys = require('./lib/es-utils/keys')\nconst isArray = require('./lib/es-utils/is-array')\nconst includes = require('./lib/es-utils/includes')\nconst intRange = require('./lib/validators/int-range')\nconst stringWithLength = require('./lib/validators/string-with-length')\nconst listOfFunctions = require('./lib/validators/list-of-functions')\n\nconst BREADCRUMB_TYPES = require('./lib/breadcrumb-types')\nconst defaultErrorTypes = () => ({ unhandledExceptions: true, unhandledRejections: true })\n\nmodule.exports.schema = {\n apiKey: {\n defaultValue: () => null,\n message: 'is required',\n validate: stringWithLength\n },\n appVersion: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || stringWithLength(value)\n },\n appType: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || stringWithLength(value)\n },\n autoDetectErrors: {\n defaultValue: () => true,\n message: 'should be true|false',\n validate: value => value === true || value === false\n },\n enabledErrorTypes: {\n defaultValue: () => defaultErrorTypes(),\n message: 'should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }',\n allowPartialObject: true,\n validate: value => {\n // ensure we have an object\n if (typeof value !== 'object' || !value) return false\n const providedKeys = keys(value)\n const defaultKeys = keys(defaultErrorTypes())\n // ensure it only has a subset of the allowed keys\n if (filter(providedKeys, k => includes(defaultKeys, k)).length < providedKeys.length) return false\n // ensure all of the values are boolean\n if (filter(keys(value), k => typeof value[k] !== 'boolean').length > 0) return false\n return true\n }\n },\n onError: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n onSession: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n onBreadcrumb: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n endpoints: {\n defaultValue: () => ({\n notify: 'https://notify.bugsnag.com',\n sessions: 'https://sessions.bugsnag.com'\n }),\n message: 'should be an object containing endpoint URLs { notify, sessions }',\n validate: val =>\n // first, ensure it's an object\n (val && typeof val === 'object') &&\n (\n // notify and sessions must always be set\n stringWithLength(val.notify) && stringWithLength(val.sessions)\n ) &&\n // ensure no keys other than notify/session are set on endpoints object\n filter(keys(val), k => !includes(['notify', 'sessions'], k)).length === 0\n },\n autoTrackSessions: {\n defaultValue: val => true,\n message: 'should be true|false',\n validate: val => val === true || val === false\n },\n enabledReleaseStages: {\n defaultValue: () => null,\n message: 'should be an array of strings',\n validate: value => value === null || (isArray(value) && filter(value, f => typeof f === 'string').length === value.length)\n },\n releaseStage: {\n defaultValue: () => 'production',\n message: 'should be a string',\n validate: value => typeof value === 'string' && value.length\n },\n maxBreadcrumbs: {\n defaultValue: () => 25,\n message: 'should be a number ≤100',\n validate: value => intRange(0, 100)(value)\n },\n enabledBreadcrumbTypes: {\n defaultValue: () => BREADCRUMB_TYPES,\n message: `should be null or a list of available breadcrumb types (${BREADCRUMB_TYPES.join(',')})`,\n validate: value => value === null || (isArray(value) && reduce(value, (accum, maybeType) => {\n if (accum === false) return accum\n return includes(BREADCRUMB_TYPES, maybeType)\n }, true))\n },\n context: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || typeof value === 'string'\n },\n user: {\n defaultValue: () => ({}),\n message: 'should be an object with { id, email, name } properties',\n validate: value =>\n (value === null) ||\n (value && reduce(\n keys(value),\n (accum, key) => accum && includes(['id', 'email', 'name'], key),\n true\n ))\n },\n metadata: {\n defaultValue: () => ({}),\n message: 'should be an object',\n validate: (value) => typeof value === 'object' && value !== null\n },\n logger: {\n defaultValue: () => undefined,\n message: 'should be null or an object with methods { debug, info, warn, error }',\n validate: value =>\n (!value) ||\n (value && reduce(\n ['debug', 'info', 'warn', 'error'],\n (accum, method) => accum && typeof value[method] === 'function',\n true\n ))\n },\n redactedKeys: {\n defaultValue: () => ['password'],\n message: 'should be an array of strings|regexes',\n validate: value =>\n isArray(value) && value.length === filter(value, s =>\n (typeof s === 'string' || (s && typeof s.test === 'function'))\n ).length\n },\n plugins: {\n defaultValue: () => ([]),\n message: 'should be an array of plugin objects',\n validate: value =>\n isArray(value) && value.length === filter(value, p =>\n (p && typeof p === 'object' && typeof p.load === 'function')\n ).length\n },\n featureFlags: {\n defaultValue: () => [],\n message: 'should be an array of objects that have a \"name\" property',\n validate: value =>\n isArray(value) && value.length === filter(value, feature =>\n feature && typeof feature === 'object' && typeof feature.name === 'string'\n ).length\n }\n}\n", "// extends helper from babel\n// https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393\nmodule.exports = function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i]\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n return target\n}\n", "const reduce = require('./reduce')\n\n// Array#map\nmodule.exports = (arr, fn) =>\n reduce(arr, (accum, item, i, arr) => accum.concat(fn(item, i, arr)), [])\n", "const { schema } = require('@bugsnag/core/config')\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst assign = require('@bugsnag/core/lib/es-utils/assign')\n\nmodule.exports = {\n releaseStage: assign({}, schema.releaseStage, {\n defaultValue: () => {\n if (/^localhost(:\\d+)?$/.test(window.location.host)) return 'development'\n return 'production'\n }\n }),\n appType: {\n ...schema.appType,\n defaultValue: () => 'browser'\n },\n logger: assign({}, schema.logger, {\n defaultValue: () =>\n // set logger based on browser capability\n (typeof console !== 'undefined' && typeof console.debug === 'function')\n ? getPrefixedConsole()\n : undefined\n })\n}\n\nconst getPrefixedConsole = () => {\n const logger = {}\n const consoleLog = console.log\n map(['debug', 'info', 'warn', 'error'], (method) => {\n const consoleMethod = console[method]\n logger[method] = typeof consoleMethod === 'function'\n ? consoleMethod.bind(console, '[bugsnag]')\n : consoleLog.bind(console, '[bugsnag]')\n })\n return logger\n}\n", "class Breadcrumb {\n constructor (message, metadata, type, timestamp = new Date()) {\n this.type = type\n this.message = message\n this.metadata = metadata\n this.timestamp = timestamp\n }\n\n toJSON () {\n return {\n type: this.type,\n name: this.message,\n timestamp: this.timestamp,\n metaData: this.metadata\n }\n }\n}\n\nmodule.exports = Breadcrumb\n", "(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function() {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function() {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n\n var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (obj instanceof Object) {\n for (var i = 0; i < props.length; i++) {\n if (obj.hasOwnProperty(props[i]) && obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function() {\n return this.args;\n },\n setArgs: function(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n\n getEvalOrigin: function() {\n return this.evalOrigin;\n },\n setEvalOrigin: function(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n\n toString: function() {\n var functionName = this.getFunctionName() || '{anonymous}';\n var args = '(' + (this.getArgs() || []).join(',') + ')';\n var fileName = this.getFileName() ? ('@' + this.getFileName()) : '';\n var lineNumber = _isNumber(this.getLineNumber()) ? (':' + this.getLineNumber()) : '';\n var columnNumber = _isNumber(this.getColumnNumber()) ? (':' + this.getColumnNumber()) : '';\n return functionName + args + fileName + lineNumber + columnNumber;\n }\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n return function(v) {\n this[p] = Boolean(v);\n };\n })(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n return function(v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n })(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n return function(v) {\n this[p] = String(v);\n };\n })(stringProps[k]);\n }\n\n return StackFrame;\n}));\n", "(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+\\:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?:\\:(\\d+))?(?:\\:(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[\\(\\)]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n var tokens = sanitizedLine.split(/\\s+/).slice(1);\n // if a location was matched, pass it to extractLocation() otherwise pop the last token\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^\\)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n}));\n", "module.exports = require('error-stack-parser')\n", "module.exports = function (data, replacer, space, opts) {\n var redactedKeys = opts && opts.redactedKeys ? opts.redactedKeys : []\n var redactedPaths = opts && opts.redactedPaths ? opts.redactedPaths : []\n return JSON.stringify(\n prepareObjForSerialization(data, redactedKeys, redactedPaths),\n replacer,\n space\n )\n}\n\nvar MAX_DEPTH = 20\nvar MAX_EDGES = 25000\nvar MIN_PRESERVED_DEPTH = 8\n\nvar REPLACEMENT_NODE = '...'\n\nfunction isError (o) {\n return o instanceof Error ||\n /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o))\n}\n\nfunction throwsMessage (err) {\n return '[Throws: ' + (err ? err.message : '?') + ']'\n}\n\nfunction find (haystack, needle) {\n for (var i = 0, len = haystack.length; i < len; i++) {\n if (haystack[i] === needle) return true\n }\n return false\n}\n\n// returns true if the string `path` starts with any of the provided `paths`\nfunction isDescendent (paths, path) {\n for (var i = 0, len = paths.length; i < len; i++) {\n if (path.indexOf(paths[i]) === 0) return true\n }\n return false\n}\n\nfunction shouldRedact (patterns, key) {\n for (var i = 0, len = patterns.length; i < len; i++) {\n if (typeof patterns[i] === 'string' && patterns[i].toLowerCase() === key.toLowerCase()) return true\n if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true\n }\n return false\n}\n\nfunction isArray (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nfunction safelyGetProp (obj, prop) {\n try {\n return obj[prop]\n } catch (err) {\n return throwsMessage(err)\n }\n}\n\nfunction prepareObjForSerialization (obj, redactedKeys, redactedPaths) {\n var seen = [] // store references to objects we have seen before\n var edges = 0\n\n function visit (obj, path) {\n function edgesExceeded () {\n return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES\n }\n\n edges++\n\n if (path.length > MAX_DEPTH) return REPLACEMENT_NODE\n if (edgesExceeded()) return REPLACEMENT_NODE\n if (obj === null || typeof obj !== 'object') return obj\n if (find(seen, obj)) return '[Circular]'\n\n seen.push(obj)\n\n if (typeof obj.toJSON === 'function') {\n try {\n // we're not going to count this as an edge because it\n // replaces the value of the currently visited object\n edges--\n var fResult = visit(obj.toJSON(), path)\n seen.pop()\n return fResult\n } catch (err) {\n return throwsMessage(err)\n }\n }\n\n var er = isError(obj)\n if (er) {\n edges--\n var eResult = visit({ name: obj.name, message: obj.message }, path)\n seen.pop()\n return eResult\n }\n\n if (isArray(obj)) {\n var aResult = []\n for (var i = 0, len = obj.length; i < len; i++) {\n if (edgesExceeded()) {\n aResult.push(REPLACEMENT_NODE)\n break\n }\n aResult.push(visit(obj[i], path.concat('[]')))\n }\n seen.pop()\n return aResult\n }\n\n var result = {}\n try {\n for (var prop in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue\n if (isDescendent(redactedPaths, path.join('.')) && shouldRedact(redactedKeys, prop)) {\n result[prop] = '[REDACTED]'\n continue\n }\n if (edgesExceeded()) {\n result[prop] = REPLACEMENT_NODE\n break\n }\n result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop))\n }\n } catch (e) {}\n seen.pop()\n return result\n }\n\n return visit(obj, [])\n}\n", "const map = require('./es-utils/map')\nconst filter = require('./es-utils/filter')\nconst isArray = require('./es-utils/is-array')\nconst jsonStringify = require('@bugsnag/safe-json-stringify')\n\nfunction add (existingFeatures, existingFeatureKeys, name, variant) {\n if (typeof name !== 'string') {\n return\n }\n\n if (variant === undefined) {\n variant = null\n } else if (variant !== null && typeof variant !== 'string') {\n variant = jsonStringify(variant)\n }\n\n const existingIndex = existingFeatureKeys[name]\n if (typeof existingIndex === 'number') {\n existingFeatures[existingIndex] = { name, variant }\n return\n }\n\n existingFeatures.push({ name, variant })\n existingFeatureKeys[name] = existingFeatures.length - 1\n}\n\nfunction merge (existingFeatures, newFeatures, existingFeatureKeys) {\n if (!isArray(newFeatures)) {\n return\n }\n\n for (let i = 0; i < newFeatures.length; ++i) {\n const feature = newFeatures[i]\n\n if (feature === null || typeof feature !== 'object') {\n continue\n }\n\n // 'add' will handle if 'name' doesn't exist & 'variant' is optional\n add(existingFeatures, existingFeatureKeys, feature.name, feature.variant)\n }\n\n return existingFeatures\n}\n\n// convert feature flags from a map of 'name -> variant' into the format required\n// by the Bugsnag Event API:\n// [{ featureFlag: 'name', variant: 'variant' }, { featureFlag: 'name 2' }]\nfunction toEventApi (featureFlags) {\n return map(\n filter(featureFlags, Boolean),\n ({ name, variant }) => {\n const flag = { featureFlag: name }\n\n // don't add a 'variant' property unless there's actually a value\n if (typeof variant === 'string') {\n flag.variant = variant\n }\n\n return flag\n }\n )\n}\n\nfunction clear (features, featuresIndex, name) {\n const existingIndex = featuresIndex[name]\n if (typeof existingIndex === 'number') {\n features[existingIndex] = null\n delete featuresIndex[name]\n }\n}\n\nmodule.exports = { add, clear, merge, toEventApi }\n", "// Given `err` which may be an error, does it have a stack property which is a string?\nmodule.exports = err =>\n !!err &&\n (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) &&\n typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' &&\n err.stack !== `${err.name}: ${err.message}`\n", "\n/**\n * Expose `isError`.\n */\n\nmodule.exports = isError;\n\n/**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\nfunction isError(value) {\n switch (Object.prototype.toString.call(value)) {\n case '[object Error]': return true;\n case '[object Exception]': return true;\n case '[object DOMException]': return true;\n default: return value instanceof Error;\n }\n}\n", "module.exports = require('iserror')\n", "const assign = require('./es-utils/assign')\n\nconst add = (state, section, keyOrObj, maybeVal) => {\n if (!section) return\n let updates\n\n // addMetadata(\"section\", null) -> clears section\n if (keyOrObj === null) return clear(state, section)\n\n // normalise the two supported input types into object form\n if (typeof keyOrObj === 'object') updates = keyOrObj\n if (typeof keyOrObj === 'string') updates = { [keyOrObj]: maybeVal }\n\n // exit if we don't have an updates object at this point\n if (!updates) return\n\n // ensure a section with this name exists\n if (!state[section]) state[section] = {}\n\n // merge the updates with the existing section\n state[section] = assign({}, state[section], updates)\n}\n\nconst get = (state, section, key) => {\n if (typeof section !== 'string') return undefined\n if (!key) {\n return state[section]\n }\n if (state[section]) {\n return state[section][key]\n }\n return undefined\n}\n\nconst clear = (state, section, key) => {\n if (typeof section !== 'string') return\n\n // clear an entire section\n if (!key) {\n delete state[section]\n return\n }\n\n // clear a single value from a section\n if (state[section]) {\n delete state[section][key]\n }\n}\n\nmodule.exports = { add, get, clear }\n", "(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stack-generator', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.StackGenerator = factory(root.StackFrame);\n }\n}(this, function(StackFrame) {\n return {\n backtrace: function StackGenerator$$backtrace(opts) {\n var stack = [];\n var maxStackSize = 10;\n\n if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n maxStackSize = opts.maxStackSize;\n }\n\n var curr = arguments.callee;\n while (curr && stack.length < maxStackSize && curr['arguments']) {\n // Allow V8 optimizations\n var args = new Array(curr['arguments'].length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = curr['arguments'][i];\n }\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(new StackFrame({functionName: RegExp.$1 || undefined, args: args}));\n } else {\n stack.push(new StackFrame({args: args}));\n }\n\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n return stack;\n }\n };\n}));\n", "const ErrorStackParser = require('./lib/error-stack-parser')\nconst StackGenerator = require('stack-generator')\nconst hasStack = require('./lib/has-stack')\nconst map = require('./lib/es-utils/map')\nconst reduce = require('./lib/es-utils/reduce')\nconst filter = require('./lib/es-utils/filter')\nconst assign = require('./lib/es-utils/assign')\nconst metadataDelegate = require('./lib/metadata-delegate')\nconst featureFlagDelegate = require('./lib/feature-flag-delegate')\nconst isError = require('./lib/iserror')\n\nclass Event {\n constructor (errorClass, errorMessage, stacktrace = [], handledState = defaultHandledState(), originalError) {\n this.apiKey = undefined\n this.context = undefined\n this.groupingHash = undefined\n this.originalError = originalError\n\n this._handledState = handledState\n this.severity = this._handledState.severity\n this.unhandled = this._handledState.unhandled\n\n this.app = {}\n this.device = {}\n this.request = {}\n\n this.breadcrumbs = []\n this.threads = []\n\n this._metadata = {}\n this._features = []\n this._featuresIndex = {}\n this._user = {}\n this._session = undefined\n\n this.errors = [\n createBugsnagError(errorClass, errorMessage, Event.__type, stacktrace)\n ]\n\n // Flags.\n // Note these are not initialised unless they are used\n // to save unnecessary bytes in the browser bundle\n\n /* this.attemptImmediateDelivery, default: true */\n }\n\n addMetadata (section, keyOrObj, maybeVal) {\n return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n }\n\n getMetadata (section, key) {\n return metadataDelegate.get(this._metadata, section, key)\n }\n\n clearMetadata (section, key) {\n return metadataDelegate.clear(this._metadata, section, key)\n }\n\n addFeatureFlag (name, variant = null) {\n featureFlagDelegate.add(this._features, this._featuresIndex, name, variant)\n }\n\n addFeatureFlags (featureFlags) {\n featureFlagDelegate.merge(this._features, featureFlags, this._featuresIndex)\n }\n\n getFeatureFlags () {\n return featureFlagDelegate.toEventApi(this._features)\n }\n\n clearFeatureFlag (name) {\n featureFlagDelegate.clear(this._features, this._featuresIndex, name)\n }\n\n clearFeatureFlags () {\n this._features = []\n this._featuresIndex = {}\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n toJSON () {\n return {\n payloadVersion: '4',\n exceptions: map(this.errors, er => assign({}, er, { message: er.errorMessage })),\n severity: this.severity,\n unhandled: this._handledState.unhandled,\n severityReason: this._handledState.severityReason,\n app: this.app,\n device: this.device,\n request: this.request,\n breadcrumbs: this.breadcrumbs,\n context: this.context,\n groupingHash: this.groupingHash,\n metaData: this._metadata,\n user: this._user,\n session: this._session,\n featureFlags: this.getFeatureFlags()\n }\n }\n}\n\n// takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe)\n// and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload)\nconst formatStackframe = frame => {\n const f = {\n file: frame.fileName,\n method: normaliseFunctionName(frame.functionName),\n lineNumber: frame.lineNumber,\n columnNumber: frame.columnNumber,\n code: undefined,\n inProject: undefined\n }\n // Some instances result in no file:\n // - calling notify() from chrome's terminal results in no file/method.\n // - non-error exception thrown from global code in FF\n // This adds one.\n if (f.lineNumber > -1 && !f.file && !f.method) {\n f.file = 'global code'\n }\n return f\n}\n\nconst normaliseFunctionName = name => /^global code$/i.test(name) ? 'global code' : name\n\nconst defaultHandledState = () => ({\n unhandled: false,\n severity: 'warning',\n severityReason: { type: 'handledException' }\n})\n\nconst ensureString = (str) => typeof str === 'string' ? str : ''\n\nfunction createBugsnagError (errorClass, errorMessage, type, stacktrace) {\n return {\n errorClass: ensureString(errorClass),\n errorMessage: ensureString(errorMessage),\n type,\n stacktrace: reduce(stacktrace, (accum, frame) => {\n const f = formatStackframe(frame)\n // don't include a stackframe if none of its properties are defined\n try {\n if (JSON.stringify(f) === '{}') return accum\n return accum.concat(f)\n } catch (e) {\n return accum\n }\n }, [])\n }\n}\n\nfunction getCauseStack (error) {\n if (error.cause) {\n return [error, ...getCauseStack(error.cause)]\n } else {\n return [error]\n }\n}\n\n// Helpers\n\nEvent.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) {\n if (hasStack(error)) return ErrorStackParser.parse(error).slice(errorFramesToSkip)\n // error wasn't provided or didn't have a stacktrace so try to walk the callstack\n try {\n return filter(StackGenerator.backtrace(), frame =>\n (frame.functionName || '').indexOf('StackGenerator$$') === -1\n ).slice(1 + backtraceFramesToSkip)\n } catch (e) {\n return []\n }\n}\n\nEvent.create = function (maybeError, tolerateNonErrors, handledState, component, errorFramesToSkip = 0, logger) {\n const [error, internalFrames] = normaliseError(maybeError, tolerateNonErrors, component, logger)\n let event\n try {\n const stacktrace = Event.getStacktrace(\n error,\n // if an error was created/throw in the normaliseError() function, we need to\n // tell the getStacktrace() function to skip the number of frames we know will\n // be from our own functions. This is added to the number of frames deep we\n // were told about\n internalFrames > 0 ? 1 + internalFrames + errorFramesToSkip : 0,\n // if there's no stacktrace, the callstack may be walked to generated one.\n // this is how many frames should be removed because they come from our library\n 1 + errorFramesToSkip\n )\n event = new Event(error.name, error.message, stacktrace, handledState, maybeError)\n } catch (e) {\n event = new Event(error.name, error.message, [], handledState, maybeError)\n }\n if (error.name === 'InvalidError') {\n event.addMetadata(`${component}`, 'non-error parameter', makeSerialisable(maybeError))\n }\n if (error.cause) {\n const causes = getCauseStack(error).slice(1)\n const normalisedCauses = map(causes, (cause) => {\n // Only get stacktrace for error causes that are a valid JS Error and already have a stack\n const stacktrace = (isError(cause) && hasStack(cause)) ? ErrorStackParser.parse(cause) : []\n const [error] = normaliseError(cause, true, 'error cause')\n if (error.name === 'InvalidError') event.addMetadata('error cause', makeSerialisable(cause))\n return createBugsnagError(error.name, error.message, Event.__type, stacktrace)\n })\n\n event.errors.push(...normalisedCauses)\n }\n\n return event\n}\n\nconst makeSerialisable = (err) => {\n if (err === null) return 'null'\n if (err === undefined) return 'undefined'\n return err\n}\n\nconst normaliseError = (maybeError, tolerateNonErrors, component, logger) => {\n let error\n let internalFrames = 0\n\n const createAndLogInputError = (reason) => {\n const verb = (component === 'error cause' ? 'was' : 'received')\n if (logger) logger.warn(`${component} ${verb} a non-error: \"${reason}\"`)\n const err = new Error(`${component} ${verb} a non-error. See \"${component}\" tab for more detail.`)\n err.name = 'InvalidError'\n return err\n }\n\n // In some cases:\n //\n // - the promise rejection handler (both in the browser and node)\n // - the node uncaughtException handler\n //\n // We are really limited in what we can do to get a stacktrace. So we use the\n // tolerateNonErrors option to ensure that the resulting error communicates as\n // such.\n if (!tolerateNonErrors) {\n if (isError(maybeError)) {\n error = maybeError\n } else {\n error = createAndLogInputError(typeof maybeError)\n internalFrames += 2\n }\n } else {\n switch (typeof maybeError) {\n case 'string':\n case 'number':\n case 'boolean':\n error = new Error(String(maybeError))\n internalFrames += 1\n break\n case 'function':\n error = createAndLogInputError('function')\n internalFrames += 2\n break\n case 'object':\n if (maybeError !== null && isError(maybeError)) {\n error = maybeError\n } else if (maybeError !== null && hasNecessaryFields(maybeError)) {\n error = new Error(maybeError.message || maybeError.errorMessage)\n error.name = maybeError.name || maybeError.errorClass\n internalFrames += 1\n } else {\n error = createAndLogInputError(maybeError === null ? 'null' : 'unsupported object')\n internalFrames += 2\n }\n break\n default:\n error = createAndLogInputError('nothing')\n internalFrames += 2\n }\n }\n\n if (!hasStack(error)) {\n // in IE10/11 a new Error() doesn't have a stacktrace until you throw it, so try that here\n try {\n throw error\n } catch (e) {\n if (hasStack(e)) {\n error = e\n // if the error only got a stacktrace after we threw it here, we know it\n // will only have one extra internal frame from this function, regardless\n // of whether it went through createAndLogInputError() or not\n internalFrames = 1\n }\n }\n }\n\n return [error, internalFrames]\n}\n\n// default value for stacktrace.type\nEvent.__type = 'browserjs'\n\nconst hasNecessaryFields = error =>\n (typeof error.name === 'string' || typeof error.errorClass === 'string') &&\n (typeof error.message === 'string' || typeof error.errorMessage === 'string')\n\nmodule.exports = Event\n", "// This is a heavily modified/simplified version of\n// https://github.com/othiym23/async-some\n// with the logic flipped so that it is akin to the\n// synchronous \"every\" method instead of \"some\".\n\n// run the asynchronous test function (fn) over each item in the array (arr)\n// in series until:\n// - fn(item, cb) => calls cb(null, false)\n// - or the end of the array is reached\n// the callback (cb) will be passed (null, false) if any of the items in arr\n// caused fn to call back with false, otherwise it will be passed (null, true)\nmodule.exports = (arr, fn, cb) => {\n let index = 0\n\n const next = () => {\n if (index >= arr.length) return cb(null, true)\n fn(arr[index], (err, result) => {\n if (err) return cb(err)\n if (result === false) return cb(null, false)\n index++\n next()\n })\n }\n\n next()\n}\n", "const some = require('./async-every')\n\nmodule.exports = (callbacks, event, onCallbackError, cb) => {\n // This function is how we support different kinds of callback:\n // - synchronous - return value\n // - node-style async with callback - cb(err, value)\n // - promise/thenable - resolve(value)\n // It normalises each of these into the lowest common denominator – a node-style callback\n const runMaybeAsyncCallback = (fn, cb) => {\n if (typeof fn !== 'function') return cb(null)\n try {\n // if function appears sync…\n if (fn.length !== 2) {\n const ret = fn(event)\n // check if it returned a \"thenable\" (promise)\n if (ret && typeof ret.then === 'function') {\n return ret.then(\n // resolve\n val => setTimeout(() => cb(null, val)),\n // reject\n err => {\n setTimeout(() => {\n onCallbackError(err)\n return cb(null, true)\n })\n }\n )\n }\n return cb(null, ret)\n }\n // if function is async…\n fn(event, (err, result) => {\n if (err) {\n onCallbackError(err)\n return cb(null)\n }\n cb(null, result)\n })\n } catch (e) {\n onCallbackError(e)\n cb(null)\n }\n }\n\n some(callbacks, runMaybeAsyncCallback, cb)\n}\n", "module.exports = (callbacks, callbackArg, callbackType, logger) => {\n let ignore = false\n const cbs = callbacks.slice()\n while (!ignore) {\n if (!cbs.length) break\n try {\n ignore = cbs.pop()(callbackArg) === false\n } catch (e) {\n logger.error(`Error occurred in ${callbackType} callback, continuing anyway…`)\n logger.error(e)\n }\n }\n return ignore\n}\n", "module.exports = function pad (num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n};\n", "var pad = require('./pad.js');\n\nvar env = typeof window === 'object' ? window : self;\nvar globalCount = 0;\nfor (var prop in env) {\n if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n}\nvar mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\nvar clientId = pad((mimeTypesLength +\n navigator.userAgent.length).toString(36) +\n globalCount.toString(36), 4);\n\nmodule.exports = function fingerprint () {\n return clientId;\n};\n", "/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\nvar fingerprint = require('./lib/fingerprint.js');\nvar pad = require('./lib/pad.js');\n\nvar c = 0,\n blockSize = 4,\n base = 36,\n discreteValues = Math.pow(base, blockSize);\n\nfunction randomBlock () {\n return pad((Math.random() *\n discreteValues << 0)\n .toString(base), blockSize);\n}\n\nfunction safeCounter () {\n c = c < discreteValues ? c : 0;\n c++; // this is not subliminal\n return c - 1;\n}\n\nfunction cuid () {\n // Starting with a lowercase letter makes\n // it HTML element ID friendly.\n var letter = 'c', // hard-coded allows for sequential access\n\n // timestamp\n // warning: this exposes the exact date and time\n // that the uid was created.\n timestamp = (new Date().getTime()).toString(base),\n\n // Prevent same-machine collisions.\n counter = pad(safeCounter().toString(base), blockSize),\n\n // A few chars to generate distinct ids for different\n // clients (so different computers are far less\n // likely to generate the same id)\n print = fingerprint(),\n\n // Grab some more chars from Math.random()\n random = randomBlock() + randomBlock();\n\n return letter + timestamp + counter + print + random;\n}\n\ncuid.fingerprint = fingerprint;\n\nmodule.exports = cuid;\n", "const cuid = require('@bugsnag/cuid')\n\nclass Session {\n constructor () {\n this.id = cuid()\n this.startedAt = new Date()\n this._handled = 0\n this._unhandled = 0\n this._user = {}\n this.app = {}\n this.device = {}\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n toJSON () {\n return {\n id: this.id,\n startedAt: this.startedAt,\n events: { handled: this._handled, unhandled: this._unhandled }\n }\n }\n\n _track (event) {\n this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1\n }\n}\n\nmodule.exports = Session\n", "const config = require('./config')\nconst Event = require('./event')\nconst Breadcrumb = require('./breadcrumb')\nconst Session = require('./session')\nconst map = require('./lib/es-utils/map')\nconst includes = require('./lib/es-utils/includes')\nconst filter = require('./lib/es-utils/filter')\nconst reduce = require('./lib/es-utils/reduce')\nconst keys = require('./lib/es-utils/keys')\nconst assign = require('./lib/es-utils/assign')\nconst runCallbacks = require('./lib/callback-runner')\nconst metadataDelegate = require('./lib/metadata-delegate')\nconst runSyncCallbacks = require('./lib/sync-callback-runner')\nconst BREADCRUMB_TYPES = require('./lib/breadcrumb-types')\nconst { add, clear, merge } = require('./lib/feature-flag-delegate')\n\nconst noop = () => {}\n\nclass Client {\n constructor (configuration, schema = config.schema, internalPlugins = [], notifier) {\n // notifier id\n this._notifier = notifier\n\n // intialise opts and config\n this._config = {}\n this._schema = schema\n\n // i/o\n this._delivery = { sendSession: noop, sendEvent: noop }\n this._logger = { debug: noop, info: noop, warn: noop, error: noop }\n\n // plugins\n this._plugins = {}\n\n // state\n this._breadcrumbs = []\n this._session = null\n this._metadata = {}\n this._featuresIndex = {}\n this._features = []\n this._context = undefined\n this._user = {}\n\n // callbacks:\n // e: onError\n // s: onSession\n // sp: onSessionPayload\n // b: onBreadcrumb\n // (note these names are minified by hand because object\n // properties are not safe to minify automatically)\n this._cbs = {\n e: [],\n s: [],\n sp: [],\n b: []\n }\n\n // expose internal constructors\n this.Client = Client\n this.Event = Event\n this.Breadcrumb = Breadcrumb\n this.Session = Session\n\n this._config = this._configure(configuration, internalPlugins)\n map(internalPlugins.concat(this._config.plugins), pl => {\n if (pl) this._loadPlugin(pl)\n })\n\n // when notify() is called we need to know how many frames are from our own source\n // this inital value is 1 not 0 because we wrap notify() to ensure it is always\n // bound to have the client as its `this` value – see below.\n this._depth = 1\n\n const self = this\n const notify = this.notify\n this.notify = function () {\n return notify.apply(self, arguments)\n }\n }\n\n addMetadata (section, keyOrObj, maybeVal) {\n return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n }\n\n getMetadata (section, key) {\n return metadataDelegate.get(this._metadata, section, key)\n }\n\n clearMetadata (section, key) {\n return metadataDelegate.clear(this._metadata, section, key)\n }\n\n addFeatureFlag (name, variant = null) {\n add(this._features, this._featuresIndex, name, variant)\n }\n\n addFeatureFlags (featureFlags) {\n merge(this._features, featureFlags, this._featuresIndex)\n }\n\n clearFeatureFlag (name) {\n clear(this._features, this._featuresIndex, name)\n }\n\n clearFeatureFlags () {\n this._features = []\n this._featuresIndex = {}\n }\n\n getContext () {\n return this._context\n }\n\n setContext (c) {\n this._context = c\n }\n\n _configure (opts, internalPlugins) {\n const schema = reduce(internalPlugins, (schema, plugin) => {\n if (plugin && plugin.configSchema) return assign({}, schema, plugin.configSchema)\n return schema\n }, this._schema)\n\n // accumulate configuration and error messages\n const { errors, config } = reduce(keys(schema), (accum, key) => {\n const defaultValue = schema[key].defaultValue(opts[key])\n\n if (opts[key] !== undefined) {\n const valid = schema[key].validate(opts[key])\n if (!valid) {\n accum.errors[key] = schema[key].message\n accum.config[key] = defaultValue\n } else {\n if (schema[key].allowPartialObject) {\n accum.config[key] = assign(defaultValue, opts[key])\n } else {\n accum.config[key] = opts[key]\n }\n }\n } else {\n accum.config[key] = defaultValue\n }\n\n return accum\n }, { errors: {}, config: {} })\n\n if (schema.apiKey) {\n // missing api key is the only fatal error\n if (!config.apiKey) throw new Error('No Bugsnag API Key set')\n // warn about an apikey that is not of the expected format\n if (!/^[0-9a-f]{32}$/i.test(config.apiKey)) errors.apiKey = 'should be a string of 32 hexadecimal characters'\n }\n\n // update and elevate some options\n this._metadata = assign({}, config.metadata)\n merge(this._features, config.featureFlags, this._featuresIndex)\n this._user = assign({}, config.user)\n this._context = config.context\n if (config.logger) this._logger = config.logger\n\n // add callbacks\n if (config.onError) this._cbs.e = this._cbs.e.concat(config.onError)\n if (config.onBreadcrumb) this._cbs.b = this._cbs.b.concat(config.onBreadcrumb)\n if (config.onSession) this._cbs.s = this._cbs.s.concat(config.onSession)\n\n // finally warn about any invalid config where we fell back to the default\n if (keys(errors).length) {\n this._logger.warn(generateConfigErrorMessage(errors, opts))\n }\n\n return config\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n _loadPlugin (plugin) {\n const result = plugin.load(this)\n // JS objects are not the safest way to store arbitrarily keyed values,\n // so bookend the key with some characters that prevent tampering with\n // stuff like __proto__ etc. (only store the result if the plugin had a\n // name)\n if (plugin.name) this._plugins[`~${plugin.name}~`] = result\n return this\n }\n\n getPlugin (name) {\n return this._plugins[`~${name}~`]\n }\n\n _setDelivery (d) {\n this._delivery = d(this)\n }\n\n startSession () {\n const session = new Session()\n\n session.app.releaseStage = this._config.releaseStage\n session.app.version = this._config.appVersion\n session.app.type = this._config.appType\n\n session._user = assign({}, this._user)\n\n // run onSession callbacks\n const ignore = runSyncCallbacks(this._cbs.s, session, 'onSession', this._logger)\n\n if (ignore) {\n this._logger.debug('Session not started due to onSession callback')\n return this\n }\n return this._sessionDelegate.startSession(this, session)\n }\n\n addOnError (fn, front = false) {\n this._cbs.e[front ? 'unshift' : 'push'](fn)\n }\n\n removeOnError (fn) {\n this._cbs.e = filter(this._cbs.e, f => f !== fn)\n }\n\n _addOnSessionPayload (fn) {\n this._cbs.sp.push(fn)\n }\n\n addOnSession (fn) {\n this._cbs.s.push(fn)\n }\n\n removeOnSession (fn) {\n this._cbs.s = filter(this._cbs.s, f => f !== fn)\n }\n\n addOnBreadcrumb (fn, front = false) {\n this._cbs.b[front ? 'unshift' : 'push'](fn)\n }\n\n removeOnBreadcrumb (fn) {\n this._cbs.b = filter(this._cbs.b, f => f !== fn)\n }\n\n pauseSession () {\n return this._sessionDelegate.pauseSession(this)\n }\n\n resumeSession () {\n return this._sessionDelegate.resumeSession(this)\n }\n\n leaveBreadcrumb (message, metadata, type) {\n // coerce bad values so that the defaults get set\n message = typeof message === 'string' ? message : ''\n type = (typeof type === 'string' && includes(BREADCRUMB_TYPES, type)) ? type : 'manual'\n metadata = typeof metadata === 'object' && metadata !== null ? metadata : {}\n\n // if no message, discard\n if (!message) return\n\n const crumb = new Breadcrumb(message, metadata, type)\n\n // run onBreadcrumb callbacks\n const ignore = runSyncCallbacks(this._cbs.b, crumb, 'onBreadcrumb', this._logger)\n\n if (ignore) {\n this._logger.debug('Breadcrumb not attached due to onBreadcrumb callback')\n return\n }\n\n // push the valid crumb onto the queue and maintain the length\n this._breadcrumbs.push(crumb)\n if (this._breadcrumbs.length > this._config.maxBreadcrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(this._breadcrumbs.length - this._config.maxBreadcrumbs)\n }\n }\n\n _isBreadcrumbTypeEnabled (type) {\n const types = this._config.enabledBreadcrumbTypes\n\n return types === null || includes(types, type)\n }\n\n notify (maybeError, onError, postReportCallback = noop) {\n const event = Event.create(maybeError, true, undefined, 'notify()', this._depth + 1, this._logger)\n this._notify(event, onError, postReportCallback)\n }\n\n _notify (event, onError, postReportCallback = noop) {\n event.app = assign({}, event.app, {\n releaseStage: this._config.releaseStage,\n version: this._config.appVersion,\n type: this._config.appType\n })\n event.context = event.context || this._context\n event._metadata = assign({}, event._metadata, this._metadata)\n event._user = assign({}, event._user, this._user)\n event.breadcrumbs = this._breadcrumbs.slice()\n merge(event._features, this._features, event._featuresIndex)\n\n // exit early if events should not be sent on the current releaseStage\n if (this._config.enabledReleaseStages !== null && !includes(this._config.enabledReleaseStages, this._config.releaseStage)) {\n this._logger.warn('Event not sent due to releaseStage/enabledReleaseStages configuration')\n return postReportCallback(null, event)\n }\n\n const originalSeverity = event.severity\n\n const onCallbackError = err => {\n // errors in callbacks are tolerated but we want to log them out\n this._logger.error('Error occurred in onError callback, continuing anyway…')\n this._logger.error(err)\n }\n\n const callbacks = [].concat(this._cbs.e).concat(onError)\n runCallbacks(callbacks, event, onCallbackError, (err, shouldSend) => {\n if (err) onCallbackError(err)\n\n if (!shouldSend) {\n this._logger.debug('Event not sent due to onError callback')\n return postReportCallback(null, event)\n }\n\n if (this._isBreadcrumbTypeEnabled('error')) {\n // only leave a crumb for the error if actually got sent\n Client.prototype.leaveBreadcrumb.call(this, event.errors[0].errorClass, {\n errorClass: event.errors[0].errorClass,\n errorMessage: event.errors[0].errorMessage,\n severity: event.severity\n }, 'error')\n }\n\n if (originalSeverity !== event.severity) {\n event._handledState.severityReason = { type: 'userCallbackSetSeverity' }\n }\n\n if (event.unhandled !== event._handledState.unhandled) {\n event._handledState.severityReason.unhandledOverridden = true\n event._handledState.unhandled = event.unhandled\n }\n\n if (this._session) {\n this._session._track(event)\n event._session = this._session\n }\n\n this._delivery.sendEvent({\n apiKey: event.apiKey || this._config.apiKey,\n notifier: this._notifier,\n events: [event]\n }, (err) => postReportCallback(err, event))\n })\n }\n}\n\nconst generateConfigErrorMessage = (errors, rawInput) => {\n const er = new Error(\n `Invalid configuration\\n${map(keys(errors), key => ` - ${key} ${errors[key]}, got ${stringify(rawInput[key])}`).join('\\n\\n')}`)\n return er\n}\n\nconst stringify = val => {\n switch (typeof val) {\n case 'string':\n case 'number':\n case 'object':\n return JSON.stringify(val)\n default: return String(val)\n }\n}\n\nmodule.exports = Client\n", "const jsonStringify = require('@bugsnag/safe-json-stringify')\nconst EVENT_REDACTION_PATHS = [\n 'events.[].metaData',\n 'events.[].breadcrumbs.[].metaData',\n 'events.[].request'\n]\n\nmodule.exports.event = (event, redactedKeys) => {\n let payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n if (payload.length > 10e5) {\n event.events[0]._metadata = {\n notifier:\n`WARNING!\nSerialized payload was ${payload.length / 10e5}MB (limit = 1MB)\nmetadata was removed`\n }\n payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n }\n return payload\n}\n\nmodule.exports.session = (session, redactedKeys) => {\n const payload = jsonStringify(session, null, null)\n return payload\n}\n", "const payload = require('@bugsnag/core/lib/json-payload')\n\nmodule.exports = (client, win = window) => ({\n sendEvent: (event, cb = () => {}) => {\n const url = getApiUrl(client._config, 'notify', '4', win)\n const body = payload.event(event, client._config.redactedKeys)\n\n const req = new win.XDomainRequest()\n req.onload = function () {\n cb(null)\n }\n req.onerror = function () {\n const err = new Error('Event failed to send')\n client._logger.error('Event failed to send…', err)\n if (body.length > 10e5) {\n client._logger.warn(`Event oversized (${(body.length / 10e5).toFixed(2)} MB)`)\n }\n cb(err)\n }\n req.open('POST', url)\n setTimeout(() => {\n try {\n req.send(body)\n } catch (e) {\n client._logger.error(e)\n cb(e)\n }\n }, 0)\n },\n sendSession: (session, cb = () => {}) => {\n const url = getApiUrl(client._config, 'sessions', '1', win)\n const req = new win.XDomainRequest()\n req.onload = function () {\n cb(null)\n }\n req.open('POST', url)\n setTimeout(() => {\n try {\n req.send(payload.session(session, client._config.redactedKeys))\n } catch (e) {\n client._logger.error(e)\n cb(e)\n }\n }, 0)\n }\n})\n\nconst getApiUrl = (config, endpoint, version, win) => {\n // IE8 doesn't support Date.prototype.toISOstring(), but it does convert a date\n // to an ISO string when you use JSON stringify. Simply parsing the result of\n // JSON.stringify is smaller than using a toISOstring() polyfill.\n const isoDate = JSON.parse(JSON.stringify(new Date()))\n const url = matchPageProtocol(config.endpoints[endpoint], win.location.protocol)\n return `${url}?apiKey=${encodeURIComponent(config.apiKey)}&payloadVersion=${version}&sentAt=${encodeURIComponent(isoDate)}`\n}\n\nconst matchPageProtocol = module.exports._matchPageProtocol = (endpoint, pageProtocol) =>\n pageProtocol === 'http:'\n ? endpoint.replace(/^https:/, 'http:')\n : endpoint\n", "const payload = require('@bugsnag/core/lib/json-payload')\n\nmodule.exports = (client, win = window) => ({\n sendEvent: (event, cb = () => {}) => {\n try {\n const url = client._config.endpoints.notify\n const req = new win.XMLHttpRequest()\n const body = payload.event(event, client._config.redactedKeys)\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) {\n const status = req.status\n if (status === 0 || status >= 400) {\n const err = new Error(`Request failed with status ${status}`)\n client._logger.error('Event failed to send…', err)\n if (body.length > 10e5) {\n client._logger.warn(`Event oversized (${(body.length / 10e5).toFixed(2)} MB)`)\n }\n cb(err)\n } else {\n cb(null)\n }\n }\n }\n\n req.open('POST', url)\n req.setRequestHeader('Content-Type', 'application/json')\n req.setRequestHeader('Bugsnag-Api-Key', event.apiKey || client._config.apiKey)\n req.setRequestHeader('Bugsnag-Payload-Version', '4')\n req.setRequestHeader('Bugsnag-Sent-At', (new Date()).toISOString())\n req.send(body)\n } catch (e) {\n client._logger.error(e)\n }\n },\n sendSession: (session, cb = () => {}) => {\n try {\n const url = client._config.endpoints.sessions\n const req = new win.XMLHttpRequest()\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) {\n const status = req.status\n if (status === 0 || status >= 400) {\n const err = new Error(`Request failed with status ${status}`)\n client._logger.error('Session failed to send…', err)\n cb(err)\n } else {\n cb(null)\n }\n }\n }\n\n req.open('POST', url)\n req.setRequestHeader('Content-Type', 'application/json')\n req.setRequestHeader('Bugsnag-Api-Key', client._config.apiKey)\n req.setRequestHeader('Bugsnag-Payload-Version', '1')\n req.setRequestHeader('Bugsnag-Sent-At', (new Date()).toISOString())\n req.send(payload.session(session, client._config.redactedKeys))\n } catch (e) {\n client._logger.error(e)\n }\n }\n})\n", "let appStart = new Date()\nconst reset = () => { appStart = new Date() }\n\nmodule.exports = {\n name: 'appDuration',\n load: client => {\n client.addOnError(event => {\n const now = new Date()\n\n event.app.duration = now - appStart\n }, true)\n\n return { reset }\n }\n}\n", "/*\n * Sets the default context to be the current URL\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n client.addOnError(event => {\n if (event.context !== undefined) return\n event.context = win.location.pathname\n }, true)\n }\n})\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\nconst BUGSNAG_ANONYMOUS_ID_KEY = 'bugsnag-anonymous-id'\n\nconst getDeviceId = (win) => {\n try {\n const storage = win.localStorage\n\n let id = storage.getItem(BUGSNAG_ANONYMOUS_ID_KEY)\n\n // If we get an ID, make sure it looks like a valid cuid. The length can\n // fluctuate slightly, so some leeway is built in\n if (id && /^c[a-z0-9]{20,32}$/.test(id)) {\n return id\n }\n\n const cuid = require('@bugsnag/cuid')\n id = cuid()\n\n storage.setItem(BUGSNAG_ANONYMOUS_ID_KEY, id)\n\n return id\n } catch (err) {\n // If localStorage is not available (e.g. because it's disabled) then give up\n }\n}\n\n/*\n * Automatically detects browser device details\n */\nmodule.exports = (nav = navigator, win = window) => ({\n load: (client) => {\n const device = {\n locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n userAgent: nav.userAgent\n }\n\n if (win && win.screen && win.screen.orientation && win.screen.orientation.type) {\n device.orientation = win.screen.orientation.type\n } else if (win && win.document) {\n device.orientation =\n win.document.documentElement.clientWidth > win.document.documentElement.clientHeight\n ? 'landscape'\n : 'portrait'\n }\n\n if (client._config.generateAnonymousId) {\n device.id = getDeviceId(win)\n }\n\n client.addOnSession(session => {\n session.device = assign({}, session.device, device)\n // only set device id if collectUserIp is false\n if (!client._config.collectUserIp) setDefaultUserId(session)\n })\n\n // add time just as the event is sent\n client.addOnError((event) => {\n event.device = assign({},\n event.device,\n device,\n { time: new Date() }\n )\n if (!client._config.collectUserIp) setDefaultUserId(event)\n }, true)\n },\n configSchema: {\n generateAnonymousId: {\n validate: value => value === true || value === false,\n defaultValue: () => true,\n message: 'should be true|false'\n }\n }\n})\n\nconst setDefaultUserId = (eventOrSession) => {\n // device id is also used to populate the user id field, if it's not already set\n const user = eventOrSession.getUser()\n if (!user || !user.id) {\n eventOrSession.setUser(eventOrSession.device.id)\n }\n}\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\n\n/*\n * Sets the event request: { url } to be the current href\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n client.addOnError(event => {\n if (event.request && event.request.url) return\n event.request = assign({}, event.request, { url: win.location.href })\n }, true)\n }\n})\n", "const includes = require('@bugsnag/core/lib/es-utils/includes')\n\nmodule.exports = {\n load: client => { client._sessionDelegate = sessionDelegate }\n}\n\nconst sessionDelegate = {\n startSession: (client, session) => {\n const sessionClient = client\n sessionClient._session = session\n sessionClient._pausedSession = null\n\n // exit early if the current releaseStage is not enabled\n if (sessionClient._config.enabledReleaseStages !== null && !includes(sessionClient._config.enabledReleaseStages, sessionClient._config.releaseStage)) {\n sessionClient._logger.warn('Session not sent due to releaseStage/enabledReleaseStages configuration')\n return sessionClient\n }\n\n sessionClient._delivery.sendSession({\n notifier: sessionClient._notifier,\n device: session.device,\n app: session.app,\n sessions: [\n {\n id: session.id,\n startedAt: session.startedAt,\n user: session._user\n }\n ]\n })\n return sessionClient\n },\n resumeSession: (client) => {\n // Do nothing if there's already an active session\n if (client._session) {\n return client\n }\n\n // If we have a paused session then make it the active session\n if (client._pausedSession) {\n client._session = client._pausedSession\n client._pausedSession = null\n\n return client\n }\n\n // Otherwise start a new session\n return client.startSession()\n },\n pauseSession: (client) => {\n client._pausedSession = client._session\n client._session = null\n }\n}\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\n\n/*\n * Prevent collection of user IPs\n */\nmodule.exports = {\n load: (client) => {\n if (client._config.collectUserIp) return\n\n client.addOnError(event => {\n // If user.id is explicitly undefined, it will be missing from the payload. It needs\n // removing so that the following line replaces it\n if (event._user && typeof event._user.id === 'undefined') delete event._user.id\n event._user = assign({ id: '[REDACTED]' }, event._user)\n event.request = assign({ clientIp: '[REDACTED]' }, event.request)\n })\n },\n configSchema: {\n collectUserIp: {\n defaultValue: () => true,\n message: 'should be true|false',\n validate: value => value === true || value === false\n }\n }\n}\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\nconst filter = require('@bugsnag/core/lib/es-utils/filter')\n\n/*\n * Leaves breadcrumbs when console log methods are called\n */\nexports.load = (client) => {\n const isDev = /^(local-)?dev(elopment)?$/.test(client._config.releaseStage)\n\n if (isDev || !client._isBreadcrumbTypeEnabled('log')) return\n\n map(CONSOLE_LOG_METHODS, method => {\n const original = console[method]\n console[method] = (...args) => {\n client.leaveBreadcrumb('Console output', reduce(args, (accum, arg, i) => {\n // do the best/simplest stringification of each argument\n let stringified = '[Unknown value]'\n // this may fail if the input is:\n // - an object whose [[Prototype]] is null (no toString)\n // - an object with a broken toString or @@toPrimitive implementation\n try { stringified = String(arg) } catch (e) {}\n // if it stringifies to [object Object] attempt to JSON stringify\n if (stringified === '[object Object]') {\n // catch stringify errors and fallback to [object Object]\n try { stringified = JSON.stringify(arg) } catch (e) {}\n }\n accum[`[${i}]`] = stringified\n return accum\n }, {\n severity: method.indexOf('group') === 0 ? 'log' : method\n }), 'log')\n original.apply(console, args)\n }\n console[method]._restore = () => { console[method] = original }\n })\n}\n\nif (process.env.NODE_ENV !== 'production') {\n exports.destroy = () => CONSOLE_LOG_METHODS.forEach(method => {\n if (typeof console[method]._restore === 'function') console[method]._restore()\n })\n}\n\nconst CONSOLE_LOG_METHODS = filter(['log', 'debug', 'info', 'warn', 'error'], method =>\n typeof console !== 'undefined' && typeof console[method] === 'function'\n)\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\nconst filter = require('@bugsnag/core/lib/es-utils/filter')\n\nconst MAX_LINE_LENGTH = 200\nconst MAX_SCRIPT_LENGTH = 500000\n\nmodule.exports = (doc = document, win = window) => ({\n load: (client) => {\n if (!client._config.trackInlineScripts) return\n\n const originalLocation = win.location.href\n let html = ''\n\n // in IE8-10 the 'interactive' state can fire too soon (before scripts have finished executing), so in those\n // we wait for the 'complete' state before assuming that synchronous scripts are no longer executing\n const isOldIe = !!doc.attachEvent\n let DOMContentLoaded = isOldIe ? doc.readyState === 'complete' : doc.readyState !== 'loading'\n const getHtml = () => doc.documentElement.outerHTML\n\n // get whatever HTML exists at this point in time\n html = getHtml()\n const prev = doc.onreadystatechange\n // then update it when the DOM content has loaded\n doc.onreadystatechange = function () {\n // IE8 compatible alternative to document#DOMContentLoaded\n if (doc.readyState === 'interactive') {\n html = getHtml()\n DOMContentLoaded = true\n }\n try { prev.apply(this, arguments) } catch (e) {}\n }\n\n let _lastScript = null\n const updateLastScript = script => {\n _lastScript = script\n }\n\n const getCurrentScript = () => {\n let script = doc.currentScript || _lastScript\n if (!script && !DOMContentLoaded) {\n const scripts = doc.scripts || doc.getElementsByTagName('script')\n script = scripts[scripts.length - 1]\n }\n return script\n }\n\n const addSurroundingCode = lineNumber => {\n // get whatever html has rendered at this point\n if (!DOMContentLoaded || !html) html = getHtml()\n // simulate the raw html\n const htmlLines = [''].concat(html.split('\\n'))\n const zeroBasedLine = lineNumber - 1\n const start = Math.max(zeroBasedLine - 3, 0)\n const end = Math.min(zeroBasedLine + 3, htmlLines.length)\n return reduce(htmlLines.slice(start, end), (accum, line, i) => {\n accum[start + 1 + i] = line.length <= MAX_LINE_LENGTH ? line : line.substr(0, MAX_LINE_LENGTH)\n return accum\n }, {})\n }\n\n client.addOnError(event => {\n // remove any of our own frames that may be part the stack this\n // happens before the inline script check as it happens for all errors\n event.errors[0].stacktrace = filter(event.errors[0].stacktrace, f => !(/__trace__$/.test(f.method)))\n\n const frame = event.errors[0].stacktrace[0]\n\n // if frame.file exists and is not the original location of the page, this can't be an inline script\n if (frame && frame.file && frame.file.replace(/#.*$/, '') !== originalLocation.replace(/#.*$/, '')) return\n\n // grab the last script known to have run\n const currentScript = getCurrentScript()\n if (currentScript) {\n const content = currentScript.innerHTML\n event.addMetadata(\n 'script',\n 'content',\n content.length <= MAX_SCRIPT_LENGTH ? content : content.substr(0, MAX_SCRIPT_LENGTH)\n )\n\n // only attempt to grab some surrounding code if we have a line number\n if (frame && frame.lineNumber) {\n frame.code = addSurroundingCode(frame.lineNumber)\n }\n }\n }, true)\n\n // Proxy all the timer functions whose callback is their 0th argument.\n // Keep a reference to the original setTimeout because we need it later\n const [_setTimeout] = map([\n 'setTimeout',\n 'setInterval',\n 'setImmediate',\n 'requestAnimationFrame'\n ], fn =>\n __proxy(win, fn, original =>\n __traceOriginalScript(original, args => ({\n get: () => args[0],\n replace: fn => { args[0] = fn }\n }))\n )\n )\n\n // Proxy all the host objects whose prototypes have an addEventListener function\n map([\n 'EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode',\n 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase',\n 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow',\n 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList',\n 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'\n ], o => {\n if (!win[o] || !win[o].prototype || !Object.prototype.hasOwnProperty.call(win[o].prototype, 'addEventListener')) return\n __proxy(win[o].prototype, 'addEventListener', original =>\n __traceOriginalScript(original, eventTargetCallbackAccessor)\n )\n __proxy(win[o].prototype, 'removeEventListener', original =>\n __traceOriginalScript(original, eventTargetCallbackAccessor, true)\n )\n })\n\n function __traceOriginalScript (fn, callbackAccessor, alsoCallOriginal = false) {\n return function () {\n // this is required for removeEventListener to remove anything added with\n // addEventListener before the functions started being wrapped by Bugsnag\n const args = [].slice.call(arguments)\n try {\n const cba = callbackAccessor(args)\n const cb = cba.get()\n if (alsoCallOriginal) fn.apply(this, args)\n if (typeof cb !== 'function') return fn.apply(this, args)\n if (cb.__trace__) {\n cba.replace(cb.__trace__)\n } else {\n const script = getCurrentScript()\n // this function mustn't be annonymous due to a bug in the stack\n // generation logic, meaning it gets tripped up\n // see: https://github.com/stacktracejs/stack-generator/issues/6\n cb.__trace__ = function __trace__ () {\n // set the script that called this function\n updateLastScript(script)\n // immediately unset the currentScript synchronously below, however\n // if this cb throws an error the line after will not get run so schedule\n // an almost-immediate aysnc update too\n _setTimeout(function () { updateLastScript(null) }, 0)\n const ret = cb.apply(this, arguments)\n updateLastScript(null)\n return ret\n }\n cb.__trace__.__trace__ = cb.__trace__\n cba.replace(cb.__trace__)\n }\n } catch (e) {\n // swallow these errors on Selenium:\n // Permission denied to access property '__trace__'\n // WebDriverException: Message: Permission denied to access property \"handleEvent\"\n }\n // IE8 doesn't let you call .apply() on setTimeout/setInterval\n if (fn.apply) return fn.apply(this, args)\n switch (args.length) {\n case 1: return fn(args[0])\n case 2: return fn(args[0], args[1])\n default: return fn()\n }\n }\n }\n },\n configSchema: {\n trackInlineScripts: {\n validate: value => value === true || value === false,\n defaultValue: () => true,\n message: 'should be true|false'\n }\n }\n})\n\nfunction __proxy (host, name, replacer) {\n const original = host[name]\n if (!original) return original\n const replacement = replacer(original)\n host[name] = replacement\n return original\n}\n\nfunction eventTargetCallbackAccessor (args) {\n const isEventHandlerObj = !!args[1] && typeof args[1].handleEvent === 'function'\n return {\n get: function () {\n return isEventHandlerObj ? args[1].handleEvent : args[1]\n },\n replace: function (fn) {\n if (isEventHandlerObj) {\n args[1].handleEvent = fn\n } else {\n args[1] = fn\n }\n }\n }\n}\n", "/*\n * Leaves breadcrumbs when the user interacts with the DOM\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n if (!('addEventListener' in win)) return\n if (!client._isBreadcrumbTypeEnabled('user')) return\n\n win.addEventListener('click', (event) => {\n let targetText, targetSelector\n try {\n targetText = getNodeText(event.target)\n targetSelector = getNodeSelector(event.target, win)\n } catch (e) {\n targetText = '[hidden]'\n targetSelector = '[hidden]'\n client._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z')\n }\n client.leaveBreadcrumb('UI click', { targetText, targetSelector }, 'user')\n }, true)\n }\n})\n\nconst trimStart = /^\\s+/\nconst trimEnd = /(^|[^\\s])\\s+$/\n\nfunction getNodeText (el) {\n let text = el.textContent || el.innerText || ''\n\n if (!text && (el.type === 'submit' || el.type === 'button')) {\n text = el.value\n }\n\n text = text.replace(trimStart, '').replace(trimEnd, '$1')\n\n if (text.length > 140) {\n return text.slice(0, 135) + '(...)'\n }\n\n return text\n}\n\n// Create a label from tagname, id and css class of the element\nfunction getNodeSelector (el, win) {\n const parts = [el.tagName]\n if (el.id) parts.push('#' + el.id)\n if (el.className && el.className.length) parts.push(`.${el.className.split(' ').join('.')}`)\n // Can't get much more advanced with the current browser\n if (!win.document.querySelectorAll || !Array.prototype.indexOf) return parts.join('')\n try {\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('')\n } catch (e) {\n // Sometimes the query selector can be invalid just return it as-is\n return parts.join('')\n }\n // try to get a more specific selector if this one matches more than one element\n if (el.parentNode.childNodes.length > 1) {\n const index = Array.prototype.indexOf.call(el.parentNode.childNodes, el) + 1\n parts.push(`:nth-child(${index})`)\n }\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('')\n // try prepending the parent node selector\n if (el.parentNode) return `${getNodeSelector(el.parentNode, win)} > ${parts.join('')}`\n return parts.join('')\n}\n", "/*\n* Leaves breadcrumbs when navigation methods are called or events are emitted\n*/\nmodule.exports = (win = window) => {\n const plugin = {\n load: (client) => {\n if (!('addEventListener' in win)) return\n if (!client._isBreadcrumbTypeEnabled('navigation')) return\n\n // returns a function that will drop a breadcrumb with a given name\n const drop = name => () => client.leaveBreadcrumb(name, {}, 'navigation')\n\n // simple drops – just names, no meta\n win.addEventListener('pagehide', drop('Page hidden'), true)\n win.addEventListener('pageshow', drop('Page shown'), true)\n win.addEventListener('load', drop('Page loaded'), true)\n win.document.addEventListener('DOMContentLoaded', drop('DOMContentLoaded'), true)\n // some browsers like to emit popstate when the page loads, so only add the popstate listener after that\n win.addEventListener('load', () => win.addEventListener('popstate', drop('Navigated back'), true))\n\n // hashchange has some metadata that we care about\n win.addEventListener('hashchange', event => {\n const metadata = event.oldURL\n ? { from: relativeLocation(event.oldURL, win), to: relativeLocation(event.newURL, win), state: getCurrentState(win) }\n : { to: relativeLocation(win.location.href, win) }\n client.leaveBreadcrumb('Hash changed', metadata, 'navigation')\n }, true)\n\n // the only way to know about replaceState/pushState is to wrap them… >_<\n\n if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win)\n if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = (win = window) => {\n win.history.replaceState._restore()\n win.history.pushState._restore()\n }\n }\n\n return plugin\n}\n\nif (process.env.NODE_ENV !== 'production') {\n exports.destroy = (win = window) => {\n win.history.replaceState._restore()\n win.history.pushState._restore()\n }\n}\n\n// takes a full url like http://foo.com:1234/pages/01.html?yes=no#section-2 and returns\n// just the path and hash parts, e.g. /pages/01.html?yes=no#section-2\nconst relativeLocation = (url, win) => {\n const a = win.document.createElement('A')\n a.href = url\n return `${a.pathname}${a.search}${a.hash}`\n}\n\nconst stateChangeToMetadata = (win, state, title, url) => {\n const currentPath = relativeLocation(win.location.href, win)\n return { title, state, prevState: getCurrentState(win), to: url || currentPath, from: currentPath }\n}\n\nconst wrapHistoryFn = (client, target, fn, win) => {\n const orig = target[fn]\n target[fn] = (state, title, url) => {\n client.leaveBreadcrumb(`History ${fn}`, stateChangeToMetadata(win, state, title, url), 'navigation')\n // if throttle plugin is in use, reset the event sent count\n if (typeof client.resetEventCount === 'function') client.resetEventCount()\n // if the client is operating in auto session-mode, a new route should trigger a new session\n if (client._config.autoTrackSessions) client.startSession()\n // Internet Explorer will convert `undefined` to a string when passed, causing an unintended redirect\n // to '/undefined'. therefore we only pass the url if it's not undefined.\n orig.apply(target, [state, title].concat(url !== undefined ? url : []))\n }\n if (process.env.NODE_ENV !== 'production') {\n target[fn]._restore = () => { target[fn] = orig }\n }\n}\n\nconst getCurrentState = (win) => {\n try {\n return win.history.state\n } catch (e) {}\n}\n", "const BREADCRUMB_TYPE = 'request'\n\nconst includes = require('@bugsnag/core/lib/es-utils/includes')\n\n/*\n * Leaves breadcrumbs when network requests occur\n */\nmodule.exports = (_ignoredUrls = [], win = window) => {\n let restoreFunctions = []\n const plugin = {\n load: client => {\n if (!client._isBreadcrumbTypeEnabled('request')) return\n\n const ignoredUrls = [\n client._config.endpoints.notify,\n client._config.endpoints.sessions\n ].concat(_ignoredUrls)\n\n monkeyPatchXMLHttpRequest()\n monkeyPatchFetch()\n\n // XMLHttpRequest monkey patch\n function monkeyPatchXMLHttpRequest () {\n if (!('addEventListener' in win.XMLHttpRequest.prototype)) return\n const nativeOpen = win.XMLHttpRequest.prototype.open\n\n // override native open()\n win.XMLHttpRequest.prototype.open = function open (method, url) {\n let requestSetupKey = false\n\n const error = () => handleXHRError(method, url)\n const load = () => handleXHRLoad(method, url, this.status)\n\n // if we have already setup listeners, it means open() was called twice, we need to remove\n // the listeners and recreate them\n if (requestSetupKey) {\n this.removeEventListener('load', load)\n this.removeEventListener('error', error)\n }\n\n // attach load event listener\n this.addEventListener('load', load)\n // attach error event listener\n this.addEventListener('error', error)\n\n requestSetupKey = true\n\n nativeOpen.apply(this, arguments)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n restoreFunctions.push(() => {\n win.XMLHttpRequest.prototype.open = nativeOpen\n })\n }\n }\n\n function handleXHRLoad (method, url, status) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.')\n return\n }\n\n // an XMLHttpRequest's URL can be an object as long as its 'toString'\n // returns a URL, e.g. a HTMLAnchorElement\n if (typeof url === 'string' && includes(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return\n }\n const metadata = {\n status: status,\n request: `${method} ${url}`\n }\n if (status >= 400) {\n // contacted server but got an error response\n client.leaveBreadcrumb('XMLHttpRequest failed', metadata, BREADCRUMB_TYPE)\n } else {\n client.leaveBreadcrumb('XMLHttpRequest succeeded', metadata, BREADCRUMB_TYPE)\n }\n }\n\n function handleXHRError (method, url) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.')\n return\n }\n\n if (typeof url === 'string' && includes(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return\n }\n\n // failed to contact server\n client.leaveBreadcrumb('XMLHttpRequest error', {\n request: `${method} ${url}`\n }, BREADCRUMB_TYPE)\n }\n\n // window.fetch monkey patch\n function monkeyPatchFetch () {\n // only patch it if it exists and if it is not a polyfill (patching a polyfilled\n // fetch() results in duplicate breadcrumbs for the same request because the\n // implementation uses XMLHttpRequest which is also patched)\n if (!('fetch' in win) || win.fetch.polyfill) return\n\n const oldFetch = win.fetch\n win.fetch = function fetch () {\n const urlOrRequest = arguments[0]\n const options = arguments[1]\n\n let method\n let url = null\n\n if (urlOrRequest && typeof urlOrRequest === 'object') {\n url = urlOrRequest.url\n if (options && 'method' in options) {\n method = options.method\n } else if (urlOrRequest && 'method' in urlOrRequest) {\n method = urlOrRequest.method\n }\n } else {\n url = urlOrRequest\n if (options && 'method' in options) {\n method = options.method\n }\n }\n\n if (method === undefined) {\n method = 'GET'\n }\n\n return new Promise((resolve, reject) => {\n // pass through to native fetch\n oldFetch(...arguments)\n .then(response => {\n handleFetchSuccess(response, method, url)\n resolve(response)\n })\n .catch(error => {\n handleFetchError(method, url)\n reject(error)\n })\n })\n }\n\n if (process.env.NODE_ENV !== 'production') {\n restoreFunctions.push(() => {\n win.fetch = oldFetch\n })\n }\n }\n\n const handleFetchSuccess = (response, method, url) => {\n const metadata = {\n status: response.status,\n request: `${method} ${url}`\n }\n if (response.status >= 400) {\n // when the request comes back with a 4xx or 5xx status it does not reject the fetch promise,\n client.leaveBreadcrumb('fetch() failed', metadata, BREADCRUMB_TYPE)\n } else {\n client.leaveBreadcrumb('fetch() succeeded', metadata, BREADCRUMB_TYPE)\n }\n }\n\n const handleFetchError = (method, url) => {\n client.leaveBreadcrumb('fetch() error', { request: `${method} ${url}` }, BREADCRUMB_TYPE)\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = () => {\n restoreFunctions.forEach(fn => fn())\n restoreFunctions = []\n }\n }\n\n return plugin\n}\n", "const intRange = require('@bugsnag/core/lib/validators/int-range')\n\n/*\n * Throttles and dedupes events\n */\n\nmodule.exports = {\n load: (client) => {\n // track sent events for each init of the plugin\n let n = 0\n\n // add onError hook\n client.addOnError((event) => {\n // have max events been sent already?\n if (n >= client._config.maxEvents) {\n client._logger.warn(`Cancelling event send due to maxEvents per session limit of ${client._config.maxEvents} being reached`)\n return false\n }\n n++\n })\n\n client.resetEventCount = () => { n = 0 }\n },\n configSchema: {\n maxEvents: {\n defaultValue: () => 10,\n message: 'should be a positive integer ≤100',\n validate: val => intRange(1, 100)(val)\n }\n }\n}\n", "/*\n * Remove query strings (and fragments) from stacktraces\n */\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\n\nmodule.exports = {\n load: (client) => {\n client.addOnError(event => {\n const allFrames = reduce(event.errors, (accum, er) => accum.concat(er.stacktrace), [])\n map(allFrames, frame => {\n frame.file = strip(frame.file)\n })\n })\n }\n}\n\nconst strip = module.exports._strip = str =>\n typeof str === 'string'\n ? str.replace(/\\?.*$/, '').replace(/#.*$/, '')\n : str\n", "/*\n * Automatically notifies Bugsnag when window.onerror is called\n */\n\nmodule.exports = (win = window, component = 'window onerror') => ({\n load: (client) => {\n if (!client._config.autoDetectErrors) return\n if (!client._config.enabledErrorTypes.unhandledExceptions) return\n function onerror (messageOrEvent, url, lineNo, charNo, error) {\n // Ignore errors with no info due to CORS settings\n if (lineNo === 0 && /Script error\\.?/.test(messageOrEvent)) {\n client._logger.warn('Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z')\n } else {\n // any error sent to window.onerror is unhandled and has severity=error\n const handledState = { severity: 'error', unhandled: true, severityReason: { type: 'unhandledException' } }\n\n let event\n\n // window.onerror can be called in a number of ways. This big if-else is how we\n // figure out which arguments were supplied, and what kind of values it received.\n\n if (error) {\n // if the last parameter (error) was supplied, this is a modern browser's\n // way of saying \"this value was thrown and not caught\"\n event = client.Event.create(error, true, handledState, component, 1)\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo)\n } else if (\n // This complex case detects \"error\" events that are typically synthesised\n // by jquery's trigger method (although can be created in other ways). In\n // order to detect this:\n // - the first argument (message) must exist and be an object (most likely it's a jQuery event)\n // - the second argument (url) must either not exist or be something other than a string (if it\n // exists and is not a string, it'll be the extraParameters argument from jQuery's trigger()\n // function)\n // - the third, fourth and fifth arguments must not exist (lineNo, charNo and error)\n (typeof messageOrEvent === 'object' && messageOrEvent !== null) &&\n (!url || typeof url !== 'string') &&\n !lineNo && !charNo && !error\n ) {\n // The jQuery event may have a \"type\" property, if so use it as part of the error message\n const name = messageOrEvent.type ? `Event: ${messageOrEvent.type}` : 'Error'\n // attempt to find a message from one of the conventional properties, but\n // default to empty string (the event will fill it with a placeholder)\n const message = messageOrEvent.message || messageOrEvent.detail || ''\n\n event = client.Event.create({ name, message }, true, handledState, component, 1)\n\n // provide the original thing onerror received – not our error-like object we passed to _notify\n event.originalError = messageOrEvent\n\n // include the raw input as metadata – it might contain more info than we extracted\n event.addMetadata(component, { event: messageOrEvent, extraParameters: url })\n } else {\n // Lastly, if there was no \"error\" parameter this event was probably from an old\n // browser that doesn't support that. Instead we need to generate a stacktrace.\n event = client.Event.create(messageOrEvent, true, handledState, component, 1)\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo)\n }\n\n client._notify(event)\n }\n\n if (typeof prevOnError === 'function') prevOnError.apply(this, arguments)\n }\n\n const prevOnError = win.onerror\n win.onerror = onerror\n }\n})\n\n// Sometimes the stacktrace has less information than was passed to window.onerror.\n// This function will augment the first stackframe with any useful info that was\n// received as arguments to the onerror callback.\nconst decorateStack = (stack, url, lineNo, charNo) => {\n if (!stack[0]) stack.push({})\n const culprit = stack[0]\n if (!culprit.file && typeof url === 'string') culprit.file = url\n if (!culprit.lineNumber && isActualNumber(lineNo)) culprit.lineNumber = lineNo\n if (!culprit.columnNumber) {\n if (isActualNumber(charNo)) {\n culprit.columnNumber = charNo\n } else if (window.event && isActualNumber(window.event.errorCharacter)) {\n culprit.columnNumber = window.event.errorCharacter\n }\n }\n}\n\nconst isActualNumber = (n) => typeof n === 'number' && String.call(n) !== 'NaN'\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst isError = require('@bugsnag/core/lib/iserror')\n\nlet _listener\n/*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\nmodule.exports = (win = window) => {\n const plugin = {\n load: (client) => {\n if (!client._config.autoDetectErrors || !client._config.enabledErrorTypes.unhandledRejections) return\n const listener = evt => {\n let error = evt.reason\n let isBluebird = false\n\n // accessing properties on evt.detail can throw errors (see #394)\n try {\n if (evt.detail && evt.detail.reason) {\n error = evt.detail.reason\n isBluebird = true\n }\n } catch (e) {}\n\n const event = client.Event.create(error, false, {\n severity: 'error',\n unhandled: true,\n severityReason: { type: 'unhandledPromiseRejection' }\n }, 'unhandledrejection handler', 1, client._logger)\n\n if (isBluebird) {\n map(event.errors[0].stacktrace, fixBluebirdStacktrace(error))\n }\n\n client._notify(event, (event) => {\n if (isError(event.originalError) && !event.originalError.stack) {\n event.addMetadata('unhandledRejection handler', {\n [Object.prototype.toString.call(event.originalError)]: {\n name: event.originalError.name,\n message: event.originalError.message,\n code: event.originalError.code\n }\n })\n }\n })\n }\n if ('addEventListener' in win) {\n win.addEventListener('unhandledrejection', listener)\n } else {\n win.onunhandledrejection = (reason, promise) => {\n listener({ detail: { reason, promise } })\n }\n }\n _listener = listener\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = (win = window) => {\n if (_listener) {\n if ('addEventListener' in win) {\n win.removeEventListener('unhandledrejection', _listener)\n } else {\n win.onunhandledrejection = null\n }\n }\n _listener = null\n }\n }\n\n return plugin\n}\n\n// The stack parser on bluebird stacks in FF get a suprious first frame:\n//\n// Error: derp\n// b@http://localhost:5000/bluebird.html:22:24\n// a@http://localhost:5000/bluebird.html:18:9\n// @http://localhost:5000/bluebird.html:14:9\n//\n// results in\n// […]\n// 0: Object { file: \"Error: derp\", method: undefined, lineNumber: undefined, … }\n// 1: Object { file: \"http://localhost:5000/bluebird.html\", method: \"b\", lineNumber: 22, … }\n// 2: Object { file: \"http://localhost:5000/bluebird.html\", method: \"a\", lineNumber: 18, … }\n// 3: Object { file: \"http://localhost:5000/bluebird.html\", lineNumber: 14, columnNumber: 9, … }\n//\n// so the following reduce/accumulator function removes such frames\n//\n// Bluebird pads method names with spaces so trim that too…\n// https://github.com/petkaantonov/bluebird/blob/b7f21399816d02f979fe434585334ce901dcaf44/src/debuggability.js#L568-L571\nconst fixBluebirdStacktrace = (error) => (frame) => {\n if (frame.file === error.toString()) return\n if (frame.method) {\n frame.method = frame.method.replace(/^\\s+/, '')\n }\n}\n", "const name = 'Bugsnag JavaScript'\nconst version = '7.20.0'\nconst url = 'https://github.com/bugsnag/bugsnag-js'\n\nconst Client = require('@bugsnag/core/client')\nconst Event = require('@bugsnag/core/event')\nconst Session = require('@bugsnag/core/session')\nconst Breadcrumb = require('@bugsnag/core/breadcrumb')\n\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst keys = require('@bugsnag/core/lib/es-utils/keys')\nconst assign = require('@bugsnag/core/lib/es-utils/assign')\n\n// extend the base config schema with some browser-specific options\nconst schema = assign({}, require('@bugsnag/core/config').schema, require('./config'))\n\nconst pluginWindowOnerror = require('@bugsnag/plugin-window-onerror')\nconst pluginUnhandledRejection = require('@bugsnag/plugin-window-unhandled-rejection')\nconst pluginApp = require('@bugsnag/plugin-app-duration')\nconst pluginDevice = require('@bugsnag/plugin-browser-device')\nconst pluginContext = require('@bugsnag/plugin-browser-context')\nconst pluginRequest = require('@bugsnag/plugin-browser-request')\nconst pluginThrottle = require('@bugsnag/plugin-simple-throttle')\nconst pluginConsoleBreadcrumbs = require('@bugsnag/plugin-console-breadcrumbs')\nconst pluginNetworkBreadcrumbs = require('@bugsnag/plugin-network-breadcrumbs')\nconst pluginNavigationBreadcrumbs = require('@bugsnag/plugin-navigation-breadcrumbs')\nconst pluginInteractionBreadcrumbs = require('@bugsnag/plugin-interaction-breadcrumbs')\nconst pluginInlineScriptContent = require('@bugsnag/plugin-inline-script-content')\nconst pluginSession = require('@bugsnag/plugin-browser-session')\nconst pluginIp = require('@bugsnag/plugin-client-ip')\nconst pluginStripQueryString = require('@bugsnag/plugin-strip-query-string')\n\n// delivery mechanisms\nconst dXDomainRequest = require('@bugsnag/delivery-x-domain-request')\nconst dXMLHttpRequest = require('@bugsnag/delivery-xml-http-request')\n\nconst Bugsnag = {\n _client: null,\n createClient: (opts) => {\n // handle very simple use case where user supplies just the api key as a string\n if (typeof opts === 'string') opts = { apiKey: opts }\n if (!opts) opts = {}\n\n const internalPlugins = [\n // add browser-specific plugins\n pluginApp,\n pluginDevice(),\n pluginContext(),\n pluginRequest(),\n pluginThrottle,\n pluginSession,\n pluginIp,\n pluginStripQueryString,\n pluginWindowOnerror(),\n pluginUnhandledRejection(),\n pluginNavigationBreadcrumbs(),\n pluginInteractionBreadcrumbs(),\n pluginNetworkBreadcrumbs(),\n pluginConsoleBreadcrumbs,\n\n // this one added last to avoid wrapping functionality before bugsnag uses it\n pluginInlineScriptContent()\n ]\n\n // configure a client with user supplied options\n const bugsnag = new Client(opts, schema, internalPlugins, { name, version, url })\n\n // set delivery based on browser capability (IE 8+9 have an XDomainRequest object)\n bugsnag._setDelivery(window.XDomainRequest ? dXDomainRequest : dXMLHttpRequest)\n\n bugsnag._logger.debug('Loaded!')\n bugsnag.leaveBreadcrumb('Bugsnag loaded', {}, 'state')\n\n return bugsnag._config.autoTrackSessions\n ? bugsnag.startSession()\n : bugsnag\n },\n start: (opts) => {\n if (Bugsnag._client) {\n Bugsnag._client._logger.warn('Bugsnag.start() was called more than once. Ignoring.')\n return Bugsnag._client\n }\n Bugsnag._client = Bugsnag.createClient(opts)\n return Bugsnag._client\n },\n isStarted: () => {\n return Bugsnag._client != null\n }\n}\n\nmap(['resetEventCount'].concat(keys(Client.prototype)), (m) => {\n if (/^_/.test(m)) return\n Bugsnag[m] = function () {\n if (!Bugsnag._client) return console.log(`Bugsnag.${m}() was called before Bugsnag.start()`)\n Bugsnag._client._depth += 1\n const ret = Bugsnag._client[m].apply(Bugsnag._client, arguments)\n Bugsnag._client._depth -= 1\n return ret\n }\n})\n\nmodule.exports = Bugsnag\n\nmodule.exports.Client = Client\nmodule.exports.Event = Event\nmodule.exports.Session = Session\nmodule.exports.Breadcrumb = Breadcrumb\n\n// Export a \"default\" property for compatibility with ESM imports\nmodule.exports.default = Bugsnag\n", "\nreturn _$notifier_2;\n\n});\n", "module.exports = require('@bugsnag/browser')\n", "/* global define */\n\n(function (root, pluralize) {\n /* istanbul ignore else */\n if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') {\n // Node.\n module.exports = pluralize();\n } else if (typeof define === 'function' && define.amd) {\n // AMD, registers as an anonymous module.\n define(function () {\n return pluralize();\n });\n } else {\n // Browser global.\n root.pluralize = pluralize();\n }\n})(this, function () {\n // Rule storage - pluralize and singularize need to be run sequentially,\n // while other rules can be optimized using an object for instant lookups.\n var pluralRules = [];\n var singularRules = [];\n var uncountables = {};\n var irregularPlurals = {};\n var irregularSingles = {};\n\n /**\n * Sanitize a pluralization rule to a usable regular expression.\n *\n * @param {(RegExp|string)} rule\n * @return {RegExp}\n */\n function sanitizeRule (rule) {\n if (typeof rule === 'string') {\n return new RegExp('^' + rule + '$', 'i');\n }\n\n return rule;\n }\n\n /**\n * Pass in a word token to produce a function that can replicate the case on\n * another word.\n *\n * @param {string} word\n * @param {string} token\n * @return {Function}\n */\n function restoreCase (word, token) {\n // Tokens are an exact match.\n if (word === token) return token;\n\n // Lower cased words. E.g. \"hello\".\n if (word === word.toLowerCase()) return token.toLowerCase();\n\n // Upper cased words. E.g. \"WHISKY\".\n if (word === word.toUpperCase()) return token.toUpperCase();\n\n // Title cased words. E.g. \"Title\".\n if (word[0] === word[0].toUpperCase()) {\n return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase();\n }\n\n // Lower cased words. E.g. \"test\".\n return token.toLowerCase();\n }\n\n /**\n * Interpolate a regexp string.\n *\n * @param {string} str\n * @param {Array} args\n * @return {string}\n */\n function interpolate (str, args) {\n return str.replace(/\\$(\\d{1,2})/g, function (match, index) {\n return args[index] || '';\n });\n }\n\n /**\n * Replace a word using a rule.\n *\n * @param {string} word\n * @param {Array} rule\n * @return {string}\n */\n function replace (word, rule) {\n return word.replace(rule[0], function (match, index) {\n var result = interpolate(rule[1], arguments);\n\n if (match === '') {\n return restoreCase(word[index - 1], result);\n }\n\n return restoreCase(match, result);\n });\n }\n\n /**\n * Sanitize a word by passing in the word and sanitization rules.\n *\n * @param {string} token\n * @param {string} word\n * @param {Array} rules\n * @return {string}\n */\n function sanitizeWord (token, word, rules) {\n // Empty string or doesn't need fixing.\n if (!token.length || uncountables.hasOwnProperty(token)) {\n return word;\n }\n\n var len = rules.length;\n\n // Iterate over the sanitization rules and use the first one to match.\n while (len--) {\n var rule = rules[len];\n\n if (rule[0].test(word)) return replace(word, rule);\n }\n\n return word;\n }\n\n /**\n * Replace a word with the updated word.\n *\n * @param {Object} replaceMap\n * @param {Object} keepMap\n * @param {Array} rules\n * @return {Function}\n */\n function replaceWord (replaceMap, keepMap, rules) {\n return function (word) {\n // Get the correct token and case restoration functions.\n var token = word.toLowerCase();\n\n // Check against the keep object map.\n if (keepMap.hasOwnProperty(token)) {\n return restoreCase(word, token);\n }\n\n // Check against the replacement map for a direct word replacement.\n if (replaceMap.hasOwnProperty(token)) {\n return restoreCase(word, replaceMap[token]);\n }\n\n // Run all the rules against the word.\n return sanitizeWord(token, word, rules);\n };\n }\n\n /**\n * Check if a word is part of the map.\n */\n function checkWord (replaceMap, keepMap, rules, bool) {\n return function (word) {\n var token = word.toLowerCase();\n\n if (keepMap.hasOwnProperty(token)) return true;\n if (replaceMap.hasOwnProperty(token)) return false;\n\n return sanitizeWord(token, token, rules) === token;\n };\n }\n\n /**\n * Pluralize or singularize a word based on the passed in count.\n *\n * @param {string} word The word to pluralize\n * @param {number} count How many of the word exist\n * @param {boolean} inclusive Whether to prefix with the number (e.g. 3 ducks)\n * @return {string}\n */\n function pluralize (word, count, inclusive) {\n var pluralized = count === 1\n ? pluralize.singular(word) : pluralize.plural(word);\n\n return (inclusive ? count + ' ' : '') + pluralized;\n }\n\n /**\n * Pluralize a word.\n *\n * @type {Function}\n */\n pluralize.plural = replaceWord(\n irregularSingles, irregularPlurals, pluralRules\n );\n\n /**\n * Check if a word is plural.\n *\n * @type {Function}\n */\n pluralize.isPlural = checkWord(\n irregularSingles, irregularPlurals, pluralRules\n );\n\n /**\n * Singularize a word.\n *\n * @type {Function}\n */\n pluralize.singular = replaceWord(\n irregularPlurals, irregularSingles, singularRules\n );\n\n /**\n * Check if a word is singular.\n *\n * @type {Function}\n */\n pluralize.isSingular = checkWord(\n irregularPlurals, irregularSingles, singularRules\n );\n\n /**\n * Add a pluralization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addPluralRule = function (rule, replacement) {\n pluralRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add a singularization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addSingularRule = function (rule, replacement) {\n singularRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add an uncountable word rule.\n *\n * @param {(string|RegExp)} word\n */\n pluralize.addUncountableRule = function (word) {\n if (typeof word === 'string') {\n uncountables[word.toLowerCase()] = true;\n return;\n }\n\n // Set singular and plural references for the word.\n pluralize.addPluralRule(word, '$0');\n pluralize.addSingularRule(word, '$0');\n };\n\n /**\n * Add an irregular word definition.\n *\n * @param {string} single\n * @param {string} plural\n */\n pluralize.addIrregularRule = function (single, plural) {\n plural = plural.toLowerCase();\n single = single.toLowerCase();\n\n irregularSingles[single] = plural;\n irregularPlurals[plural] = single;\n };\n\n /**\n * Irregular rules.\n */\n [\n // Pronouns.\n ['I', 'we'],\n ['me', 'us'],\n ['he', 'they'],\n ['she', 'they'],\n ['them', 'them'],\n ['myself', 'ourselves'],\n ['yourself', 'yourselves'],\n ['itself', 'themselves'],\n ['herself', 'themselves'],\n ['himself', 'themselves'],\n ['themself', 'themselves'],\n ['is', 'are'],\n ['was', 'were'],\n ['has', 'have'],\n ['this', 'these'],\n ['that', 'those'],\n // Words ending in with a consonant and `o`.\n ['echo', 'echoes'],\n ['dingo', 'dingoes'],\n ['volcano', 'volcanoes'],\n ['tornado', 'tornadoes'],\n ['torpedo', 'torpedoes'],\n // Ends with `us`.\n ['genus', 'genera'],\n ['viscus', 'viscera'],\n // Ends with `ma`.\n ['stigma', 'stigmata'],\n ['stoma', 'stomata'],\n ['dogma', 'dogmata'],\n ['lemma', 'lemmata'],\n ['schema', 'schemata'],\n ['anathema', 'anathemata'],\n // Other irregular rules.\n ['ox', 'oxen'],\n ['axe', 'axes'],\n ['die', 'dice'],\n ['yes', 'yeses'],\n ['foot', 'feet'],\n ['eave', 'eaves'],\n ['goose', 'geese'],\n ['tooth', 'teeth'],\n ['quiz', 'quizzes'],\n ['human', 'humans'],\n ['proof', 'proofs'],\n ['carve', 'carves'],\n ['valve', 'valves'],\n ['looey', 'looies'],\n ['thief', 'thieves'],\n ['groove', 'grooves'],\n ['pickaxe', 'pickaxes'],\n ['passerby', 'passersby']\n ].forEach(function (rule) {\n return pluralize.addIrregularRule(rule[0], rule[1]);\n });\n\n /**\n * Pluralization rules.\n */\n [\n [/s?$/i, 's'],\n [/[^\\u0000-\\u007F]$/i, '$0'],\n [/([^aeiou]ese)$/i, '$1'],\n [/(ax|test)is$/i, '$1es'],\n [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, '$1es'],\n [/(e[mn]u)s?$/i, '$1s'],\n [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, '$1'],\n [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1i'],\n [/(alumn|alg|vertebr)(?:a|ae)$/i, '$1ae'],\n [/(seraph|cherub)(?:im)?$/i, '$1im'],\n [/(her|at|gr)o$/i, '$1oes'],\n [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, '$1a'],\n [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, '$1a'],\n [/sis$/i, 'ses'],\n [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, '$1$2ves'],\n [/([^aeiouy]|qu)y$/i, '$1ies'],\n [/([^ch][ieo][ln])ey$/i, '$1ies'],\n [/(x|ch|ss|sh|zz)$/i, '$1es'],\n [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, '$1ices'],\n [/\\b((?:tit)?m|l)(?:ice|ouse)$/i, '$1ice'],\n [/(pe)(?:rson|ople)$/i, '$1ople'],\n [/(child)(?:ren)?$/i, '$1ren'],\n [/eaux$/i, '$0'],\n [/m[ae]n$/i, 'men'],\n ['thou', 'you']\n ].forEach(function (rule) {\n return pluralize.addPluralRule(rule[0], rule[1]);\n });\n\n /**\n * Singularization rules.\n */\n [\n [/s$/i, ''],\n [/(ss)$/i, '$1'],\n [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\\w]|^)li)ves$/i, '$1fe'],\n [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, '$1f'],\n [/ies$/i, 'y'],\n [/\\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, '$1ie'],\n [/\\b(mon|smil)ies$/i, '$1ey'],\n [/\\b((?:tit)?m|l)ice$/i, '$1ouse'],\n [/(seraph|cherub)im$/i, '$1'],\n [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, '$1'],\n [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, '$1sis'],\n [/(movie|twelve|abuse|e[mn]u)s$/i, '$1'],\n [/(test)(?:is|es)$/i, '$1is'],\n [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1us'],\n [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, '$1um'],\n [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, '$1on'],\n [/(alumn|alg|vertebr)ae$/i, '$1a'],\n [/(cod|mur|sil|vert|ind)ices$/i, '$1ex'],\n [/(matr|append)ices$/i, '$1ix'],\n [/(pe)(rson|ople)$/i, '$1rson'],\n [/(child)ren$/i, '$1'],\n [/(eau)x?$/i, '$1'],\n [/men$/i, 'man']\n ].forEach(function (rule) {\n return pluralize.addSingularRule(rule[0], rule[1]);\n });\n\n /**\n * Uncountable rules.\n */\n [\n // Singular words with no plurals.\n 'adulthood',\n 'advice',\n 'agenda',\n 'aid',\n 'aircraft',\n 'alcohol',\n 'ammo',\n 'analytics',\n 'anime',\n 'athletics',\n 'audio',\n 'bison',\n 'blood',\n 'bream',\n 'buffalo',\n 'butter',\n 'carp',\n 'cash',\n 'chassis',\n 'chess',\n 'clothing',\n 'cod',\n 'commerce',\n 'cooperation',\n 'corps',\n 'debris',\n 'diabetes',\n 'digestion',\n 'elk',\n 'energy',\n 'equipment',\n 'excretion',\n 'expertise',\n 'firmware',\n 'flounder',\n 'fun',\n 'gallows',\n 'garbage',\n 'graffiti',\n 'hardware',\n 'headquarters',\n 'health',\n 'herpes',\n 'highjinks',\n 'homework',\n 'housework',\n 'information',\n 'jeans',\n 'justice',\n 'kudos',\n 'labour',\n 'literature',\n 'machinery',\n 'mackerel',\n 'mail',\n 'media',\n 'mews',\n 'moose',\n 'music',\n 'mud',\n 'manga',\n 'news',\n 'only',\n 'personnel',\n 'pike',\n 'plankton',\n 'pliers',\n 'police',\n 'pollution',\n 'premises',\n 'rain',\n 'research',\n 'rice',\n 'salmon',\n 'scissors',\n 'series',\n 'sewage',\n 'shambles',\n 'shrimp',\n 'software',\n 'species',\n 'staff',\n 'swine',\n 'tennis',\n 'traffic',\n 'transportation',\n 'trout',\n 'tuna',\n 'wealth',\n 'welfare',\n 'whiting',\n 'wildebeest',\n 'wildlife',\n 'you',\n /pok[e\u00E9]mon$/i,\n // Regexes.\n /[^aeiou]ese$/i, // \"chinese\", \"japanese\"\n /deer$/i, // \"deer\", \"reindeer\"\n /fish$/i, // \"fish\", \"blowfish\", \"angelfish\"\n /measles$/i,\n /o[iu]s$/i, // \"carnivorous\"\n /pox$/i, // \"chickpox\", \"smallpox\"\n /sheep$/i\n ].forEach(pluralize.addUncountableRule);\n\n return pluralize;\n});\n", "/*\n * JavaScript Load Image\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, Promise */\n\n;(function ($) {\n 'use strict'\n\n var urlAPI = $.URL || $.webkitURL\n\n /**\n * Creates an object URL for a given File object.\n *\n * @param {Blob} blob Blob object\n * @returns {string|boolean} Returns object URL if API exists, else false.\n */\n function createObjectURL(blob) {\n return urlAPI ? urlAPI.createObjectURL(blob) : false\n }\n\n /**\n * Revokes a given object URL.\n *\n * @param {string} url Blob object URL\n * @returns {undefined|boolean} Returns undefined if API exists, else false.\n */\n function revokeObjectURL(url) {\n return urlAPI ? urlAPI.revokeObjectURL(url) : false\n }\n\n /**\n * Helper function to revoke an object URL\n *\n * @param {string} url Blob Object URL\n * @param {object} [options] Options object\n */\n function revokeHelper(url, options) {\n if (url && url.slice(0, 5) === 'blob:' && !(options && options.noRevoke)) {\n revokeObjectURL(url)\n }\n }\n\n /**\n * Loads a given File object via FileReader interface.\n *\n * @param {Blob} file Blob object\n * @param {Function} onload Load event callback\n * @param {Function} [onerror] Error/Abort event callback\n * @param {string} [method=readAsDataURL] FileReader method\n * @returns {FileReader|boolean} Returns FileReader if API exists, else false.\n */\n function readFile(file, onload, onerror, method) {\n if (!$.FileReader) return false\n var reader = new FileReader()\n reader.onload = function () {\n onload.call(reader, this.result)\n }\n if (onerror) {\n reader.onabort = reader.onerror = function () {\n onerror.call(reader, this.error)\n }\n }\n var readerMethod = reader[method || 'readAsDataURL']\n if (readerMethod) {\n readerMethod.call(reader, file)\n return reader\n }\n }\n\n /**\n * Cross-frame instanceof check.\n *\n * @param {string} type Instance type\n * @param {object} obj Object instance\n * @returns {boolean} Returns true if the object is of the given instance.\n */\n function isInstanceOf(type, obj) {\n // Cross-frame instanceof check\n return Object.prototype.toString.call(obj) === '[object ' + type + ']'\n }\n\n /**\n * @typedef { HTMLImageElement|HTMLCanvasElement } Result\n */\n\n /**\n * Loads an image for a given File object.\n *\n * @param {Blob|string} file Blob object or image URL\n * @param {Function|object} [callback] Image load event callback or options\n * @param {object} [options] Options object\n * @returns {HTMLImageElement|FileReader|Promise} Object\n */\n function loadImage(file, callback, options) {\n /**\n * Promise executor\n *\n * @param {Function} resolve Resolution function\n * @param {Function} reject Rejection function\n * @returns {HTMLImageElement|FileReader} Object\n */\n function executor(resolve, reject) {\n var img = document.createElement('img')\n var url\n /**\n * Callback for the fetchBlob call.\n *\n * @param {HTMLImageElement|HTMLCanvasElement} img Error object\n * @param {object} data Data object\n * @returns {undefined} Undefined\n */\n function resolveWrapper(img, data) {\n if (resolve === reject) {\n // Not using Promises\n if (resolve) resolve(img, data)\n return\n } else if (img instanceof Error) {\n reject(img)\n return\n }\n data = data || {} // eslint-disable-line no-param-reassign\n data.image = img\n resolve(data)\n }\n /**\n * Callback for the fetchBlob call.\n *\n * @param {Blob} blob Blob object\n * @param {Error} err Error object\n */\n function fetchBlobCallback(blob, err) {\n if (err && $.console) console.log(err) // eslint-disable-line no-console\n if (blob && isInstanceOf('Blob', blob)) {\n file = blob // eslint-disable-line no-param-reassign\n url = createObjectURL(file)\n } else {\n url = file\n if (options && options.crossOrigin) {\n img.crossOrigin = options.crossOrigin\n }\n }\n img.src = url\n }\n img.onerror = function (event) {\n revokeHelper(url, options)\n if (reject) reject.call(img, event)\n }\n img.onload = function () {\n revokeHelper(url, options)\n var data = {\n originalWidth: img.naturalWidth || img.width,\n originalHeight: img.naturalHeight || img.height\n }\n try {\n loadImage.transform(img, options, resolveWrapper, file, data)\n } catch (error) {\n if (reject) reject(error)\n }\n }\n if (typeof file === 'string') {\n if (loadImage.requiresMetaData(options)) {\n loadImage.fetchBlob(file, fetchBlobCallback, options)\n } else {\n fetchBlobCallback()\n }\n return img\n } else if (isInstanceOf('Blob', file) || isInstanceOf('File', file)) {\n url = createObjectURL(file)\n if (url) {\n img.src = url\n return img\n }\n return readFile(\n file,\n function (url) {\n img.src = url\n },\n reject\n )\n }\n }\n if ($.Promise && typeof callback !== 'function') {\n options = callback // eslint-disable-line no-param-reassign\n return new Promise(executor)\n }\n return executor(callback, callback)\n }\n\n // Determines if metadata should be loaded automatically.\n // Requires the load image meta extension to load metadata.\n loadImage.requiresMetaData = function (options) {\n return options && options.meta\n }\n\n // If the callback given to this function returns a blob, it is used as image\n // source instead of the original url and overrides the file argument used in\n // the onload and onerror event callbacks:\n loadImage.fetchBlob = function (url, callback) {\n callback()\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n callback(img, data)\n }\n\n loadImage.global = $\n loadImage.readFile = readFile\n loadImage.isInstanceOf = isInstanceOf\n loadImage.createObjectURL = createObjectURL\n loadImage.revokeObjectURL = revokeObjectURL\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return loadImage\n })\n } else if (typeof module === 'object' && module.exports) {\n module.exports = loadImage\n } else {\n $.loadImage = loadImage\n }\n})((typeof window !== 'undefined' && window) || this)\n", "/*\n * JavaScript Load Image Scaling\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var originalTransform = loadImage.transform\n\n loadImage.createCanvas = function (width, height, offscreen) {\n if (offscreen && loadImage.global.OffscreenCanvas) {\n return new OffscreenCanvas(width, height)\n }\n var canvas = document.createElement('canvas')\n canvas.width = width\n canvas.height = height\n return canvas\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n originalTransform.call(\n loadImage,\n loadImage.scale(img, options, data),\n options,\n callback,\n file,\n data\n )\n }\n\n // Transform image coordinates, allows to override e.g.\n // the canvas orientation based on the orientation option,\n // gets canvas, options and data passed as arguments:\n loadImage.transformCoordinates = function () {}\n\n // Returns transformed options, allows to override e.g.\n // maxWidth, maxHeight and crop options based on the aspectRatio.\n // gets img, options, data passed as arguments:\n loadImage.getTransformedOptions = function (img, options) {\n var aspectRatio = options.aspectRatio\n var newOptions\n var i\n var width\n var height\n if (!aspectRatio) {\n return options\n }\n newOptions = {}\n for (i in options) {\n if (Object.prototype.hasOwnProperty.call(options, i)) {\n newOptions[i] = options[i]\n }\n }\n newOptions.crop = true\n width = img.naturalWidth || img.width\n height = img.naturalHeight || img.height\n if (width / height > aspectRatio) {\n newOptions.maxWidth = height * aspectRatio\n newOptions.maxHeight = height\n } else {\n newOptions.maxWidth = width\n newOptions.maxHeight = width / aspectRatio\n }\n return newOptions\n }\n\n // Canvas render method, allows to implement a different rendering algorithm:\n loadImage.drawImage = function (\n img,\n canvas,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destWidth,\n destHeight,\n options\n ) {\n var ctx = canvas.getContext('2d')\n if (options.imageSmoothingEnabled === false) {\n ctx.msImageSmoothingEnabled = false\n ctx.imageSmoothingEnabled = false\n } else if (options.imageSmoothingQuality) {\n ctx.imageSmoothingQuality = options.imageSmoothingQuality\n }\n ctx.drawImage(\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n 0,\n 0,\n destWidth,\n destHeight\n )\n return ctx\n }\n\n // Determines if the target image should be a canvas element:\n loadImage.requiresCanvas = function (options) {\n return options.canvas || options.crop || !!options.aspectRatio\n }\n\n // Scales and/or crops the given image (img or canvas HTML element)\n // using the given options:\n loadImage.scale = function (img, options, data) {\n // eslint-disable-next-line no-param-reassign\n options = options || {}\n // eslint-disable-next-line no-param-reassign\n data = data || {}\n var useCanvas =\n img.getContext ||\n (loadImage.requiresCanvas(options) &&\n !!loadImage.global.HTMLCanvasElement)\n var width = img.naturalWidth || img.width\n var height = img.naturalHeight || img.height\n var destWidth = width\n var destHeight = height\n var maxWidth\n var maxHeight\n var minWidth\n var minHeight\n var sourceWidth\n var sourceHeight\n var sourceX\n var sourceY\n var pixelRatio\n var downsamplingRatio\n var tmp\n var canvas\n /**\n * Scales up image dimensions\n */\n function scaleUp() {\n var scale = Math.max(\n (minWidth || destWidth) / destWidth,\n (minHeight || destHeight) / destHeight\n )\n if (scale > 1) {\n destWidth *= scale\n destHeight *= scale\n }\n }\n /**\n * Scales down image dimensions\n */\n function scaleDown() {\n var scale = Math.min(\n (maxWidth || destWidth) / destWidth,\n (maxHeight || destHeight) / destHeight\n )\n if (scale < 1) {\n destWidth *= scale\n destHeight *= scale\n }\n }\n if (useCanvas) {\n // eslint-disable-next-line no-param-reassign\n options = loadImage.getTransformedOptions(img, options, data)\n sourceX = options.left || 0\n sourceY = options.top || 0\n if (options.sourceWidth) {\n sourceWidth = options.sourceWidth\n if (options.right !== undefined && options.left === undefined) {\n sourceX = width - sourceWidth - options.right\n }\n } else {\n sourceWidth = width - sourceX - (options.right || 0)\n }\n if (options.sourceHeight) {\n sourceHeight = options.sourceHeight\n if (options.bottom !== undefined && options.top === undefined) {\n sourceY = height - sourceHeight - options.bottom\n }\n } else {\n sourceHeight = height - sourceY - (options.bottom || 0)\n }\n destWidth = sourceWidth\n destHeight = sourceHeight\n }\n maxWidth = options.maxWidth\n maxHeight = options.maxHeight\n minWidth = options.minWidth\n minHeight = options.minHeight\n if (useCanvas && maxWidth && maxHeight && options.crop) {\n destWidth = maxWidth\n destHeight = maxHeight\n tmp = sourceWidth / sourceHeight - maxWidth / maxHeight\n if (tmp < 0) {\n sourceHeight = (maxHeight * sourceWidth) / maxWidth\n if (options.top === undefined && options.bottom === undefined) {\n sourceY = (height - sourceHeight) / 2\n }\n } else if (tmp > 0) {\n sourceWidth = (maxWidth * sourceHeight) / maxHeight\n if (options.left === undefined && options.right === undefined) {\n sourceX = (width - sourceWidth) / 2\n }\n }\n } else {\n if (options.contain || options.cover) {\n minWidth = maxWidth = maxWidth || minWidth\n minHeight = maxHeight = maxHeight || minHeight\n }\n if (options.cover) {\n scaleDown()\n scaleUp()\n } else {\n scaleUp()\n scaleDown()\n }\n }\n if (useCanvas) {\n pixelRatio = options.pixelRatio\n if (\n pixelRatio > 1 &&\n // Check if the image has not yet had the device pixel ratio applied:\n !(\n img.style.width &&\n Math.floor(parseFloat(img.style.width, 10)) ===\n Math.floor(width / pixelRatio)\n )\n ) {\n destWidth *= pixelRatio\n destHeight *= pixelRatio\n }\n // Check if workaround for Chromium orientation crop bug is required:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1074354\n if (\n loadImage.orientationCropBug &&\n !img.getContext &&\n (sourceX || sourceY || sourceWidth !== width || sourceHeight !== height)\n ) {\n // Write the complete source image to an intermediate canvas first:\n tmp = img\n // eslint-disable-next-line no-param-reassign\n img = loadImage.createCanvas(width, height, true)\n loadImage.drawImage(\n tmp,\n img,\n 0,\n 0,\n width,\n height,\n width,\n height,\n options\n )\n }\n downsamplingRatio = options.downsamplingRatio\n if (\n downsamplingRatio > 0 &&\n downsamplingRatio < 1 &&\n destWidth < sourceWidth &&\n destHeight < sourceHeight\n ) {\n while (sourceWidth * downsamplingRatio > destWidth) {\n canvas = loadImage.createCanvas(\n sourceWidth * downsamplingRatio,\n sourceHeight * downsamplingRatio,\n true\n )\n loadImage.drawImage(\n img,\n canvas,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n canvas.width,\n canvas.height,\n options\n )\n sourceX = 0\n sourceY = 0\n sourceWidth = canvas.width\n sourceHeight = canvas.height\n // eslint-disable-next-line no-param-reassign\n img = canvas\n }\n }\n canvas = loadImage.createCanvas(destWidth, destHeight)\n loadImage.transformCoordinates(canvas, options, data)\n if (pixelRatio > 1) {\n canvas.style.width = canvas.width / pixelRatio + 'px'\n }\n loadImage\n .drawImage(\n img,\n canvas,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destWidth,\n destHeight,\n options\n )\n .setTransform(1, 0, 0, 1, 0, 0) // reset to the identity matrix\n return canvas\n }\n img.width = destWidth\n img.height = destHeight\n return img\n }\n})\n", "/*\n * JavaScript Load Image Meta\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Image metadata handling implementation\n * based on the help and contribution of\n * Achim St\u00F6hr.\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, Promise, DataView, Uint8Array, ArrayBuffer */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var global = loadImage.global\n var originalTransform = loadImage.transform\n\n var blobSlice =\n global.Blob &&\n (Blob.prototype.slice ||\n Blob.prototype.webkitSlice ||\n Blob.prototype.mozSlice)\n\n var bufferSlice =\n (global.ArrayBuffer && ArrayBuffer.prototype.slice) ||\n function (begin, end) {\n // Polyfill for IE10, which does not support ArrayBuffer.slice\n // eslint-disable-next-line no-param-reassign\n end = end || this.byteLength - begin\n var arr1 = new Uint8Array(this, begin, end)\n var arr2 = new Uint8Array(end)\n arr2.set(arr1)\n return arr2.buffer\n }\n\n var metaDataParsers = {\n jpeg: {\n 0xffe1: [], // APP1 marker\n 0xffed: [] // APP13 marker\n }\n }\n\n /**\n * Parses image metadata and calls the callback with an object argument\n * with the following property:\n * - imageHead: The complete image head as ArrayBuffer\n * The options argument accepts an object and supports the following\n * properties:\n * - maxMetaDataSize: Defines the maximum number of bytes to parse.\n * - disableImageHead: Disables creating the imageHead property.\n *\n * @param {Blob} file Blob object\n * @param {Function} [callback] Callback function\n * @param {object} [options] Parsing options\n * @param {object} [data] Result data object\n * @returns {Promise|undefined} Returns Promise if no callback given.\n */\n function parseMetaData(file, callback, options, data) {\n var that = this\n /**\n * Promise executor\n *\n * @param {Function} resolve Resolution function\n * @param {Function} reject Rejection function\n * @returns {undefined} Undefined\n */\n function executor(resolve, reject) {\n if (\n !(\n global.DataView &&\n blobSlice &&\n file &&\n file.size >= 12 &&\n file.type === 'image/jpeg'\n )\n ) {\n // Nothing to parse\n return resolve(data)\n }\n // 256 KiB should contain all EXIF/ICC/IPTC segments:\n var maxMetaDataSize = options.maxMetaDataSize || 262144\n if (\n !loadImage.readFile(\n blobSlice.call(file, 0, maxMetaDataSize),\n function (buffer) {\n // Note on endianness:\n // Since the marker and length bytes in JPEG files are always\n // stored in big endian order, we can leave the endian parameter\n // of the DataView methods undefined, defaulting to big endian.\n var dataView = new DataView(buffer)\n // Check for the JPEG marker (0xffd8):\n if (dataView.getUint16(0) !== 0xffd8) {\n return reject(\n new Error('Invalid JPEG file: Missing JPEG marker.')\n )\n }\n var offset = 2\n var maxOffset = dataView.byteLength - 4\n var headLength = offset\n var markerBytes\n var markerLength\n var parsers\n var i\n while (offset < maxOffset) {\n markerBytes = dataView.getUint16(offset)\n // Search for APPn (0xffeN) and COM (0xfffe) markers,\n // which contain application-specific metadata like\n // Exif, ICC and IPTC data and text comments:\n if (\n (markerBytes >= 0xffe0 && markerBytes <= 0xffef) ||\n markerBytes === 0xfffe\n ) {\n // The marker bytes (2) are always followed by\n // the length bytes (2), indicating the length of the\n // marker segment, which includes the length bytes,\n // but not the marker bytes, so we add 2:\n markerLength = dataView.getUint16(offset + 2) + 2\n if (offset + markerLength > dataView.byteLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid JPEG metadata: Invalid segment size.')\n break\n }\n parsers = metaDataParsers.jpeg[markerBytes]\n if (parsers && !options.disableMetaDataParsers) {\n for (i = 0; i < parsers.length; i += 1) {\n parsers[i].call(\n that,\n dataView,\n offset,\n markerLength,\n data,\n options\n )\n }\n }\n offset += markerLength\n headLength = offset\n } else {\n // Not an APPn or COM marker, probably safe to\n // assume that this is the end of the metadata\n break\n }\n }\n // Meta length must be longer than JPEG marker (2)\n // plus APPn marker (2), followed by length bytes (2):\n if (!options.disableImageHead && headLength > 6) {\n data.imageHead = bufferSlice.call(buffer, 0, headLength)\n }\n resolve(data)\n },\n reject,\n 'readAsArrayBuffer'\n )\n ) {\n // No support for the FileReader interface, nothing to parse\n resolve(data)\n }\n }\n options = options || {} // eslint-disable-line no-param-reassign\n if (global.Promise && typeof callback !== 'function') {\n options = callback || {} // eslint-disable-line no-param-reassign\n data = options // eslint-disable-line no-param-reassign\n return new Promise(executor)\n }\n data = data || {} // eslint-disable-line no-param-reassign\n return executor(callback, callback)\n }\n\n /**\n * Replaces the head of a JPEG Blob\n *\n * @param {Blob} blob Blob object\n * @param {ArrayBuffer} oldHead Old JPEG head\n * @param {ArrayBuffer} newHead New JPEG head\n * @returns {Blob} Combined Blob\n */\n function replaceJPEGHead(blob, oldHead, newHead) {\n if (!blob || !oldHead || !newHead) return null\n return new Blob([newHead, blobSlice.call(blob, oldHead.byteLength)], {\n type: 'image/jpeg'\n })\n }\n\n /**\n * Replaces the image head of a JPEG blob with the given one.\n * Returns a Promise or calls the callback with the new Blob.\n *\n * @param {Blob} blob Blob object\n * @param {ArrayBuffer} head New JPEG head\n * @param {Function} [callback] Callback function\n * @returns {Promise|undefined} Combined Blob\n */\n function replaceHead(blob, head, callback) {\n var options = { maxMetaDataSize: 1024, disableMetaDataParsers: true }\n if (!callback && global.Promise) {\n return parseMetaData(blob, options).then(function (data) {\n return replaceJPEGHead(blob, data.imageHead, head)\n })\n }\n parseMetaData(\n blob,\n function (data) {\n callback(replaceJPEGHead(blob, data.imageHead, head))\n },\n options\n )\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n if (loadImage.requiresMetaData(options)) {\n data = data || {} // eslint-disable-line no-param-reassign\n parseMetaData(\n file,\n function (result) {\n if (result !== data) {\n // eslint-disable-next-line no-console\n if (global.console) console.log(result)\n result = data // eslint-disable-line no-param-reassign\n }\n originalTransform.call(\n loadImage,\n img,\n options,\n callback,\n file,\n result\n )\n },\n options,\n data\n )\n } else {\n originalTransform.apply(loadImage, arguments)\n }\n }\n\n loadImage.blobSlice = blobSlice\n loadImage.bufferSlice = bufferSlice\n loadImage.replaceHead = replaceHead\n loadImage.parseMetaData = parseMetaData\n loadImage.metaDataParsers = metaDataParsers\n})\n", "/*\n * JavaScript Load Image Fetch\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2017, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, Promise */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var global = loadImage.global\n\n if (\n global.fetch &&\n global.Request &&\n global.Response &&\n global.Response.prototype.blob\n ) {\n loadImage.fetchBlob = function (url, callback, options) {\n /**\n * Fetch response handler.\n *\n * @param {Response} response Fetch response\n * @returns {Blob} Fetched Blob.\n */\n function responseHandler(response) {\n return response.blob()\n }\n if (global.Promise && typeof callback !== 'function') {\n return fetch(new Request(url, callback)).then(responseHandler)\n }\n fetch(new Request(url, options))\n .then(responseHandler)\n .then(callback)\n [\n // Avoid parsing error in IE<9, where catch is a reserved word.\n // eslint-disable-next-line dot-notation\n 'catch'\n ](function (err) {\n callback(null, err)\n })\n }\n } else if (\n global.XMLHttpRequest &&\n // https://xhr.spec.whatwg.org/#the-responsetype-attribute\n new XMLHttpRequest().responseType === ''\n ) {\n loadImage.fetchBlob = function (url, callback, options) {\n /**\n * Promise executor\n *\n * @param {Function} resolve Resolution function\n * @param {Function} reject Rejection function\n */\n function executor(resolve, reject) {\n options = options || {} // eslint-disable-line no-param-reassign\n var req = new XMLHttpRequest()\n req.open(options.method || 'GET', url)\n if (options.headers) {\n Object.keys(options.headers).forEach(function (key) {\n req.setRequestHeader(key, options.headers[key])\n })\n }\n req.withCredentials = options.credentials === 'include'\n req.responseType = 'blob'\n req.onload = function () {\n resolve(req.response)\n }\n req.onerror =\n req.onabort =\n req.ontimeout =\n function (err) {\n if (resolve === reject) {\n // Not using Promises\n reject(null, err)\n } else {\n reject(err)\n }\n }\n req.send(options.body)\n }\n if (global.Promise && typeof callback !== 'function') {\n options = callback // eslint-disable-line no-param-reassign\n return new Promise(executor)\n }\n return executor(callback, callback)\n }\n }\n})\n", "/*\n * JavaScript Load Image Exif Parser\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, DataView */\n\n/* eslint-disable no-console */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-meta'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-meta'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n /**\n * Exif tag map\n *\n * @name ExifMap\n * @class\n * @param {number|string} tagCode IFD tag code\n */\n function ExifMap(tagCode) {\n if (tagCode) {\n Object.defineProperty(this, 'map', {\n value: this.ifds[tagCode].map\n })\n Object.defineProperty(this, 'tags', {\n value: (this.tags && this.tags[tagCode]) || {}\n })\n }\n }\n\n ExifMap.prototype.map = {\n Orientation: 0x0112,\n Thumbnail: 'ifd1',\n Blob: 0x0201, // Alias for JPEGInterchangeFormat\n Exif: 0x8769,\n GPSInfo: 0x8825,\n Interoperability: 0xa005\n }\n\n ExifMap.prototype.ifds = {\n ifd1: { name: 'Thumbnail', map: ExifMap.prototype.map },\n 0x8769: { name: 'Exif', map: {} },\n 0x8825: { name: 'GPSInfo', map: {} },\n 0xa005: { name: 'Interoperability', map: {} }\n }\n\n /**\n * Retrieves exif tag value\n *\n * @param {number|string} id Exif tag code or name\n * @returns {object} Exif tag value\n */\n ExifMap.prototype.get = function (id) {\n return this[id] || this[this.map[id]]\n }\n\n /**\n * Returns the Exif Thumbnail data as Blob.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Thumbnail data offset\n * @param {number} length Thumbnail data length\n * @returns {undefined|Blob} Returns the Thumbnail Blob or undefined\n */\n function getExifThumbnail(dataView, offset, length) {\n if (!length) return\n if (offset + length > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid thumbnail data.')\n return\n }\n return new Blob(\n [loadImage.bufferSlice.call(dataView.buffer, offset, offset + length)],\n {\n type: 'image/jpeg'\n }\n )\n }\n\n var ExifTagTypes = {\n // byte, 8-bit unsigned int:\n 1: {\n getValue: function (dataView, dataOffset) {\n return dataView.getUint8(dataOffset)\n },\n size: 1\n },\n // ascii, 8-bit byte:\n 2: {\n getValue: function (dataView, dataOffset) {\n return String.fromCharCode(dataView.getUint8(dataOffset))\n },\n size: 1,\n ascii: true\n },\n // short, 16 bit int:\n 3: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getUint16(dataOffset, littleEndian)\n },\n size: 2\n },\n // long, 32 bit int:\n 4: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getUint32(dataOffset, littleEndian)\n },\n size: 4\n },\n // rational = two long values, first is numerator, second is denominator:\n 5: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return (\n dataView.getUint32(dataOffset, littleEndian) /\n dataView.getUint32(dataOffset + 4, littleEndian)\n )\n },\n size: 8\n },\n // slong, 32 bit signed int:\n 9: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getInt32(dataOffset, littleEndian)\n },\n size: 4\n },\n // srational, two slongs, first is numerator, second is denominator:\n 10: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return (\n dataView.getInt32(dataOffset, littleEndian) /\n dataView.getInt32(dataOffset + 4, littleEndian)\n )\n },\n size: 8\n }\n }\n // undefined, 8-bit byte, value depending on field:\n ExifTagTypes[7] = ExifTagTypes[1]\n\n /**\n * Returns Exif tag value.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {number} offset Tag offset\n * @param {number} type Tag type\n * @param {number} length Tag length\n * @param {boolean} littleEndian Little endian encoding\n * @returns {object} Tag value\n */\n function getExifValue(\n dataView,\n tiffOffset,\n offset,\n type,\n length,\n littleEndian\n ) {\n var tagType = ExifTagTypes[type]\n var tagSize\n var dataOffset\n var values\n var i\n var str\n var c\n if (!tagType) {\n console.log('Invalid Exif data: Invalid tag type.')\n return\n }\n tagSize = tagType.size * length\n // Determine if the value is contained in the dataOffset bytes,\n // or if the value at the dataOffset is a pointer to the actual data:\n dataOffset =\n tagSize > 4\n ? tiffOffset + dataView.getUint32(offset + 8, littleEndian)\n : offset + 8\n if (dataOffset + tagSize > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid data offset.')\n return\n }\n if (length === 1) {\n return tagType.getValue(dataView, dataOffset, littleEndian)\n }\n values = []\n for (i = 0; i < length; i += 1) {\n values[i] = tagType.getValue(\n dataView,\n dataOffset + i * tagType.size,\n littleEndian\n )\n }\n if (tagType.ascii) {\n str = ''\n // Concatenate the chars:\n for (i = 0; i < values.length; i += 1) {\n c = values[i]\n // Ignore the terminating NULL byte(s):\n if (c === '\\u0000') {\n break\n }\n str += c\n }\n return str\n }\n return values\n }\n\n /**\n * Determines if the given tag should be included.\n *\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n * @param {number|string} tagCode Tag code to check\n * @returns {boolean} True if the tag should be included\n */\n function shouldIncludeTag(includeTags, excludeTags, tagCode) {\n return (\n (!includeTags || includeTags[tagCode]) &&\n (!excludeTags || excludeTags[tagCode] !== true)\n )\n }\n\n /**\n * Parses Exif tags.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {number} dirOffset Directory offset\n * @param {boolean} littleEndian Little endian encoding\n * @param {ExifMap} tags Map to store parsed exif tags\n * @param {ExifMap} tagOffsets Map to store parsed exif tag offsets\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n * @returns {number} Next directory offset\n */\n function parseExifTags(\n dataView,\n tiffOffset,\n dirOffset,\n littleEndian,\n tags,\n tagOffsets,\n includeTags,\n excludeTags\n ) {\n var tagsNumber, dirEndOffset, i, tagOffset, tagNumber, tagValue\n if (dirOffset + 6 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid directory offset.')\n return\n }\n tagsNumber = dataView.getUint16(dirOffset, littleEndian)\n dirEndOffset = dirOffset + 2 + 12 * tagsNumber\n if (dirEndOffset + 4 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid directory size.')\n return\n }\n for (i = 0; i < tagsNumber; i += 1) {\n tagOffset = dirOffset + 2 + 12 * i\n tagNumber = dataView.getUint16(tagOffset, littleEndian)\n if (!shouldIncludeTag(includeTags, excludeTags, tagNumber)) continue\n tagValue = getExifValue(\n dataView,\n tiffOffset,\n tagOffset,\n dataView.getUint16(tagOffset + 2, littleEndian), // tag type\n dataView.getUint32(tagOffset + 4, littleEndian), // tag length\n littleEndian\n )\n tags[tagNumber] = tagValue\n if (tagOffsets) {\n tagOffsets[tagNumber] = tagOffset\n }\n }\n // Return the offset to the next directory:\n return dataView.getUint32(dirEndOffset, littleEndian)\n }\n\n /**\n * Parses tags in a given IFD (Image File Directory).\n *\n * @param {object} data Data object to store exif tags and offsets\n * @param {number|string} tagCode IFD tag code\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {boolean} littleEndian Little endian encoding\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n */\n function parseExifIFD(\n data,\n tagCode,\n dataView,\n tiffOffset,\n littleEndian,\n includeTags,\n excludeTags\n ) {\n var dirOffset = data.exif[tagCode]\n if (dirOffset) {\n data.exif[tagCode] = new ExifMap(tagCode)\n if (data.exifOffsets) {\n data.exifOffsets[tagCode] = new ExifMap(tagCode)\n }\n parseExifTags(\n dataView,\n tiffOffset,\n tiffOffset + dirOffset,\n littleEndian,\n data.exif[tagCode],\n data.exifOffsets && data.exifOffsets[tagCode],\n includeTags && includeTags[tagCode],\n excludeTags && excludeTags[tagCode]\n )\n }\n }\n\n loadImage.parseExifData = function (dataView, offset, length, data, options) {\n if (options.disableExif) {\n return\n }\n var includeTags = options.includeExifTags\n var excludeTags = options.excludeExifTags || {\n 0x8769: {\n // ExifIFDPointer\n 0x927c: true // MakerNote\n }\n }\n var tiffOffset = offset + 10\n var littleEndian\n var dirOffset\n var thumbnailIFD\n // Check for the ASCII code for \"Exif\" (0x45786966):\n if (dataView.getUint32(offset + 4) !== 0x45786966) {\n // No Exif data, might be XMP data instead\n return\n }\n if (tiffOffset + 8 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid segment size.')\n return\n }\n // Check for the two null bytes:\n if (dataView.getUint16(offset + 8) !== 0x0000) {\n console.log('Invalid Exif data: Missing byte alignment offset.')\n return\n }\n // Check the byte alignment:\n switch (dataView.getUint16(tiffOffset)) {\n case 0x4949:\n littleEndian = true\n break\n case 0x4d4d:\n littleEndian = false\n break\n default:\n console.log('Invalid Exif data: Invalid byte alignment marker.')\n return\n }\n // Check for the TIFF tag marker (0x002A):\n if (dataView.getUint16(tiffOffset + 2, littleEndian) !== 0x002a) {\n console.log('Invalid Exif data: Missing TIFF marker.')\n return\n }\n // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:\n dirOffset = dataView.getUint32(tiffOffset + 4, littleEndian)\n // Create the exif object to store the tags:\n data.exif = new ExifMap()\n if (!options.disableExifOffsets) {\n data.exifOffsets = new ExifMap()\n data.exifTiffOffset = tiffOffset\n data.exifLittleEndian = littleEndian\n }\n // Parse the tags of the main image directory (IFD0) and retrieve the\n // offset to the next directory (IFD1), usually the thumbnail directory:\n dirOffset = parseExifTags(\n dataView,\n tiffOffset,\n tiffOffset + dirOffset,\n littleEndian,\n data.exif,\n data.exifOffsets,\n includeTags,\n excludeTags\n )\n if (dirOffset && shouldIncludeTag(includeTags, excludeTags, 'ifd1')) {\n data.exif.ifd1 = dirOffset\n if (data.exifOffsets) {\n data.exifOffsets.ifd1 = tiffOffset + dirOffset\n }\n }\n Object.keys(data.exif.ifds).forEach(function (tagCode) {\n parseExifIFD(\n data,\n tagCode,\n dataView,\n tiffOffset,\n littleEndian,\n includeTags,\n excludeTags\n )\n })\n thumbnailIFD = data.exif.ifd1\n // Check for JPEG Thumbnail offset and data length:\n if (thumbnailIFD && thumbnailIFD[0x0201]) {\n thumbnailIFD[0x0201] = getExifThumbnail(\n dataView,\n tiffOffset + thumbnailIFD[0x0201],\n thumbnailIFD[0x0202] // Thumbnail data length\n )\n }\n }\n\n // Registers the Exif parser for the APP1 JPEG metadata segment:\n loadImage.metaDataParsers.jpeg[0xffe1].push(loadImage.parseExifData)\n\n loadImage.exifWriters = {\n // Orientation writer:\n 0x0112: function (buffer, data, value) {\n var orientationOffset = data.exifOffsets[0x0112]\n if (!orientationOffset) return buffer\n var view = new DataView(buffer, orientationOffset + 8, 2)\n view.setUint16(0, value, data.exifLittleEndian)\n return buffer\n }\n }\n\n loadImage.writeExifData = function (buffer, data, id, value) {\n return loadImage.exifWriters[data.exif.map[id]](buffer, data, value)\n }\n\n loadImage.ExifMap = ExifMap\n\n // Adds the following properties to the parseMetaData callback data:\n // - exif: The parsed Exif tags\n // - exifOffsets: The parsed Exif tag offsets\n // - exifTiffOffset: TIFF header offset (used for offset pointers)\n // - exifLittleEndian: little endian order if true, big endian if false\n\n // Adds the following options to the parseMetaData method:\n // - disableExif: Disables Exif parsing when true.\n // - disableExifOffsets: Disables storing Exif tag offsets when true.\n // - includeExifTags: A map of Exif tags to include for parsing.\n // - excludeExifTags: A map of Exif tags to exclude from parsing.\n})\n", "/*\n * JavaScript Load Image Exif Map\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Exif tags mapping based on\n * https://github.com/jseidelin/exif-js\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-exif'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-exif'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var ExifMapProto = loadImage.ExifMap.prototype\n\n ExifMapProto.tags = {\n // =================\n // TIFF tags (IFD0):\n // =================\n 0x0100: 'ImageWidth',\n 0x0101: 'ImageHeight',\n 0x0102: 'BitsPerSample',\n 0x0103: 'Compression',\n 0x0106: 'PhotometricInterpretation',\n 0x0112: 'Orientation',\n 0x0115: 'SamplesPerPixel',\n 0x011c: 'PlanarConfiguration',\n 0x0212: 'YCbCrSubSampling',\n 0x0213: 'YCbCrPositioning',\n 0x011a: 'XResolution',\n 0x011b: 'YResolution',\n 0x0128: 'ResolutionUnit',\n 0x0111: 'StripOffsets',\n 0x0116: 'RowsPerStrip',\n 0x0117: 'StripByteCounts',\n 0x0201: 'JPEGInterchangeFormat',\n 0x0202: 'JPEGInterchangeFormatLength',\n 0x012d: 'TransferFunction',\n 0x013e: 'WhitePoint',\n 0x013f: 'PrimaryChromaticities',\n 0x0211: 'YCbCrCoefficients',\n 0x0214: 'ReferenceBlackWhite',\n 0x0132: 'DateTime',\n 0x010e: 'ImageDescription',\n 0x010f: 'Make',\n 0x0110: 'Model',\n 0x0131: 'Software',\n 0x013b: 'Artist',\n 0x8298: 'Copyright',\n 0x8769: {\n // ExifIFDPointer\n 0x9000: 'ExifVersion', // EXIF version\n 0xa000: 'FlashpixVersion', // Flashpix format version\n 0xa001: 'ColorSpace', // Color space information tag\n 0xa002: 'PixelXDimension', // Valid width of meaningful image\n 0xa003: 'PixelYDimension', // Valid height of meaningful image\n 0xa500: 'Gamma',\n 0x9101: 'ComponentsConfiguration', // Information about channels\n 0x9102: 'CompressedBitsPerPixel', // Compressed bits per pixel\n 0x927c: 'MakerNote', // Any desired information written by the manufacturer\n 0x9286: 'UserComment', // Comments by user\n 0xa004: 'RelatedSoundFile', // Name of related sound file\n 0x9003: 'DateTimeOriginal', // Date and time when the original image was generated\n 0x9004: 'DateTimeDigitized', // Date and time when the image was stored digitally\n 0x9010: 'OffsetTime', // Time zone when the image file was last changed\n 0x9011: 'OffsetTimeOriginal', // Time zone when the image was stored digitally\n 0x9012: 'OffsetTimeDigitized', // Time zone when the image was stored digitally\n 0x9290: 'SubSecTime', // Fractions of seconds for DateTime\n 0x9291: 'SubSecTimeOriginal', // Fractions of seconds for DateTimeOriginal\n 0x9292: 'SubSecTimeDigitized', // Fractions of seconds for DateTimeDigitized\n 0x829a: 'ExposureTime', // Exposure time (in seconds)\n 0x829d: 'FNumber',\n 0x8822: 'ExposureProgram', // Exposure program\n 0x8824: 'SpectralSensitivity', // Spectral sensitivity\n 0x8827: 'PhotographicSensitivity', // EXIF 2.3, ISOSpeedRatings in EXIF 2.2\n 0x8828: 'OECF', // Optoelectric conversion factor\n 0x8830: 'SensitivityType',\n 0x8831: 'StandardOutputSensitivity',\n 0x8832: 'RecommendedExposureIndex',\n 0x8833: 'ISOSpeed',\n 0x8834: 'ISOSpeedLatitudeyyy',\n 0x8835: 'ISOSpeedLatitudezzz',\n 0x9201: 'ShutterSpeedValue', // Shutter speed\n 0x9202: 'ApertureValue', // Lens aperture\n 0x9203: 'BrightnessValue', // Value of brightness\n 0x9204: 'ExposureBias', // Exposure bias\n 0x9205: 'MaxApertureValue', // Smallest F number of lens\n 0x9206: 'SubjectDistance', // Distance to subject in meters\n 0x9207: 'MeteringMode', // Metering mode\n 0x9208: 'LightSource', // Kind of light source\n 0x9209: 'Flash', // Flash status\n 0x9214: 'SubjectArea', // Location and area of main subject\n 0x920a: 'FocalLength', // Focal length of the lens in mm\n 0xa20b: 'FlashEnergy', // Strobe energy in BCPS\n 0xa20c: 'SpatialFrequencyResponse',\n 0xa20e: 'FocalPlaneXResolution', // Number of pixels in width direction per FPRUnit\n 0xa20f: 'FocalPlaneYResolution', // Number of pixels in height direction per FPRUnit\n 0xa210: 'FocalPlaneResolutionUnit', // Unit for measuring the focal plane resolution\n 0xa214: 'SubjectLocation', // Location of subject in image\n 0xa215: 'ExposureIndex', // Exposure index selected on camera\n 0xa217: 'SensingMethod', // Image sensor type\n 0xa300: 'FileSource', // Image source (3 == DSC)\n 0xa301: 'SceneType', // Scene type (1 == directly photographed)\n 0xa302: 'CFAPattern', // Color filter array geometric pattern\n 0xa401: 'CustomRendered', // Special processing\n 0xa402: 'ExposureMode', // Exposure mode\n 0xa403: 'WhiteBalance', // 1 = auto white balance, 2 = manual\n 0xa404: 'DigitalZoomRatio', // Digital zoom ratio\n 0xa405: 'FocalLengthIn35mmFilm',\n 0xa406: 'SceneCaptureType', // Type of scene\n 0xa407: 'GainControl', // Degree of overall image gain adjustment\n 0xa408: 'Contrast', // Direction of contrast processing applied by camera\n 0xa409: 'Saturation', // Direction of saturation processing applied by camera\n 0xa40a: 'Sharpness', // Direction of sharpness processing applied by camera\n 0xa40b: 'DeviceSettingDescription',\n 0xa40c: 'SubjectDistanceRange', // Distance to subject\n 0xa420: 'ImageUniqueID', // Identifier assigned uniquely to each image\n 0xa430: 'CameraOwnerName',\n 0xa431: 'BodySerialNumber',\n 0xa432: 'LensSpecification',\n 0xa433: 'LensMake',\n 0xa434: 'LensModel',\n 0xa435: 'LensSerialNumber'\n },\n 0x8825: {\n // GPSInfoIFDPointer\n 0x0000: 'GPSVersionID',\n 0x0001: 'GPSLatitudeRef',\n 0x0002: 'GPSLatitude',\n 0x0003: 'GPSLongitudeRef',\n 0x0004: 'GPSLongitude',\n 0x0005: 'GPSAltitudeRef',\n 0x0006: 'GPSAltitude',\n 0x0007: 'GPSTimeStamp',\n 0x0008: 'GPSSatellites',\n 0x0009: 'GPSStatus',\n 0x000a: 'GPSMeasureMode',\n 0x000b: 'GPSDOP',\n 0x000c: 'GPSSpeedRef',\n 0x000d: 'GPSSpeed',\n 0x000e: 'GPSTrackRef',\n 0x000f: 'GPSTrack',\n 0x0010: 'GPSImgDirectionRef',\n 0x0011: 'GPSImgDirection',\n 0x0012: 'GPSMapDatum',\n 0x0013: 'GPSDestLatitudeRef',\n 0x0014: 'GPSDestLatitude',\n 0x0015: 'GPSDestLongitudeRef',\n 0x0016: 'GPSDestLongitude',\n 0x0017: 'GPSDestBearingRef',\n 0x0018: 'GPSDestBearing',\n 0x0019: 'GPSDestDistanceRef',\n 0x001a: 'GPSDestDistance',\n 0x001b: 'GPSProcessingMethod',\n 0x001c: 'GPSAreaInformation',\n 0x001d: 'GPSDateStamp',\n 0x001e: 'GPSDifferential',\n 0x001f: 'GPSHPositioningError'\n },\n 0xa005: {\n // InteroperabilityIFDPointer\n 0x0001: 'InteroperabilityIndex'\n }\n }\n\n // IFD1 directory can contain any IFD0 tags:\n ExifMapProto.tags.ifd1 = ExifMapProto.tags\n\n ExifMapProto.stringValues = {\n ExposureProgram: {\n 0: 'Undefined',\n 1: 'Manual',\n 2: 'Normal program',\n 3: 'Aperture priority',\n 4: 'Shutter priority',\n 5: 'Creative program',\n 6: 'Action program',\n 7: 'Portrait mode',\n 8: 'Landscape mode'\n },\n MeteringMode: {\n 0: 'Unknown',\n 1: 'Average',\n 2: 'CenterWeightedAverage',\n 3: 'Spot',\n 4: 'MultiSpot',\n 5: 'Pattern',\n 6: 'Partial',\n 255: 'Other'\n },\n LightSource: {\n 0: 'Unknown',\n 1: 'Daylight',\n 2: 'Fluorescent',\n 3: 'Tungsten (incandescent light)',\n 4: 'Flash',\n 9: 'Fine weather',\n 10: 'Cloudy weather',\n 11: 'Shade',\n 12: 'Daylight fluorescent (D 5700 - 7100K)',\n 13: 'Day white fluorescent (N 4600 - 5400K)',\n 14: 'Cool white fluorescent (W 3900 - 4500K)',\n 15: 'White fluorescent (WW 3200 - 3700K)',\n 17: 'Standard light A',\n 18: 'Standard light B',\n 19: 'Standard light C',\n 20: 'D55',\n 21: 'D65',\n 22: 'D75',\n 23: 'D50',\n 24: 'ISO studio tungsten',\n 255: 'Other'\n },\n Flash: {\n 0x0000: 'Flash did not fire',\n 0x0001: 'Flash fired',\n 0x0005: 'Strobe return light not detected',\n 0x0007: 'Strobe return light detected',\n 0x0009: 'Flash fired, compulsory flash mode',\n 0x000d: 'Flash fired, compulsory flash mode, return light not detected',\n 0x000f: 'Flash fired, compulsory flash mode, return light detected',\n 0x0010: 'Flash did not fire, compulsory flash mode',\n 0x0018: 'Flash did not fire, auto mode',\n 0x0019: 'Flash fired, auto mode',\n 0x001d: 'Flash fired, auto mode, return light not detected',\n 0x001f: 'Flash fired, auto mode, return light detected',\n 0x0020: 'No flash function',\n 0x0041: 'Flash fired, red-eye reduction mode',\n 0x0045: 'Flash fired, red-eye reduction mode, return light not detected',\n 0x0047: 'Flash fired, red-eye reduction mode, return light detected',\n 0x0049: 'Flash fired, compulsory flash mode, red-eye reduction mode',\n 0x004d:\n 'Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected',\n 0x004f:\n 'Flash fired, compulsory flash mode, red-eye reduction mode, return light detected',\n 0x0059: 'Flash fired, auto mode, red-eye reduction mode',\n 0x005d:\n 'Flash fired, auto mode, return light not detected, red-eye reduction mode',\n 0x005f:\n 'Flash fired, auto mode, return light detected, red-eye reduction mode'\n },\n SensingMethod: {\n 1: 'Undefined',\n 2: 'One-chip color area sensor',\n 3: 'Two-chip color area sensor',\n 4: 'Three-chip color area sensor',\n 5: 'Color sequential area sensor',\n 7: 'Trilinear sensor',\n 8: 'Color sequential linear sensor'\n },\n SceneCaptureType: {\n 0: 'Standard',\n 1: 'Landscape',\n 2: 'Portrait',\n 3: 'Night scene'\n },\n SceneType: {\n 1: 'Directly photographed'\n },\n CustomRendered: {\n 0: 'Normal process',\n 1: 'Custom process'\n },\n WhiteBalance: {\n 0: 'Auto white balance',\n 1: 'Manual white balance'\n },\n GainControl: {\n 0: 'None',\n 1: 'Low gain up',\n 2: 'High gain up',\n 3: 'Low gain down',\n 4: 'High gain down'\n },\n Contrast: {\n 0: 'Normal',\n 1: 'Soft',\n 2: 'Hard'\n },\n Saturation: {\n 0: 'Normal',\n 1: 'Low saturation',\n 2: 'High saturation'\n },\n Sharpness: {\n 0: 'Normal',\n 1: 'Soft',\n 2: 'Hard'\n },\n SubjectDistanceRange: {\n 0: 'Unknown',\n 1: 'Macro',\n 2: 'Close view',\n 3: 'Distant view'\n },\n FileSource: {\n 3: 'DSC'\n },\n ComponentsConfiguration: {\n 0: '',\n 1: 'Y',\n 2: 'Cb',\n 3: 'Cr',\n 4: 'R',\n 5: 'G',\n 6: 'B'\n },\n Orientation: {\n 1: 'Original',\n 2: 'Horizontal flip',\n 3: 'Rotate 180\u00B0 CCW',\n 4: 'Vertical flip',\n 5: 'Vertical flip + Rotate 90\u00B0 CW',\n 6: 'Rotate 90\u00B0 CW',\n 7: 'Horizontal flip + Rotate 90\u00B0 CW',\n 8: 'Rotate 90\u00B0 CCW'\n }\n }\n\n ExifMapProto.getText = function (name) {\n var value = this.get(name)\n switch (name) {\n case 'LightSource':\n case 'Flash':\n case 'MeteringMode':\n case 'ExposureProgram':\n case 'SensingMethod':\n case 'SceneCaptureType':\n case 'SceneType':\n case 'CustomRendered':\n case 'WhiteBalance':\n case 'GainControl':\n case 'Contrast':\n case 'Saturation':\n case 'Sharpness':\n case 'SubjectDistanceRange':\n case 'FileSource':\n case 'Orientation':\n return this.stringValues[name][value]\n case 'ExifVersion':\n case 'FlashpixVersion':\n if (!value) return\n return String.fromCharCode(value[0], value[1], value[2], value[3])\n case 'ComponentsConfiguration':\n if (!value) return\n return (\n this.stringValues[name][value[0]] +\n this.stringValues[name][value[1]] +\n this.stringValues[name][value[2]] +\n this.stringValues[name][value[3]]\n )\n case 'GPSVersionID':\n if (!value) return\n return value[0] + '.' + value[1] + '.' + value[2] + '.' + value[3]\n }\n return String(value)\n }\n\n ExifMapProto.getAll = function () {\n var map = {}\n var prop\n var obj\n var name\n for (prop in this) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n obj = this[prop]\n if (obj && obj.getAll) {\n map[this.ifds[prop].name] = obj.getAll()\n } else {\n name = this.tags[prop]\n if (name) map[name] = this.getText(name)\n }\n }\n }\n return map\n }\n\n ExifMapProto.getName = function (tagCode) {\n var name = this.tags[tagCode]\n if (typeof name === 'object') return this.ifds[tagCode].name\n return name\n }\n\n // Extend the map of tag names to tag codes:\n ;(function () {\n var tags = ExifMapProto.tags\n var prop\n var ifd\n var subTags\n // Map the tag names to tags:\n for (prop in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, prop)) {\n ifd = ExifMapProto.ifds[prop]\n if (ifd) {\n subTags = tags[prop]\n for (prop in subTags) {\n if (Object.prototype.hasOwnProperty.call(subTags, prop)) {\n ifd.map[subTags[prop]] = Number(prop)\n }\n }\n } else {\n ExifMapProto.map[tags[prop]] = Number(prop)\n }\n }\n }\n })()\n})\n", "/*\n * JavaScript Load Image IPTC Parser\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * Copyright 2018, Dave Bevan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, DataView */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-meta'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-meta'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n /**\n * IPTC tag map\n *\n * @name IptcMap\n * @class\n */\n function IptcMap() {}\n\n IptcMap.prototype.map = {\n ObjectName: 5\n }\n\n IptcMap.prototype.types = {\n 0: 'Uint16', // ApplicationRecordVersion\n 200: 'Uint16', // ObjectPreviewFileFormat\n 201: 'Uint16', // ObjectPreviewFileVersion\n 202: 'binary' // ObjectPreviewData\n }\n\n /**\n * Retrieves IPTC tag value\n *\n * @param {number|string} id IPTC tag code or name\n * @returns {object} IPTC tag value\n */\n IptcMap.prototype.get = function (id) {\n return this[id] || this[this.map[id]]\n }\n\n /**\n * Retrieves string for the given DataView and range\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Offset start\n * @param {number} length Offset length\n * @returns {string} String value\n */\n function getStringValue(dataView, offset, length) {\n var outstr = ''\n var end = offset + length\n for (var n = offset; n < end; n += 1) {\n outstr += String.fromCharCode(dataView.getUint8(n))\n }\n return outstr\n }\n\n /**\n * Retrieves tag value for the given DataView and range\n *\n * @param {number} tagCode tag code\n * @param {IptcMap} map IPTC tag map\n * @param {DataView} dataView Data view interface\n * @param {number} offset Range start\n * @param {number} length Range length\n * @returns {object} Tag value\n */\n function getTagValue(tagCode, map, dataView, offset, length) {\n if (map.types[tagCode] === 'binary') {\n return new Blob([dataView.buffer.slice(offset, offset + length)])\n }\n if (map.types[tagCode] === 'Uint16') {\n return dataView.getUint16(offset)\n }\n return getStringValue(dataView, offset, length)\n }\n\n /**\n * Combines IPTC value with existing ones.\n *\n * @param {object} value Existing IPTC field value\n * @param {object} newValue New IPTC field value\n * @returns {object} Resulting IPTC field value\n */\n function combineTagValues(value, newValue) {\n if (value === undefined) return newValue\n if (value instanceof Array) {\n value.push(newValue)\n return value\n }\n return [value, newValue]\n }\n\n /**\n * Parses IPTC tags.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} segmentOffset Segment offset\n * @param {number} segmentLength Segment length\n * @param {object} data Data export object\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n */\n function parseIptcTags(\n dataView,\n segmentOffset,\n segmentLength,\n data,\n includeTags,\n excludeTags\n ) {\n var value, tagSize, tagCode\n var segmentEnd = segmentOffset + segmentLength\n var offset = segmentOffset\n while (offset < segmentEnd) {\n if (\n dataView.getUint8(offset) === 0x1c && // tag marker\n dataView.getUint8(offset + 1) === 0x02 // record number, only handles v2\n ) {\n tagCode = dataView.getUint8(offset + 2)\n if (\n (!includeTags || includeTags[tagCode]) &&\n (!excludeTags || !excludeTags[tagCode])\n ) {\n tagSize = dataView.getInt16(offset + 3)\n value = getTagValue(tagCode, data.iptc, dataView, offset + 5, tagSize)\n data.iptc[tagCode] = combineTagValues(data.iptc[tagCode], value)\n if (data.iptcOffsets) {\n data.iptcOffsets[tagCode] = offset\n }\n }\n }\n offset += 1\n }\n }\n\n /**\n * Tests if field segment starts at offset.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Segment offset\n * @returns {boolean} True if '8BIM' exists at offset\n */\n function isSegmentStart(dataView, offset) {\n return (\n dataView.getUint32(offset) === 0x3842494d && // Photoshop segment start\n dataView.getUint16(offset + 4) === 0x0404 // IPTC segment start\n )\n }\n\n /**\n * Returns header length.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Segment offset\n * @returns {number} Header length\n */\n function getHeaderLength(dataView, offset) {\n var length = dataView.getUint8(offset + 7)\n if (length % 2 !== 0) length += 1\n // Check for pre photoshop 6 format\n if (length === 0) {\n // Always 4\n length = 4\n }\n return length\n }\n\n loadImage.parseIptcData = function (dataView, offset, length, data, options) {\n if (options.disableIptc) {\n return\n }\n var markerLength = offset + length\n while (offset + 8 < markerLength) {\n if (isSegmentStart(dataView, offset)) {\n var headerLength = getHeaderLength(dataView, offset)\n var segmentOffset = offset + 8 + headerLength\n if (segmentOffset > markerLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid IPTC data: Invalid segment offset.')\n break\n }\n var segmentLength = dataView.getUint16(offset + 6 + headerLength)\n if (offset + segmentLength > markerLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid IPTC data: Invalid segment size.')\n break\n }\n // Create the iptc object to store the tags:\n data.iptc = new IptcMap()\n if (!options.disableIptcOffsets) {\n data.iptcOffsets = new IptcMap()\n }\n parseIptcTags(\n dataView,\n segmentOffset,\n segmentLength,\n data,\n options.includeIptcTags,\n options.excludeIptcTags || { 202: true } // ObjectPreviewData\n )\n return\n }\n // eslint-disable-next-line no-param-reassign\n offset += 1\n }\n }\n\n // Registers this IPTC parser for the APP13 JPEG metadata segment:\n loadImage.metaDataParsers.jpeg[0xffed].push(loadImage.parseIptcData)\n\n loadImage.IptcMap = IptcMap\n\n // Adds the following properties to the parseMetaData callback data:\n // - iptc: The iptc tags, parsed by the parseIptcData method\n\n // Adds the following options to the parseMetaData method:\n // - disableIptc: Disables IPTC parsing when true.\n // - disableIptcOffsets: Disables storing IPTC tag offsets when true.\n // - includeIptcTags: A map of IPTC tags to include for parsing.\n // - excludeIptcTags: A map of IPTC tags to exclude from parsing.\n})\n", "/*\n * JavaScript Load Image IPTC Map\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * Copyright 2018, Dave Bevan\n *\n * IPTC tags mapping based on\n * https://iptc.org/standards/photo-metadata\n * https://exiftool.org/TagNames/IPTC.html\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-iptc'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-iptc'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var IptcMapProto = loadImage.IptcMap.prototype\n\n IptcMapProto.tags = {\n 0: 'ApplicationRecordVersion',\n 3: 'ObjectTypeReference',\n 4: 'ObjectAttributeReference',\n 5: 'ObjectName',\n 7: 'EditStatus',\n 8: 'EditorialUpdate',\n 10: 'Urgency',\n 12: 'SubjectReference',\n 15: 'Category',\n 20: 'SupplementalCategories',\n 22: 'FixtureIdentifier',\n 25: 'Keywords',\n 26: 'ContentLocationCode',\n 27: 'ContentLocationName',\n 30: 'ReleaseDate',\n 35: 'ReleaseTime',\n 37: 'ExpirationDate',\n 38: 'ExpirationTime',\n 40: 'SpecialInstructions',\n 42: 'ActionAdvised',\n 45: 'ReferenceService',\n 47: 'ReferenceDate',\n 50: 'ReferenceNumber',\n 55: 'DateCreated',\n 60: 'TimeCreated',\n 62: 'DigitalCreationDate',\n 63: 'DigitalCreationTime',\n 65: 'OriginatingProgram',\n 70: 'ProgramVersion',\n 75: 'ObjectCycle',\n 80: 'Byline',\n 85: 'BylineTitle',\n 90: 'City',\n 92: 'Sublocation',\n 95: 'State',\n 100: 'CountryCode',\n 101: 'Country',\n 103: 'OriginalTransmissionReference',\n 105: 'Headline',\n 110: 'Credit',\n 115: 'Source',\n 116: 'CopyrightNotice',\n 118: 'Contact',\n 120: 'Caption',\n 121: 'LocalCaption',\n 122: 'Writer',\n 125: 'RasterizedCaption',\n 130: 'ImageType',\n 131: 'ImageOrientation',\n 135: 'LanguageIdentifier',\n 150: 'AudioType',\n 151: 'AudioSamplingRate',\n 152: 'AudioSamplingResolution',\n 153: 'AudioDuration',\n 154: 'AudioOutcue',\n 184: 'JobID',\n 185: 'MasterDocumentID',\n 186: 'ShortDocumentID',\n 187: 'UniqueDocumentID',\n 188: 'OwnerID',\n 200: 'ObjectPreviewFileFormat',\n 201: 'ObjectPreviewFileVersion',\n 202: 'ObjectPreviewData',\n 221: 'Prefs',\n 225: 'ClassifyState',\n 228: 'SimilarityIndex',\n 230: 'DocumentNotes',\n 231: 'DocumentHistory',\n 232: 'ExifCameraInfo',\n 255: 'CatalogSets'\n }\n\n IptcMapProto.stringValues = {\n 10: {\n 0: '0 (reserved)',\n 1: '1 (most urgent)',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5 (normal urgency)',\n 6: '6',\n 7: '7',\n 8: '8 (least urgent)',\n 9: '9 (user-defined priority)'\n },\n 75: {\n a: 'Morning',\n b: 'Both Morning and Evening',\n p: 'Evening'\n },\n 131: {\n L: 'Landscape',\n P: 'Portrait',\n S: 'Square'\n }\n }\n\n IptcMapProto.getText = function (id) {\n var value = this.get(id)\n var tagCode = this.map[id]\n var stringValue = this.stringValues[tagCode]\n if (stringValue) return stringValue[value]\n return String(value)\n }\n\n IptcMapProto.getAll = function () {\n var map = {}\n var prop\n var name\n for (prop in this) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n name = this.tags[prop]\n if (name) map[name] = this.getText(name)\n }\n }\n return map\n }\n\n IptcMapProto.getName = function (tagCode) {\n return this.tags[tagCode]\n }\n\n // Extend the map of tag names to tag codes:\n ;(function () {\n var tags = IptcMapProto.tags\n var map = IptcMapProto.map || {}\n var prop\n // Map the tag names to tags:\n for (prop in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, prop)) {\n map[tags[prop]] = Number(prop)\n }\n }\n })()\n})\n", "/*\n * JavaScript Load Image Orientation\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/*\nExif orientation values to correctly display the letter F:\n\n 1 2\n \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\n \u2588\u2588 \u2588\u2588\n \u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\n \u2588\u2588 \u2588\u2588\n \u2588\u2588 \u2588\u2588\n\n 3 4\n \u2588\u2588 \u2588\u2588\n \u2588\u2588 \u2588\u2588\n \u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\n \u2588\u2588 \u2588\u2588\n \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\n\n 5 6\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\n\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\n\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\n 7 8\n \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\n\n*/\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-scale', './load-image-meta'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(\n require('./load-image'),\n require('./load-image-scale'),\n require('./load-image-meta')\n )\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var originalTransform = loadImage.transform\n var originalRequiresCanvas = loadImage.requiresCanvas\n var originalRequiresMetaData = loadImage.requiresMetaData\n var originalTransformCoordinates = loadImage.transformCoordinates\n var originalGetTransformedOptions = loadImage.getTransformedOptions\n\n ;(function ($) {\n // Guard for non-browser environments (e.g. server-side rendering):\n if (!$.global.document) return\n // black+white 3x2 JPEG, with the following meta information set:\n // - EXIF Orientation: 6 (Rotated 90\u00B0 CCW)\n // Image data layout (B=black, F=white):\n // BFF\n // BBB\n var testImageURL =\n 'data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' +\n 'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' +\n 'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' +\n 'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/x' +\n 'ABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAA' +\n 'AAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQ' +\n 'voP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXw' +\n 'H/9k='\n var img = document.createElement('img')\n img.onload = function () {\n // Check if the browser supports automatic image orientation:\n $.orientation = img.width === 2 && img.height === 3\n if ($.orientation) {\n var canvas = $.createCanvas(1, 1, true)\n var ctx = canvas.getContext('2d')\n ctx.drawImage(img, 1, 1, 1, 1, 0, 0, 1, 1)\n // Check if the source image coordinates (sX, sY, sWidth, sHeight) are\n // correctly applied to the auto-orientated image, which should result\n // in a white opaque pixel (e.g. in Safari).\n // Browsers that show a transparent pixel (e.g. Chromium) fail to crop\n // auto-oriented images correctly and require a workaround, e.g.\n // drawing the complete source image to an intermediate canvas first.\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=1074354\n $.orientationCropBug =\n ctx.getImageData(0, 0, 1, 1).data.toString() !== '255,255,255,255'\n }\n }\n img.src = testImageURL\n })(loadImage)\n\n /**\n * Determines if the orientation requires a canvas element.\n *\n * @param {object} [options] Options object\n * @param {boolean} [withMetaData] Is metadata required for orientation\n * @returns {boolean} Returns true if orientation requires canvas/meta\n */\n function requiresCanvasOrientation(options, withMetaData) {\n var orientation = options && options.orientation\n return (\n // Exif orientation for browsers without automatic image orientation:\n (orientation === true && !loadImage.orientation) ||\n // Orientation reset for browsers with automatic image orientation:\n (orientation === 1 && loadImage.orientation) ||\n // Orientation to defined value, requires meta for orientation reset only:\n ((!withMetaData || loadImage.orientation) &&\n orientation > 1 &&\n orientation < 9)\n )\n }\n\n /**\n * Determines if the image requires an orientation change.\n *\n * @param {number} [orientation] Defined orientation value\n * @param {number} [autoOrientation] Auto-orientation based on Exif data\n * @returns {boolean} Returns true if an orientation change is required\n */\n function requiresOrientationChange(orientation, autoOrientation) {\n return (\n orientation !== autoOrientation &&\n ((orientation === 1 && autoOrientation > 1 && autoOrientation < 9) ||\n (orientation > 1 && orientation < 9))\n )\n }\n\n /**\n * Determines orientation combinations that require a rotation by 180\u00B0.\n *\n * The following is a list of combinations that return true:\n *\n * 2 (flip) => 5 (rot90,flip), 7 (rot90,flip), 6 (rot90), 8 (rot90)\n * 4 (flip) => 5 (rot90,flip), 7 (rot90,flip), 6 (rot90), 8 (rot90)\n *\n * 5 (rot90,flip) => 2 (flip), 4 (flip), 6 (rot90), 8 (rot90)\n * 7 (rot90,flip) => 2 (flip), 4 (flip), 6 (rot90), 8 (rot90)\n *\n * 6 (rot90) => 2 (flip), 4 (flip), 5 (rot90,flip), 7 (rot90,flip)\n * 8 (rot90) => 2 (flip), 4 (flip), 5 (rot90,flip), 7 (rot90,flip)\n *\n * @param {number} [orientation] Defined orientation value\n * @param {number} [autoOrientation] Auto-orientation based on Exif data\n * @returns {boolean} Returns true if rotation by 180\u00B0 is required\n */\n function requiresRot180(orientation, autoOrientation) {\n if (autoOrientation > 1 && autoOrientation < 9) {\n switch (orientation) {\n case 2:\n case 4:\n return autoOrientation > 4\n case 5:\n case 7:\n return autoOrientation % 2 === 0\n case 6:\n case 8:\n return (\n autoOrientation === 2 ||\n autoOrientation === 4 ||\n autoOrientation === 5 ||\n autoOrientation === 7\n )\n }\n }\n return false\n }\n\n // Determines if the target image should be a canvas element:\n loadImage.requiresCanvas = function (options) {\n return (\n requiresCanvasOrientation(options) ||\n originalRequiresCanvas.call(loadImage, options)\n )\n }\n\n // Determines if metadata should be loaded automatically:\n loadImage.requiresMetaData = function (options) {\n return (\n requiresCanvasOrientation(options, true) ||\n originalRequiresMetaData.call(loadImage, options)\n )\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n originalTransform.call(\n loadImage,\n img,\n options,\n function (img, data) {\n if (data) {\n var autoOrientation =\n loadImage.orientation && data.exif && data.exif.get('Orientation')\n if (autoOrientation > 4 && autoOrientation < 9) {\n // Automatic image orientation switched image dimensions\n var originalWidth = data.originalWidth\n var originalHeight = data.originalHeight\n data.originalWidth = originalHeight\n data.originalHeight = originalWidth\n }\n }\n callback(img, data)\n },\n file,\n data\n )\n }\n\n // Transforms coordinate and dimension options\n // based on the given orientation option:\n loadImage.getTransformedOptions = function (img, opts, data) {\n var options = originalGetTransformedOptions.call(loadImage, img, opts)\n var exifOrientation = data.exif && data.exif.get('Orientation')\n var orientation = options.orientation\n var autoOrientation = loadImage.orientation && exifOrientation\n if (orientation === true) orientation = exifOrientation\n if (!requiresOrientationChange(orientation, autoOrientation)) {\n return options\n }\n var top = options.top\n var right = options.right\n var bottom = options.bottom\n var left = options.left\n var newOptions = {}\n for (var i in options) {\n if (Object.prototype.hasOwnProperty.call(options, i)) {\n newOptions[i] = options[i]\n }\n }\n newOptions.orientation = orientation\n if (\n (orientation > 4 && !(autoOrientation > 4)) ||\n (orientation < 5 && autoOrientation > 4)\n ) {\n // Image dimensions and target dimensions are switched\n newOptions.maxWidth = options.maxHeight\n newOptions.maxHeight = options.maxWidth\n newOptions.minWidth = options.minHeight\n newOptions.minHeight = options.minWidth\n newOptions.sourceWidth = options.sourceHeight\n newOptions.sourceHeight = options.sourceWidth\n }\n if (autoOrientation > 1) {\n // Browsers which correctly apply source image coordinates to\n // auto-oriented images\n switch (autoOrientation) {\n case 2:\n // Horizontal flip\n right = options.left\n left = options.right\n break\n case 3:\n // 180\u00B0 Rotate CCW\n top = options.bottom\n right = options.left\n bottom = options.top\n left = options.right\n break\n case 4:\n // Vertical flip\n top = options.bottom\n bottom = options.top\n break\n case 5:\n // Horizontal flip + 90\u00B0 Rotate CCW\n top = options.left\n right = options.bottom\n bottom = options.right\n left = options.top\n break\n case 6:\n // 90\u00B0 Rotate CCW\n top = options.left\n right = options.top\n bottom = options.right\n left = options.bottom\n break\n case 7:\n // Vertical flip + 90\u00B0 Rotate CCW\n top = options.right\n right = options.top\n bottom = options.left\n left = options.bottom\n break\n case 8:\n // 90\u00B0 Rotate CW\n top = options.right\n right = options.bottom\n bottom = options.left\n left = options.top\n break\n }\n // Some orientation combinations require additional rotation by 180\u00B0:\n if (requiresRot180(orientation, autoOrientation)) {\n var tmpTop = top\n var tmpRight = right\n top = bottom\n right = left\n bottom = tmpTop\n left = tmpRight\n }\n }\n newOptions.top = top\n newOptions.right = right\n newOptions.bottom = bottom\n newOptions.left = left\n // Account for defined browser orientation:\n switch (orientation) {\n case 2:\n // Horizontal flip\n newOptions.right = left\n newOptions.left = right\n break\n case 3:\n // 180\u00B0 Rotate CCW\n newOptions.top = bottom\n newOptions.right = left\n newOptions.bottom = top\n newOptions.left = right\n break\n case 4:\n // Vertical flip\n newOptions.top = bottom\n newOptions.bottom = top\n break\n case 5:\n // Vertical flip + 90\u00B0 Rotate CW\n newOptions.top = left\n newOptions.right = bottom\n newOptions.bottom = right\n newOptions.left = top\n break\n case 6:\n // 90\u00B0 Rotate CW\n newOptions.top = right\n newOptions.right = bottom\n newOptions.bottom = left\n newOptions.left = top\n break\n case 7:\n // Horizontal flip + 90\u00B0 Rotate CW\n newOptions.top = right\n newOptions.right = top\n newOptions.bottom = left\n newOptions.left = bottom\n break\n case 8:\n // 90\u00B0 Rotate CCW\n newOptions.top = left\n newOptions.right = top\n newOptions.bottom = right\n newOptions.left = bottom\n break\n }\n return newOptions\n }\n\n // Transform image orientation based on the given EXIF orientation option:\n loadImage.transformCoordinates = function (canvas, options, data) {\n originalTransformCoordinates.call(loadImage, canvas, options, data)\n var orientation = options.orientation\n var autoOrientation =\n loadImage.orientation && data.exif && data.exif.get('Orientation')\n if (!requiresOrientationChange(orientation, autoOrientation)) {\n return\n }\n var ctx = canvas.getContext('2d')\n var width = canvas.width\n var height = canvas.height\n var sourceWidth = width\n var sourceHeight = height\n if (\n (orientation > 4 && !(autoOrientation > 4)) ||\n (orientation < 5 && autoOrientation > 4)\n ) {\n // Image dimensions and target dimensions are switched\n canvas.width = height\n canvas.height = width\n }\n if (orientation > 4) {\n // Destination and source dimensions are switched\n sourceWidth = height\n sourceHeight = width\n }\n // Reset automatic browser orientation:\n switch (autoOrientation) {\n case 2:\n // Horizontal flip\n ctx.translate(sourceWidth, 0)\n ctx.scale(-1, 1)\n break\n case 3:\n // 180\u00B0 Rotate CCW\n ctx.translate(sourceWidth, sourceHeight)\n ctx.rotate(Math.PI)\n break\n case 4:\n // Vertical flip\n ctx.translate(0, sourceHeight)\n ctx.scale(1, -1)\n break\n case 5:\n // Horizontal flip + 90\u00B0 Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.scale(-1, 1)\n break\n case 6:\n // 90\u00B0 Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-sourceWidth, 0)\n break\n case 7:\n // Vertical flip + 90\u00B0 Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-sourceWidth, sourceHeight)\n ctx.scale(1, -1)\n break\n case 8:\n // 90\u00B0 Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(0, -sourceHeight)\n break\n }\n // Some orientation combinations require additional rotation by 180\u00B0:\n if (requiresRot180(orientation, autoOrientation)) {\n ctx.translate(sourceWidth, sourceHeight)\n ctx.rotate(Math.PI)\n }\n switch (orientation) {\n case 2:\n // Horizontal flip\n ctx.translate(width, 0)\n ctx.scale(-1, 1)\n break\n case 3:\n // 180\u00B0 Rotate CCW\n ctx.translate(width, height)\n ctx.rotate(Math.PI)\n break\n case 4:\n // Vertical flip\n ctx.translate(0, height)\n ctx.scale(1, -1)\n break\n case 5:\n // Vertical flip + 90\u00B0 Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.scale(1, -1)\n break\n case 6:\n // 90\u00B0 Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(0, -height)\n break\n case 7:\n // Horizontal flip + 90\u00B0 Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(width, -height)\n ctx.scale(-1, 1)\n break\n case 8:\n // 90\u00B0 Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-width, 0)\n break\n }\n }\n})\n", "/* global module, require */\n\nmodule.exports = require('./load-image')\n\nrequire('./load-image-scale')\nrequire('./load-image-meta')\nrequire('./load-image-fetch')\nrequire('./load-image-exif')\nrequire('./load-image-exif-map')\nrequire('./load-image-iptc')\nrequire('./load-image-iptc-map')\nrequire('./load-image-orientation')\n", "(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n", "var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n", "/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n", "(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n", "var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n", "var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n", "/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n", "var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n", "/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n", "/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n", "var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n", "var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n", "var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n", "/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n", "var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n", "var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n", "/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n", "/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n", "var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n", "/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n", "/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n", "/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n", "var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n", "var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n", "/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n", "/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n", "/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n", "var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n", "/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n", "var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n", "var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n", "/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n", "/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n", "var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n", "/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n", "var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n", "var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n", "/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n", "var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n", "var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n", "var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n", "var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\n", "/**\n * Copyright (c) 2014-present, Facebook, Inc.\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n", "var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n", "/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n", "/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n", "/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n", "var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n", "var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n", "/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n", "var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n", "var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n", "var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n", "/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n", "var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n", "var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n", "var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n", "/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n", "var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n", "var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n", "var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n", "var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n", "/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n", "/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n", "/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n", "var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n", "var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n", "var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n", "var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n", "var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n", "var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n", "var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n", "var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n", "var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n", "/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n", "var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n", "var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n", "var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n", "var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n", "var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n", "var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n", "var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n", "var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n", "var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n", "var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n", "var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n", "/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n", "var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n", "/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n", "/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n", "var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n", "var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n", "var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n", "var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n", "var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n", "var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\nfunction cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n}\n\nmodule.exports = cloneDeepWith;\n", "var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n", "var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n", "var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n", "var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n", "var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n", "var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n", "var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n", "var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n", "/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n", "var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n", "var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n", "/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n", "var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n", "var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n", "var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n", "var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n", "var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n", "var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n", "var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n", "var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n", "var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n", "var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n", "/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n", "var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n", "/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n", "var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n", "var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n", "var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n", "var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n", "var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n", "var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n", "var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n", "var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n", "var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n", "import 'regenerator-runtime'\n\nimport CalculatorAdapter from '../CalculatorAdapter'\n\nimport Director from '../../directors'\n\nimport {\n DataTypeWithPrice,\n Options,\n ResultType,\n} from 'src/types'\n\nimport MicroservicesAdaptee from './Adaptee'\n\n/**\n * \u041A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u043A\u043E\u0434.\n */\nfunction microservicesAdapter(data: DataTypeWithPrice, options?: Options): ResultType {\n const director = new Director(Director.CLIENT, new CalculatorAdapter(new MicroservicesAdaptee(), options))\n director.getCalculator().setData(data)\n\n for (const { } of director.assembly());\n\n return director.getCalculator().getResult()\n}\n\nexport { COMPLEX_ASSIGNMENT } from 'src/adapters/microservices/extractors/fromData/subject'\n\nexport default microservicesAdapter\n", "import _size from 'lodash/size'\nimport _isPlainObject from 'lodash/isPlainObject'\nimport _cloneDeep from 'lodash/cloneDeep'\n\nimport Block from 'src/core'\nimport Layer from 'src/core/Layers'\n\nimport CalculatorAdapter from 'src/adapters/CalculatorAdapter'\n\nimport BlockBuilder from 'src/Builders/BlockBuilder'\nimport BlockFinder from 'src/Builders/BlockFinder'\nimport BlockCleaner from 'src/Builders/BlockCleaner'\n\nimport UpsaleModifiers from 'src/core/Layers/UpsaleModifiers'\n\nimport {\n ResursiveMap,\n DataTypeWithPrice,\n ResultType,\n Options,\n\n DISCOUNTS,\n\n AssemblingMethods,\n LIMITED_DISCOUNT,\n} from 'src/types'\nimport BlockData from 'src/Builders/types/BlockData'\n\nimport walk from 'src/utils/walk'\nimport isBlockData from 'src/utils/isBlockData'\nimport Discount from 'src/core/Layers/Discounts'\nimport isWriterKey from 'src/utils/isWriterKey'\nimport Blocks from './core/Layers/Blocks'\nimport RatedOrderSize from './core/Layers/Bonuses/OrderSize'\nimport Bundles from './core/Layers/Bonuses/Bundles'\nimport AdditionalPayments from './core/Layers/Bonuses/AdditionalPayment'\n\nimport BlockOptions, { LimitDiscountBlockOptions } from './core/types/BlockOptions'\n\nconst defaultOprions = (options: Options = {}): Required => ({\n log: false,\n rebill: false,\n rate: 1,\n currency: 'USD',\n ...options,\n adapter: {\n data: true,\n result: true,\n ...(options.adapter || {}),\n },\n} as Required)\n\nconst isset = (block?: Block | Layer | Blocks | ResursiveMap): boolean => Boolean(block) && (\n (block instanceof Block && typeof (block as Layer | Blocks).getLayer === 'undefined') ||\n (block instanceof Layer && _size((block as Layer | Blocks).getLayer()) > 0) ||\n (_isPlainObject(block) && _size(block as ResursiveMap) > 0)\n)\n\nconst ORDER_SIZE_BLOCK_OPTIONS = {\n key: 'bonus://order.size',\n value: 2,\n unit: '%',\n}\n\nconst BUNDLE_BLOCK_OPTIONS = {\n key: 'bonus://bundle',\n value: 7,\n unit: '%',\n}\n\nclass Calculator {\n\n protected data!: DataTypeWithPrice\n\n // #region Builders\n private blockBuilder!: BlockBuilder\n\n private upsaleBuilder!: BlockBuilder\n\n private orderSizeBuilder!: BlockBuilder\n\n private additionalPaymentBuilder!: BlockBuilder\n\n private totalBuilder!: BlockBuilder\n // #endregion Builders\n\n // #region Parts of price: Blocks with calculate function\n private basicPrice: Blocks = new Blocks()\n\n private basicPriceWithoutDiscount: Blocks = new Blocks()\n\n private additional?: Blocks\n\n private totalPrice!: Block | Layer\n\n private manualChange?: Blocks\n\n private blocks: Blocks = new Blocks()\n // #endregion Parts of price: Blocks with calculate function\n\n // #region Parts of price - maps\n private basicPrices: ResursiveMap = {}\n\n private additionals?: ResursiveMap\n\n private manualChanges?: ResursiveMap\n // #endregion Parts of price - maps\n\n // #region Bonuses\n private orderSize: Blocks = new Blocks()\n\n private bundle?: Blocks\n\n private bundles?: ResursiveMap\n\n private additionalPayment?: Blocks\n\n private additionalPayments?: ResursiveMap\n\n private bonuses: Blocks = new Blocks()\n // #endregion Bonuses\n\n private assemblingHistory: Array = []\n\n protected options!: Required\n\n constructor(options: Options = {}) {\n this.options = defaultOprions(options)\n\n this.blockBuilder = new BlockBuilder()\n this.upsaleBuilder = new BlockBuilder({\n Modifiers: UpsaleModifiers,\n Bonuses: Bundles,\n })\n this.orderSizeBuilder = new BlockBuilder({\n Bonuses: RatedOrderSize(this.options),\n })\n this.additionalPaymentBuilder = new BlockBuilder({\n Bonuses: AdditionalPayments,\n })\n this.totalBuilder = new BlockBuilder({\n Block: Blocks,\n })\n }\n\n public setData(data: any): Calculator\n public setData(data: DataTypeWithPrice): Calculator {\n\n if (this.options.log) {\n // eslint-disable-next-line no-console\n console.log('Data', { data })\n }\n this.data = data\n\n return this\n }\n\n updateData(data: DataTypeWithPrice): Calculator {\n this.data = data\n\n return this\n }\n\n public getData(): DataTypeWithPrice {\n return this.data\n }\n\n public getResult(): any\n public getResult(): ResultType {\n const result = {\n blocks: this.blocks,\n totalPrice: this.totalPrice,\n basicPrice: this.basicPrice,\n basicPriceWithoutDiscount: this.basicPriceWithoutDiscount,\n basicPrices: this.basicPrices,\n } as ResultType\n\n if (isset(this.additional)) { result.additional = this.additional }\n if (isset(this.additionals)) { result.additionals = this.additionals }\n if (isset(this.manualChange)) { result.manualChange = this.manualChange }\n if (isset(this.manualChanges)) { result.manualChanges = this.manualChanges }\n if (isset(this.bonuses)) { result.bonuses = this.bonuses }\n if (isset(this.orderSize)) { result.orderSize = this.orderSize }\n if (isset(this.bundle)) { result.bundle = this.bundle }\n if (isset(this.bundles)) { result.bundles = this.bundles }\n if (isset(this.additionalPayment)) { result.additionalPayment = this.additionalPayment }\n if (isset(this.additionalPayments)) { result.additionalPayments = this.additionalPayments }\n\n if (this.options.log) {\n // eslint-disable-next-line no-console\n console.log('Result', { result })\n }\n\n return result\n }\n\n getOptions(): Required {\n return this.options\n }\n\n public [AssemblingMethods.BasicPrice](): Calculator {\n this.assemblingHistory.push(AssemblingMethods.BasicPrice)\n\n // TODO: Must sanitize negative values\n walk(this.data.basicPrices as ResursiveMap>, isBlockData, (data: BlockData): Block | Layer => {\n for (const { } of this.blockBuilder.assembly(data));\n const block = this.blockBuilder.getProduct()\n\n this.basicPrice.push(block)\n // need for exclude currency discounts from calculation\n if ((data.price as BlockOptions).key !== DISCOUNTS) {\n this.basicPriceWithoutDiscount.push(block instanceof Discount ? block.getBlock() : block)\n }\n this.blocks.push(block)\n\n return block\n }, this.basicPrices as ResursiveMap)\n\n return this\n }\n\n public [AssemblingMethods.OrderSize](): Calculator {\n this.assemblingHistory.push(AssemblingMethods.OrderSize)\n\n const toOrderSize = (block: Block) => {\n for (const { } of this.orderSizeBuilder.assembly({\n bonuses: [ORDER_SIZE_BLOCK_OPTIONS],\n price: block.clone(),\n }));\n const orderSizeBonus = this.orderSizeBuilder.getProduct();\n\n (this.orderSize as Blocks).push(orderSizeBonus)\n this.bonuses.push(orderSizeBonus)\n }\n\n const toBundleSize = (block: Block) => {\n for (const { } of this.upsaleBuilder.assembly({\n bonuses: [BUNDLE_BLOCK_OPTIONS],\n price: block.clone(),\n }));\n const bundle = this.upsaleBuilder.getProduct()\n\n this.bundles = this.bundles || {}\n this.bundle = this.bundle || new Blocks()\n\n this.bundles.writer = this.bundles.writer || new Blocks();\n\n (this.bundles.writer as Blocks).push(bundle);\n (this.bundle as Blocks).push(bundle)\n this.bonuses.push(bundle)\n }\n\n /**\n * Writer category replacing to bundle size support bonus.\n *\n * Essay market has writer category as basicPrice - it is order size support bonus,\n * but it must be calculated as bundle size support bonus.\n *\n * So we cut writer category from base stucture\n * and it replacing to bundle size bonus.\n */\n const finder = new BlockFinder(undefined, { returnBlock: true })\n const cleaner = new BlockCleaner()\n\n for (const unit in this.basicPrices) {\n if (unit === DISCOUNTS) {\n continue\n }\n\n let element = (this.basicPrices[unit] as Blocks).clone()\n\n finder.continue(element)\n let writerModificators: Block[] = []\n for (const { modifiers } of finder.assembly({\n modifiers: (modifier) => isWriterKey(modifier.getKey()),\n })) {\n if (modifiers) {\n writerModificators = modifiers as Block[]\n }\n }\n finder.reset()\n\n cleaner.continue(element)\n\n if (writerModificators.length) {\n for (const writerModificator of writerModificators) {\n toBundleSize(writerModificator)\n\n for (const { } of cleaner.assembly({\n modifiers: writerModificator,\n }));\n\n element = cleaner.getProduct()\n }\n }\n\n toOrderSize(element)\n }\n\n return this\n }\n\n public assemblyUpsale(data: BlockData): Block | Layer {\n if (!data.price) {\n data.price = this.basicPriceWithoutDiscount\n }\n\n for (const { } of this.upsaleBuilder.assembly(data));\n\n return this.upsaleBuilder.getProduct()\n }\n\n public [AssemblingMethods.Upsales](): Calculator {\n this.assemblingHistory.push(AssemblingMethods.Upsales)\n\n if (this.data.additionals) {\n this.additional = new Blocks()\n this.additionals = {}\n\n walk(this.data.additionals as ResursiveMap>, isBlockData, (data: BlockData): Block | Layer => {\n const block = this.assemblyUpsale(data)\n\n this.additional?.push(block)\n this.blocks.push(block)\n\n return block\n }, this.additionals as ResursiveMap)\n }\n\n return this\n }\n\n public [AssemblingMethods.Bundles](): Calculator {\n this.assemblingHistory.push(AssemblingMethods.Bundles)\n\n if (!this.data.additionals) {\n return this\n }\n\n if (!this.bundles) {\n this.bundles = {}\n }\n\n walk(this.data.additionals as ResursiveMap>, isBlockData, (data: BlockData): Block | Layer => {\n if (!data.price) {\n data.price = this.basicPriceWithoutDiscount\n }\n if (!(this.bundle instanceof Blocks)) {\n this.bundle = new Blocks()\n }\n\n for (const { } of this.upsaleBuilder.assembly({ bonuses: [{ key: 'Bundle', value: 7, unit: '%' }], ...data }));\n const block = this.upsaleBuilder.getProduct()\n\n this.bundle.push(block)\n\n this.bonuses.push(block)\n\n return block\n }, this.bundles as ResursiveMap)\n\n return this\n }\n\n public [AssemblingMethods.AdditionalPayments](): Calculator {\n this.assemblingHistory.push(AssemblingMethods.AdditionalPayments)\n\n if (this.data.fixes) {\n this.additionalPayment = new Blocks()\n this.additionalPayments = {}\n\n for (const fixKey in this.data.fixes) {\n for (const { } of this.additionalPaymentBuilder.assembly({\n price: this.basicPrice,\n bonuses: [{ key: `Bonus per ${fixKey}`, value: 3, unit: '%' }],\n ...this.data.fixes[fixKey],\n }));\n const block = this.additionalPaymentBuilder.getProduct()\n\n this.additionalPayment.push(block)\n this.additionalPayments[fixKey] = block\n this.bonuses.push(block)\n }\n }\n\n return this\n }\n\n public [AssemblingMethods.ManualChanges](): Calculator {\n this.assemblingHistory.push(AssemblingMethods.ManualChanges)\n\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n totalPrice, basicPrices, additionals, fixes,\n ...manualChanges\n } = this.data\n\n if (Object.keys(manualChanges).length > 0) {\n this.manualChange = new Blocks()\n this.manualChanges = {}\n\n walk(manualChanges as ResursiveMap>, isBlockData, (data: BlockData): Block | Layer => {\n if (!data.price) {\n data.price = this.basicPrice\n }\n\n for (const { } of this.upsaleBuilder.assembly(data));\n const block = this.upsaleBuilder.getProduct()\n\n this.manualChange?.push(block)\n this.blocks.push(block)\n\n return block\n }, this.manualChanges as ResursiveMap)\n }\n\n return this\n }\n\n public [AssemblingMethods.TotalPrice](): Calculator {\n this.assemblingHistory.push(AssemblingMethods.TotalPrice)\n\n const totalPriceBlocks = new Blocks()\n\n for (const block of this.basicPrice.getLayer()) {\n totalPriceBlocks.push(block.clone())\n }\n if (this.additional) {\n for (const block of this.additional.getLayer()) {\n totalPriceBlocks.push(block.clone())\n }\n }\n if (this.manualChange) {\n for (const block of this.manualChange.getLayer()) {\n totalPriceBlocks.push(block.clone())\n }\n }\n\n const totalPriceData = {\n ...(this.data.totalPrice || {}),\n price: totalPriceBlocks,\n }\n for (const { } of this.totalBuilder.assembly(totalPriceData));\n this.totalPrice = this.totalBuilder.getProduct()\n\n return this\n }\n\n /**\n * Temporary code.\n * Method writed for check theory of necessity custom behavior discounts.\n */\n public [AssemblingMethods.RegisterDiscount](): Calculator {\n this.assemblingHistory.push(AssemblingMethods.RegisterDiscount)\n\n const discounts = this.data.basicPrices[DISCOUNTS] as ResursiveMap\n\n if (!this.data || !this.data.basicPrices || !(discounts)?.[LIMITED_DISCOUNT]) {\n return this\n }\n\n const limitedDiscount = discounts[LIMITED_DISCOUNT].price as LimitDiscountBlockOptions\n\n if (!limitedDiscount) {\n return this\n }\n\n const isPercentDiscount = this.totalPrice.calculate() * (limitedDiscount.limit / 100) < (limitedDiscount.amount * this.options.rate)\n const data = _cloneDeep(this.data)\n\n const discountsData = data.basicPrices[DISCOUNTS] as ResursiveMap\n\n if (!isPercentDiscount) {\n discountsData.limitedDiscount.price = {\n ...discountsData.limitedDiscount.price,\n key: limitedDiscount.key,\n value: -Math.abs(limitedDiscount.amount * this.options.rate),\n unit: 'USD',\n }\n } else {\n delete discountsData[limitedDiscount.key]\n\n const percentDiscount: BlockOptions = {\n key: limitedDiscount.key,\n value: limitedDiscount.limit,\n unit: '%',\n }\n\n walk(data as ResursiveMap>, isBlockData, (block: BlockData): BlockData => {\n if (!Array.isArray(block.discounts)) {\n block.discounts = []\n }\n\n block.discounts.push(percentDiscount)\n\n return block\n }, data as ResursiveMap)\n }\n\n let calculator!: Calculator\n\n if (this.constructor === CalculatorAdapter) {\n // @ts-ignore\n calculator = new (this.constructor as typeof CalculatorAdapter)(this.adaptee, this.options);\n // @ts-ignore\n (calculator as CalculatorAdapter).baseData = this.getBaseData()\n // @ts-ignore\n calculator.data = data\n } else {\n calculator = new Calculator(this.options)\n calculator.setData(data)\n }\n\n for (const methodKey of [...this.assemblingHistory]) {\n if (methodKey === AssemblingMethods.RegisterDiscount) {\n continue\n }\n\n calculator[methodKey]()\n }\n\n this.assemblingHistory = []\n\n return calculator\n }\n\n}\n\nexport default Calculator\n", "export const fixed = (value: number, fractionDigits: number): number => {\n const k = 10 ** fractionDigits\n return Math.ceil(value * k) / k\n}\n", "import ICalculator, { ICalculatorData } from 'src/calculator-fabric/interfaces/ICalculator'\n\nimport { fixed } from '../utils/fixed'\n\nconst percent: ICalculator = ({\n value,\n source,\n fractionDigits,\n}: ICalculatorData) => {\n if (source) {\n const result = ((+source.calculate()) * (+value)) / 100\n\n if (!fractionDigits) {\n return result\n }\n\n return fixed(result, fractionDigits)\n }\n\n return 0\n}\n\nexport default percent\n\nexport const UNITS = [\n '%',\n 'percent',\n]\n", "import ICalculator, { ICalculatorData } from 'src/calculator-fabric/interfaces/ICalculator'\n\nimport { fixed } from '../utils/fixed'\n\nconst percent: ICalculator = ({\n value,\n source,\n fractionDigits,\n}: ICalculatorData) => {\n if (source) {\n const result = (+source.getValue()) * (+value)\n\n if (!fractionDigits) {\n return result\n }\n\n return fixed(result, fractionDigits)\n }\n\n return 0\n}\n\nexport default percent\n\nexport const UNITS = [\n 'times',\n 'pages',\n 'slides',\n 'problems',\n 'questions',\n 'software',\n 'sources',\n 'spacing',\n 'units',\n]\n", "import ICalculator, { ICalculatorData } from 'src/calculator-fabric/interfaces/ICalculator'\n\nconst currency: ICalculator = ({ value }: ICalculatorData) => +value\n\nexport default currency\n\nexport const UNITS = [\n 'initial',\n '$',\n 'AED',\n 'AFN',\n 'ALL',\n 'AMD',\n 'ANG',\n 'AOA',\n 'ARS',\n 'AUD',\n 'AWG',\n 'AZN',\n 'BAM',\n 'BBD',\n 'BDT',\n 'BGN',\n 'BHD',\n 'BIF',\n 'BMD',\n 'BND',\n 'BOB',\n 'BRL',\n 'BSD',\n 'BTC',\n 'BTN',\n 'BWP',\n 'BYN',\n 'BZD',\n 'CAD',\n 'CDF',\n 'CHF',\n 'CLF',\n 'CLP',\n 'CNH',\n 'CNY',\n 'COP',\n 'CRC',\n 'CUC',\n 'CUP',\n 'CVE',\n 'CZK',\n 'DJF',\n 'DKK',\n 'DOP',\n 'DZD',\n 'EGP',\n 'ERN',\n 'ETB',\n 'EUR',\n 'FJD',\n 'FKP',\n 'GBP',\n 'GEL',\n 'GGP',\n 'GHS',\n 'GIP',\n 'GMD',\n 'GNF',\n 'GTQ',\n 'GYD',\n 'HKD',\n 'HNL',\n 'HRK',\n 'HTG',\n 'HUF',\n 'IDR',\n 'ILS',\n 'IMP',\n 'INR',\n 'IQD',\n 'IRR',\n 'ISK',\n 'JEP',\n 'JMD',\n 'JOD',\n 'JPY',\n 'KES',\n 'KGS',\n 'KHR',\n 'KMF',\n 'KPW',\n 'KRW',\n 'KWD',\n 'KYD',\n 'KZT',\n 'LAK',\n 'LBP',\n 'LKR',\n 'LRD',\n 'LSL',\n 'LYD',\n 'MAD',\n 'MDL',\n 'MGA',\n 'MKD',\n 'MMK',\n 'MNT',\n 'MOP',\n 'MRU',\n 'MUR',\n 'MVR',\n 'MWK',\n 'MXN',\n 'MYR',\n 'MZN',\n 'NAD',\n 'NGN',\n 'NIO',\n 'NOK',\n 'NPR',\n 'NZD',\n 'OMR',\n 'PAB',\n 'PEN',\n 'PGK',\n 'PHP',\n 'PKR',\n 'PLN',\n 'PYG',\n 'QAR',\n 'RON',\n 'RSD',\n 'RUB',\n 'RWF',\n 'SAR',\n 'SBD',\n 'SCR',\n 'SDG',\n 'SEK',\n 'SGD',\n 'SHP',\n 'SLL',\n 'SOS',\n 'SRD',\n 'SSP',\n 'STD',\n 'STN',\n 'SVC',\n 'SYP',\n 'SZL',\n 'THB',\n 'TJS',\n 'TMT',\n 'TND',\n 'TOP',\n 'TRY',\n 'TTD',\n 'TWD',\n 'TZS',\n 'UAH',\n 'UGX',\n 'USD',\n 'UYU',\n 'UZS',\n 'VES',\n 'VND',\n 'VUV',\n 'WST',\n 'XAF',\n 'XAG',\n 'XAU',\n 'XCD',\n 'XDR',\n 'XOF',\n 'XPD',\n 'XPF',\n 'XPT',\n 'YER',\n 'ZAR',\n 'ZMW',\n 'ZWL'\n]\n", "import ICalculatorFabric from 'src/calculator-fabric/interfaces/ICalculatorFabric'\n\nimport percent, { UNITS as PERCENT_UNITS } from 'src/calculator-fabric/units/percent'\nimport times, { UNITS as TIMES_UNITS } from 'src/calculator-fabric/units/times'\nimport currency, { UNITS as CURRENCY_UNITS } from 'src/calculator-fabric/units/currency'\n\nconst calculatorFabric: ICalculatorFabric = (unit: string) => {\n if (PERCENT_UNITS.includes(unit)) {\n return percent\n }\n\n if (TIMES_UNITS.includes(unit)) {\n return times\n }\n\n if (CURRENCY_UNITS.includes(unit)) {\n return currency\n }\n\n throw new Error(`Unknown unit: \"${unit}\"`)\n}\n\nexport default calculatorFabric\n", "const currency = (value: number) => parseFloat(value.toFixed(2))\n\nexport default currency\n", "import getCalculator from 'src/calculator-fabric'\n\nimport IPrototype from 'src/core/Interfaces/IPrototype'\nimport currency from 'src/utils/currency'\nimport BlockOptions from './types/BlockOptions'\n\nclass Block implements IPrototype {\n\n static type: string = Block.constructor.name\n\n protected type: string = this.constructor.name\n\n protected key: string = ''\n\n protected value: number | string = 0\n\n protected unit: string = 'initial'\n\n protected fractionDigits?: number\n\n constructor(protected block?: Block) { }\n\n public calculate(): number {\n const calculator = getCalculator(this.unit)\n const result = calculator({\n value: this.value,\n source: this.block,\n fractionDigits: this.fractionDigits,\n })\n\n return result\n }\n\n public setKey(key: string): Block {\n this.key = key\n\n return this\n }\n\n public getKey(): string { return this.key }\n\n public setValue(value: number | string): Block {\n this.value = value\n\n return this\n }\n\n public getValue(): number | string { return this.value }\n\n public setUnit(unit: string): Block {\n this.unit = unit\n\n return this\n }\n\n public getUnit(): string { return this.unit }\n\n public setFractionDigits(fractionDigits?: number): Block {\n this.fractionDigits = fractionDigits\n\n return this\n }\n\n public getFractionDigits(): number | undefined { return this.fractionDigits }\n\n public setBlock(block: Block | undefined) {\n this.block = block\n\n return this\n }\n\n public getBlock(): Block | undefined { return this.block }\n\n public getType(): string {\n return this.type\n }\n\n public getOptions(): any\n public getOptions(): BlockOptions {\n return {\n key: this.getKey(),\n value: this.getValue(),\n unit: this.getUnit(),\n ...(typeof this.getFractionDigits() !== 'undefined' ? {\n fractionDigits: this.getFractionDigits(),\n } : {}),\n }\n }\n\n public isLayer = (): boolean => false\n\n public clone(): Block {\n const block = new (this.constructor as typeof Block)(this.block?.clone())\n\n block.setKey(this.key)\n block.setValue(this.value)\n block.setUnit(this.unit)\n block.setFractionDigits(this.fractionDigits)\n\n return block\n }\n\n public toJSON(): any {\n return {\n block: this.getBlock()?.toJSON(),\n type: this.getType(),\n key: this.getKey(),\n value: this.getValue(),\n unit: this.getUnit(),\n ...(typeof this.getFractionDigits() !== 'undefined' ? {\n fractionDigits: this.getFractionDigits(),\n } : {}),\n calculated: currency(this.calculate()),\n }\n }\n\n}\n\nexport default Block\n", "import Block from 'src/core'\n\nimport IPrototype from 'src/core/Interfaces/IPrototype'\n\nclass Layer extends Block implements IPrototype {\n\n static type: string = Layer.constructor.name\n\n protected layer: Block[] = []\n\n constructor(protected block: Block) {\n super(block)\n }\n\n public calculate(): number {\n return this.layer.reduce((result, block) => result + block.calculate(), 0)\n }\n\n public getLayer(): Block[] {\n return this.layer\n }\n\n public append(block: Block): void {\n this.layer.push(block)\n block.setBlock(this.block)\n }\n\n public filter = this.layer.filter\n\n public delete(block: Block): void {\n const blockIndex = this.layer.indexOf(block)\n this.layer.splice(blockIndex, 1)\n block.setBlock(undefined)\n }\n\n public isLayer = (): boolean => true\n\n public clone(): Layer {\n const block = new (this.constructor as typeof Layer)(this.block.clone())\n\n block.setKey(this.key)\n block.setValue(this.value)\n block.setUnit(this.unit)\n block.setFractionDigits(this.fractionDigits)\n\n for (const layerBlock of this.layer) {\n block.append(layerBlock.clone())\n }\n\n return block\n }\n\n public toJSON(): any {\n return {\n ...super.toJSON(),\n layer: this.layer.map((block) => block.toJSON()),\n }\n }\n\n}\n\nexport default Layer\n", "import IBuilder from 'src/Builders/interfaces/IBuilder'\n\nabstract class Builder implements IBuilder {\n\n protected product!: TProduct\n\n constructor() {\n this.reset()\n }\n\n public abstract reset(): void\n\n public abstract continue(block: TProduct): void\n\n public abstract assembly(data: TData): Generator\n\n public getProduct(): TProduct {\n const product = this.product\n\n this.reset()\n return product\n }\n\n}\n\nexport default Builder\n", "import Block from 'src/core'\n\nclass Discount extends Block {\n\n protected unit: string = '%'\n\n}\n\nexport default Discount\n", "import Block from 'src/core'\n\nclass Modifier extends Block {\n\n protected unit: string = '%'\n\n}\n\nexport default Modifier\n", "import Block from 'src/core'\n\nclass Multiplier extends Block {\n\n protected unit: string = 'times'\n\n}\n\nexport default Multiplier\n", "import Discount from 'src/core/Decorators/Discount'\nimport Layer from 'src/core/Layers'\n\nimport getCalculator from 'src/calculator-fabric'\n\nimport GetBaseType from 'src/core/Interfaces/GetBaseType'\n\nclass Discounts extends Layer {\n\n static type: string = Discounts.constructor.name\n\n protected unit: string = '%'\n\n protected layer: Discount[] = []\n\n public calculate(): number {\n return this.layer.reduce((result, block) => {\n const calculator = getCalculator(block.getUnit())\n\n return result - calculator({\n value: block.getValue(),\n source: this.getBlock(),\n fractionDigits: this.fractionDigits,\n })\n }, this.getBase())\n }\n\n protected getBase: GetBaseType = (): number => this.getBlock()?.calculate() || 0\n\n}\n\nexport default Discounts\n", "import Modifier from 'src/core/Decorators/Modifier'\nimport Layer from 'src/core/Layers'\n\nimport getCalculator from 'src/calculator-fabric'\n\nimport GetBaseType from 'src/core/Interfaces/GetBaseType'\n\nclass Modifiers extends Layer {\n\n static type: string = Modifiers.constructor.name\n\n protected layer: Modifier[] = []\n\n public calculate(): number {\n return this.layer.reduce((result, block) => {\n const calculator = getCalculator(block.getUnit())\n\n return result + calculator({\n value: block.getValue(),\n source: this.getBlock(),\n fractionDigits: this.fractionDigits,\n })\n }, this.getBase())\n }\n\n protected getBase: GetBaseType = (): number => this.getBlock()?.calculate() || 0\n\n}\n\nexport default Modifiers\n", "import Multiplier from 'src/core/Decorators/Multiplier'\nimport Layer from 'src/core/Layers'\n\nimport getCalculator from 'src/calculator-fabric'\n\nclass Multipliers extends Layer {\n\n static type: string = Multipliers.constructor.name\n\n protected unit: string = 'times'\n\n protected layer: Multiplier[] = []\n\n public calculate(): number {\n const calculator = getCalculator(this.unit)\n const result = calculator({\n value: this.layer.reduce((result, block) => result * +block.getValue(), 1),\n source: this.block,\n fractionDigits: this.fractionDigits,\n })\n\n return result\n }\n\n}\n\nexport default Multipliers\n", "import Modifier from 'src/core/Decorators/Modifier'\nimport Layer from 'src/core/Layers'\n\nimport getCalculator from 'src/calculator-fabric'\n\nimport GetBaseType from 'src/core/Interfaces/GetBaseType'\n\nclass Bonuses extends Layer {\n\n static type: string = Bonuses.constructor.name\n\n protected layer: Modifier[] = []\n\n public calculate(): number {\n return this.layer.reduce((result, block) => {\n const calculator = getCalculator(block.getUnit())\n\n return result + calculator({\n value: block.getValue(),\n source: this.getBlock(),\n fractionDigits: this.fractionDigits,\n })\n }, this.getBase())\n }\n\n protected getBase: GetBaseType = (): number => 0\n\n}\n\nexport default Bonuses\n", "import Block from 'src/core'\n\nclass Bonus extends Block {\n\n protected unit: string = '%'\n\n}\n\nexport default Bonus\n", "import IBlockBuilder from 'src/Builders/interfaces/IBlockBuilder'\n\nimport Builder from 'src/Builders'\n\nimport Discount from 'src/core/Decorators/Discount'\nimport Modifier from 'src/core/Decorators/Modifier'\nimport Multiplier from 'src/core/Decorators/Multiplier'\n\nimport Block from 'src/core'\nimport Layer from 'src/core/Layers'\nimport Discounts from 'src/core/Layers/Discounts'\nimport Modifiers from 'src/core/Layers/Modifiers'\nimport Multipliers from 'src/core/Layers/Multipliers'\n\nimport BlockOptions from 'src/core/types/BlockOptions'\nimport BlockData from 'src/Builders/types/BlockData'\nimport Bonuses from 'src/core/Layers/Bonuses'\nimport Bonus from 'src/core/Decorators/Bonus'\n\nclass BlockBuilder extends Builder implements IBlockBuilder {\n\n protected modifiers?: Layer\n\n protected multipliers?: Layer\n\n protected discounts?: Layer\n\n protected bonuses?: Layer\n\n protected Block: typeof Block = Block\n\n protected Multipliers: typeof Layer = Multipliers\n\n protected Modifiers: typeof Layer = Modifiers\n\n protected Discounts: typeof Layer = Discounts\n\n protected Bonuses: typeof Layer = Bonuses\n\n constructor(constructors: {\n Block?: typeof Block,\n Multipliers?: typeof Layer,\n Modifiers?: typeof Layer,\n Discounts?: typeof Layer,\n Bonuses?: typeof Layer,\n } = {}) {\n super()\n\n if (constructors.Block) { this.Block = constructors.Block }\n if (constructors.Multipliers) { this.Multipliers = constructors.Multipliers }\n if (constructors.Modifiers) { this.Modifiers = constructors.Modifiers }\n if (constructors.Discounts) { this.Discounts = constructors.Discounts }\n if (constructors.Bonuses) { this.Bonuses = constructors.Bonuses }\n\n this.reset()\n }\n\n public reset(): void {\n this.product = new (this.Block || Block)()\n delete this.modifiers\n delete this.multipliers\n delete this.discounts\n delete this.bonuses\n }\n\n public continue(block: Block | Layer): void {\n this.reset()\n\n if (block instanceof Bonuses) {\n this.Bonuses = (block.constructor as typeof Bonuses)\n this.bonuses = block as Layer\n block = block.getBlock() as Block | Layer\n }\n\n if (block instanceof Discounts) {\n this.Discounts = (block.constructor as typeof Discounts)\n this.discounts = block as Layer\n block = block.getBlock() as Block | Layer\n }\n\n if (block instanceof Modifiers) {\n this.Modifiers = (block.constructor as typeof Modifiers)\n this.modifiers = block as Layer\n block = block.getBlock() as Block | Layer\n }\n\n if (block instanceof Multipliers) {\n this.Multipliers = (block.constructor as typeof Multipliers)\n this.multipliers = block as Layer\n block = block.getBlock() as Block | Layer\n }\n\n this.product = block as Block\n }\n\n public producePrice(...args: any[]): any\n public producePrice(arg0: BlockOptions | Block): Block {\n if (arg0 instanceof Block) {\n this.product = arg0.clone()\n } else {\n const { key = 'Price block', value, unit, fractionDigits } = arg0\n\n this.product\n .setKey(key)\n .setValue(value)\n .setUnit(unit)\n .setFractionDigits(fractionDigits)\n }\n\n return this.product\n }\n\n public produceMultiplier(...args: any[]): any\n public produceMultiplier(arg0: BlockOptions | Block): Block {\n if (!this.multipliers) {\n this.multipliers = new this.Multipliers(this.product)\n }\n\n if (arg0 instanceof Block) {\n this.multipliers.append(arg0.clone())\n } else {\n const { key = 'Multiplier block', value, unit, fractionDigits } = arg0\n\n this.multipliers.setFractionDigits(fractionDigits)\n this.multipliers.append(\n new Multiplier()\n .setKey(key)\n .setValue(value)\n .setUnit(unit)\n .setFractionDigits(fractionDigits),\n )\n }\n\n return this.multipliers.getLayer()[this.multipliers.getLayer().length - 1]\n }\n\n public produceModifier(...args: any[]): any\n public produceModifier(arg0: BlockOptions | Block): Block {\n if (!this.modifiers) {\n this.modifiers = new this.Modifiers(this.multipliers || this.product)\n }\n\n if (arg0 instanceof Block) {\n this.modifiers.append(arg0.clone())\n } else {\n const { key = 'Modificator block', value, unit, fractionDigits } = arg0\n\n this.modifiers.setFractionDigits(fractionDigits)\n this.modifiers.append(\n new Modifier()\n .setKey(key)\n .setValue(value)\n .setUnit(unit)\n .setFractionDigits(fractionDigits),\n )\n }\n\n return this.modifiers.getLayer()[this.modifiers.getLayer().length - 1]\n }\n\n public produceDiscount(...args: any[]): any\n public produceDiscount(arg0: BlockOptions | Block): Block {\n if (!this.discounts) {\n this.discounts = new this.Discounts(this.modifiers || this.multipliers || this.product)\n }\n\n if (arg0 instanceof Block) {\n this.discounts.append(arg0.clone())\n } else {\n const { key = 'Discount block', value, unit, fractionDigits } = arg0\n\n this.discounts.setFractionDigits(fractionDigits)\n this.discounts.append(\n new Discount()\n .setKey(key)\n .setValue(value)\n .setUnit(unit)\n .setFractionDigits(fractionDigits),\n )\n }\n\n return this.discounts.getLayer()[this.discounts.getLayer().length - 1]\n }\n\n public produceBonus(...args: any[]): any\n public produceBonus(arg0: BlockOptions | Block): Block {\n if (!this.bonuses) {\n this.bonuses = new this.Bonuses(this.discounts || this.modifiers || this.multipliers || this.product)\n }\n\n if (arg0 instanceof Block) {\n this.bonuses.append(arg0.clone())\n } else {\n const { key = 'Bonus block', value, unit, fractionDigits } = arg0\n\n this.bonuses.setFractionDigits(fractionDigits)\n this.bonuses.append(\n new Bonus()\n .setKey(key)\n .setValue(value)\n .setUnit(unit)\n .setFractionDigits(fractionDigits),\n )\n }\n\n return this.bonuses.getLayer()[this.bonuses.getLayer().length - 1]\n }\n\n public assembly(...args: any[]): any\n // eslint-disable-next-line generator-star-spacing\n public * assembly({ price, modifiers, multipliers, discounts, bonuses }: BlockData & { price?: BlockOptions }): Generator {\n if (price) {\n yield this.producePrice(price)\n }\n\n if (multipliers && multipliers.length > 0) {\n for (const multiplier of multipliers) {\n const result = this.produceMultiplier(multiplier)\n yield result instanceof Block ? result : result\n }\n }\n\n if (modifiers && modifiers.length > 0) {\n for (const modifier of modifiers) {\n const result = this.produceModifier(modifier)\n yield result instanceof Block ? result : result\n }\n }\n\n if (discounts && discounts.length > 0) {\n for (const discount of discounts) {\n const result = this.produceDiscount(discount)\n yield result instanceof Block ? result : result\n }\n }\n\n if (bonuses && bonuses.length > 0) {\n for (const bonus of bonuses) {\n const result = this.produceBonus(bonus)\n yield result instanceof Block ? result : result\n }\n }\n }\n\n public getProduct(...args: any[]): any\n public getProduct(): Block | Layer {\n const product = this.bonuses || this.discounts || this.modifiers || this.multipliers || this.product\n\n this.reset()\n return product\n }\n\n}\n\nexport default BlockBuilder\n", "import Block from 'src/core'\nimport Layer from 'src/core/Layers'\n\nimport BlockOptions from 'src/core/types/BlockOptions'\nimport BlockBuilder from './BlockBuilder'\nimport BlockData from './types/BlockData'\n\nclass BlockFinder extends BlockBuilder {\n\n private returnBlock: boolean\n\n constructor(constructors?: {\n Block?: typeof Block,\n Multipliers?: typeof Layer,\n Modifiers?: typeof Layer,\n Discounts?: typeof Layer,\n Bonuses?: typeof Layer,\n }, { returnBlock }: { returnBlock: boolean } = { returnBlock: false }) {\n super(constructors)\n\n this.returnBlock = returnBlock\n }\n\n public produceMultiplier(condition: ((block: Block) => boolean) | true): BlockOptions[] {\n if (!this.multipliers) {\n return []\n }\n switch (condition) {\n case true:\n return this.multipliers.getLayer()\n .map((block) => (this.returnBlock ? block : block.getOptions()))\n default:\n return this.multipliers.getLayer().filter(condition)\n .map((block) => (this.returnBlock ? block : block.getOptions()))\n }\n }\n\n public produceModifier(condition: ((block: Block) => boolean) | true): BlockOptions[] {\n if (!this.modifiers) {\n return []\n }\n switch (condition) {\n case true:\n return this.modifiers.getLayer()\n .map((block) => (this.returnBlock ? block : block.getOptions()))\n default:\n return this.modifiers.getLayer().filter(condition)\n .map((block) => (this.returnBlock ? block : block.getOptions()))\n }\n }\n\n public produceDiscount(condition: ((block: Block) => boolean) | true): BlockOptions[] {\n if (!this.discounts) {\n return []\n }\n switch (condition) {\n case true:\n return this.discounts.getLayer()\n .map((block) => (this.returnBlock ? block : block.getOptions()))\n default:\n return this.discounts.getLayer().filter(condition)\n .map((block) => (this.returnBlock ? block : block.getOptions()))\n }\n }\n\n public produceBonus(condition: ((block: Block) => boolean) | true): BlockOptions[] {\n if (!this.bonuses) {\n return []\n }\n switch (condition) {\n case true:\n return this.bonuses.getLayer()\n .map((block) => (this.returnBlock ? block : block.getOptions()))\n default:\n return this.bonuses.getLayer().filter(condition)\n .map((block) => (this.returnBlock ? block : block.getOptions()))\n }\n }\n\n public* assembly({ price, modifiers, multipliers, discounts, bonuses }: {\n price?: boolean,\n modifiers?: ((block: Block) => boolean) | true,\n multipliers?: ((block: Block) => boolean) | true,\n discounts?: ((block: Block) => boolean) | true,\n bonuses?: ((block: Block) => boolean) | true,\n }): Generator {\n if (price) {\n yield { price: this.product.getOptions() }\n }\n\n if (multipliers) {\n yield { multipliers: this.produceMultiplier(multipliers) }\n }\n\n if (modifiers) {\n yield { modifiers: this.produceModifier(modifiers) }\n }\n\n if (discounts) {\n yield { discounts: this.produceDiscount(discounts) }\n }\n\n if (bonuses) {\n yield { bonuses: this.produceBonus(bonuses) }\n }\n }\n\n}\n\nexport default BlockFinder\n", "import isEqual from 'lodash/isEqual'\n\nimport Block from 'src/core'\n\nimport BlockOptions from 'src/core/types/BlockOptions'\nimport BlockBuilder from './BlockBuilder'\n\nclass BlockCleaner extends BlockBuilder {\n\n public produceMultiplier(arg0: BlockOptions | Block): Block[] | Block | boolean {\n if (!this.multipliers) {\n return false\n }\n\n if (arg0 instanceof Block) {\n this.multipliers.delete(arg0)\n\n return arg0\n }\n\n const { key = 'Multiplier block', value, unit } = arg0\n const blocks = this.multipliers.getLayer()\n .filter(\n (block) => isEqual(block.getOptions(), { key, value, unit }) ||\n block.getKey() === key ||\n key === 'any',\n )\n\n if (Array.isArray(blocks)) {\n for (const block of blocks) {\n this.multipliers.delete(block)\n }\n\n return blocks\n }\n\n return false\n }\n\n public produceModifier(arg0: BlockOptions | Block): Block[] | Block | boolean {\n if (!this.modifiers) {\n return false\n }\n\n if (arg0 instanceof Block) {\n this.modifiers.delete(arg0)\n\n return arg0\n }\n\n const { key = 'Modificator block', value, unit } = arg0\n const blocks = this.modifiers.getLayer()\n .filter(\n (block) => isEqual(block.getOptions(), { key, value, unit }) ||\n block.getKey() === key ||\n key === 'any',\n )\n\n if (Array.isArray(blocks)) {\n for (const block of blocks) {\n this.modifiers.delete(block)\n }\n\n return blocks\n }\n\n return false\n }\n\n public produceDiscount(arg0: BlockOptions | Block): Block[] | Block | boolean {\n if (!this.discounts) {\n return false\n }\n\n if (arg0 instanceof Block) {\n this.discounts.delete(arg0)\n\n return arg0\n }\n\n const { key = 'Discount block', value, unit } = arg0\n const blocks = this.discounts.getLayer()\n .filter(\n (block) => isEqual(block.getOptions(), { key, value, unit }) ||\n block.getKey() === key ||\n key === 'any',\n )\n\n if (Array.isArray(blocks)) {\n for (const block of blocks) {\n this.discounts.delete(block)\n }\n\n return blocks\n }\n\n return false\n }\n\n public produceBonus(arg0: BlockOptions | Block): Block[] | Block | boolean {\n if (!this.bonuses) {\n return false\n }\n\n if (arg0 instanceof Block) {\n this.bonuses.delete(arg0)\n\n return arg0\n }\n\n const { key = 'Bonus block', value, unit } = arg0\n const blocks = this.bonuses.getLayer()\n .filter(\n (block) => isEqual(block.getOptions(), { key, value, unit }) ||\n block.getKey() === key ||\n key === 'any',\n )\n\n if (Array.isArray(blocks)) {\n for (const block of blocks) {\n this.bonuses.delete(block)\n }\n\n return blocks\n }\n\n return false\n }\n\n}\n\nexport default BlockCleaner\n", "import Modifiers from 'src/core/Layers/Modifiers'\n\nimport GetBaseType from 'src/core/Interfaces/GetBaseType'\n\nclass UpsaleModifiers extends Modifiers {\n\n static type: string = Modifiers.constructor.name\n\n protected getBase: GetBaseType = (): number => 0\n\n}\n\nexport default UpsaleModifiers\n", "import Block from 'src/core'\nimport Layer from 'src/core/Layers'\nimport Blocks from 'src/core/Layers/Blocks'\n\nimport BlockData, {\n BlockDataWithPrice,\n} from 'src/Builders/types/BlockData'\n\nexport type ResursiveMap = {\n [key: string]: TValue | ResursiveMap\n}\n\nexport type DataType = {\n totalPrice?: BlockData,\n basicPrices: ResursiveMap>,\n additionals?: ResursiveMap>,\n fixes?: ResursiveMap>,\n manualChanges?: ResursiveMap>,\n} & {\n [key: string]: ResursiveMap>\n}\n\nexport type DataTypeWithPrice> = {\n totalPrice?: BlockDataWithPrice,\n basicPrices: ResursiveMap>,\n additionals?: ResursiveMap>,\n fixes?: { [key: string]: BlockData },\n}\n\nexport type BlocksType = {\n [key: string]: Block | Layer\n}\n\nexport type BlocksMapType = {\n [key: string]: BlocksType\n}\n\nexport type Options = {\n log?: boolean\n rebill?: boolean\n rate?: number\n currency?: string\n adapter?: {\n data?: boolean\n result?: boolean\n }\n}\n\nexport type ResultType = {\n basicPrice: Blocks,\n basicPriceWithoutDiscount: Blocks,\n additional?: Blocks,\n totalPrice: Layer,\n manualChange?: Blocks,\n blocks: Blocks,\n\n basicPrices?: ResursiveMap,\n additionals?: ResursiveMap,\n manualChanges?: ResursiveMap,\n\n orderSize: Block | Layer,\n bundle?: Block | Layer,\n bundles?: ResursiveMap,\n additionalPayment?: Block | Layer,\n additionalPayments?: ResursiveMap,\n\n bonuses: Blocks,\n}\n\nexport const PAGES: 'pages' = 'pages'\nexport const PROBLEMS: 'problems' = 'problems'\nexport const QUESTIONS: 'questions' = 'questions'\nexport const SLIDES: 'slides' = 'slides'\nexport const SOFTWARE: 'software' = 'software'\n// \"discounts\" is reserved word for BlockOptions and this key in basicPrice must be different\n// For this reason used uppercase\nexport const DISCOUNTS: 'DISCOUNTS' = 'DISCOUNTS'\nexport const LIMITED_DISCOUNT = 'limitedDiscount'\n\nexport enum AssemblingMethods {\n BasicPrice = 'assemblyBasicPrice',\n OrderSize = 'assemblyOrderSize',\n Upsales = 'assemblyUpsales',\n Bundles = 'assemblyBundles',\n AdditionalPayments = 'assemblyAdditionalPayments',\n ManualChanges = 'assemblyManualChanges',\n TotalPrice = 'assemblyTotalPrice',\n RegisterDiscount = 'assemblyRegisterDiscount',\n}\n", "import { ResursiveMap } from 'src/types'\n\nexport type ConditionType = (data: ResursiveMap) => boolean\n\nconst walk = (\n data: ResursiveMap,\n condition: ConditionType,\n transformator: (data: TData) => TResult,\n accumulator: ResursiveMap = {},\n): ResursiveMap | TResult => {\n if (condition(data)) {\n return transformator(data as unknown as TData)\n }\n\n for (const key in data) {\n accumulator[key] = walk(data[key] as ResursiveMap, condition, transformator, accumulator[key] as ResursiveMap)\n }\n\n return accumulator\n}\n\nexport const calculationWalk = (\n data: ResursiveMap,\n condition: ConditionType,\n transformator: (data: TData) => number,\n accumulator: number = 0,\n): number => {\n if (condition(data)) {\n return accumulator + transformator(data as unknown as TData)\n }\n\n for (const key in data) {\n return calculationWalk(data[key] as ResursiveMap, condition, transformator, accumulator)\n }\n\n return accumulator\n}\n\nexport default walk\n", "import BlockData from 'src/Builders/types/BlockData'\nimport { ResursiveMap } from 'src/types'\nimport { ConditionType } from 'src/utils/walk'\n\nconst isBlockData: ConditionType> = (data: ResursiveMap>) => Boolean(data.price || data.modifiers || data.multipliers || data.discounts)\n\nexport default isBlockData\n", "const isWriterKey = (key: string): boolean => Boolean(key.match(/writer$/))\n\nexport default isWriterKey\n", "import Block from 'src/core'\nimport Layer from 'src/core/Layers'\nimport currency from 'src/utils/currency'\n\nclass Blocks extends Layer {\n\n constructor(protected block: Block = new Block()) {\n super(block)\n }\n\n public calculate(): number {\n return currency(this.layer.reduce((acc, block) => acc + block.calculate(), 0))\n }\n\n public push(...args: (Block | Layer)[]): number {\n this.layer.push(...args)\n\n return this.layer.length\n }\n\n public clone(): Layer {\n const block = new (this.constructor as typeof Blocks)(this.block.clone())\n\n block.setKey(this.key)\n block.setValue(this.value)\n block.setUnit(this.unit)\n block.setFractionDigits(this.fractionDigits)\n\n for (const layerBlock of this.layer) {\n block.push(layerBlock.clone())\n }\n\n return block\n }\n\n}\n\nexport default Blocks\n", "import Layer from 'src/core/Layers'\n\nimport UpsaleModifiers from 'src/core/Layers/UpsaleModifiers'\n\nimport BlockBuilder from 'src/Builders/BlockBuilder'\n\nimport toCurrency from 'src/utils/currency'\n\nimport type { Options } from 'src/types'\n\n// TODO: Need refactoring for clean code.\nconst RatedOrderSize = (options: Required) => {\n return class extends Layer {\n\n protected blockBuilder = new BlockBuilder({ Modifiers: UpsaleModifiers })\n\n public calculate(): number {\n const block = this.getBlock()\n let price = block ? block.calculate() : 0\n\n if (block) {\n switch (true) {\n case (price > 2000 * options.rate):\n price = this.calculateGreaterThan2000(price)\n break\n case (price > 1000 * options.rate):\n price = this.calculateFrom1000To2000(price)\n break\n case (price > 300 * options.rate):\n price = this.calculateLessThan1000(price)\n break\n default:\n price = this.calculateLessThan300(price)\n break\n }\n }\n\n return toCurrency(price)\n }\n\n protected calculateLessThan300(price: number): number {\n for (const { } of this.blockBuilder.assembly({\n price: { key: 'Intermediate block', value: price, unit: options.currency },\n modifiers: [{ key: 'Intermediate modifier', value: options.rebill ? 1 : 2, unit: '%' }],\n }));\n\n return this.blockBuilder.getProduct().calculate()\n }\n\n protected calculateLessThan1000(price: number): number {\n for (const { } of this.blockBuilder.assembly({\n price: { key: 'Intermediate block', value: price, unit: options.currency },\n modifiers: [{ key: 'Intermediate modifier', value: 2.5, unit: '%' }],\n }));\n\n return this.blockBuilder.getProduct().calculate()\n }\n\n protected calculateFrom1000To2000(price: number): number {\n for (const { } of this.blockBuilder.assembly({\n price: { key: 'Intermediate block', value: price - 1000 * options.rate, unit: options.currency },\n modifiers: [{ key: 'Intermediate modifier', value: 1.5, unit: '%' }],\n }));\n\n return this.blockBuilder.getProduct().calculate() + this.calculateLessThan1000(1000 * options.rate)\n }\n\n protected calculateGreaterThan2000(price: number): number {\n for (const { } of this.blockBuilder.assembly({\n price: { key: 'Intermediate block', value: price - 2000 * options.rate, unit: options.currency },\n modifiers: [{ key: 'Intermediate modifier', value: 0.5, unit: '%' }],\n }));\n\n return this.blockBuilder.getProduct().calculate() + this.calculateFrom1000To2000(2000 * options.rate)\n }\n\n }\n}\n\nexport default RatedOrderSize\n", "import Bonuses from 'src/core/Layers/Bonuses'\n\nclass Bundles extends Bonuses { }\n\nexport default Bundles\n", "import Bonuses from 'src/core/Layers/Bonuses'\n\nclass AdditionalPayments extends Bonuses { }\n\nexport default AdditionalPayments\n", "import CalculatorAdaptee from 'src/adapters/CalculatorAdaptee'\nimport Calculator from 'src/Calculator'\nimport { Options } from 'src/types'\n\n/**\n * \u0410\u0434\u0430\u043F\u0442\u0435\u0440 \u0434\u0435\u043B\u0430\u0435\u0442 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0410\u0434\u0430\u043F\u0442\u0438\u0440\u0443\u0435\u043C\u043E\u0433\u043E \u043A\u043B\u0430\u0441\u0441\u0430 \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u044B\u043C \u0441 \u0446\u0435\u043B\u0435\u0432\u044B\u043C\n * \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043E\u043C.\n */\nclass CalculatorAdapter extends Calculator {\n\n private adaptee: CalculatorAdaptee\n\n private baseData!: TData\n\n constructor(adaptee: CalculatorAdaptee, options?: Options) {\n super(options)\n this.adaptee = adaptee\n adaptee.assignAdapter(this)\n }\n\n public setData(data: TData): CalculatorAdapter {\n this.baseData = data\n\n if (this.options.adapter?.data) {\n const transformedData = this.adaptee.transformData(data)\n\n if (this.options.log) {\n // eslint-disable-next-line no-console\n console.log('[Adapter] Data', { data, transformedData })\n }\n\n super.setData(this.options.adapter?.data ? transformedData : data)\n } else {\n if (this.options.log) {\n // eslint-disable-next-line no-console\n console.log('[Adapter] Data', { data, transformedData: 'DISABLED' })\n }\n\n super.setData(data)\n }\n\n return this\n }\n\n public getBaseData(): TData {\n return this.baseData\n }\n\n public getResult(): TResults {\n const result = super.getResult()\n\n if (this.options.adapter?.result) {\n const transformedResult = this.adaptee.transformResults(result)\n\n if (this.options.log) {\n // eslint-disable-next-line no-console\n console.log('[Adapter] Result', { result, transformedResult })\n }\n return transformedResult\n }\n\n if (this.options.log) {\n // eslint-disable-next-line no-console\n console.log('[Adapter] Result', { result, transformedResult: 'DISABLED' })\n }\n return result\n }\n\n}\n\nexport default CalculatorAdapter\n", "import _cloneDeepWith from 'lodash/cloneDeepWith'\n\nimport Calculator from 'src/Calculator'\n\nimport isBlockOptions from 'src/utils/isBlockOptions'\n\nimport { UNITS as CURRENCY_UNITS } from 'src/calculator-fabric/units/currency'\n\nimport Proxy from '../Proxy'\n\nimport { KEY } from '../of-total/constants'\n\nclass Exchanger extends Proxy {\n public *assembly(): Generator {\n const director = this.getDirector()\n const calculator = director.getCalculator()\n const options = calculator.getOptions()\n\n const rawData = calculator.getData()\n\n const data = _cloneDeepWith(rawData, blockOptions => {\n if (isBlockOptions(blockOptions)) {\n if (CURRENCY_UNITS.indexOf(blockOptions.unit) !== -1 && blockOptions.value !== KEY) {\n return {\n ...blockOptions,\n value: (blockOptions.value as number) * options.rate,\n unit: options.currency,\n }\n }\n }\n })\n\n director.getCalculator().updateData(data)\n\n yield calculator\n }\n}\n\nexport default Exchanger", "import BlockOptions from 'src/core/types/BlockOptions'\nimport { ResursiveMap } from 'src/types'\nimport { ConditionType } from 'src/utils/walk'\n\nconst isBlockOptions: ConditionType> = (data: ResursiveMap>) => {\n if (typeof data !== 'object') {\n return false\n }\n\n if (typeof data.key !== 'number' && typeof data.key !== 'string') {\n return false\n }\n\n if (typeof data.value !== 'number' && typeof data.value !== 'string') {\n return false\n }\n\n if (typeof data.unit !== 'string') {\n return false\n }\n\n return true\n}\n\nexport default isBlockOptions\n", "import type Calculator from 'src/Calculator'\n\nimport type Director from 'src/directors/Director'\n\ninterface IProxy {\n assembly(): Generator\n}\n\nabstract class Proxy implements IProxy {\n constructor(\n private readonly director: Director\n ) { }\n\n protected getDirector(): Director {\n return this.director\n }\n\n public abstract assembly(): Generator;\n}\n\nexport default Proxy", "export const KEY = '[OF_TOTAL]' as const", "import _omit from 'lodash/omit'\nimport _get from 'lodash/get'\n\nimport Calculator from 'src/Calculator'\nimport type Director from 'src/directors/Director'\n\nimport walk from 'src/utils/walk'\nimport isBlockData from 'src/utils/isBlockData'\n\nimport BlockData from 'src/Builders/types/BlockData'\nimport BlockOptions from 'src/core/types/BlockOptions'\n\nimport Proxy from '../Proxy'\n\nimport { KEY } from './constants'\nimport { DISCOUNTS } from 'src/types'\n\nclass OfTotal extends Proxy {\n static ADDITIONALS_IDS = [\n '15',\n ]\n\n public *assembly(): Generator {\n const baseDirector = this.getDirector()\n const baseCalculator = baseDirector.getCalculator()\n\n const Director = baseDirector.constructor as new (...a: any[]) => Director\n const director = new Director(new Calculator())\n\n const rawData = { ...baseCalculator.getData() }\n\n const hasOfTotal = Object.entries(rawData?.additionals || {})\n .reduce((accumulator, [, blockData]) => _get(blockData, 'price.value') === KEY || accumulator, false)\n\n if (!hasOfTotal) {\n return\n }\n\n /**\n * Cleaning of discounts and additionals which will calculate of total price\n */\n // cleaning from percent discount\n const cleanData = walk(rawData, isBlockData, (data: BlockData): BlockData => {\n return _omit(data, ['discounts'])\n }, {})\n // cleaning from currency discount\n delete cleanData.basicPrices[DISCOUNTS]\n // cleaning from additionals which will calculate of total price\n for (const key in cleanData.additionals) {\n if (_get(cleanData.additionals[key], 'price.value') === KEY) {\n delete cleanData.additionals[key]\n }\n }\n\n director.getCalculator().setData(cleanData)\n\n for (const { } of director.assembly());\n\n const totalPrice = director.getCalculator().getResult().totalPrice.calculate()\n\n const baseData = { ...baseCalculator.getData() }\n\n if (baseData.additionals) {\n const modificatedData = {\n ...baseData,\n additionals: Object.entries(baseData.additionals).reduce((accumulator, [key, blockData]) => {\n // @ts-ignore\n accumulator[key] = blockData\n\n /**\n * is additional feature which calculate of total price\n */\n if (_get(blockData, 'price.value') === KEY) {\n ((blockData as BlockData).price as BlockOptions).value = totalPrice;\n ((blockData as BlockData).price as BlockOptions).key = '[CLEAN_PRECALCULATED_TOTAL_PRICE]';\n }\n\n return accumulator\n }, {} as typeof baseCalculator['data']),\n }\n\n baseCalculator.updateData(modificatedData)\n }\n\n yield baseCalculator\n }\n}\n\nexport default OfTotal", "import Exchanger from '../proxies/exchanger'\nimport OfTotal from '../proxies/of-total'\n\nimport type Calculator from '../Calculator'\n\nimport type Proxy from '../proxies/Proxy'\n\nexport interface IDirector {\n getCalculator(): Calculator\n assembly(): Generator\n assignProxy(proxy: new (...a: any[]) => Proxy): void\n}\n\nabstract class Director implements IDirector {\n private proxies: Proxy[] = [\n new Exchanger(this),\n new OfTotal(this),\n ]\n\n constructor(\n private calculator: Calculator\n ) { }\n\n public getCalculator(): Calculator {\n return this.calculator\n }\n\n protected setCalculator(calculator: Calculator): void {\n this.calculator = calculator\n }\n\n public * assembly(): Generator {\n for (const proxy of this.proxies) {\n yield* proxy.assembly()\n }\n }\n\n public assignProxy(proxy: new (...a: any[]) => Proxy): void {\n this.proxies.push(new proxy(this))\n }\n}\n\nexport default Director", "import Director from './Director'\n\nimport type Calculator from 'src/Calculator'\n\nclass ClientDirector extends Director {\n public * assembly(): Generator {\n yield* super.assembly()\n\n const calculator = this.getCalculator()\n .assemblyBasicPrice()\n .assemblyUpsales()\n .assemblyManualChanges()\n .assemblyTotalPrice()\n .assemblyRegisterDiscount()\n\n this.setCalculator(calculator)\n\n yield calculator\n }\n}\n\nexport default ClientDirector", "import Director from './Director'\n\nimport type Calculator from 'src/Calculator'\n\nclass CockDirector extends Director {\n public * assembly(): Generator {\n yield* super.assembly()\n\n const calculator = this.getCalculator()\n .assemblyBasicPrice()\n .assemblyOrderSize()\n .assemblyUpsales()\n .assemblyBundles()\n .assemblyAdditionalPayments()\n .assemblyManualChanges()\n .assemblyTotalPrice()\n .assemblyRegisterDiscount()\n\n this.setCalculator(calculator)\n\n yield calculator\n }\n}\n\nexport default CockDirector", "import ClientDirector from './ClientDirector'\nimport CockDirector from './CockDirector'\n\nimport type { default as Director, IDirector } from './Director'\nimport type Calculator from '../Calculator'\nimport Proxy from 'src/proxies/Proxy'\n\nexport enum DirectorType {\n CLIENT = 'client',\n COCK = 'cock',\n DEFAULT = 'default'\n}\n\nclass DirectorFabric implements IDirector {\n static CLIENT = DirectorType.CLIENT\n static COCK = DirectorType.COCK\n static DEFAULT = DirectorType.DEFAULT\n\n private director!: Director\n\n constructor(slug: DirectorType, calculator: Calculator) {\n let Director!: new (...args: any[]) => Director\n\n switch (slug) {\n case DirectorType.COCK:\n Director = CockDirector\n break\n\n case DirectorType.CLIENT:\n default:\n Director = ClientDirector\n break\n }\n\n this.director = new Director(calculator)\n }\n\n public getCalculator(): Calculator {\n return this.director.getCalculator()\n }\n\n public * assembly(): Generator {\n yield* this.director.assembly()\n }\n\n public assignProxy(proxy: new (...a: any[]) => Proxy): void {\n this.director.assignProxy(proxy)\n }\n}\n\nexport default DirectorFabric", "import _pickBy from 'lodash/pickBy'\n\nimport CalculatorAdaptee from 'src/adapters/CalculatorAdaptee'\n\nimport * as from from 'src/adapters/microservices/extractors/fromData'\nimport * as to from 'src/adapters/microservices/extractors/toResults'\n\nimport { modificate } from 'src/adapters/microservices/utils/modificate'\nimport { additional } from 'src/adapters/microservices/utils/additional'\nimport calculate from 'src/adapters/microservices/utils/calculate'\nimport getBlock from 'src/adapters/microservices/utils/getBlock'\n\nimport Block from 'src/core'\nimport Layer from 'src/core/Layers'\n\nimport {\n Data as AdaptableData,\n Result as AdaptedResult,\n} from 'src/adapters/microservices/types'\nimport {\n DataType,\n ResultType,\n PAGES,\n SLIDES,\n PROBLEMS,\n QUESTIONS,\n SOFTWARE,\n DISCOUNTS,\n} from 'src/types'\n\ntype Data = DataType\n\n/**\n * \u0410\u0434\u0430\u043F\u0442\u0438\u0440\u0443\u0435\u043C\u044B\u0439 \u043A\u043B\u0430\u0441\u0441 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u043F\u043E\u043B\u0435\u0437\u043D\u043E\u0435 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435, \u043D\u043E \u0435\u0433\u043E \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\n * \u043D\u0435\u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u043C \u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438\u043C \u043A\u043E\u0434\u043E\u043C. \u0410\u0434\u0430\u043F\u0442\u0438\u0440\u0443\u0435\u043C\u044B\u0439 \u043A\u043B\u0430\u0441\u0441 \u043D\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044F \u0432\n * \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u0434\u043E\u0440\u0430\u0431\u043E\u0442\u043A\u0435, \u043F\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043C \u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u043A\u043E\u0434 \u0441\u043C\u043E\u0436\u0435\u0442 \u0435\u0433\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C.\n */\nclass MicroservicesAdaptee extends CalculatorAdaptee {\n\n static modificateBasicPrice = (basicPrices: Data['basicPrices'], data: AdaptableData): void => {\n modificate(basicPrices, from.subject(data))\n modificate(basicPrices, from.writerMtl(data))\n }\n\n public transformData(data: AdaptableData): Data {\n const options = this.adapter.getOptions()\n\n const result: Data = {} as Data\n const price = from.basicPrice(data)\n\n let discounts\n const currencyDiscounts = from.currencyDiscounts(data, options)\n const limitedDiscounts = from.limitedDiscounts(data, options)\n\n if (currencyDiscounts || limitedDiscounts) {\n discounts = {\n ...(currencyDiscounts || {}),\n ...(limitedDiscounts || {}),\n }\n }\n\n const basicPrices: Data['basicPrices'] = {\n [PAGES]: from.singlePriceUnit(data, PAGES, price, options),\n [SLIDES]: from.singlePriceUnit(data, SLIDES, price, options),\n [PROBLEMS]: from.singlePriceUnit(data, PROBLEMS, price, options),\n [QUESTIONS]: from.singlePriceUnit(data, QUESTIONS, price, options),\n [SOFTWARE]: from.software(data, options),\n [DISCOUNTS]: discounts,\n } as Data['basicPrices']\n result.basicPrices = _pickBy(basicPrices, Boolean) as Data['basicPrices']\n const { basicPrices: compactBasicPrices } = result\n\n const { pages } = basicPrices\n\n MicroservicesAdaptee.modificateBasicPrice(compactBasicPrices, data)\n\n const spacing = from.spacing(data)\n if (pages && spacing) {\n pages.multipliers = Array.isArray(pages.multipliers) ? pages.multipliers : []\n\n pages.multipliers.push(spacing)\n }\n\n additional(result, 'sources', from.sources(data, options))\n additional(result, from.WRITER, from.writer(data))\n additional(result, 'preferredWriter', from.preferredWriter(data))\n additional(result, 'speakerNotes', from.speakerNotes(data, basicPrices[SLIDES], options))\n\n const additionals = from.additionals(data, price, options)\n if (Object.keys(additionals).length > 0) {\n for (const featureKey in additionals) {\n additional(result, featureKey, additionals[featureKey])\n }\n }\n\n return result\n }\n\n public transformResults(result: ResultType): AdaptedResult {\n const { totalPrice, basicPrice, basicPrices, additionals, basicPriceWithoutDiscount } = result\n\n const root = to.root(result)\n const perUnit = to.perUnit(result)\n const perUnitForCock = to.cockPerUnit(result)\n const forUnit = to.forUnit(result)\n\n const transformedResult = {\n priceFull: calculate(totalPrice),\n priceFullWithoutDiscount: calculate(to.totalWithoutDiscounts(result)),\n priceBasic: calculate(basicPrice),\n priceBasicWithoutDiscount: calculate(basicPriceWithoutDiscount),\n priceForCalculatorItems: calculate(basicPrices?.pages) ||\n calculate(basicPrices?.problems) ||\n calculate(basicPrices?.questions) ||\n calculate(basicPrices?.slides),\n pricePerUnit: {\n default: calculate(root),\n pages: calculate(perUnit.pages),\n slides: calculate(perUnit.slides),\n problems: calculate(perUnit.problems),\n questions: calculate(perUnit.questions),\n software: calculate(perUnit.software),\n },\n priceForUnits: {\n pages: calculate(forUnit.pages),\n slides: calculate(forUnit.slides),\n problems: calculate(forUnit.problems),\n questions: calculate(forUnit.questions),\n software: calculate(forUnit.software),\n },\n priceAdditionals: {\n writerCategory: {\n total: calculate(additionals?.writer) + calculate(additionals?.preferredWriter),\n basic: calculate(additionals?.writer),\n additional: calculate(additionals?.preferredWriter),\n },\n additionalFeatures: additionals ? to.additionalFeatures(additionals) : 0,\n softcopies: calculate(additionals?.sources),\n software: calculate(getBlock(basicPrices?.software as (Block | Layer))),\n speakerNotes: calculate(to.speakerNotes(result)),\n },\n discountAmount: calculate(to.discount(result)),\n technicalSubjectPricePB: calculate(to.complexAssignment(result)),\n priceForCock: {\n pricePerUnit: {\n page: calculate(perUnitForCock.pages),\n slide: calculate(perUnitForCock.slides),\n problem: calculate(perUnitForCock.problems),\n questions: calculate(perUnitForCock.questionss),\n },\n },\n }\n\n return transformedResult\n }\n\n}\n\nexport default MicroservicesAdaptee\n", "import { DataType, ResultType } from 'src/types'\nimport CalculatorAdapter from './CalculatorAdapter'\n\ntype Data = DataType\n\n/**\n * \u0410\u0434\u0430\u043F\u0442\u0438\u0440\u0443\u0435\u043C\u044B\u0439 \u043A\u043B\u0430\u0441\u0441 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u043F\u043E\u043B\u0435\u0437\u043D\u043E\u0435 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435, \u043D\u043E \u0435\u0433\u043E \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\n * \u043D\u0435\u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u043C \u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438\u043C \u043A\u043E\u0434\u043E\u043C. \u0410\u0434\u0430\u043F\u0442\u0438\u0440\u0443\u0435\u043C\u044B\u0439 \u043A\u043B\u0430\u0441\u0441 \u043D\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044F \u0432\n * \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u0434\u043E\u0440\u0430\u0431\u043E\u0442\u043A\u0435, \u043F\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043C \u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u043A\u043E\u0434 \u0441\u043C\u043E\u0436\u0435\u0442 \u0435\u0433\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C.\n */\nabstract class CalculatorAdaptee {\n\n adapter!: CalculatorAdapter\n\n public abstract transformData(data: TAdaptableData): Data\n\n public assignAdapter(adapter: CalculatorAdapter): void {\n this.adapter = adapter\n }\n\n public abstract transformResults(result: ResultType): TAdaptedResult\n\n}\n\nexport default CalculatorAdaptee\n", "import BlockData from 'src/Builders/types/BlockData'\n\nconst extractPercentDiscounts = (data: any): BlockData | void => {\n const {\n discount_rate, limit, // eslint-disable-line @typescript-eslint/naming-convention\n }: {\n discount_rate?: number,\n limit?: number\n } = data.fieldValues.discountData?.type || {}\n\n if (discount_rate && !limit) {\n return {\n discounts: [{\n key: data.fieldValues.discountData.type.id,\n value: discount_rate,\n unit: '%',\n }],\n }\n }\n}\n\nexport default extractPercentDiscounts\n", "import extractPercentDiscounts from 'src/adapters/microservices/extractors/fromData/percentDiscounts'\n\nimport { KEY as OF_TOTAL_KEY } from '../../../../proxies/of-total/constants'\nimport OfTotalProxy from '../../../../proxies/of-total'\nimport type { Options } from 'src/types'\n\nconst extractAdditionals = (data: any, basicPrice: number, options: Required) => {\n const additional = {} as {\n [key: string]: any\n }\n\n for (let id of data.fieldValues.additionalFeatures) {\n let free = false\n\n // eslint-disable-next-line no-nested-ternary\n if (!Number.isFinite(id) && (typeof id.chosen !== 'undefined' && id.chosen === true)) {\n free = id.free\n id = id.id\n }\n\n const feature = data.bd.bdAdditionalFeatures.find((feature: any) => feature.id === id)\n if (feature) {\n const price = parseFloat(feature.price)\n const percent = parseFloat(feature.percent)\n\n if (price > 0) {\n additional[feature.id as number | string] = {\n price: { key: feature.id, value: free ? 0 : price, unit: options.currency },\n ...(extractPercentDiscounts(data) || {}),\n }\n } else if (percent > 0) {\n additional[feature.id as number | string] = {\n modifiers: [\n { key: feature.id, value: free ? 0 : percent, unit: '%' },\n ],\n ...(extractPercentDiscounts(data) || {}),\n }\n } else {\n additional[feature.id as number | string] = {\n price: { key: feature.id, value: free ? 0 : basicPrice, unit: options.currency },\n ...(extractPercentDiscounts(data) || {}),\n }\n }\n\n if (OfTotalProxy.ADDITIONALS_IDS.indexOf(`${feature.id}`) !== -1) {\n additional[feature.id as number | string].price = {\n key: OF_TOTAL_KEY,\n unit: options.currency,\n ...(additional[feature.id as number | string].price || {}),\n value: free ? 0 : OF_TOTAL_KEY\n }\n }\n }\n }\n\n return additional\n}\n\nexport default extractAdditionals\n", "const extractBasicPrice = (data: any) => {\n const { groupId: paperTypeGroup } = data.bd.bdPaperTypes.find(({ id }: any) => id === data.fieldValues.paperType)\n const academicLevel = paperTypeGroup === 19 ? 14 : data.fieldValues.academicLevel\n const { price } = data.bd.bdPrices.find((price: any) => (\n price.academicLevels === academicLevel &&\n price.deadlines === data.fieldValues.deadline &&\n price.paperTypeGroups === paperTypeGroup &&\n price.workTypes === data.fieldValues.workType\n )) || { price: 0 }\n\n return price\n}\n\nexport default extractBasicPrice\n", "import BlockData from 'src/Builders/types/BlockData'\nimport { DISCOUNTS, Options } from 'src/types'\n\nconst extractCurrencyDiscounts = (data: any, options: Required): BlockData | void => {\n const {\n discount_sum, limit, // eslint-disable-line @typescript-eslint/naming-convention\n }: {\n discount_sum?: number\n limit?: number\n } = data.fieldValues.discountData?.type || {}\n\n if (discount_sum && !limit) {\n return {\n [data.fieldValues.discountData.type.id]: {\n price: {\n key: DISCOUNTS,\n value: -discount_sum,\n unit: options.currency,\n },\n },\n }\n }\n}\n\nexport default extractCurrencyDiscounts\n", "import BlockData from 'src/Builders/types/BlockData'\nimport { DISCOUNTS, LIMITED_DISCOUNT, Options } from 'src/types'\n\nconst extractLimitedDiscounts = (data: any, options: Required): BlockData | void => {\n const {\n discount_sum, limit, // eslint-disable-line @typescript-eslint/naming-convention\n }: {\n discount_sum?: number\n limit?: number\n } = data.fieldValues.discountData?.type || {}\n\n if (discount_sum && limit) {\n return {\n [LIMITED_DISCOUNT as any]: {\n price: {\n key: DISCOUNTS,\n value: 0,\n unit: options.currency,\n amount: discount_sum,\n limit,\n },\n },\n }\n }\n}\n\nexport default extractLimitedDiscounts\n", "import extractPercentDiscounts from 'src/adapters/microservices/extractors/fromData/percentDiscounts'\n\nexport const PREFERRED_WRITER_ID = 11\n\nconst extractPreferredWriter = (data: any) => {\n let writerId = data.fieldValues.writerCategory?.chosenID\n const free = data.fieldValues.writerCategory?.free\n\n if (writerId !== PREFERRED_WRITER_ID || !data.fieldValues.preferredOrderData?.writerCategory) {\n return\n }\n\n writerId = data.fieldValues.preferredOrderData?.writerCategory\n\n const writer = data.bd.bdWriterCategories.find(({ id }: any) => id === writerId)\n\n if (writer) {\n const percent = parseFloat(writer.percent)\n\n if (percent > 0) {\n return {\n modifiers: [\n { key: writer.title, value: free ? 0 : percent, unit: '%' },\n ],\n ...(extractPercentDiscounts(data) || {}),\n }\n }\n }\n}\n\nexport default extractPreferredWriter\n", "import extractPercentDiscounts from 'src/adapters/microservices/extractors/fromData/percentDiscounts'\n\nimport type { Options } from 'src/types'\n\nexport const UNITS = 'units'\n\nexport const extractPrice = (data: any, key: string, price: number, options: Required) => ({\n price: { key, value: price, unit: options.currency },\n multipliers: [\n { key: UNITS, value: data.fieldValues[key], unit: key },\n ],\n ...(extractPercentDiscounts(data) || {}),\n})\n\nexport default (data: any, key: string, price: number, options: Required) => (\n data.fieldValues[key] > 0 ? extractPrice(data, key, price, options) : undefined\n)\n", "import extractPercentDiscounts from 'src/adapters/microservices/extractors/fromData/percentDiscounts'\n\nimport type { Options } from 'src/types'\n\nconst extractSoftware = (data: any, options: Required) => {\n const software = data.bd.bdSoftwares.find(({ id }: any) => id === data.fieldValues.software)\n\n if (software) {\n const key = 'software'\n\n return {\n price: { key, value: software.price, unit: options.currency },\n ...(extractPercentDiscounts(data) || {}),\n }\n }\n}\n\nexport default extractSoftware\n", "import extractPercentDiscounts from 'src/adapters/microservices/extractors/fromData/percentDiscounts'\n\nimport type { Options } from 'src/types'\n\nconst extractSources = (data: any, options: Required) => {\n const sources = data.fieldValues.sources\n const softcopiesFlag = data.fieldValues.softcopies\n\n if (softcopiesFlag && sources > 0) {\n const softcopies = (Array.isArray(data.bd.bdSoftcopies) && data.bd.bdSoftcopies.length > 0)\n ? data.bd.bdSoftcopies[0]\n : data.bd.bdSoftcopies\n\n return {\n price: { key: 'softcopies', value: softcopies.price, unit: options.currency },\n multipliers: [\n { key: 'sources', value: sources, unit: 'sources' },\n ],\n ...(extractPercentDiscounts(data) || {}),\n }\n }\n}\n\nexport default extractSources\n", "const extractSpacing = (data: any) => {\n const spacing = data.bd.bdSpacings.find(({ id }: any) => id === data.fieldValues.spacing)\n\n return { key: spacing.text, value: spacing.multiplier, unit: 'spacing' }\n}\n\nexport default extractSpacing\n", "import Block from 'src/core'\nimport Layer from 'src/core/Layers'\nimport Discounts from 'src/core/Layers/Discounts'\n\nimport currency from 'src/utils/currency'\nimport { calculationWalk } from 'src/utils/walk'\n\nconst walk = {\n condition: (data: any) => typeof data.calculate === 'function',\n transform: (block: Block | Layer) => {\n if (block instanceof Discounts) {\n block = block.getBlock() as Block | Layer\n }\n\n return block.calculate()\n },\n}\n\nconst calculate = (block?: any): number => {\n if (block) {\n return currency(calculationWalk(\n block,\n walk.condition,\n walk.transform,\n ))\n }\n\n return 0\n}\n\nexport default calculate\n", "import BlockBuilder from \"src/Builders/BlockBuilder\"\nimport calculate from \"src/adapters/microservices/utils/calculate\"\nimport { Options } from \"src/types\"\nimport extractPercentDiscounts from 'src/adapters/microservices/extractors/fromData/percentDiscounts'\n\nexport const SPEAKER_NOTES = 'Speaker Notes'\n\nconst extractSpeakerNotes = (data: any, price: any, options: Required) => {\n const slides = data.fieldValues.slides\n const speakerNotesFlag = data.fieldValues.speakerNotes\n\n if (speakerNotesFlag && slides > 0) {\n const { percent } = (Array.isArray(data.bd.bdSpeakerNotes) && data.bd.bdSpeakerNotes.length > 0)\n ? data.bd.bdSpeakerNotes[0]\n : data.bd.bdSpeakerNotes\n\n const blockBuilder = new BlockBuilder()\n\n for (const { } of blockBuilder.assembly(price));\n const slides = blockBuilder.getProduct()\n\n return {\n price: {\n key: 'slidesForSpeakerNotes',\n value: calculate(slides),\n unit: options.currency,\n },\n modifiers: [\n { key: SPEAKER_NOTES, value: parseInt(`${percent}`, 10), unit: '%' }\n ],\n ...(extractPercentDiscounts(data) || {}),\n }\n }\n}\n\nexport default extractSpeakerNotes\n", "export const COMPLEX_ASSIGNMENT = 'Complex Assignment'\n\nconst extractSubject = (data: any) => {\n const subject = data.bd.bdSubjects.find(({ id }: any) => id === data.fieldValues.subject)\n if (subject.isTechnical) {\n return { key: COMPLEX_ASSIGNMENT, value: subject.percent, unit: '%' }\n }\n}\n\nexport default extractSubject\n", "export const WRITER_MODIFICATOR = 'Writer Modificator'\n\nconst writerMultiplier = (data: any) => {\n if (data?.fieldValues?.writer?.mtl) {\n return { key: WRITER_MODIFICATOR, value: data.fieldValues.writer.mtl * 100, unit: '%' }\n }\n}\n\nexport default writerMultiplier\n", "import extractPercentDiscounts from 'src/adapters/microservices/extractors/fromData/percentDiscounts'\n\nexport const WRITER = 'writer'\n\nconst extractWriter = (data: any): any => {\n const writerId = data.fieldValues.writerCategory?.chosenID\n const free = data.fieldValues.writerCategory?.free\n\n const writer = data.bd.bdWriterCategories.find(({ id }: any) => id === writerId)\n\n if (writer) {\n const percent = parseFloat(writer.percent)\n\n if (percent > 0) {\n return {\n modifiers: [\n { key: writer.title, value: free ? 0 : percent, unit: '%' },\n ],\n ...(extractPercentDiscounts(data) || {}),\n }\n }\n }\n}\n\nexport default extractWriter\n", "import Block from 'src/core'\nimport Layer from 'src/core/Layers'\n\nimport calculate from 'src/adapters/microservices/utils/calculate'\nimport currency from 'src/utils/currency'\n\nimport { ResursiveMap } from 'src/types'\n\nconst extractAdditionalFeatures = (blocks: ResursiveMap) => {\n const ADDITIONAL_FEATURES_IDS = [4, 5, 6, 7, 9, 10, 12, 13, 15, 16, 17, 18]\n const additionalFeatures = {\n total: 0,\n } as {\n [key: number]: number,\n total: number,\n }\n\n for (const id of ADDITIONAL_FEATURES_IDS) {\n if (blocks[id]) {\n additionalFeatures[id] = calculate(blocks[id])\n additionalFeatures.total += additionalFeatures[id]\n }\n }\n\n additionalFeatures.total = currency(additionalFeatures.total)\n\n return additionalFeatures\n}\n\nexport default extractAdditionalFeatures\n", "import Block from 'src/core'\n\nimport BlockFinder from 'src/Builders/BlockFinder'\nimport BlockCleaner from 'src/Builders/BlockCleaner'\nimport BlockBuilder from 'src/Builders/BlockBuilder'\nimport { ResultType, ResursiveMap } from 'src/types'\nimport walk from 'src/utils/walk'\nimport BlockData from 'src/Builders/types/BlockData'\nimport BlockOptions from 'src/core/types/BlockOptions'\n\nconst blockFinder = new BlockFinder()\nconst blockCleaner = new BlockCleaner()\nconst blockBuilder = new BlockBuilder()\n\nconst percentBlockCondition = (block: any) => block.getUnit() === '%'\n\nconst extractCockPerUnit = ({ additionals, basicPrices }: ResultType): ResursiveMap => {\n const dependedUpsales: { [key: string]: BlockOptions } = {}\n\n walk(\n additionals as ResursiveMap,\n (data: any) => data instanceof Block,\n (data: Block): void => {\n blockFinder.continue(data)\n for (const { modifiers } of blockFinder.assembly({ modifiers: percentBlockCondition })) {\n if (modifiers) {\n for (const options of (modifiers as BlockOptions[])) {\n dependedUpsales[options.key] = options\n }\n }\n }\n },\n )\n\n const perUnitForCock: ResursiveMap = walk(\n basicPrices as ResursiveMap,\n (data: any) => data instanceof Block,\n (data: Block): Block => {\n blockCleaner.continue(data.clone())\n for (const { } of blockCleaner.assembly({\n discounts: [{ key: 'any' }],\n multipliers: [{ key: 'units' }],\n }));\n blockBuilder.continue(blockCleaner.getProduct())\n for (const { } of blockBuilder.assembly({ modifiers: Object.values(dependedUpsales) as BlockData }));\n return blockBuilder.getProduct()\n },\n ) as ResursiveMap\n\n return perUnitForCock\n}\n\nexport default extractCockPerUnit\n", "import BlockBuilder from 'src/Builders/BlockBuilder'\n\nimport Block from 'src/core'\nimport Layer from 'src/core/Layers'\n\nimport BlockData from 'src/Builders/types/BlockData'\n\nclass BlockRecompiler extends BlockBuilder {\n\n public* assembly(constructors: {\n Block?: typeof Block,\n Multipliers?: typeof Layer,\n Modifiers?: typeof Layer,\n Discounts?: typeof Layer,\n Bonuses?: typeof Layer,\n } = {}): Generator {\n\n if (constructors.Block) { this.Block = constructors.Block }\n if (constructors.Multipliers) { this.Multipliers = constructors.Multipliers }\n if (constructors.Modifiers) { this.Modifiers = constructors.Modifiers }\n if (constructors.Discounts) { this.Discounts = constructors.Discounts }\n if (constructors.Bonuses) { this.Bonuses = constructors.Bonuses }\n\n const data: BlockData = {\n price: this.product.getOptions(),\n }\n\n if (this.multipliers) {\n data.multipliers = []\n\n for (const multiplier of this.multipliers.getLayer()) {\n data.multipliers.push(multiplier.getOptions())\n }\n }\n\n if (this.modifiers) {\n data.modifiers = []\n\n for (const modifier of this.modifiers.getLayer()) {\n data.modifiers.push(modifier.getOptions())\n }\n }\n\n if (this.discounts) {\n data.discounts = []\n\n for (const discount of this.discounts.getLayer()) {\n data.discounts.push(discount.getOptions())\n }\n }\n\n if (this.bonuses) {\n data.bonuses = []\n\n for (const bonuses of this.bonuses.getLayer()) {\n data.bonuses.push(bonuses.getOptions())\n }\n }\n\n this.reset()\n\n yield* super.assembly(data)\n }\n\n}\n\nexport default BlockRecompiler\n", "import Block from 'src/core'\nimport Layer from 'src/core/Layers'\n\nimport Blocks from 'src/core/Layers/Blocks'\nimport BlockRecompiler from 'src/Builders/BlockRecompiler'\nimport UpsaleModifiers from 'src/core/Layers/UpsaleModifiers'\nimport BlockCleaner from 'src/Builders/BlockCleaner'\n\nimport {\n ResultType,\n DISCOUNTS,\n ResursiveMap,\n} from 'src/types'\n\nimport { WRITER_MODIFICATOR } from 'src/adapters/microservices/extractors/fromData/writer-mtl'\n\nconst blockRecompiler = new BlockRecompiler()\nconst blockCleaner = new BlockCleaner()\n\nconst extractComplexAssignment = ({ basicPrices }: ResultType): Block | Layer => {\n const complexAssignment = new Blocks()\n\n for (const [unitKey, unit] of Object.entries(basicPrices as ResursiveMap)) {\n if (unitKey === DISCOUNTS) {\n continue\n }\n blockRecompiler.continue((unit as Layer | Block).clone())\n for (const { } of blockRecompiler.assembly({ Modifiers: UpsaleModifiers }));\n\n blockCleaner.continue(blockRecompiler.getProduct())\n for (const { } of blockCleaner.assembly({\n discounts: [{ key: 'any' }],\n modifiers: [\n { key: WRITER_MODIFICATOR },\n ],\n }));\n\n complexAssignment.push(blockCleaner.getProduct())\n }\n\n return complexAssignment\n}\n\nexport default extractComplexAssignment\n", "import _isPlainObject from 'lodash/isPlainObject'\n\nimport Block from 'src/core'\nimport Layer from 'src/core/Layers'\nimport Blocks from 'src/core/Layers/Blocks'\nimport Discounts from 'src/core/Layers/Discounts'\n\nimport calculate from 'src/adapters/microservices/utils/calculate'\n\nimport { ResultType } from 'src/types'\n\nconst extractDiscount = ({ totalPrice, basicPrices }: ResultType): Block | Layer => {\n const percentDiscounts = new Blocks()\n\n for (const block of totalPrice.getLayer()) {\n if (block instanceof Discounts) {\n percentDiscounts.push(...block.getLayer())\n }\n }\n\n const currencyDiscounts = new Blocks()\n\n if (basicPrices && _isPlainObject(basicPrices?.DISCOUNTS)) {\n currencyDiscounts.push(...Object.values(basicPrices.DISCOUNTS))\n }\n\n return {\n calculate(): number {\n return calculate(percentDiscounts) + Math.abs(calculate(currencyDiscounts))\n },\n } as Block\n}\n\nexport default extractDiscount\n", "import Block from 'src/core'\n\nimport BlockCleaner from 'src/Builders/BlockCleaner'\nimport { ResultType, ResursiveMap } from 'src/types'\nimport walk from 'src/utils/walk'\nimport { COMPLEX_ASSIGNMENT } from 'src/adapters/microservices/extractors/fromData/subject'\nimport BlockData from 'src/Builders/types/BlockData'\n\nconst blockCleaner = new BlockCleaner()\n\nconst extractForUnit = ({ basicPrices }: ResultType): ResursiveMap => walk(\n basicPrices as ResursiveMap,\n (data: any) => data instanceof Block,\n (data: Block): Block => {\n blockCleaner.continue(data.clone())\n for (const { } of blockCleaner.assembly({\n modifiers: [\n { key: COMPLEX_ASSIGNMENT },\n ],\n discounts: [{ key: 'any' }],\n } as BlockData));\n return blockCleaner.getProduct()\n },\n) as ResursiveMap\n\nexport default extractForUnit\n", "import Block from 'src/core'\n\nimport BlockCleaner from 'src/Builders/BlockCleaner'\nimport { ResultType, ResursiveMap } from 'src/types'\nimport walk from 'src/utils/walk'\nimport { COMPLEX_ASSIGNMENT } from 'src/adapters/microservices/extractors/fromData/subject'\nimport BlockData from 'src/Builders/types/BlockData'\n\nconst blockCleaner = new BlockCleaner()\n\nconst extractPerUnit = ({ basicPrices }: ResultType): ResursiveMap => walk(\n basicPrices as ResursiveMap,\n (data: any) => data instanceof Block,\n (data: Block): Block => {\n blockCleaner.continue(data.clone())\n for (const { } of blockCleaner.assembly({\n multipliers: [{ key: 'units' }],\n modifiers: [\n { key: COMPLEX_ASSIGNMENT },\n ],\n discounts: [{ key: 'any' }],\n } as BlockData));\n return blockCleaner.getProduct()\n },\n) as ResursiveMap\n\nexport default extractPerUnit\n", "import Block from 'src/core'\n\nimport { ResultType } from 'src/types'\n\nconst getBlock = (block: Block): Block | void => {\n if (!block) {\n return\n }\n\n const child = block.getBlock()\n\n if (child) {\n return getBlock(child)\n }\n\n return block\n}\n\nconst extractRoot = ({ basicPrices }: ResultType): Block | void => {\n const root = (basicPrices?.pages || basicPrices?.problems || basicPrices?.questions) as Block\n\n return getBlock(root)\n}\n\nexport default extractRoot\n", "import _isEmpty from 'lodash/isEmpty'\n\nimport Block from 'src/core'\nimport Layer from 'src/core/Layers'\n\nimport {\n ResultType,\n} from 'src/types'\n\nconst extractspeakerNotes = ({ additionals }: ResultType): Block | Layer | void => {\n if (additionals?.speakerNotes) {\n return additionals.speakerNotes as Block | Layer\n }\n}\n\nexport default extractspeakerNotes\n", "import Block from 'src/core'\nimport Layer from 'src/core/Layers'\n\nimport Blocks from 'src/core/Layers/Blocks'\nimport BlockCleaner from 'src/Builders/BlockCleaner'\n\nimport {\n ResultType,\n DISCOUNTS,\n} from 'src/types'\n\nconst blockCleaner = new BlockCleaner()\n\nconst extractTotalWithoutDiscounts = ({ totalPrice }: ResultType): Block | Layer => {\n const complexAssignment = new Blocks()\n\n for (const block of totalPrice.clone().getLayer()) {\n if (block.getKey() === DISCOUNTS) {\n continue\n }\n\n blockCleaner.continue(block)\n for (const { } of blockCleaner.assembly({\n discounts: [{ key: 'any' }],\n }));\n\n complexAssignment.push(blockCleaner.getProduct())\n }\n\n return complexAssignment\n}\n\nexport default extractTotalWithoutDiscounts\n", "import BlockData from 'src/Builders/types/BlockData'\nimport BlockOptions from 'src/core/types/BlockOptions'\nimport {\n ResursiveMap,\n DISCOUNTS,\n} from 'src/types'\n\nexport const modificate = (compactBasicPrices: ResursiveMap>, modificator?: BlockOptions): void => {\n if (modificator) {\n for (const key in compactBasicPrices) {\n if (key === DISCOUNTS) {\n continue\n }\n const basicPrice = compactBasicPrices[key]\n basicPrice.modifiers = Array.isArray(basicPrice.modifiers) ? basicPrice.modifiers : []\n\n basicPrice.modifiers.push(modificator)\n }\n }\n}\n", "import type { Data } from 'src/adapters/microservices/types'\nimport type BlockData from 'src/Builders/types/BlockData'\n\nexport const additional = (result: Data, key: string, value?: BlockData): void => {\n if (value) {\n result.additionals = result.additionals ? result.additionals : {}\n\n result.additionals[key] = value\n }\n}\n", "import Block from 'src/core'\nimport Layer from 'src/core/Layers'\n\nconst getBlock = (block?: Block | Layer): Block => {\n if (!block) {\n return { calculate: () => 0 } as Block\n }\n const child = block.getBlock()\n\n if ((block as Layer).getLayer && child) {\n return getBlock(child)\n }\n\n return block\n}\n\nexport default getBlock\n", "var toString = require('./toString');\n\n/**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\nfunction replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n}\n\nmodule.exports = replace;\n", "/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n", "var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n", "var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n"], "mappings": "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EAAAA,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,EAAAA,KAAAA,GAAAA,EAAAA,CAAAA,EAAAA,CAAAA,IAAAA,GAAAA,IAAAA,GAAAA,EAAAA,EAAAA,MAAAA,IAAAA,GAAAA,OAAAA,EAAAA,QAAAA,CAAAA,MAAAA,EAAAA,CAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,GAAAA,EAAAA,QAAAA,EAAAA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,EAAAA,SAAAA,IAAAA,GAAAA,EAAAA,EAAAA,IAAAA,IAAAA,EAAAA,EAAAA,KAAAA,IAAAA,EAAAA,SAAAA,QAAAA,GAAAA,GAAAA,GAAAA,EAAAA,EAAAA,MAAAA,OAAAA,GAAAA,EAAAA,EAAAA,OAAAA,CAAAA,IAAAA,EAAAA,CAAAA,IAAAA,GAAAA,EAAAA,CAAAA,IAAAA,GAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,IAAAA,CAAAA,GAAAA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,GAAAA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,GAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,KAAAA,CAAAA,GAAAA,GAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EAAAA,EAAAA,IAAAA,KAAAA,CAAAA,EAAAA,KAAAA,CAAAA,EAAAA,CAAAA,GAAAA,EAAAA,IAAAA,IAAAA,EAAAA,EAAAA,KAAAA,IAAAA,EAAAA,QAAAA,CAAAA,EAAAA,EAAAA,KAAAA,EAAAA,CAAAA,CAAAA,OAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,QAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,GAAAA,EAAAA,EAAAA,CAAAA,EAAAA,MAAAA,EAAAA,CAAAA,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tE,IAAMC,EAAI,IAAMD,EAChB,OAAO,KAAK,KAAKD,EAAQE,CAAC,EAAIA,CAChC,ECCMC,IAAuB,CAAC,CAC5B,MAAAH,EACA,OAAAI,EACA,eAAAH,CACF,IAAuB,CACrB,GAAIG,EAAQ,CACV,IAAMC,EAAW,CAACD,EAAO,UAAU,EAAM,CAACJ,EAAU,IAEpD,OAAKC,EAIEF,GAAMM,EAAQJ,CAAc,EAH1BI,CAIX,CAEA,MAAO,EACT,EAEOC,IAAQH,IAEFI,IAAQ,CACnB,IACA,SACF,ECvBMJ,IAAuB,CAAC,CAC5B,MAAAH,EACA,OAAAI,EACA,eAAAH,CACF,IAAuB,CACrB,GAAIG,EAAQ,CACV,IAAMC,EAAU,CAACD,EAAO,SAAS,EAAM,CAACJ,EAExC,OAAKC,EAIEF,GAAMM,EAAQJ,CAAc,EAH1BI,CAIX,CAEA,MAAO,EACT,EAEOG,IAAQL,IAEFI,IAAQ,CACnB,QACA,QACA,SACA,WACA,YACA,WACA,UACA,UACA,OACF,EChCME,IAAwB,CAAC,CAAE,MAAAT,CAAM,IAAuB,CAACA,EAExDU,IAAQD,IAEFF,GAAQ,CACnB,UACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MA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", "names": ["require_freeGlobal", "__commonJSMin", "exports", "module", "freeGlobal", "require_root", "__commonJSMin", "exports", "module", "freeGlobal", "freeSelf", "root", "require_Symbol", "__commonJSMin", "exports", "module", "root", "Symbol", "require_getRawTag", "__commonJSMin", "exports", "module", "Symbol", "objectProto", "hasOwnProperty", "nativeObjectToString", "symToStringTag", "getRawTag", "value", "isOwn", "tag", "unmasked", "result", "require_objectToString", "__commonJSMin", "exports", "module", "objectProto", "nativeObjectToString", "objectToString", "value", "require_baseGetTag", "__commonJSMin", "exports", "module", "Symbol", "getRawTag", "objectToString", "nullTag", "undefinedTag", "symToStringTag", "baseGetTag", "value", "require_overArg", "__commonJSMin", "exports", "module", "overArg", "func", "transform", "arg", "require_getPrototype", "__commonJSMin", "exports", "module", "overArg", "getPrototype", "require_isObjectLike", "__commonJSMin", "exports", "module", "isObjectLike", "value", "require_isPlainObject", "__commonJSMin", "exports", "module", "baseGetTag", "getPrototype", "isObjectLike", "objectTag", "funcProto", "objectProto", "funcToString", "hasOwnProperty", "objectCtorString", "isPlainObject", "value", "proto", "Ctor", "require_trees", "__commonJSMin", "exports", "module", "zero", "buf", "len", "STORED_BLOCK", "STATIC_TREES", "DYN_TREES", "MIN_MATCH", "MAX_MATCH", "LENGTH_CODES", "LITERALS", "L_CODES", "D_CODES", "BL_CODES", "HEAP_SIZE", "MAX_BITS", "Buf_size", "MAX_BL_BITS", "END_BLOCK", "REP_3_6", "REPZ_3_10", "REPZ_11_138", "extra_lbits", "extra_dbits", "extra_blbits", "bl_order", "DIST_CODE_LEN", "static_ltree", "static_dtree", "_dist_code", "_length_code", "base_length", "base_dist", "StaticTreeDesc", "static_tree", "extra_bits", "extra_base", "elems", "max_length", "static_l_desc", "static_d_desc", "static_bl_desc", "TreeDesc", "dyn_tree", "stat_desc", "d_code", "dist", "put_short", "s", "w", "send_bits", "value", "length", "send_code", "c", "tree", "bi_reverse", "code", "res", "bi_flush", "gen_bitlen", "desc", "max_code", "stree", "has_stree", "extra", "base", "h", "n", "m", "bits", "xbits", "f", "overflow", "gen_codes", "bl_count", "next_code", "tr_static_init", "init_block", "bi_windup", "smaller", "depth", "_n2", "_m2", "pqdownheap", "k", "v", "j", "compress_block", "ltree", "dtree", "lc", "sx", "build_tree", "node", "scan_tree", "prevlen", "curlen", "nextlen", "count", "max_count", "min_count", "send_tree", "build_bl_tree", "max_blindex", "send_all_trees", "lcodes", "dcodes", "blcodes", "rank", "detect_data_type", "block_mask", "static_init_done", "_tr_init", "_tr_stored_block", "stored_len", "last", "_tr_align", "_tr_flush_block", "opt_lenb", "static_lenb", "_tr_tally", "require_adler32", "__commonJSMin", "exports", "module", "adler32", "adler", "buf", "len", "pos", "s1", "s2", "n", "require_crc32", "__commonJSMin", "exports", "module", "makeTable", "c", "table", "n", "k", "crcTable", "crc32", "crc", "buf", "len", "pos", "t", "end", "i", "require_messages", "__commonJSMin", "exports", "module", "require_constants", "__commonJSMin", "exports", "module", "require_deflate", "__commonJSMin", "exports", "module", "_tr_init", "_tr_stored_block", "_tr_flush_block", "_tr_tally", "_tr_align", "adler32", "crc32", "msg", "Z_NO_FLUSH", "Z_PARTIAL_FLUSH", "Z_FULL_FLUSH", "Z_FINISH", "Z_BLOCK", "Z_OK", "Z_STREAM_END", "Z_STREAM_ERROR", "Z_DATA_ERROR", "Z_BUF_ERROR", "Z_DEFAULT_COMPRESSION", "Z_FILTERED", "Z_HUFFMAN_ONLY", "Z_RLE", "Z_FIXED", "Z_DEFAULT_STRATEGY", "Z_UNKNOWN", "Z_DEFLATED", "MAX_MEM_LEVEL", "MAX_WBITS", "DEF_MEM_LEVEL", "LENGTH_CODES", "LITERALS", "L_CODES", "D_CODES", "BL_CODES", "HEAP_SIZE", "MAX_BITS", "MIN_MATCH", "MAX_MATCH", "MIN_LOOKAHEAD", "PRESET_DICT", "INIT_STATE", "GZIP_STATE", "EXTRA_STATE", "NAME_STATE", "COMMENT_STATE", "HCRC_STATE", "BUSY_STATE", "FINISH_STATE", "BS_NEED_MORE", "BS_BLOCK_DONE", "BS_FINISH_STARTED", "BS_FINISH_DONE", "OS_CODE", "err", "strm", "errorCode", "rank", "f", "zero", "buf", "len", "slide_hash", "s", "n", "m", "p", "wsize", "HASH_ZLIB", "prev", "data", "HASH", "flush_pending", "flush_block_only", "last", "put_byte", "b", "putShortMSB", "read_buf", "start", "size", "longest_match", "cur_match", "chain_length", "scan", "match", "best_len", "nice_match", "limit", "_win", "wmask", "strend", "scan_end1", "scan_end", "fill_window", "_w_size", "more", "str", "deflate_stored", "flush", "min_block", "left", "have", "used", "deflate_fast", "hash_head", "bflush", "deflate_slow", "max_insert", "deflate_rle", "deflate_huff", "Config", "good_length", "max_lazy", "nice_length", "max_chain", "func", "configuration_table", "lm_init", "DeflateState", "deflateStateCheck", "deflateResetKeep", "deflateReset", "ret", "deflateSetHeader", "head", "deflateInit2", "level", "method", "windowBits", "memLevel", "strategy", "wrap", "deflateInit", "deflate", "old_flush", "header", "level_flags", "beg", "copy", "gzhead_extra", "val", "bstate", "deflateEnd", "status", "deflateSetDictionary", "dictionary", "dictLength", "tmpDict", "avail", "next", "input", "require_common", "__commonJSMin", "exports", "module", "_has", "obj", "key", "sources", "source", "p", "chunks", "len", "i", "l", "result", "pos", "chunk", "require_strings", "__commonJSMin", "exports", "module", "STR_APPLY_UIA_OK", "_utf8len", "q", "str", "buf", "c", "c2", "m_pos", "i", "str_len", "buf_len", "buf2binstring", "len", "result", "max", "out", "utf16buf", "c_len", "pos", "require_zstream", "__commonJSMin", "exports", "module", "ZStream", "require_deflate", "__commonJSMin", "exports", "module", "zlib_deflate", "utils", "strings", "msg", "ZStream", "toString", "Z_NO_FLUSH", "Z_SYNC_FLUSH", "Z_FULL_FLUSH", "Z_FINISH", "Z_OK", "Z_STREAM_END", "Z_DEFAULT_COMPRESSION", "Z_DEFAULT_STRATEGY", "Z_DEFLATED", "Deflate", "options", "opt", "status", "dict", "data", "flush_mode", "strm", "chunkSize", "_flush_mode", "chunk", "deflate", "input", "deflator", "deflateRaw", "gzip", "require_inffast", "__commonJSMin", "exports", "module", "strm", "start", "_in", "last", "_out", "beg", "end", "dmax", "wsize", "whave", "wnext", "s_window", "hold", "bits", "lcode", "dcode", "lmask", "dmask", "here", "op", "len", "dist", "from", "from_source", "input", "output", "state", "top", "dolen", "dodist", "require_inftrees", "__commonJSMin", "exports", "module", "lbase", "lext", "dbase", "dext", "inflate_table", "type", "lens", "lens_index", "codes", "table", "table_index", "work", "opts", "bits", "len", "sym", "min", "max", "root", "curr", "drop", "left", "used", "huff", "incr", "fill", "low", "mask", "next", "base", "match", "count", "offs", "extra", "here_bits", "here_op", "here_val", "require_inflate", "__commonJSMin", "exports", "module", "adler32", "crc32", "inflate_fast", "inflate_table", "CODES", "LENS", "DISTS", "Z_FINISH", "Z_BLOCK", "Z_TREES", "Z_OK", "Z_STREAM_END", "Z_NEED_DICT", "Z_STREAM_ERROR", "Z_DATA_ERROR", "Z_MEM_ERROR", "Z_BUF_ERROR", "Z_DEFLATED", "HEAD", "FLAGS", "TIME", "OS", "EXLEN", "EXTRA", "NAME", "COMMENT", "HCRC", "DICTID", "DICT", "TYPE", "TYPEDO", "STORED", "COPY_", "COPY", "TABLE", "LENLENS", "CODELENS", "LEN_", "LEN", "LENEXT", "DIST", "DISTEXT", "MATCH", "LIT", "CHECK", "LENGTH", "DONE", "BAD", "MEM", "SYNC", "ENOUGH_LENS", "ENOUGH_DISTS", "MAX_WBITS", "DEF_WBITS", "zswap32", "q", "InflateState", "inflateStateCheck", "strm", "state", "inflateResetKeep", "inflateReset", "inflateReset2", "windowBits", "wrap", "inflateInit2", "ret", "inflateInit", "virgin", "lenfix", "distfix", "fixedtables", "sym", "updatewindow", "src", "end", "copy", "dist", "inflate", "flush", "input", "output", "next", "put", "have", "left", "hold", "bits", "_in", "_out", "from", "from_source", "here", "here_bits", "here_op", "here_val", "last_bits", "last_op", "last_val", "len", "hbuf", "opts", "n", "order", "inf_leave", "inflateEnd", "inflateGetHeader", "head", "inflateSetDictionary", "dictionary", "dictLength", "dictid", "require_gzheader", "__commonJSMin", "exports", "module", "GZheader", "require_inflate", "__commonJSMin", "exports", "module", "zlib_inflate", "utils", "strings", "msg", "ZStream", "GZheader", "toString", "Z_NO_FLUSH", "Z_FINISH", "Z_OK", "Z_STREAM_END", "Z_NEED_DICT", "Z_STREAM_ERROR", "Z_DATA_ERROR", "Z_MEM_ERROR", "Inflate", "options", "opt", "status", "data", "flush_mode", "strm", "chunkSize", "dictionary", "_flush_mode", "last_avail_out", "next_out_utf8", "tail", "utf8str", "chunk", "inflate", "input", "inflator", "inflateRaw", "require_pako", "__commonJSMin", "exports", "module", "Deflate", "deflate", "deflateRaw", "gzip", "Inflate", "inflate", "inflateRaw", "ungzip", "constants", "createSymbol", "CANCEL", "CHANNEL_END_TYPE", "IO", "MATCH", "MULTICAST", "SAGA_ACTION", "SELF_CANCELLATION", "TASK", "TASK_CANCEL", "TERMINATE", "SAGA_LOCATION", "init_redux_saga_symbols_esm", "__esmMin", "name", "_extends", "target", "i", "source", "key", "init_extends", "__esmMin", "_objectWithoutPropertiesLoose", "source", "excluded", "target", "sourceKeys", "key", "i", "init_objectWithoutPropertiesLoose", "__esmMin", "undef", "notUndef", "func", "string", "array", "promise", "iterator", "pattern", "channel", "stringableFunc", "symbol", "multicast", "init_redux_saga_is_esm", "__esmMin", "init_redux_saga_symbols_esm", "v", "f", "s", "p", "it", "pat", "ch", "sym", "MULTICAST", "delayP", "ms", "val", "timeoutId", "promise", "resolve", "MAX_SIGNED_INT", "CANCEL", "redux_saga_delay_p_esm_default", "init_redux_saga_delay_p_esm", "__esmMin", "init_redux_saga_symbols_esm", "remove", "array", "item", "index", "once", "fn", "called", "makeIterator", "next", "thro", "name", "kThrow", "iterator", "kReturn", "logError", "error", "_ref2", "sagaStack", "createAllStyleChildCallbacks", "shape", "parentCallback", "keys", "totalCount", "completedCount", "completed", "results", "createEmptyArray", "childCallbacks", "checkEnd", "key", "chCbAtKey", "res", "isErr", "shouldComplete", "noop", "getMetaInfo", "getLocation", "instrumented", "SAGA_LOCATION", "ringBuffer", "limit", "overflowAction", "arr", "length", "pushIndex", "popIndex", "push", "it", "take", "flush", "items", "doubledLimit", "ON_OVERFLOW_THROW", "BUFFER_OVERFLOW", "ON_OVERFLOW_SLIDE", "ON_OVERFLOW_EXPAND", "patternOrChannel", "multicastPattern", "pattern", "notUndef", "makeEffect", "TAKE", "multicast", "channel", "put", "channel$1", "action", "undef", "PUT", "all", "effects", "eff", "ALL", "race", "RACE", "getFnCallDescriptor", "fnDescriptor", "args", "context", "func", "string", "call", "_len", "_key", "arg0", "CALL", "apply", "cps", "_len2", "_key2", "CPS", "fork", "_len3", "_key3", "FORK", "spawn", "_len4", "_key4", "detach", "join", "taskOrTasks", "JOIN", "cancel", "SELF_CANCELLATION", "CANCEL", "select", "selector", "identity", "_len5", "_key5", "SELECT", "actionChannel", "pattern$1", "buffer$1", "ACTION_CHANNEL", "cancelled", "CANCELLED", "FLUSH", "getContext", "prop", "GET_CONTEXT", "setContext", "props", "SET_CONTEXT", "konst", "kTrue", "assignWithSymbols", "flatMap", "internalErr", "wrapSagaDispatch", "shouldTerminate", "shouldCancel", "ON_OVERFLOW_DROP", "zeroBuffer", "none", "fixed", "dropping", "sliding", "expanding", "buffers", "effectTypes", "takeMaybe", "putResolve", "delay", "init_io_c3792963", "__esmMin", "init_redux_saga_symbols_esm", "init_extends", "init_redux_saga_is_esm", "init_redux_saga_delay_p_esm", "v", "target", "source", "_extends", "s", "mapper", "_ref", "err", "value", "n", "dispatch", "SAGA_ACTION", "TERMINATE", "TASK_CANCEL", "initialSize", "type", "payload", "IO", "redux_saga_delay_p_esm_default", "require_typeof", "__commonJSMin", "exports", "module", "_typeof", "obj", "require_toPrimitive", "__commonJSMin", "exports", "module", "_typeof", "_toPrimitive", "input", "hint", "prim", "res", "require_toPropertyKey", "__commonJSMin", "exports", "module", "_typeof", "toPrimitive", "_toPropertyKey", "arg", "key", "require_defineProperty", "__commonJSMin", "exports", "module", "toPropertyKey", "_defineProperty", "obj", "key", "value", "require_objectSpread2", "__commonJSMin", "exports", "module", "defineProperty", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread2", "target", "i", "source", "key", "require_redux", "__commonJSMin", "exports", "_objectSpread", "_interopDefaultLegacy", "_objectSpread__default", "formatProdErrorMessage", "code", "$$observable", "randomString", "ActionTypes", "isPlainObject", "obj", "proto", "createStore", "reducer", "preloadedState", "enhancer", "_ref2", "currentReducer", "currentState", "currentListeners", "nextListeners", "isDispatching", "ensureCanMutateNextListeners", "getState", "subscribe", "listener", "isSubscribed", "index", "dispatch", "action", "listeners", "i", "replaceReducer", "nextReducer", "observable", "_ref", "outerSubscribe", "observer", "observeState", "unsubscribe", "legacy_createStore", "assertReducerShape", "reducers", "key", "initialState", "combineReducers", "reducerKeys", "finalReducers", "finalReducerKeys", "unexpectedKeyCache", "shapeAssertionError", "e", "state", "warningMessage", "hasChanged", "nextState", "_i", "_key", "previousStateForKey", "nextStateForKey", "actionType", "bindActionCreator", "actionCreator", "bindActionCreators", "actionCreators", "boundActionCreators", "compose", "_len", "funcs", "arg", "a", "b", "applyMiddleware", "middlewares", "store", "_dispatch", "middlewareAPI", "chain", "middleware", "deferred", "def", "resolve", "reject", "redux_saga_deferred_esm_default", "init_redux_saga_deferred_esm", "__esmMin", "exec", "task", "suspend", "release", "asap", "queue", "semaphore", "flush", "immediately", "matcher", "pattern", "matcherCreator", "wildcard", "string", "array", "stringableFunc", "func", "predicate", "symbol", "channel", "buffer$1", "expanding", "closed", "takers", "checkForbiddenStates", "internalErr", "CLOSED_CHANNEL_WITH_TAKERS", "put", "input", "cb", "take", "END", "remove", "close", "arr", "i", "len", "taker", "eventChannel", "subscribe", "buffer", "none", "unsubscribe", "chan", "isEnd", "once", "multicastChannel", "_ref", "currentTakers", "nextTakers", "ensureCanMutateNextTakers", "MULTICAST", "MATCH", "stdChannel", "SAGA_ACTION", "resolvePromise", "promise", "cancelPromise", "CANCEL", "error", "getIteratorMetaInfo", "iterator", "fn", "getMetaInfo", "createTaskIterator", "context", "args", "result", "resolved", "next", "arg", "makeIterator", "err", "runPutEffect", "env", "_ref2", "action", "resolve", "runTakeEffect", "_ref3", "_ref3$channel", "maybe", "takeCb", "TERMINATE", "notUndef", "runCallEffect", "_ref4", "_ref5", "proc", "current", "runCPSEffect", "_ref6", "cpsCb", "res", "undef", "runForkEffect", "_ref7", "_ref8", "detached", "parent", "taskIterator", "meta", "child", "runJoinEffect", "taskOrTasks", "_ref9", "joinSingleTask", "taskToJoin", "joiner", "childCallbacks", "createAllStyleChildCallbacks", "t", "cancelSingleTask", "taskToCancel", "runCancelEffect", "_ref10", "SELF_CANCELLATION", "runAllEffect", "effects", "_ref11", "digestEffect", "effectId", "keys", "key", "runRaceEffect", "_ref12", "response", "createEmptyArray", "childCbs", "completed", "chCbAtKey", "isErr", "shouldComplete", "noop", "runSelectEffect", "_ref13", "selector", "state", "runChannelEffect", "_ref14", "match", "runCancelledEffect", "data", "_ref15", "runFlushEffect", "runGetContextEffect", "prop", "_ref16", "runSetContextEffect", "props", "_ref17", "assignWithSymbols", "forkQueue", "mainTask", "onAbort", "cont", "tasks", "addTask", "getTasks", "abort", "cancelAll", "formatLocation", "fileName", "lineNumber", "effectLocationAsString", "effect", "location", "getLocation", "code", "source", "sagaLocationAsString", "sagaMeta", "name", "cancelledTasksAsString", "sagaStack", "cancelledTasks", "flatMap", "newTask", "parentContext", "parentEffectId", "isRoot", "_task", "status", "RUNNING", "taskResult", "taskError", "deferredEnd", "cancelledDueToErrorTasks", "end", "cancel", "CANCELLED", "TASK_CANCEL", "DONE", "ABORTED", "addSagaFrame", "toString", "clear", "setContext", "toPromise", "redux_saga_deferred_esm_default", "TASK", "iterator$1", "finalRunEffect", "runEffect", "cancelMain", "executingContext", "shouldCancel", "shouldTerminate", "currCb", "IO", "effectRunner", "effectRunnerMap", "label", "nextSagaId", "effectSettled", "setCrashedEffect", "runSaga", "saga", "_ref$channel", "dispatch", "getState", "_ref$context", "sagaMonitor", "effectMiddlewares", "_ref$onError", "onError", "logError", "_len", "_key", "MIDDLEWARE_TYPE_ERROR", "finalizeRunEffect", "middleware", "plainRunEffect", "eff", "identity", "wrapSagaDispatch", "sagaMiddlewareFactory", "_temp", "options", "_objectWithoutPropertiesLoose", "boundRunSaga", "sagaMiddleware", "_extends", "import_redux", "_effectRunnerMap", "crashedEffect", "RUN_SAGA_SIGNATURE", "NON_GENERATOR_ERR", "redux_saga_core_esm_default", "init_redux_saga_core_esm", "__esmMin", "init_redux_saga_symbols_esm", "init_extends", "init_objectWithoutPropertiesLoose", "init_redux_saga_is_esm", "init_io_c3792963", "init_redux_saga_deferred_esm", "init_redux_saga_delay_p_esm", "patterns", "p", "_predicate", "kTrue", "CHANNEL_END_TYPE", "a", "TAKE", "PUT", "ALL", "RACE", "CALL", "CPS", "FORK", "JOIN", "SELECT", "ACTION_CHANNEL", "FLUSH", "GET_CONTEXT", "SET_CONTEXT", "frame", "firstSaga", "otherSagas", "crashedEffectLocation", "errorMessage", "s", "redux_saga_core_npm_proxy_esm_exports", "__export", "CANCEL", "END", "SAGA_LOCATION", "buffers", "channel", "redux_saga_core_npm_proxy_esm_default", "detach", "eventChannel", "isEnd", "multicastChannel", "runSaga", "stdChannel", "init_redux_saga_core_npm_proxy_esm", "__esmMin", "init_redux_saga_core_esm", "redux_saga_core_esm_default", "rng", "getRandomValues", "rnds8", "init_rng", "__esmMin", "regex_default", "init_regex", "__esmMin", "validate", "uuid", "regex_default", "validate_default", "init_validate", "__esmMin", "init_regex", "stringify", "arr", "offset", "uuid", "byteToHex", "validate_default", "i", "stringify_default", "init_stringify", "__esmMin", "init_validate", "v1", "options", "buf", "offset", "i", "b", "node", "_nodeId", "clockseq", "_clockseq", "seedBytes", "rng", "msecs", "nsecs", "_lastNSecs", "dt", "_lastMSecs", "tl", "tmh", "n", "stringify_default", "v1_default", "init_v1", "__esmMin", "init_rng", "init_stringify", "parse", "uuid", "validate_default", "v", "arr", "parse_default", "init_parse", "__esmMin", "init_validate", "stringToBytes", "str", "bytes", "i", "v35_default", "name", "version", "hashfunc", "generateUUID", "value", "namespace", "buf", "offset", "parse_default", "stringify_default", "DNS", "URL", "init_v35", "__esmMin", "init_stringify", "init_parse", "md5", "bytes", "msg", "i", "md5ToHexEncodedArray", "wordsToMd5", "bytesToWords", "input", "output", "length32", "hexTab", "x", "hex", "getOutputLength", "inputLength8", "len", "a", "b", "c", "d", "olda", "oldb", "oldc", "oldd", "md5ff", "md5gg", "md5hh", "md5ii", "safeAdd", "length8", "y", "lsw", "msw", "bitRotateLeft", "num", "cnt", "md5cmn", "q", "s", "t", "md5_default", "init_md5", "__esmMin", "v3", "v3_default", "init_v3", "__esmMin", "init_v35", "init_md5", "v35_default", "md5_default", "v4", "options", "buf", "offset", "rnds", "rng", "stringify_default", "v4_default", "init_v4", "__esmMin", "init_rng", "init_stringify", "f", "s", "x", "y", "z", "ROTL", "n", "sha1", "bytes", "K", "H", "msg", "l", "N", "M", "_i", "arr", "j", "_i2", "W", "t", "_t", "a", "c", "d", "e", "_t2", "T", "sha1_default", "init_sha1", "__esmMin", "v5", "v5_default", "init_v5", "__esmMin", "init_v35", "init_sha1", "v35_default", "sha1_default", "nil_default", "init_nil", "__esmMin", "version", "uuid", "validate_default", "version_default", "init_version", "__esmMin", "init_validate", "esm_browser_exports", "__export", "nil_default", "parse_default", "stringify_default", "v1_default", "v3_default", "v4_default", "v5_default", "validate_default", "version_default", "init_esm_browser", "__esmMin", "init_v1", "init_v3", "init_v4", "init_v5", "init_nil", "init_version", "init_validate", "init_stringify", "init_parse", "die", "error", "args", "Error", "length", "map", "s", "join", "isDraft", "value", "DRAFT_STATE", "isDraftable", "proto", "Object", "getPrototypeOf", "Ctor", "hasOwnProperty", "call", "constructor", "Function", "toString", "objectCtorString", "Array", "isArray", "DRAFTABLE", "_value$constructor", "isMap", "isSet", "each", "obj", "iter", "enumerableOnly", "getArchtype", "keys", "ownKeys", "forEach", "key", "entry", "index", "thing", "state", "type_", "has", "prop", "prototype", "get", "set", "propOrOldValue", "t", "add", "is", "x", "y", "target", "hasMap", "Map", "hasSet", "Set", "latest", "copy_", "base_", "shallowCopy", "base", "slice", "descriptors", "getOwnPropertyDescriptors", "i", "desc", "writable", "configurable", "enumerable", "create", "freeze", "deep", "isFrozen", "clear", "delete", "dontMutateFrozenCollections", "getPlugin", "pluginKey", "plugin", "plugins", "loadPlugin", "implementation", "getCurrentScope", "currentScope", "usePatchesInScope", "scope", "patchListener", "patches_", "inversePatches_", "patchListener_", "revokeScope", "leaveScope", "drafts_", "revokeDraft", "parent_", "enterScope", "immer", "immer_", "canAutoFreeze_", "unfinalizedDrafts_", "draft", "revoke_", "revoked_", "processResult", "result", "baseDraft", "isReplaced", "useProxies_", "willFinalizeES5_", "modified_", "finalize", "maybeFreeze", "generateReplacementPatches_", "NOTHING", "rootScope", "path", "childValue", "finalizeProperty", "scope_", "finalized_", "draft_", "resultEach", "generatePatches_", "parentState", "targetObject", "rootPath", "targetIsSet", "res", "assigned_", "concat", "autoFreeze_", "peek", "getDescriptorFromProto", "source", "getOwnPropertyDescriptor", "markChanged", "prepareCopy", "createProxy", "parent", "proxyMap_", "proxySet_", "isManual_", "traps", "objectTraps", "arrayTraps", "Proxy", "revocable", "revoke", "proxy", "createES5Proxy_", "push", "current", "currentImpl", "copy", "archType", "hasChanges_", "copyHelper", "from", "enableES5", "proxyProperty", "this", "markChangesSweep", "drafts", "hasArrayChanges", "hasObjectChanges", "baseValue", "baseIsDraft", "descriptor", "defineProperty", "markChangesRecursively", "object", "min", "Math", "enablePatches", "deepClonePatchValue", "entries", "n", "cloned", "immerable", "clonePatchValueIfNeeded", "ADD", "applyPatches_", "patches", "patch", "op", "parentType", "p", "type", "splice", "basePath", "inversePatches", "assignedValue", "origValue", "f", "unshift", "replacement", "enableMapSet", "__extends", "d", "b", "__", "extendStatics", "prepareMapCopy", "prepareSetCopy", "assertUnrevoked", "JSON", "stringify", "setPrototypeOf", "__proto__", "DraftMap", "size", "cb", "thisArg", "_value", "_this", "values", "r", "iterator", "iteratorSymbol", "_this2", "next", "done", "_this3", "DraftSet", "hasSymbol", "Symbol", "hasProxies", "Reflect", "for", "C", "getOwnPropertySymbols", "getOwnPropertyNames", "_desc$get", "currentState", "Number", "isNaN", "deleteProperty", "owner", "fn", "arguments", "apply", "Immer", "config", "recipe", "defaultBase", "self", "produce", "hasError", "Promise", "then", "ip", "produceWithPatches", "nextState", "useProxies", "setUseProxies", "autoFreeze", "setAutoFreeze", "createDraft", "finishDraft", "applyPatches", "applyPatchesImpl", "bind", "require_dist", "__commonJSMin", "exports", "module", "require_defaultMemoize", "__commonJSMin", "exports", "createCacheKeyComparator", "defaultMemoize", "NOT_FOUND", "createSingletonCache", "equals", "entry", "key", "value", "createLruCache", "maxSize", "entries", "get", "cacheIndex", "put", "getEntries", "clear", "defaultEqualityCheck", "a", "b", "equalityCheck", "prev", "next", "length", "i", "func", "equalityCheckOrOptions", "providedOptions", "_providedOptions$equa", "_providedOptions$maxS", "resultEqualityCheck", "comparator", "cache", "memoized", "matchingEntry", "require_lib", "__commonJSMin", "exports", "createSelectorCreator", "_defaultMemoize", "getDependencies", "funcs", "dependencies", "dep", "dependencyTypes", "memoize", "_len", "memoizeOptionsFromArgs", "_key", "createSelector", "_len2", "_key2", "_recomputations", "_lastResult", "directlyPassedOptions", "resultFunc", "_directlyPassedOption", "_directlyPassedOption2", "memoizeOptions", "finalMemoizeOptions", "memoizedResultFunc", "selector", "params", "length", "i", "createStructuredSelector", "selectors", "selectorCreator", "objectKeys", "resultSelector", "key", "_len3", "values", "_key3", "composition", "value", "index", "require_lib", "__commonJSMin", "exports", "createThunkMiddleware", "extraArgument", "middleware", "_ref", "dispatch", "getState", "next", "action", "thunk", "_default", "__markAsModule", "exports", "EnhancerArray", "MiddlewareArray", "SHOULD_AUTOBATCH", "TaskAbortError", "addListener", "autoBatchEnhancer", "clearAllListeners", "configureStore", "createAction", "createAsyncThunk", "createDraftSafeSelector", "createEntityAdapter", "createImmutableStateInvariantMiddleware", "createListenerMiddleware", "createNextState", "import_immer6", "default", "createReducer", "createSelector", "import_reselect2", "createSerializableStateInvariantMiddleware", "createSlice", "current", "findNonSerializableValue", "freeze", "getDefaultMiddleware", "getType", "isAction", "isAllOf", "isAnyOf", "isAsyncThunkAction", "isDraft", "isFluxStandardAction", "isFSA", "isFulfilled", "isImmutableDefault", "isPending", "isPlain", "isPlainObject", "isRejected", "isRejectedWithValue", "miniSerializeError", "nanoid", "original", "prepareAutoBatched", "removeListener", "unwrapResult", "import_immer5", "__toModule", "require", "__reExport", "import_immer", "import_reselect", "args", "_i", "arguments", "length", "selector", "apply", "wrappedSelector", "value", "rest", "__spreadArray", "import_redux2", "import_redux", "composeWithDevTools", "window", "__REDUX_DEVTOOLS_EXTENSION_COMPOSE__", "compose", "proto", "Object", "getPrototypeOf", "baseProto", "__REDUX_DEVTOOLS_EXTENSION__", "import_redux_thunk", "import_immer2", "_super", "_this", "this", "setPrototypeOf", "prototype", "__extends", "defineProperty", "Symbol", "species", "concat", "arr", "prepend", "Array", "isArray", "bind", "freezeDraftable", "val", "isDraftable", "isFrozen", "options", "next", "action", "type", "path", "isSerializable", "getEntries", "ignoredPaths", "cache", "foundNestedSerializable", "keyPath", "has", "entries", "hasIgnoredPaths", "f", "key", "nestedValue", "nestedPath", "some", "ignored", "RegExp", "test", "entries_1", "_c", "isNestedFrozen", "add", "values", "thunk", "middlewareArray", "push", "withExtraArgument", "extraArgument", "rootReducer", "curriedGetDefaultMiddleware", "_d", "reducer", "_e", "middleware", "_f", "devTools", "_g", "preloadedState", "_h", "enhancers", "Error", "combineReducers", "finalMiddleware", "middlewareEnhancer", "applyMiddleware", "finalCompose", "__spreadValues", "trace", "defaultEnhancers", "storeEnhancers", "composedEnhancer", "createStore", "prepareAction", "actionCreator", "prepared", "payload", "meta", "error", "toString", "match", "keys", "every", "isValidKey", "indexOf", "import_immer3", "executeReducerBuilderCallback", "builderCallback", "defaultCaseReducer", "actionsMap", "actionMatchers", "builder", "addCase", "typeOrActionCreator", "addMatcher", "matcher", "addDefaultCase", "initialState", "mapOrBuilderCallback", "getInitialState", "finalActionMatchers", "finalDefaultCaseReducer", "frozenInitialState_1", "state", "caseReducers", "filter", "map", "cr", "reduce", "previousState", "caseReducer", "result", "draft", "name", "_reducer", "reducers", "reducerNames", "sliceCaseReducersByName", "sliceCaseReducersByType", "actionCreators", "buildReducer", "extraReducers", "finalCaseReducers", "actionMatchers_1", "m", "forEach", "reducerName", "prepareCallback", "maybeReducerWithPrepare", "prepare", "actions", "import_immer4", "createStateOperator", "mutator", "arg", "runMutator", "selectIdValue", "entity", "selectId", "ensureEntitiesArray", "entities", "splitAddedUpdatedEntities", "newEntities", "added", "updated", "newEntities_1", "id", "changes", "createUnsortedStateAdapter", "addOneMutably", "ids", "addManyMutably", "newEntities_2", "setOneMutably", "removeManyMutably", "didMutate", "updateManyMutably", "updates", "newKeys", "updatesPerEntity", "update", "didMutateIds", "assign", "newKey", "hasNewKey", "upsertManyMutably", "removeAll", "operator", "_", "addOne", "addMany", "setOne", "setMany", "newEntities_3", "setAll", "updateOne", "updateMany", "upsertOne", "upsertMany", "removeOne", "removeMany", "sortComparer", "instance", "stateFactory", "additionalState", "selectorsFactory", "getSelectors", "selectState", "selectIds", "selectEntities", "selectAll", "selectById", "selectTotal", "selectGlobalizedEntities", "stateAdapter", "sort", "models", "model", "merge", "setManyMutably", "appliedUpdates", "updates_1", "newId", "resortEntities", "allEntities", "newSortedIds", "a", "b", "i", "size", "Math", "random", "commonProperties", "RejectWithValue", "FulfillWithMeta", "simpleError", "commonProperties_1", "property", "message", "String", "createAsyncThunk2", "typePrefix", "payloadCreator", "fulfilled", "requestId", "__spreadProps", "requestStatus", "pending", "rejected", "serializeError", "rejectedWithValue", "aborted", "condition", "AC", "AbortController", "class_1", "signal", "addEventListener", "dispatchEvent", "onabort", "removeEventListener", "reason", "throwIfAborted", "abort", "dispatch", "getState", "extra", "abortReason", "idGenerator", "abortController", "promise2", "__async", "y", "h", "g", "t", "conditionResult", "_a", "call", "then", "sent", "abortedPromise", "Promise", "reject", "_b", "getPendingMeta", "race", "resolve", "rejectWithValue", "fulfillWithValue", "finalAction", "err_1", "dispatchConditionRejection", "unwrap", "withTypes", "matches", "v", "matchers", "hasExpectedRequestMetadata", "validStatus", "hasValidRequestId", "hasValidRequestStatus", "isAsyncThunkArray", "asyncThunks", "asyncThunk", "hasFlag", "asyncThunks_1", "assertFunction", "func", "expected", "TypeError", "noop", "catchRejection", "onError", "catch", "addAbortSignalListener", "abortSignal", "callback", "once", "abortControllerWithReason", "enumerable", "configurable", "writable", "code", "task", "validateActive", "raceWithSignal", "cleanup", "notifyRejection", "finally", "createPause", "output", "createDelay", "pause", "timeoutMs", "setTimeout", "INTERNAL_NIL_TOKEN", "alm", "getListenerEntryPropsFrom", "predicate", "effect", "cancelActiveListeners", "entry", "controller", "listener", "safelyNotifyError", "errorHandler", "errorToNotify", "errorInfo", "errorHandlerError", "defaultErrorHandler", "console", "middlewareOptions", "listenerMap", "Map", "findListenerEntry", "comparator", "from", "startListening", "existingEntry", "Set", "unsubscribe", "delete", "set", "cancelOptions", "cancelActive", "stopListening", "entry2", "notifyListener", "api", "getOriginalState", "n", "l", "s", "d", "internalTaskController", "take", "timeout", "o", "u", "c", "tuplePromise", "listenerApi", "promises", "Boolean", "delay", "fork", "parentAbortSignal", "taskExecutor", "childAbortController", "task2", "cleanUp", "result2", "e", "status", "error_1", "cancel", "subscribe", "listenerError_1", "raisedBy", "clearListenerMiddleware", "clear", "originalState", "currentState", "listenerEntries", "listenerEntries_1", "runListener", "predicateError", "clearListeners", "promise", "queueMicrotaskShim", "queueMicrotask", "global", "globalThis", "cb", "err", "createQueueWithTimer", "notify", "rAF", "requestAnimationFrame", "store", "notifying", "shouldNotifyAtEndOfTick", "notificationQueued", "listeners", "queueCallback", "queueNotification", "notifyListeners", "listener2", "enableES5", "require_dist", "__commonJSMin", "exports", "module", "QueryStatus", "QueryStatus2", "__markAsModule", "exports", "buildCreateApi", "copyWithStructuralSharing", "coreModule", "createApi", "defaultSerializeQueryArgs", "fakeBaseQuery", "fetchBaseQuery", "retry", "setupListeners", "skipSelector", "skipToken", "flatten", "arr", "concat", "apply", "isPlainObject", "__toModule", "require", "oldObj", "newObj", "Array", "isArray", "newKeys", "Object", "keys", "oldKeys", "isSameObject", "length", "mergeObj", "_j", "newKeys_1", "key", "import_toolkit2", "defaultFetchFn", "args", "arguments", "fetch", "defaultValidateStatus", "response", "status", "defaultIsJsonContentType", "headers", "test", "get", "stripUndefined", "obj", "copy", "__spreadValues", "_k", "entries", "_l", "_a", "_this", "this", "baseUrl", "prepareHeaders", "x", "fetchFn", "paramsSerializer", "isJsonContentType", "_m", "jsonContentType", "jsonReplacer", "defaultTimeout", "timeout", "globalResponseHandler", "responseHandler", "globalValidateStatus", "validateStatus", "baseFetchOptions", "__objRest", "console", "warn", "arg", "api", "__async", "t", "u", "c", "d", "q", "A", "R", "w", "Q", "P", "C", "I", "M", "D", "N", "E", "K", "_", "F", "z", "U", "L", "W", "H", "B", "J", "V", "G", "Y", "$", "X", "Z", "ee", "te", "ne", "n", "signal", "getState", "extra", "endpoint", "forced", "type", "url", "_a2", "Headers", "params", "_o", "rest", "config", "__spreadProps", "_p", "_q", "sent", "isJsonifiable", "body", "toJSON", "has", "set", "JSON", "stringify", "divider", "indexOf", "query", "URLSearchParams", "base", "RegExp", "delimiter", "endsWith", "startsWith", "replace", "request", "Request", "requestClone", "clone", "meta", "timedOut", "timeoutId", "setTimeout", "abort", "error", "String", "e_1", "clearTimeout", "responseClone", "responseText", "Promise", "all", "handleResponse", "then", "r", "resultData", "e", "handleResponseError_1", "text", "originalStatus", "data", "e_2", "parse", "HandledError", "value", "defaultBackoff", "attempt", "maxRetries", "i", "attempts", "Math", "min", "random", "resolve", "res", "EMPTY_OPTIONS", "assign", "baseQuery", "defaultOptions", "extraOptions", "o", "l", "f", "possibleMaxRetries", "filter", "slice", "defaultRetryCondition", "__", "options", "backoff", "retryCondition", "retry2", "result", "e_3", "throwImmediately", "baseQueryApi", "fail", "import_toolkit3", "onFocus", "createAction", "onFocusLost", "onOnline", "onOffline", "initialized", "dispatch", "customHandler", "handleFocus", "handleOnline", "handleOffline", "handleVisibilityChange", "window", "document", "visibilityState", "addEventListener", "removeEventListener", "DefinitionType", "DefinitionType2", "import_toolkit7", "isQueryDefinition", "calculateProvidedBy", "description", "queryArg", "assertTagTypes", "map", "expandTagDescription", "import_toolkit6", "isNotNullish", "v", "forceQueryFnSymbol", "Symbol", "isUpsertQuery", "import_toolkit4", "import_immer", "import_toolkit5", "defaultTransformResponse", "baseQueryReturnValue", "calculateProvidedByThunk", "action", "endpointDefinitions", "assertTagType", "endpointName", "isFulfilled", "payload", "isRejectedWithValue", "originalArgs", "baseQueryMeta", "import_immer2", "import_immer3", "updateQuerySubstateIfExists", "state", "queryCacheKey", "update", "substate", "getMutationCacheKey", "id", "fixedCacheKey", "requestId", "updateMutationSubstateIfExists", "initialState", "for", "initialSubState", "uninitialized", "defaultQuerySubState", "createNextState", "defaultMutationSubState", "import_toolkit8", "cache", "WeakMap", "queryArgs", "serialized", "cached", "stringified", "sort", "reduce", "acc", "key2", "import_toolkit9", "import_reselect", "modules", "extractRehydrationInfo", "defaultMemoize", "_b", "call", "reducerPath", "optionsWithDefaults", "keepUnusedDataFor", "refetchOnMountOrArgChange", "refetchOnFocus", "refetchOnReconnect", "serializeQueryArgs", "queryArgsApi", "finalSerializeQueryArgs", "endpointDefinition", "endpointSQA_1", "queryArgsApi2", "initialResult", "tagTypes", "__spreadArray", "context", "batch", "fn", "apiUid", "nanoid", "hasRehydrationInfo", "injectEndpoints", "inject", "evaluatedEndpoints", "endpoints", "mutation", "definition", "overrideExisting", "initializedModules_1", "initializedModules", "injectEndpoint", "enhanceEndpoints", "addTagTypes", "addTagTypes_1", "eT", "includes", "push", "partialDefinition", "m", "init", "Error", "promise", "import_toolkit13", "buildCacheCollectionHandler", "internalState", "internalActions", "removeQueryResult", "unsubscribeQueryResult", "anySubscriptionsRemainingForKey", "subscriptions", "currentSubscriptions", "k", "currentRemovalTimeouts", "handleUnsubscribe", "api2", "Infinity", "finalKeepUnusedDataFor", "max", "currentTimeout", "mwApi", "internalState2", "match", "queries", "util", "resetApiState", "queryState", "import_toolkit10", "buildInvalidationByTagsHandler", "mutationThunk", "refetchQuery", "isThunkActionWithTags", "isAnyOf", "invalidateTags", "tags", "rootState", "toInvalidate", "selectInvalidatedBy", "valuesArray_1", "from", "values", "querySubState", "subscriptionSubState", "buildPollingHandler", "queryThunk", "currentPolls", "startNextPoll", "lowestPollingInterval", "findLowestPollingInterval", "Number", "isFinite", "currentPoll", "nextPollTimestamp", "Date", "now", "currentInterval", "pollingInterval", "updatePollingInterval", "cleanupPollForKey", "existingPoll", "subscribers", "POSITIVE_INFINITY", "updateSubscriptionOptions", "pending", "rejected", "condition", "fulfilled", "clearPolls", "import_toolkit11", "neverResolvedError", "buildCacheLifecycleHandler", "isQueryThunk", "isAsyncThunkAction", "isMutationThunk", "isFulfilledThunk", "lifecycleMap", "handleNewKey", "onCacheEntryAdded", "lifecycle", "cacheEntryRemoved", "cacheDataLoaded", "race", "valueResolved", "catch", "selector", "select", "extra2", "lifecycleApi", "getCacheEntry", "updateCachedData", "updateRecipe", "updateQueryData", "runningHandler", "stateBefore", "cacheKey", "removeMutationResult", "oldState", "mutations", "import_toolkit12", "buildQueryLifecycleHandler", "isPendingThunk", "isPending", "isRejectedThunk", "isRejected", "isFullfilledThunk", "_c", "endpointName_1", "originalArgs_1", "onQueryStarted", "lifecycle_1", "queryFulfilled", "reject", "selector_1", "isUnhandledError", "rejectedWithValue", "buildDevCheckHandler", "middlewareRegistered", "import_immer4", "queueMicrotaskShim", "queueMicrotask", "bind", "global", "globalThis", "cb", "err", "safeAssign", "target", "import_immer5", "coreModuleName", "name", "enablePatches", "tag", "executeEndpoint", "_0", "_1", "rejectWithValue", "fulfillWithValue", "transformResponse", "baseQueryApi_1", "isForcedQuery", "forceQueryFn", "_r", "queryFn", "arg2", "fulfilledTimeStamp", "SHOULD_AUTOBATCH", "catchedError", "error_1", "transformErrorResponse", "e_4", "_d", "requestState", "baseFetchOnMountOrArgChange", "fulfilledVal", "refetchVal", "forceRefetch", "subscribe", "createAsyncThunk", "getPendingMeta", "startedTimeStamp", "queryThunkArgs", "currentArg", "previousArg", "endpointState", "dispatchConditionRejection", "matchesEndpoint", "prefetch", "force", "maxAge", "ifOlderThan", "queryAction", "force2", "initiate", "latestStateValue", "lastFulfilledTs", "currentState", "ret", "patches", "inversePatches", "undo", "patchQueryData", "isDraftable", "produceWithPatches", "op", "path", "upsertQueryData", "queryResultPatched", "buildMatchThunkActions", "thunk", "matchPending", "isAllOf", "matchFulfilled", "matchRejected", "definitions", "querySlice", "createSlice", "reducers", "reducer", "draft", "prepare", "prepareAutoBatched", "applyPatches", "extraReducers", "builder", "addCase", "upserting", "merge", "fulfilledTimeStamp_1", "arg_1", "baseQueryMeta_1", "requestId_1", "newData", "draftSubstateData", "structuralSharing", "isDraft", "original", "addMatcher", "entry", "mutationSlice", "track", "invalidationSlice", "actions", "idSubscriptions", "foundAt", "splice", "provided", "cacheKeys", "subscribedQueries", "cacheKeys_1", "providedTags", "providedTags_1", "subscriptionSlice", "a", "internal_probeSubscription", "internalSubscriptionsSlice", "subscriptionsUpdated", "configSlice", "online", "navigator", "onLine", "focused", "combinedReducer", "combineReducers", "unsubscribeMutationResult", "sliceActions", "input", "handlerBuilders", "middleware", "initialized2", "builderArgs", "handlers", "build", "batchedActionsHandler", "subscriptionsPrefix", "previousSubscriptions", "dispatchQueued", "didMutate", "mutableState", "_e", "_f", "_g", "_h", "_i", "subscriptionOptions", "newSubscriptions", "next", "isSubscriptionSliceAction", "isAdditionalSubscriptionAction", "windowEventsHandler", "refetchValidQueries", "some", "sub", "every", "mwApiWithNext", "hasSubscription", "handlers_1", "override", "selectSkippedQuery", "selectSkippedMutation", "buildQuerySelector", "serializedArgs", "createSelector", "selectInternalState", "withRequestFlags", "buildMutationSelector", "mutationId", "apiState", "Set", "invalidateSubscriptions_1", "add", "isUninitialized", "isLoading", "isSuccess", "isError", "runningQueries", "Map", "runningMutations", "buildInitiateQuery", "thunkResult", "stateAfter", "skippedSynchronously", "runningQuery", "selectFromState", "statePromise", "unwrap", "refetch", "unsubscribe", "running_1", "delete", "buildInitiateMutation", "returnValuePromise", "reset", "running", "getRunningQueryThunk", "getRunningMutationThunk", "_endpointName", "fixedCacheKeyOrRequestId", "getRunningQueriesThunk", "getRunningMutationsThunk", "getRunningOperationPromises", "extract", "flatMap", "queriesForStore", "removalWarning", "getRunningOperationPromise", "anyApi", "require_query", "__commonJSMin", "exports", "module", "require_react_production_min", "__commonJSMin", "exports", "l", "n", "p", "q", "r", "t", "u", "v", "w", "x", "y", "z", "A", "a", "B", "C", "D", "E", "b", "e", "F", "G", "H", "I", "J", "K", "L", "M", "d", "c", "k", "h", "g", "f", "m", "N", "O", "escape", "P", "Q", "R", "S", "T", "U", "V", "W", "require_react", "__commonJSMin", "exports", "module", "require_use_sync_external_store_shim_production_min", "__commonJSMin", "exports", "e", "h", "a", "b", "k", "l", "m", "n", "p", "q", "d", "f", "c", "g", "r", "t", "u", "require_shim", "__commonJSMin", "exports", "module", "require_with_selector_production_min", "__commonJSMin", "exports", "h", "n", "p", "a", "b", "q", "r", "t", "u", "v", "w", "e", "l", "g", "c", "f", "d", "k", "m", "require_with_selector", "__commonJSMin", "exports", "module", "require_scheduler_production_min", "__commonJSMin", "exports", "f", "a", "b", "c", "d", "e", "g", "h", "k", "w", "m", "C", "n", "x", "l", "p", "q", "r", "t", "u", "v", "y", "z", "A", "B", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "require_scheduler", "__commonJSMin", "exports", "module", "require_react_dom_production_min", "__commonJSMin", "exports", "aa", "ca", "p", "a", "b", "c", "da", "ea", "fa", "ha", "ia", "ja", "ka", "la", "ma", "oa", "pa", "d", "qa", "v", "e", "f", "g", "z", "ra", "sa", "ta", "ua", "va", "wa", "ya", "za", "Aa", "Ba", "Ca", "Da", "Ea", "Fa", "Ga", "Ha", "Ia", "Ja", "Ka", "A", "La", "Ma", "Na", "Oa", "l", "h", "k", "Pa", "Qa", "Ra", "Sa", "Ta", "Ua", "Va", "Wa", "Xa", "Ya", "Za", "ab", "bb", "cb", "db", "eb", "fb", "gb", "hb", "ib", "jb", "kb", "lb", "mb", "nb", "ob", "pb", "qb", "rb", "sb", "tb", "ub", "vb", "wb", "xb", "yb", "zb", "Ab", "Bb", "Cb", "Db", "Eb", "Fb", "Gb", "Hb", "Ib", "Jb", "Kb", "Lb", "Mb", "Nb", "m", "Ob", "Pb", "Qb", "Rb", "Sb", "Tb", "Ub", "Vb", "Wb", "Xb", "Yb", "Zb", "$b", "ac", "bc", "cc", "dc", "B", "ec", "fc", "gc", "hc", "ic", "jc", "kc", "lc", "mc", "oc", "nc", "pc", "qc", "rc", "sc", "tc", "uc", "vc", "wc", "xc", "yc", "zc", "Ac", "Bc", "Cc", "C", "Dc", "Ec", "Fc", "Gc", "Hc", "Ic", "Jc", "Kc", "Lc", "Mc", "Nc", "Oc", "Pc", "Qc", "Rc", "Sc", "Tc", "Uc", "Vc", "Wc", "Xc", "Yc", "Zc", "$c", "ad", "bd", "cd", "dd", "ed", "fd", "gd", "hd", "id", "jd", "kd", "ld", "md", "nd", "od", "pd", "qd", "rd", "sd", "td", "ud", "vd", "wd", "xd", "yd", "Ad", "zd", "Bd", "Cd", "Dd", "Ed", "Fd", "Gd", "Hd", "Id", "Jd", "Kd", "Ld", "Md", "Nd", "Od", "Pd", "Qd", "Rd", "Sd", "Td", "Ud", "Vd", "Wd", "Xd", "Yd", "Zd", "$d", "ae", "be", "ce", "de", "ee", "fe", "ge", "he", "ie", "je", "ke", "le", "me", "ne", "oe", "pe", "qe", "re", "se", "te", "ue", "ve", "we", "ye", "ze", "xe", "Ae", "Be", "Ce", "De", "Ee", "Fe", "Ge", "He", "Ie", "Je", "Ke", "Le", "Me", "Ne", "Oe", "Pe", "Qe", "Re", "Se", "Te", "Ue", "Ve", "We", "Xe", "Ye", "Ze", "$e", "af", "bf", "cf", "df", "ef", "ff", "gf", "hf", "jf", "kf", "lf", "mf", "nf", "D", "of", "pf", "qf", "rf", "sf", "n", "t", "J", "x", "w", "u", "F", "tf", "uf", "vf", "wf", "na", "xa", "$a", "ba", "xf", "yf", "zf", "Af", "Bf", "Cf", "Df", "Ef", "Ff", "Gf", "Hf", "Jf", "If", "Kf", "Lf", "Mf", "Nf", "Of", "Pf", "Qf", "Rf", "Sf", "Tf", "Uf", "E", "G", "Vf", "H", "Wf", "Xf", "Yf", "Zf", "$f", "ag", "bg", "cg", "dg", "eg", "fg", "gg", "hg", "ig", "jg", "kg", "lg", "mg", "ng", "og", "pg", "qg", "rg", "sg", "tg", "ug", "vg", "wg", "xg", "yg", "I", "zg", "Ag", "Bg", "Cg", "Dg", "Eg", "Fg", "Gg", "Hg", "Ig", "Jg", "Kg", "Lg", "Mg", "Ng", "Og", "Pg", "Qg", "Rg", "Sg", "Tg", "Ug", "Vg", "Wg", "Xg", "Yg", "Zg", "$g", "ah", "bh", "ch", "dh", "K", "eh", "fh", "gh", "q", "r", "y", "hh", "ih", "jh", "kh", "nh", "L", "lh", "mh", "oh", "ph", "qh", "rh", "sh", "th", "uh", "vh", "wh", "xh", "yh", "zh", "Ah", "Bh", "Ch", "Dh", "Eh", "Fh", "Gh", "Hh", "Ih", "Jh", "Kh", "Lh", "M", "Mh", "Nh", "Oh", "Ph", "Qh", "Rh", "N", "O", "P", "Sh", "Th", "Uh", "Vh", "Q", "Wh", "Xh", "Yh", "Zh", "$h", "ai", "bi", "ci", "di", "ei", "fi", "gi", "hi", "ii", "ji", "ki", "li", "mi", "R", "ni", "oi", "pi", "qi", "ri", "si", "ti", "ui", "vi", "wi", "xi", "yi", "zi", "Ai", "Bi", "Ci", "Di", "Ei", "Fi", "Gi", "Hi", "Ii", "Ji", "Ki", "Li", "Mi", "Ni", "Oi", "Pi", "Qi", "Ri", "Si", "Ti", "Ui", "Vi", "Wi", "Xi", "Yi", "Zi", "$i", "aj", "bj", "cj", "dj", "ej", "fj", "gj", "hj", "ij", "jj", "kj", "lj", "mj", "nj", "oj", "pj", "qj", "rj", "sj", "tj", "uj", "vj", "wj", "xj", "yj", "zj", "Aj", "Bj", "Cj", "Dj", "Ej", "S", "Fj", "Gj", "T", "Hj", "Ij", "Jj", "Kj", "U", "Lj", "V", "Mj", "W", "Nj", "Oj", "Pj", "Qj", "Rj", "Sj", "Tj", "Uj", "Vj", "Wj", "Xj", "X", "Yj", "Zj", "ak", "bk", "ck", "dk", "ek", "fk", "gk", "hk", "ik", "jk", "kk", "lk", "mk", "nk", "ok", "pk", "Y", "Z", "qk", "rk", "sk", "tk", "uk", "vk", "wk", "xk", "yk", "zk", "Ak", "Bk", "Ck", "Dk", "Ek", "Fk", "Gk", "Hk", "Ik", "Jk", "Kk", "Lk", "Mk", "Nk", "Ok", "Pk", "Qk", "Rk", "Sk", "Tk", "Uk", "Vk", "Wk", "Xk", "Yk", "Zk", "$k", "al", "bl", "cl", "dl", "el", "fl", "gl", "hl", "il", "jl", "kl", "ll", "ml", "nl", "ol", "pl", "ql", "rl", "sl", "tl", "ul", "vl", "wl", "require_react_dom", "__commonJSMin", "exports", "module", "checkDCE", "err", "require_reactBatchedUpdates", "__commonJSMin", "exports", "_reactDom", "require_batch", "__commonJSMin", "exports", "defaultNoopBatch", "callback", "batch", "setBatch", "newBatch", "getBatch", "require_Context", "__commonJSMin", "exports", "_react", "ContextKey", "gT", "getContext", "realContext", "ReactReduxContext", "_", "handler", "target", "_target", "args", "_default", "require_useReduxContext", "__commonJSMin", "exports", "createReduxContextHook", "_react", "_Context", "context", "useReduxContext", "require_useSyncExternalStore", "__commonJSMin", "exports", "notInitialized", "require_useSelector", "__commonJSMin", "exports", "createSelectorHook", "_react", "_useReduxContext", "_Context", "_useSyncExternalStore", "useSyncExternalStoreWithSelector", "initializeUseSelector", "fn", "refEquality", "a", "b", "context", "useReduxContext", "selector", "equalityFnOrOptions", "equalityFn", "stabilityCheck", "noopCheck", "store", "subscription", "getServerState", "globalStabilityCheck", "globalNoopCheck", "firstRun", "wrappedSelector", "state", "selectedState", "useSelector", "require_interopRequireDefault", "__commonJSMin", "exports", "module", "_interopRequireDefault", "obj", "require_extends", "__commonJSMin", "exports", "module", "_extends", "target", "i", "source", "key", "require_objectWithoutPropertiesLoose", "__commonJSMin", "exports", "module", "_objectWithoutPropertiesLoose", "source", "excluded", "target", "sourceKeys", "key", "i", "require_react_is_production_min", "__commonJSMin", "exports", "b", "c", "d", "e", "f", "g", "h", "k", "l", "m", "n", "p", "q", "r", "t", "v", "w", "x", "y", "z", "a", "u", "A", "require_react_is", "__commonJSMin", "exports", "module", "require_hoist_non_react_statics_cjs", "__commonJSMin", "exports", "module", "reactIs", "REACT_STATICS", "KNOWN_STATICS", "FORWARD_REF_STATICS", "MEMO_STATICS", "TYPE_STATICS", "getStatics", "component", "defineProperty", "getOwnPropertyNames", "getOwnPropertySymbols", "getOwnPropertyDescriptor", "getPrototypeOf", "objectPrototype", "hoistNonReactStatics", "targetComponent", "sourceComponent", "blacklist", "inheritedComponent", "keys", "targetStatics", "sourceStatics", "i", "key", "descriptor", "require_react_is_production_min", "__commonJSMin", "exports", "b", "c", "d", "e", "f", "g", "h", "k", "l", "m", "n", "p", "q", "t", "u", "v", "a", "r", "require_react_is", "__commonJSMin", "exports", "module", "require_warning", "__commonJSMin", "exports", "warning", "message", "require_verifySubselectors", "__commonJSMin", "exports", "_interopRequireDefault", "verifySubselectors", "_warning", "verify", "selector", "methodName", "mapStateToProps", "mapDispatchToProps", "mergeProps", "require_selectorFactory", "__commonJSMin", "exports", "_interopRequireDefault", "pureFinalPropsSelectorFactory", "finalPropsSelectorFactory", "_objectWithoutPropertiesLoose2", "_verifySubselectors", "_excluded", "mapStateToProps", "mapDispatchToProps", "mergeProps", "dispatch", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "hasRunAtLeastOnce", "state", "ownProps", "stateProps", "dispatchProps", "mergedProps", "handleFirstCall", "firstState", "firstOwnProps", "handleNewPropsAndNewState", "handleNewProps", "handleNewState", "nextStateProps", "statePropsChanged", "handleSubsequentCalls", "nextState", "nextOwnProps", "propsChanged", "stateChanged", "_ref", "initMapStateToProps", "initMapDispatchToProps", "initMergeProps", "options", "require_bindActionCreators", "__commonJSMin", "exports", "bindActionCreators", "actionCreators", "dispatch", "boundActionCreators", "key", "actionCreator", "args", "require_isPlainObject", "__commonJSMin", "exports", "isPlainObject", "obj", "proto", "baseProto", "require_verifyPlainObject", "__commonJSMin", "exports", "_interopRequireDefault", "verifyPlainObject", "_isPlainObject", "_warning", "value", "displayName", "methodName", "require_wrapMapToProps", "__commonJSMin", "exports", "_interopRequireDefault", "wrapMapToPropsConstant", "getDependsOnOwnProps", "wrapMapToPropsFunc", "_verifyPlainObject", "getConstant", "dispatch", "constant", "constantSelector", "mapToProps", "methodName", "displayName", "proxy", "stateOrDispatch", "ownProps", "props", "require_invalidArgFactory", "__commonJSMin", "exports", "createInvalidArgFactory", "arg", "name", "dispatch", "options", "require_mapDispatchToProps", "__commonJSMin", "exports", "_interopRequireDefault", "mapDispatchToPropsFactory", "_bindActionCreators", "_wrapMapToProps", "_invalidArgFactory", "mapDispatchToProps", "dispatch", "require_mapStateToProps", "__commonJSMin", "exports", "mapStateToPropsFactory", "_wrapMapToProps", "_invalidArgFactory", "mapStateToProps", "require_mergeProps", "__commonJSMin", "exports", "_interopRequireDefault", "defaultMergeProps", "wrapMergePropsFunc", "mergePropsFactory", "_extends2", "_verifyPlainObject", "_invalidArgFactory", "stateProps", "dispatchProps", "ownProps", "mergeProps", "dispatch", "displayName", "areMergedPropsEqual", "hasRunOnce", "mergedProps", "nextMergedProps", "require_Subscription", "__commonJSMin", "exports", "createSubscription", "_batch", "createListenerCollection", "batch", "first", "last", "listener", "listeners", "callback", "isSubscribed", "nullListeners", "store", "parentSub", "unsubscribe", "addNestedSub", "trySubscribe", "notifyNestedSubs", "handleChangeWrapper", "subscription", "tryUnsubscribe", "require_useIsomorphicLayoutEffect", "__commonJSMin", "exports", "_react", "canUseDOM", "useIsomorphicLayoutEffect", "require_shallowEqual", "__commonJSMin", "exports", "shallowEqual", "is", "x", "y", "objA", "objB", "keysA", "keysB", "require_connect", "__commonJSMin", "exports", "_interopRequireDefault", "_extends2", "_objectWithoutPropertiesLoose2", "_hoistNonReactStatics", "_react", "_interopRequireWildcard", "_reactIs", "_selectorFactory", "_mapDispatchToProps", "_mapStateToProps", "_mergeProps", "_Subscription", "_useIsomorphicLayoutEffect", "_shallowEqual", "_warning", "_Context", "_useSyncExternalStore", "_excluded", "_getRequireWildcardCache", "nodeInterop", "cacheBabelInterop", "cacheNodeInterop", "obj", "cache", "newObj", "hasPropertyDescriptor", "key", "desc", "useSyncExternalStore", "initializeConnect", "fn", "NO_SUBSCRIPTION_ARRAY", "useIsomorphicLayoutEffectWithArgs", "effectFunc", "effectArgs", "dependencies", "captureWrapperProps", "lastWrapperProps", "lastChildProps", "renderIsScheduled", "wrapperProps", "childPropsFromStoreUpdate", "notifyNestedSubs", "subscribeUpdates", "shouldHandleStateChanges", "store", "subscription", "childPropsSelector", "isMounted", "additionalSubscribeListener", "didUnsubscribe", "lastThrownError", "checkForUpdates", "latestStoreState", "newChildProps", "error", "e", "strictEqual", "a", "b", "connect", "mapStateToProps", "mapDispatchToProps", "mergeProps", "pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual", "forwardRef", "context", "Context", "initMapStateToProps", "initMapDispatchToProps", "initMergeProps", "WrappedComponent", "wrappedComponentName", "displayName", "selectorFactoryOptions", "ConnectFunction", "props", "propsContext", "reactReduxForwardedRef", "ContextToUse", "contextValue", "didStoreComeFromProps", "didStoreComeFromContext", "getServerState", "overriddenContextValue", "isProcessingDispatch", "latestSubscriptionCallbackError", "actualChildPropsSelector", "subscribeForReact", "reactListener", "actualChildProps", "err", "renderedWrappedComponent", "Connect", "forwarded", "ref", "_default", "require_Provider", "__commonJSMin", "exports", "_react", "_interopRequireWildcard", "_Context", "_Subscription", "_useIsomorphicLayoutEffect", "_getRequireWildcardCache", "nodeInterop", "cacheBabelInterop", "cacheNodeInterop", "obj", "cache", "newObj", "hasPropertyDescriptor", "key", "desc", "Provider", "store", "context", "children", "serverState", "stabilityCheck", "noopCheck", "contextValue", "subscription", "previousState", "Context", "_default", "require_useStore", "__commonJSMin", "exports", "createStoreHook", "_Context", "_useReduxContext", "context", "useReduxContext", "store", "useStore", "require_useDispatch", "__commonJSMin", "exports", "createDispatchHook", "_Context", "_useStore", "context", "useStore", "useDispatch", "require_types", "__commonJSMin", "require_exports", "__commonJSMin", "exports", "_interopRequireDefault", "_exportNames", "_Provider", "_connect", "_Context", "_useDispatch", "_useSelector", "_useStore", "_shallowEqual", "_types", "key", "require_lib", "__commonJSMin", "exports", "_exportNames", "_reactBatchedUpdates", "_shim", "_withSelector", "_batch", "_useSelector", "_connect", "_exports", "key", "__markAsModule", "exports", "ApiProvider", "createApi", "reactHooksModule", "import_query3", "__toModule", "require", "import_toolkit2", "import_react3", "import_query", "import_react_redux2", "import_react", "useStableQueryArgs", "queryArgs", "serialize", "endpointDefinition", "endpointName", "incoming", "useMemo", "serialized", "cache2", "useRef", "useEffect", "current", "UNINITIALIZED_VALUE", "Symbol", "import_react2", "import_react_redux", "useShallowStableValue", "value", "shallowEqual", "DefinitionType", "DefinitionType2", "import_toolkit", "cache", "WeakMap", "defaultSerializeQueryArgs", "_c", "cached", "get", "stringified", "JSON", "stringify", "key", "isPlainObject", "Object", "keys", "sort", "reduce", "acc", "key2", "set", "useIsomorphicLayoutEffect", "window", "document", "createElement", "useLayoutEffect", "defaultMutationStateSelector", "x", "noPendingQueryStateSelector", "selected", "isUninitialized", "__spreadProps", "__spreadValues", "isFetching", "isLoading", "data", "status", "QueryStatus", "pending", "capitalize", "str", "replace", "toUpperCase", "safeAssign", "target", "args", "_i", "arguments", "length", "assign", "apply", "__spreadArray", "import_react_redux3", "reactHooksModuleName", "_d", "_e", "batch", "_f", "useDispatch", "_g", "useSelector", "_h", "useStore", "_j", "unstable__sideEffectsInRender", "name", "init", "api", "context", "anyApi", "moduleOptions", "serializeQueryArgs", "usePossiblyImmediateEffect", "cb", "buildQueryHooks", "useQuerySubscription", "arg", "refetchOnReconnect", "refetchOnFocus", "refetchOnMountOrArgChange", "skip", "pollingInterval", "initiate", "endpoints", "dispatch", "stableArg", "skipToken", "endpointDefinitions", "stableSubscriptionOptions", "lastRenderHadSubscription", "promiseRef", "queryCacheKey", "requestId", "currentRenderHasSubscription", "returnedValue", "internalActions", "internal_probeSubscription", "subscriptionRemoved", "_a", "lastPromise", "unsubscribe", "lastSubscriptionOptions", "subscriptionOptions", "updateSubscriptionOptions", "promise", "forceRefetch", "refetch", "Error", "useLazyQuerySubscription", "useState", "setArg", "_b", "subscriptionOptionsRef", "trigger", "useCallback", "arg2", "preferCacheValue", "useQueryState", "selectFromResult", "select", "lastValue", "selectDefaultResult", "createSelector", "_", "lastResult", "queryStatePreSelector", "querySelector", "currentState", "state", "store", "newLastValue", "getState", "useLazyQuery", "options", "queryStateResults", "info", "lastArg", "useQuery", "querySubscriptionResults", "useDebugValue", "isSuccess", "isError", "error", "buildMutationHook", "fixedCacheKey", "setPromise", "reset", "triggerMutation", "promise2", "mutationSelector", "originalArgs", "removeMutationResult", "finalState", "usePrefetch", "defaultOptions", "stableDefaultOptions", "util", "prefetch", "hasData", "currentData", "injectEndpoint", "definition", "type", "query", "mutation", "useMutation", "__reExport", "import_toolkit3", "import_react4", "import_react5", "import_react_redux4", "import_query2", "props", "default", "configureStore", "reducer", "reducerPath", "middleware", "gDM", "concat", "setupListeners", "Provider", "children", "buildCreateApi", "coreModule", "require_react", "__commonJSMin", "exports", "module", "require_constants", "__commonJSMin", "exports", "KEY_PREFIX", "FLUSH", "REHYDRATE", "PAUSE", "PERSIST", "PURGE", "REGISTER", "DEFAULT_VERSION", "require_autoMergeLevel1", "__commonJSMin", "exports", "autoMergeLevel1", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "inboundState", "originalState", "reducedState", "_ref", "debug", "newState", "require_createPersistoid", "__commonJSMin", "exports", "createPersistoid", "_constants", "config", "blacklist", "whitelist", "transforms", "throttle", "storageKey", "storage", "serialize", "x", "defaultSerialize", "writeFailHandler", "lastState", "stagedState", "keysToProcess", "timeIterator", "writePromise", "update", "state", "key", "passWhitelistBlacklist", "processNextKey", "endState", "subState", "transformer", "err", "writeStagedState", "onWriteFail", "flush", "data", "require_getStoredState", "__commonJSMin", "exports", "getStoredState", "_constants", "config", "transforms", "storageKey", "storage", "debug", "deserialize", "x", "defaultDeserialize", "serialized", "state", "rawState", "key", "subState", "transformer", "err", "serial", "require_purgeStoredState", "__commonJSMin", "exports", "purgeStoredState", "_constants", "config", "storage", "storageKey", "warnIfRemoveError", "err", "require_persistReducer", "__commonJSMin", "exports", "persistReducer", "_constants", "_autoMergeLevel", "_interopRequireDefault", "_createPersistoid", "_getStoredState", "_purgeStoredState", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_objectWithoutProperties", "excluded", "_objectWithoutPropertiesLoose", "sourceSymbolKeys", "sourceKeys", "DEFAULT_TIMEOUT", "config", "baseReducer", "version", "debug", "stateReconciler", "getStoredState", "timeout", "_persistoid", "_purge", "_paused", "conditionalUpdate", "state", "action", "_ref", "_persist", "rest", "restState", "_sealed", "_rehydrate", "payload", "err", "restoredState", "migrate", "s", "v", "migratedState", "migrateErr", "reducedState", "inboundState", "reconciledRest", "_newState", "newState", "require_autoMergeLevel2", "__commonJSMin", "exports", "autoMergeLevel2", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "inboundState", "originalState", "reducedState", "_ref", "debug", "newState", "isPlainEnoughObject", "o", "require_persistCombineReducers", "__commonJSMin", "exports", "persistCombineReducers", "_redux", "_persistReducer", "_interopRequireDefault", "_autoMergeLevel", "obj", "config", "reducers", "require_persistStore", "__commonJSMin", "exports", "persistStore", "_redux", "_constants", "_toConsumableArray", "arr", "_arrayWithoutHoles", "_iterableToArray", "_nonIterableSpread", "iter", "i", "arr2", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "source", "key", "_defineProperty", "obj", "value", "initialState", "persistorReducer", "state", "action", "firstIndex", "registry", "store", "options", "cb", "optionsToTest", "bannedKeys", "boostrappedCb", "_pStore", "register", "rehydrate", "payload", "err", "rehydrateAction", "persistor", "results", "purgeResult", "flushResult", "require_createMigrate", "__commonJSMin", "exports", "createMigrate", "_constants", "migrations", "config", "_ref", "debug", "state", "currentVersion", "inboundVersion", "migrationKeys", "ver", "key", "a", "b", "migratedState", "versionKey", "err", "require_createTransform", "__commonJSMin", "exports", "createTransform", "inbound", "outbound", "config", "whitelist", "blacklist", "whitelistBlacklistCheck", "key", "state", "fullState", "require_lib", "__commonJSMin", "exports", "_exportNames", "_persistReducer", "_interopRequireDefault", "_persistCombineReducers", "_persistStore", "_createMigrate", "_createTransform", "_getStoredState", "_createPersistoid", "_purgeStoredState", "_constants", "key", "obj", "require_clsx", "__commonJSMin", "exports", "module", "e", "r", "o", "t", "f", "require_goober", "__commonJSMin", "exports", "e", "t", "r", "l", "a", "s", "n", "o", "c", "p", "u", "d", "f", "i", "g", "b", "noOp", "p", "React", "createContext", "enqueueSnackbar", "closeSnackbar", "capitalise", "text", "charAt", "toUpperCase", "slice", "originKeyExtractor", "anchor", "vertical", "horizontal", "isDefined", "value", "Transition", "props", "initialStatus", "appear", "appearStatus", "t", "unmountOnExit", "mountOnEnter", "state", "status", "nextCallback", "c", "e", "n", "getDerivedStateFromProps", "prevState", "componentDidMount", "updateStatus", "this", "componentDidUpdate", "prevProps", "nextStatus", "componentWillUnmount", "cancelNextCallback", "getTimeouts", "timeout", "enter", "exit", "mounting", "performEnter", "performExit", "setState", "isAppearing", "timeouts", "onEnter", "node", "safeSetState", "_this2", "onEntering", "onTransitionEnd", "onEntered", "onExit", "_this3", "onExiting", "onExited", "cancel", "nextState", "callback", "setNextCallback", "active", "_this4", "handler", "addEndListener", "setTimeout", "render", "children", "nodeRef", "_this$props$nodeRef", "current", "Error", "Component", "noop", "setRef", "ref", "useForkRef", "refA", "refB", "refValue", "getTransitionProps", "style", "duration", "mode", "easing", "transitionTimingFunction", "delay", "transitionDelay", "defaultProps", "reflow", "scrollTop", "formatMs", "milliseconds", "Math", "round", "createTransition", "options", "r", "Array", "isArray", "map", "animatedProp", "formattedDuration", "formattedDelay", "join", "ownerWindow", "ownerDocument", "document", "defaultView", "window", "setTranslateValue", "direction", "transform", "rect", "getBoundingClientRect", "containerWindow", "fakeTransform", "computedStyle", "getComputedStyle", "getPropertyValue", "offsetX", "offsetY", "transformValues", "split", "parseInt", "innerWidth", "left", "width", "innerHeight", "top", "height", "webkitTransform", "Slide", "i", "inProp", "other", "handleRefIntermediary", "handleRef", "updatePosition", "handleResize", "func", "wait", "debounced", "args", "later", "apply", "_this", "clearTimeout", "clear", "addEventListener", "removeEventListener", "TransitionComponent", "transitionProps", "webkitTransition", "transition", "childProps", "visibility", "displayName", "SvgIcon", "viewBox", "focusable", "fontSize", "marginInlineEnd", "userSelect", "display", "fill", "flexShrink", "CheckIcon", "d", "WarningIcon", "ErrorIcon", "InfoIcon", "defaults", "maxSnack", "persist", "hideIconVariant", "disableWindowBlurListener", "variant", "autoHideDuration", "iconVariant", "success", "warning", "error", "info", "anchorOrigin", "transitionDuration", "makeStyles", "styles", "Object", "entries", "reduce", "acc", "css", "ComponentClasses", "classes", "root", "entered", "Collapse", "wrapperRef", "getWrapperSize", "clientHeight", "wrapperSize", "className", "clsx", "pointerEvents", "overflow", "minHeight", "right", "bottom", "toSnackbarAnchorOrigin", "createChainedFunction", "funcs", "snackbarId", "argums", "indexOf", "push", "useEnhancedEffect", "useEventCallback", "fn", "_", "Snackbar", "onClose", "id", "open", "SnackbarProps", "f", "timerAutoHide", "handleClose", "setAutoHideTimer", "autoHideDurationParam", "handlePause", "handleResume", "onMouseEnter", "event", "onMouseLeave", "flexWrap", "flexGrow", "minWidth", "SnackbarContent", "forwardRef", "backgroundColor", "lineHeight", "letterSpacing", "color", "alignItems", "padding", "borderRadius", "boxShadow", "lessPadding", "paddingLeft", "message", "action", "marginLeft", "marginRight", "MaterialDesignContent", "forwardedRef", "icon", "role", "Y", "J", "K", "$", "nn", "en", "memo", "wrappedRoot", "position", "SnackbarItem", "useRef", "useState", "collapsed", "setCollapsed", "snack", "handleExitedScreen", "useCallback", "col", "useEffect", "allClasses", "useMemo", "containerClasses", "containerRoot", "containerAnchorOriginTopCenter", "containerAnchorOriginBottomCenter", "containerAnchorOriginTopRight", "containerAnchorOriginBottomRight", "containerAnchorOriginTopLeft", "containerAnchorOriginBottomLeft", "keys", "filter", "key", "obj", "TransitionProps", "componentOrFunctionContent", "content", "ignoredEntered", "otherSnack", "callbacks", "cbName", "requestClose", "boxSizing", "maxHeight", "zIndex", "indents", "maxWidth", "rootDense", "flexDirection", "xsWidthMargin", "center", "an", "dense", "combinedClassname", "isOptions", "messageOrOptions", "isValidElement", "SnackbarProvider", "optsOrUndefined", "opts", "preventDuplicate", "hasSpecifiedKey", "Date", "getTime", "random", "merger", "name", "shouldObjectMerge", "propsDuration", "isNumberOrNull", "numberish", "optionsDuration", "is", "item", "types", "some", "u", "undefined", "compareFunction", "inQueue", "queue", "findIndex", "inView", "snacks", "handleDisplaySnack", "length", "handleDismissOldest", "processQueue", "popped", "ignore", "reason", "shouldCloseAll", "toBeClosed", "find", "handleCloseSnack", "newState", "contextValue", "bind", "domRoot", "Components", "l", "categ", "category", "snackbars", "origin", "SnackbarContainer", "handleExitedSnack", "handleEnteredSnack", "SnackbarContext", "Provider", "createPortal", "useContext", "require_notistack", "__commonJSMin", "exports", "module", "_typeof", "obj", "noop", "hasStorage", "storageType", "storage", "testKey", "getStorage", "type", "noopStorage", "init_getStorage", "__esmMin", "createWebStorage", "type", "storage", "getStorage", "key", "resolve", "reject", "item", "init_createWebStorage", "__esmMin", "init_getStorage", "storage_exports", "__export", "storage_default", "init_storage", "__esmMin", "init_createWebStorage", "createWebStorage", "require_isPrototype", "__commonJSMin", "exports", "module", "objectProto", "isPrototype", "value", "Ctor", "proto", "require_nativeKeys", "__commonJSMin", "exports", "module", "overArg", "nativeKeys", "require_baseKeys", "__commonJSMin", "exports", "module", "isPrototype", "nativeKeys", "objectProto", "hasOwnProperty", "baseKeys", "object", "result", "key", "require_isObject", "__commonJSMin", "exports", "module", "isObject", "value", "type", "require_isFunction", "__commonJSMin", "exports", "module", "baseGetTag", "isObject", "asyncTag", "funcTag", "genTag", "proxyTag", "isFunction", "value", "tag", "require_coreJsData", "__commonJSMin", "exports", "module", "root", "coreJsData", "require_isMasked", "__commonJSMin", "exports", "module", "coreJsData", "maskSrcKey", "uid", "isMasked", "func", "require_toSource", "__commonJSMin", "exports", "module", "funcProto", "funcToString", "toSource", "func", "require_baseIsNative", "__commonJSMin", "exports", "module", "isFunction", "isMasked", "isObject", "toSource", "reRegExpChar", "reIsHostCtor", "funcProto", "objectProto", "funcToString", "hasOwnProperty", "reIsNative", "baseIsNative", "value", "pattern", "require_getValue", "__commonJSMin", "exports", "module", "getValue", "object", "key", "require_getNative", "__commonJSMin", "exports", "module", "baseIsNative", "getValue", "getNative", "object", "key", "value", "require_DataView", "__commonJSMin", "exports", "module", "getNative", "root", "DataView", "require_Map", "__commonJSMin", "exports", "module", "getNative", "root", "Map", "require_Promise", "__commonJSMin", "exports", "module", "getNative", "root", "Promise", "require_Set", "__commonJSMin", "exports", "module", "getNative", "root", "Set", "require_WeakMap", "__commonJSMin", "exports", "module", "getNative", "root", "WeakMap", "require_getTag", "__commonJSMin", "exports", "module", "DataView", "Map", "Promise", "Set", "WeakMap", "baseGetTag", "toSource", "mapTag", "objectTag", "promiseTag", "setTag", "weakMapTag", "dataViewTag", "dataViewCtorString", "mapCtorString", "promiseCtorString", "setCtorString", "weakMapCtorString", "getTag", "value", "result", "Ctor", "ctorString", "require_baseIsArguments", "__commonJSMin", "exports", "module", "baseGetTag", "isObjectLike", "argsTag", "baseIsArguments", "value", "require_isArguments", "__commonJSMin", "exports", "module", "baseIsArguments", "isObjectLike", "objectProto", "hasOwnProperty", "propertyIsEnumerable", "isArguments", "value", "require_isArray", "__commonJSMin", "exports", "module", "isArray", "require_isLength", "__commonJSMin", "exports", "module", "MAX_SAFE_INTEGER", "isLength", "value", "require_isArrayLike", "__commonJSMin", "exports", "module", "isFunction", "isLength", "isArrayLike", "value", "require_stubFalse", "__commonJSMin", "exports", "module", "stubFalse", "require_isBuffer", "__commonJSMin", "exports", "module", "root", "stubFalse", "freeExports", "freeModule", "moduleExports", "Buffer", "nativeIsBuffer", "isBuffer", "require_baseIsTypedArray", "__commonJSMin", "exports", "module", "baseGetTag", "isLength", "isObjectLike", "argsTag", "arrayTag", "boolTag", "dateTag", "errorTag", "funcTag", "mapTag", "numberTag", "objectTag", "regexpTag", "setTag", "stringTag", "weakMapTag", "arrayBufferTag", "dataViewTag", "float32Tag", "float64Tag", "int8Tag", "int16Tag", "int32Tag", "uint8Tag", "uint8ClampedTag", "uint16Tag", "uint32Tag", "typedArrayTags", "baseIsTypedArray", "value", "require_baseUnary", "__commonJSMin", "exports", "module", "baseUnary", "func", "value", "require_nodeUtil", "__commonJSMin", "exports", "module", "freeGlobal", "freeExports", "freeModule", "moduleExports", "freeProcess", "nodeUtil", "types", "require_isTypedArray", "__commonJSMin", "exports", "module", "baseIsTypedArray", "baseUnary", "nodeUtil", "nodeIsTypedArray", "isTypedArray", "require_isEmpty", "__commonJSMin", "exports", "module", "baseKeys", "getTag", "isArguments", "isArray", "isArrayLike", "isBuffer", "isPrototype", "isTypedArray", "mapTag", "setTag", "objectProto", "hasOwnProperty", "isEmpty", "value", "tag", "key", "require_localforage", "__commonJSMin", "exports", "module", "f", "g", "define", "e", "t", "n", "r", "o", "u", "a", "__require", "i", "l", "_dereq_", "global", "Mutation", "scheduleDrain", "called", "observer", "nextTick", "element", "channel", "scriptEl", "draining", "queue", "oldQueue", "len", "immediate", "task", "INTERNAL", "handlers", "REJECTED", "FULFILLED", "PENDING", "Promise", "resolver", "safelyResolveThenable", "onRejected", "onFulfilled", "promise", "unwrap", "QueueItem", "value", "func", "returnValue", "self", "result", "tryCatch", "getThen", "thenable", "error", "obj", "then", "onError", "onSuccess", "tryToUnwrap", "out", "resolve", "reject", "reason", "all", "iterable", "values", "resolved", "allResolver", "resolveFromAll", "outValue", "race", "response", "_typeof", "_classCallCheck", "instance", "Constructor", "getIDB", "idb", "isIndexedDBValid", "isSafari", "hasFetch", "createBlob", "parts", "properties", "Builder", "builder", "Promise$1", "executeCallback", "callback", "executeTwoCallbacks", "errorCallback", "normalizeKey", "key", "getCallback", "DETECT_BLOB_SUPPORT_STORE", "supportsBlobs", "dbContexts", "toString", "READ_ONLY", "READ_WRITE", "_binStringToArrayBuffer", "bin", "length", "buf", "arr", "_checkBlobSupportWithoutCaching", "txn", "blob", "matchedChrome", "matchedEdge", "_checkBlobSupport", "_deferReadiness", "dbInfo", "dbContext", "deferredOperation", "_advanceReadiness", "_rejectReadiness", "err", "_getConnection", "upgradeNeeded", "createDbContext", "dbArgs", "openreq", "db", "ex", "_getOriginalConnection", "_getUpgradedConnection", "_isUpgradeNeeded", "defaultVersion", "isNewStore", "isDowngrade", "isUpgrade", "incVersion", "_encodeBlob", "reader", "base64", "_decodeBlob", "encodedBlob", "arrayBuff", "_isEncodedBlob", "_fullyReady", "_tryReconnect", "forages", "forage", "createTransaction", "mode", "retries", "tx", "_initStorage", "options", "initPromises", "ignoreErrors", "j", "k", "getItem", "transaction", "store", "req", "iterate", "iterator", "iterationNumber", "cursor", "setItem", "blobSupport", "removeItem", "clear", "advanced", "keys", "dropInstance", "currentConfig", "isCurrentDb", "dbPromise", "newVersion", "dropObjectPromise", "_forage2", "dropDBPromise", "_forage", "asyncStorage", "isWebSQLValid", "BASE_CHARS", "BLOB_TYPE_PREFIX", "BLOB_TYPE_PREFIX_REGEX", "SERIALIZED_MARKER", "SERIALIZED_MARKER_LENGTH", "TYPE_ARRAYBUFFER", "TYPE_BLOB", "TYPE_INT8ARRAY", "TYPE_UINT8ARRAY", "TYPE_UINT8CLAMPEDARRAY", "TYPE_INT16ARRAY", "TYPE_INT32ARRAY", "TYPE_UINT16ARRAY", "TYPE_UINT32ARRAY", "TYPE_FLOAT32ARRAY", "TYPE_FLOAT64ARRAY", "TYPE_SERIALIZED_MARKER_LENGTH", "toString$1", "stringToBuffer", "serializedString", "bufferLength", "p", "encoded1", "encoded2", "encoded3", "encoded4", "buffer", "bytes", "bufferToString", "base64String", "serialize", "valueType", "marker", "fileReader", "str", "deserialize", "type", "blobType", "matcher", "localforageSerializer", "createDbTable", "_initStorage$1", "dbInfoPromise", "tryExecuteSql", "sqlStatement", "args", "results", "getItem$1", "iterate$1", "rows", "item", "_setItem", "retriesLeft", "originalValue", "sqlError", "setItem$1", "removeItem$1", "clear$1", "length$1", "key$1", "keys$1", "getAllStoreNames", "storeNames", "dropInstance$1", "operationInfo", "dropTable", "storeName", "operations", "webSQLStorage", "isLocalStorageValid", "_getKeyPrefix", "defaultConfig", "keyPrefix", "checkIfLocalStorageThrows", "localStorageTestKey", "_isLocalStorageUsable", "_initStorage$2", "clear$2", "getItem$2", "iterate$2", "keyPrefixLength", "key$2", "keys$2", "itemKey", "length$2", "removeItem$2", "setItem$2", "dropInstance$2", "localStorageWrapper", "sameValue", "x", "y", "includes", "array", "searchElement", "isArray", "arg", "DefinedDrivers", "DriverSupport", "DefaultDrivers", "DefaultDriverOrder", "OptionalDriverMethods", "LibraryMethods", "DefaultConfig", "callWhenReady", "localForageInstance", "libraryMethod", "_args", "extend", "_key", "LocalForage", "driverTypeKey", "driver", "driverName", "driverObject", "complianceError", "driverMethods", "driverMethodName", "isRequired", "configureMissingMethods", "methodNotImplementedFactory", "methodName", "_i", "_len", "optionalDriverMethod", "setDriverSupport", "support", "getDriverPromise", "serializerPromise", "drivers", "supportedDrivers", "setDriverToConfig", "extendSelfWithDriver", "initDriver", "currentDriverIndex", "driverPromiseLoop", "oldDriverSetDone", "libraryMethodsAndProperties", "localforage_js", "require_dist", "__commonJSMin", "exports", "module", "o", "e", "t", "n", "l", "r", "u", "f", "i", "c", "a", "safeName", "patternOrChannel", "channel", "stringableFunc", "func", "fsmIterator", "fsm", "startState", "name", "stateUpdater", "errorState", "effect", "nextState", "next", "arg", "error", "qEnd", "done", "currentState", "makeIterator", "takeEvery", "worker", "_len", "args", "_key", "yTake", "take", "yFork", "ac", "fork", "action", "setAction", "takeLatest", "yCancel", "task", "cancel", "setTask", "t", "takeLeading", "yCall", "call", "throttle", "delayLength", "channel$1", "yDelay", "delay", "setChannel", "ch", "needsChannel", "yActionChannel", "actionChannel", "sliding", "retry", "maxTries", "fn", "counter", "debounceHelper", "raceOutput", "yRace", "race", "yNoop", "value", "setRaceOutput", "ro", "takeEvery$1", "takeLatest$1", "_len2", "_key2", "takeLeading$1", "_len3", "_key3", "throttle$1", "ms", "_len4", "_key4", "retry$1", "_len5", "_key5", "debounce", "pattern", "_len6", "_key6", "init_redux_saga_effects_esm", "__esmMin", "init_redux_saga_symbols_esm", "init_extends", "init_redux_saga_is_esm", "init_io_c3792963", "init_redux_saga_delay_p_esm", "redux_saga_effects_npm_proxy_esm_exports", "__export", "actionChannel", "all", "apply", "call", "cancel", "cancelled", "cps", "debounce", "delay", "effectTypes", "flush", "fork", "getContext", "join", "put", "putResolve", "race", "retry$1", "select", "setContext", "spawn", "take", "takeEvery$1", "takeLatest$1", "takeLeading$1", "takeMaybe", "throttle$1", "init_redux_saga_effects_npm_proxy_esm", "__esmMin", "init_redux_saga_effects_esm", "require_bind", "__commonJSMin", "exports", "module", "fn", "thisArg", "args", "i", "require_is_buffer", "__commonJSMin", "exports", "module", "obj", "require_utils", "__commonJSMin", "exports", "module", "bind", "isBuffer", "toString", "isArray", "val", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isUndefined", "isObject", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "error", "config", "code", "request", "response", "require_createError", "__commonJSMin", "exports", "module", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "createError", "resolve", "reject", "response", "validateStatus", "require_buildURL", "__commonJSMin", "exports", "module", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "require_parseHeaders", "__commonJSMin", "exports", "module", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "i", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_cookies", "__commonJSMin", "exports", "module", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_xhr", "__commonJSMin", "exports", "module", "utils", "settle", "buildURL", "parseHeaders", "isURLSameOrigin", "createError", "config", "resolve", "reject", "requestData", "requestHeaders", "request", "username", "password", "responseHeaders", "responseData", "response", "cookies", "xsrfValue", "val", "key", "e", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "utils", "normalizeHeaderName", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "defaults", "data", "status", "method", "require_InterceptorManager", "__commonJSMin", "exports", "module", "utils", "InterceptorManager", "fulfilled", "rejected", "id", "fn", "h", "require_transformData", "__commonJSMin", "exports", "module", "utils", "data", "headers", "fns", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "value", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "baseURL", "relativeURL", "require_dispatchRequest", "__commonJSMin", "exports", "module", "utils", "transformData", "isCancel", "defaults", "isAbsoluteURL", "combineURLs", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_Axios", "__commonJSMin", "exports", "module", "defaults", "utils", "InterceptorManager", "dispatchRequest", "Axios", "instanceConfig", "config", "chain", "promise", "interceptor", "method", "url", "data", "require_Cancel", "__commonJSMin", "exports", "module", "Cancel", "message", "require_CancelToken", "__commonJSMin", "exports", "module", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "message", "cancel", "c", "require_spread", "__commonJSMin", "exports", "module", "callback", "arr", "require_axios", "__commonJSMin", "exports", "module", "utils", "bind", "Axios", "defaults", "createInstance", "defaultConfig", "context", "instance", "axios", "instanceConfig", "promises", "require_axios", "__commonJSMin", "exports", "module", "require_format_cookie", "__commonJSMin", "exports", "getSameSiteValue", "o", "sameSite", "formatOptions", "path", "domain", "expires", "secure", "sameSiteValue", "formatCookie", "k", "d", "require_parse_cookies", "__commonJSMin", "exports", "_slicedToArray", "arr", "i", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "o", "minLen", "_arrayLikeToArray", "n", "len", "arr2", "_arr", "_n", "_d", "_e", "_i", "_s", "err", "parseCookies", "s", "parsed", "pattern", "_i$split", "_i$split2", "encodedKey", "encodedValue", "key", "value", "require_cookie_storage", "__commonJSMin", "exports", "_classCallCheck", "instance", "Constructor", "_defineProperties", "target", "props", "i", "descriptor", "_createClass", "protoProps", "staticProps", "format_cookie_1", "parse_cookies_1", "CookieStorage", "defaultOptions", "cookieStorageHandler", "_this", "parsed", "keys", "key", "index", "sortedKeys", "cookieOptions", "data", "options", "formatted", "opts", "value", "p", "attributes", "_receiver", "result", "_", "require_lib", "__commonJSMin", "exports", "cookie_storage_1", "format_cookie_1", "parse_cookies_1", "require_browser", "__commonJSMin", "exports", "module", "require_isBoolean", "__commonJSMin", "exports", "module", "baseGetTag", "isObjectLike", "boolTag", "isBoolean", "value", "require_isString", "__commonJSMin", "exports", "module", "baseGetTag", "isArray", "isObjectLike", "stringTag", "isString", "value", "require_baseProperty", "__commonJSMin", "exports", "module", "baseProperty", "key", "object", "require_asciiSize", "__commonJSMin", "exports", "module", "baseProperty", "asciiSize", "require_hasUnicode", "__commonJSMin", "exports", "module", "rsAstralRange", "rsComboMarksRange", "reComboHalfMarksRange", "rsComboSymbolsRange", "rsComboRange", "rsVarRange", "rsZWJ", "reHasUnicode", "hasUnicode", "string", "require_unicodeSize", "__commonJSMin", "exports", "module", "rsAstralRange", "rsComboMarksRange", "reComboHalfMarksRange", "rsComboSymbolsRange", "rsComboRange", "rsVarRange", "rsAstral", "rsCombo", "rsFitz", "rsModifier", "rsNonAstral", "rsRegional", "rsSurrPair", "rsZWJ", "reOptMod", "rsOptVar", "rsOptJoin", "rsSeq", "rsSymbol", "reUnicode", "unicodeSize", "string", "result", "require_stringSize", "__commonJSMin", "exports", "module", "asciiSize", "hasUnicode", "unicodeSize", "stringSize", "string", "require_size", "__commonJSMin", "exports", "module", "baseKeys", "getTag", "isArrayLike", "isString", "stringSize", "mapTag", "setTag", "size", "collection", "tag", "require_bugsnag", "__commonJSMin", "exports", "module", "f", "g", "define", "_$breadcrumbTypes_8", "_$reduce_17", "arr", "fn", "accum", "val", "i", "len", "_$filter_12", "item", "_$includes_13", "x", "_$isArray_14", "obj", "_hasDontEnumBug", "_dontEnums", "_$keys_15", "result", "prop", "_$intRange_24", "min", "max", "value", "_$listOfFunctions_25", "_$stringWithLength_26", "defaultErrorTypes", "_$config_5", "providedKeys", "defaultKeys", "k", "maybeType", "key", "method", "s", "p", "feature", "_$assign_11", "target", "source", "_$map_16", "schema", "_$config_1", "_extends", "getPrefixedConsole", "logger", "consoleLog", "consoleMethod", "Breadcrumb", "message", "metadata", "type", "timestamp", "_$Breadcrumb_3", "root", "factory", "_$stackframe_34", "_isNumber", "n", "_capitalize", "str", "_getter", "booleanProps", "numericProps", "stringProps", "arrayProps", "props", "StackFrame", "v", "functionName", "args", "fileName", "lineNumber", "columnNumber", "j", "_$errorStackParser_31", "FIREFOX_SAFARI_STACK_REGEXP", "CHROME_IE_STACK_REGEXP", "SAFARI_NATIVE_CODE_REGEXP", "error", "urlLike", "regExp", "parts", "filtered", "line", "sanitizedLine", "location", "tokens", "locationParts", "functionNameRegex", "matches", "e", "lineRE", "lines", "match", "functionCall", "argsRaw", "_$errorStackParser_10", "_$safeJsonStringify_30", "data", "replacer", "space", "opts", "redactedKeys", "redactedPaths", "prepareObjForSerialization", "MAX_DEPTH", "MAX_EDGES", "MIN_PRESERVED_DEPTH", "REPLACEMENT_NODE", "isError", "o", "throwsMessage", "err", "find", "haystack", "needle", "isDescendent", "paths", "path", "shouldRedact", "patterns", "__isArray_30", "safelyGetProp", "seen", "edges", "visit", "edgesExceeded", "fResult", "er", "eResult", "aResult", "add", "existingFeatures", "existingFeatureKeys", "name", "variant", "existingIndex", "merge", "newFeatures", "toEventApi", "featureFlags", "_ref", "flag", "clear", "features", "featuresIndex", "_$featureFlagDelegate_18", "_$hasStack_19", "_$isError_32", "__isError_32", "_$iserror_20", "__add_22", "state", "section", "keyOrObj", "maybeVal", "_updates", "updates", "__clear_22", "get", "_$metadataDelegate_22", "_$stackGenerator_33", "stack", "maxStackSize", "curr", "Event", "errorClass", "errorMessage", "stacktrace", "handledState", "originalError", "defaultHandledState", "createBugsnagError", "id", "email", "formatStackframe", "frame", "normaliseFunctionName", "ensureString", "getCauseStack", "errorFramesToSkip", "backtraceFramesToSkip", "maybeError", "tolerateNonErrors", "component", "_normaliseError", "normaliseError", "internalFrames", "event", "makeSerialisable", "_event$errors", "causes", "normalisedCauses", "cause", "_normaliseError2", "createAndLogInputError", "reason", "verb", "hasNecessaryFields", "_$Event_6", "_$asyncEvery_7", "cb", "index", "next", "_$callbackRunner_9", "callbacks", "onCallbackError", "runMaybeAsyncCallback", "ret", "_$syncCallbackRunner_23", "callbackArg", "callbackType", "ignore", "cbs", "_$pad_29", "num", "size", "env", "globalCount", "mimeTypesLength", "clientId", "_$fingerprint_28", "c", "blockSize", "base", "discreteValues", "randomBlock", "safeCounter", "cuid", "letter", "counter", "print", "random", "_$cuid_27", "Session", "_$Session_35", "__add_4", "__clear_4", "__merge_4", "noop", "Client", "configuration", "internalPlugins", "notifier", "_this", "pl", "self", "notify", "plugin", "_reduce", "defaultValue", "valid", "errors", "config", "generateConfigErrorMessage", "d", "session", "front", "crumb", "types", "onError", "postReportCallback", "_this2", "originalSeverity", "shouldSend", "rawInput", "stringify", "_$Client_4", "EVENT_REDACTION_PATHS", "_$jsonPayload_21", "payload", "_$delivery_36", "client", "win", "url", "getApiUrl", "body", "req", "endpoint", "version", "isoDate", "matchPageProtocol", "pageProtocol", "_$delivery_37", "status", "appStart", "reset", "_$app_38", "now", "_$context_39", "BUGSNAG_ANONYMOUS_ID_KEY", "getDeviceId", "storage", "_$cuid_41", "_$device_40", "nav", "device", "setDefaultUserId", "eventOrSession", "user", "_$request_44", "_$session_45", "sessionDelegate", "sessionClient", "_$clientIp_46", "_$consoleBreadcrumbs_47", "isDev", "CONSOLE_LOG_METHODS", "original", "_len", "_key", "arg", "stringified", "MAX_LINE_LENGTH", "MAX_SCRIPT_LENGTH", "_$inlineScriptContent_48", "doc", "originalLocation", "html", "isOldIe", "DOMContentLoaded", "getHtml", "prev", "_lastScript", "updateLastScript", "script", "getCurrentScript", "scripts", "addSurroundingCode", "htmlLines", "zeroBasedLine", "start", "end", "currentScript", "content", "_map", "__proxy", "__traceOriginalScript", "_setTimeout", "eventTargetCallbackAccessor", "callbackAccessor", "alsoCallOriginal", "cba", "host", "replacement", "isEventHandlerObj", "_$interactionBreadcrumbs_49", "targetText", "targetSelector", "getNodeText", "getNodeSelector", "trimStart", "trimEnd", "el", "text", "_$navigationBreadcrumbs_50", "drop", "relativeLocation", "getCurrentState", "wrapHistoryFn", "a", "stateChangeToMetadata", "title", "currentPath", "orig", "BREADCRUMB_TYPE", "_$networkBreadcrumbs_51", "_ignoredUrls", "restoreFunctions", "ignoredUrls", "monkeyPatchXMLHttpRequest", "monkeyPatchFetch", "nativeOpen", "requestSetupKey", "handleXHRError", "load", "handleXHRLoad", "oldFetch", "_arguments", "urlOrRequest", "options", "resolve", "reject", "response", "handleFetchSuccess", "handleFetchError", "_$throttle_52", "_$stripQueryString_53", "allFrames", "strip", "_$onerror_54", "onerror", "messageOrEvent", "lineNo", "charNo", "decorateStack", "prevOnError", "culprit", "isActualNumber", "_listener", "_$unhandledRejection_55", "listener", "evt", "isBluebird", "fixBluebirdStacktrace", "_event$addMetadata", "promise", "__schema_2", "Bugsnag", "bugsnag", "m", "_$notifier_2", "require_notifier", "__commonJSMin", "exports", "module", "require_pluralize", "__commonJSMin", "exports", "module", "root", "pluralize", "__require", "pluralRules", "singularRules", "uncountables", "irregularPlurals", "irregularSingles", "sanitizeRule", "rule", "restoreCase", "word", "token", "interpolate", "str", "args", "match", "index", "replace", "result", "sanitizeWord", "rules", "len", "replaceWord", "replaceMap", "keepMap", "checkWord", "bool", "count", "inclusive", "pluralized", "replacement", "single", "plural", "require_load_image", "__commonJSMin", "exports", "module", "$", "urlAPI", "createObjectURL", "blob", "revokeObjectURL", "url", "revokeHelper", "options", "readFile", "file", "onload", "onerror", "method", "reader", "readerMethod", "isInstanceOf", "type", "obj", "loadImage", "callback", "executor", "resolve", "reject", "img", "resolveWrapper", "data", "fetchBlobCallback", "err", "event", "error", "require_load_image_scale", "__commonJSMin", "exports", "module", "factory", "loadImage", "originalTransform", "width", "height", "offscreen", "canvas", "img", "options", "callback", "file", "data", "aspectRatio", "newOptions", "i", "sourceX", "sourceY", "sourceWidth", "sourceHeight", "destWidth", "destHeight", "ctx", "useCanvas", "maxWidth", "maxHeight", "minWidth", "minHeight", "pixelRatio", "downsamplingRatio", "tmp", "scaleUp", "scale", "scaleDown", "require_load_image_meta", "__commonJSMin", "exports", "module", "factory", "loadImage", "global", "originalTransform", "blobSlice", "bufferSlice", "begin", "end", "arr1", "arr2", "metaDataParsers", "parseMetaData", "file", "callback", "options", "data", "that", "executor", "resolve", "reject", "maxMetaDataSize", "buffer", "dataView", "offset", "maxOffset", "headLength", "markerBytes", "markerLength", "parsers", "i", "replaceJPEGHead", "blob", "oldHead", "newHead", "replaceHead", "head", "img", "result", "require_load_image_fetch", "__commonJSMin", "exports", "module", "factory", "loadImage", "global", "url", "callback", "options", "responseHandler", "response", "err", "executor", "resolve", "reject", "req", "key", "require_load_image_exif", "__commonJSMin", "exports", "module", "factory", "loadImage", "ExifMap", "tagCode", "id", "getExifThumbnail", "dataView", "offset", "length", "ExifTagTypes", "dataOffset", "littleEndian", "getExifValue", "tiffOffset", "type", "tagType", "tagSize", "values", "i", "str", "c", "shouldIncludeTag", "includeTags", "excludeTags", "parseExifTags", "dirOffset", "tags", "tagOffsets", "tagsNumber", "dirEndOffset", "tagOffset", "tagNumber", "tagValue", "parseExifIFD", "data", "options", "thumbnailIFD", "buffer", "value", "orientationOffset", "view", "require_load_image_exif_map", "__commonJSMin", "exports", "module", "factory", "loadImage", "ExifMapProto", "name", "value", "map", "prop", "obj", "tagCode", "tags", "ifd", "subTags", "require_load_image_iptc", "__commonJSMin", "exports", "module", "factory", "loadImage", "IptcMap", "id", "getStringValue", "dataView", "offset", "length", "outstr", "end", "n", "getTagValue", "tagCode", "map", "combineTagValues", "value", "newValue", "parseIptcTags", "segmentOffset", "segmentLength", "data", "includeTags", "excludeTags", "tagSize", "segmentEnd", "isSegmentStart", "getHeaderLength", "options", "markerLength", "headerLength", "require_load_image_iptc_map", "__commonJSMin", "exports", "module", "factory", "loadImage", "IptcMapProto", "id", "value", "tagCode", "stringValue", "map", "prop", "name", "tags", "require_load_image_orientation", "__commonJSMin", "exports", "module", "factory", "loadImage", "originalTransform", "originalRequiresCanvas", "originalRequiresMetaData", "originalTransformCoordinates", "originalGetTransformedOptions", "$", "testImageURL", "img", "canvas", "ctx", "requiresCanvasOrientation", "options", "withMetaData", "orientation", "requiresOrientationChange", "autoOrientation", "requiresRot180", "callback", "file", "data", "originalWidth", "originalHeight", "opts", "exifOrientation", "top", "right", "bottom", "left", "newOptions", "i", "tmpTop", "tmpRight", "width", "height", "sourceWidth", "sourceHeight", "require_js", "__commonJSMin", "exports", "module", "require_crypt", "__commonJSMin", "exports", "module", "base64map", "crypt", "n", "b", "i", "bytes", "words", "hex", "c", "base64", "triplet", "j", "imod4", "require_charenc", "__commonJSMin", "exports", "module", "charenc", "str", "bytes", "i", "require_is_buffer", "__commonJSMin", "exports", "module", "obj", "isBuffer", "isSlowBuffer", "require_md5", "__commonJSMin", "exports", "module", "crypt", "utf8", "isBuffer", "bin", "md5", "message", "options", "m", "a", "b", "c", "d", "i", "FF", "GG", "HH", "II", "aa", "bb", "cc", "dd", "x", "s", "t", "n", "digestbytes", "require_nativeCreate", "__commonJSMin", "exports", "module", "getNative", "nativeCreate", "require_hashClear", "__commonJSMin", "exports", "module", "nativeCreate", "hashClear", "require_hashDelete", "__commonJSMin", "exports", "module", "hashDelete", "key", "result", "require_hashGet", "__commonJSMin", "exports", "module", "nativeCreate", "HASH_UNDEFINED", "objectProto", "hasOwnProperty", "hashGet", "key", "data", "result", "require_hashHas", "__commonJSMin", "exports", "module", "nativeCreate", "objectProto", "hasOwnProperty", "hashHas", "key", "data", "require_hashSet", "__commonJSMin", "exports", "module", "nativeCreate", "HASH_UNDEFINED", "hashSet", "key", "value", "data", "require_Hash", "__commonJSMin", "exports", "module", "hashClear", "hashDelete", "hashGet", "hashHas", "hashSet", "Hash", "entries", "index", "length", "entry", "require_listCacheClear", "__commonJSMin", "exports", "module", "listCacheClear", "require_eq", "__commonJSMin", "exports", "module", "eq", "value", "other", "require_assocIndexOf", "__commonJSMin", "exports", "module", "eq", "assocIndexOf", "array", "key", "length", "require_listCacheDelete", "__commonJSMin", "exports", "module", "assocIndexOf", "arrayProto", "splice", "listCacheDelete", "key", "data", "index", "lastIndex", "require_listCacheGet", "__commonJSMin", "exports", "module", "assocIndexOf", "listCacheGet", "key", "data", "index", "require_listCacheHas", "__commonJSMin", "exports", "module", "assocIndexOf", "listCacheHas", "key", "require_listCacheSet", "__commonJSMin", "exports", "module", "assocIndexOf", "listCacheSet", "key", "value", "data", "index", "require_ListCache", "__commonJSMin", "exports", "module", "listCacheClear", "listCacheDelete", "listCacheGet", "listCacheHas", "listCacheSet", "ListCache", "entries", "index", "length", "entry", "require_mapCacheClear", "__commonJSMin", "exports", "module", "Hash", "ListCache", "Map", "mapCacheClear", "require_isKeyable", "__commonJSMin", "exports", "module", "isKeyable", "value", "type", "require_getMapData", "__commonJSMin", "exports", "module", "isKeyable", "getMapData", "map", "key", "data", "require_mapCacheDelete", "__commonJSMin", "exports", "module", "getMapData", "mapCacheDelete", "key", "result", "require_mapCacheGet", "__commonJSMin", "exports", "module", "getMapData", "mapCacheGet", "key", "require_mapCacheHas", "__commonJSMin", "exports", "module", "getMapData", "mapCacheHas", "key", "require_mapCacheSet", "__commonJSMin", "exports", "module", "getMapData", "mapCacheSet", "key", "value", "data", "size", "require_MapCache", "__commonJSMin", "exports", "module", "mapCacheClear", "mapCacheDelete", "mapCacheGet", "mapCacheHas", "mapCacheSet", "MapCache", "entries", "index", "length", "entry", "require_setCacheAdd", "__commonJSMin", "exports", "module", "HASH_UNDEFINED", "setCacheAdd", "value", "require_setCacheHas", "__commonJSMin", "exports", "module", "setCacheHas", "value", "require_SetCache", "__commonJSMin", "exports", "module", "MapCache", "setCacheAdd", "setCacheHas", "SetCache", "values", "index", "length", "require_baseFindIndex", "__commonJSMin", "exports", "module", "baseFindIndex", "array", "predicate", "fromIndex", "fromRight", "length", "index", "require_baseIsNaN", "__commonJSMin", "exports", "module", "baseIsNaN", "value", "require_strictIndexOf", "__commonJSMin", "exports", "module", "strictIndexOf", "array", "value", "fromIndex", "index", "length", "require_baseIndexOf", "__commonJSMin", "exports", "module", "baseFindIndex", "baseIsNaN", "strictIndexOf", "baseIndexOf", "array", "value", "fromIndex", "require_arrayIncludes", "__commonJSMin", "exports", "module", "baseIndexOf", "arrayIncludes", "array", "value", "length", "require_arrayIncludesWith", "__commonJSMin", "exports", "module", "arrayIncludesWith", "array", "value", "comparator", "index", "length", "require_arrayMap", "__commonJSMin", "exports", "module", "arrayMap", "array", "iteratee", "index", "length", "result", "require_cacheHas", "__commonJSMin", "exports", "module", "cacheHas", "cache", "key", "require_baseDifference", "__commonJSMin", "exports", "module", "SetCache", "arrayIncludes", "arrayIncludesWith", "arrayMap", "baseUnary", "cacheHas", "LARGE_ARRAY_SIZE", "baseDifference", "array", "values", "iteratee", "comparator", "index", "includes", "isCommon", "length", "result", "valuesLength", "outer", "value", "computed", "valuesIndex", "require_arrayPush", "__commonJSMin", "exports", "module", "arrayPush", "array", "values", "index", "length", "offset", "require_isFlattenable", "__commonJSMin", "exports", "module", "Symbol", "isArguments", "isArray", "spreadableSymbol", "isFlattenable", "value", "require_baseFlatten", "__commonJSMin", "exports", "module", "arrayPush", "isFlattenable", "baseFlatten", "array", "depth", "predicate", "isStrict", "result", "index", "length", "value", "require_identity", "__commonJSMin", "exports", "module", "identity", "value", "require_apply", "__commonJSMin", "exports", "module", "apply", "func", "thisArg", "args", "require_overRest", "__commonJSMin", "exports", "module", "apply", "nativeMax", "overRest", "func", "start", "transform", "args", "index", "length", "array", "otherArgs", "require_constant", "__commonJSMin", "exports", "module", "constant", "value", "require_defineProperty", "__commonJSMin", "exports", "module", "getNative", "defineProperty", "func", "require_baseSetToString", "__commonJSMin", "exports", "module", "constant", "defineProperty", "identity", "baseSetToString", "func", "string", "require_shortOut", "__commonJSMin", "exports", "module", "HOT_COUNT", "HOT_SPAN", "nativeNow", "shortOut", "func", "count", "lastCalled", "stamp", "remaining", "require_setToString", "__commonJSMin", "exports", "module", "baseSetToString", "shortOut", "setToString", "require_baseRest", "__commonJSMin", "exports", "module", "identity", "overRest", "setToString", "baseRest", "func", "start", "require_isArrayLikeObject", "__commonJSMin", "exports", "module", "isArrayLike", "isObjectLike", "isArrayLikeObject", "value", "require_difference", "__commonJSMin", "exports", "module", "baseDifference", "baseFlatten", "baseRest", "isArrayLikeObject", "difference", "array", "values", "require_runtime", "__commonJSMin", "exports", "module", "runtime", "Op", "hasOwn", "defineProperty", "obj", "key", "desc", "undefined", "$Symbol", "iteratorSymbol", "asyncIteratorSymbol", "toStringTagSymbol", "define", "value", "wrap", "innerFn", "outerFn", "self", "tryLocsList", "protoGenerator", "Generator", "generator", "context", "Context", "makeInvokeMethod", "tryCatch", "fn", "arg", "err", "GenStateSuspendedStart", "GenStateSuspendedYield", "GenStateExecuting", "GenStateCompleted", "ContinueSentinel", "GeneratorFunction", "GeneratorFunctionPrototype", "IteratorPrototype", "getProto", "NativeIteratorPrototype", "values", "Gp", "defineIteratorMethods", "prototype", "method", "genFun", "ctor", "AsyncIterator", "PromiseImpl", "invoke", "resolve", "reject", "record", "result", "unwrapped", "error", "previousPromise", "enqueue", "callInvokeWithMethodAndArg", "iter", "state", "doneResult", "delegate", "delegateResult", "maybeInvokeDelegate", "methodName", "info", "pushTryEntry", "locs", "entry", "resetTryEntry", "val", "object", "keys", "next", "iterable", "iteratorMethod", "i", "skipTempReset", "name", "rootEntry", "rootRecord", "exception", "handle", "loc", "caught", "hasCatch", "hasFinally", "type", "finallyEntry", "afterLoc", "finallyLoc", "tryLoc", "thrown", "resultName", "nextLoc", "require_stackClear", "__commonJSMin", "exports", "module", "ListCache", "stackClear", "require_stackDelete", "__commonJSMin", "exports", "module", "stackDelete", "key", "data", "result", "require_stackGet", "__commonJSMin", "exports", "module", "stackGet", "key", "require_stackHas", "__commonJSMin", "exports", "module", "stackHas", "key", "require_stackSet", "__commonJSMin", "exports", "module", "ListCache", "Map", "MapCache", "LARGE_ARRAY_SIZE", "stackSet", "key", "value", "data", "pairs", "require_Stack", "__commonJSMin", "exports", "module", "ListCache", "stackClear", "stackDelete", "stackGet", "stackHas", "stackSet", "Stack", "entries", "data", "require_arrayEach", "__commonJSMin", "exports", "module", "arrayEach", "array", "iteratee", "index", "length", "require_baseAssignValue", "__commonJSMin", "exports", "module", "defineProperty", "baseAssignValue", "object", "key", "value", "require_assignValue", "__commonJSMin", "exports", "module", "baseAssignValue", "eq", "objectProto", "hasOwnProperty", "assignValue", "object", "key", "value", "objValue", "require_copyObject", "__commonJSMin", "exports", "module", "assignValue", "baseAssignValue", "copyObject", "source", "props", "object", "customizer", "isNew", "index", "length", "key", "newValue", "require_baseTimes", "__commonJSMin", "exports", "module", "baseTimes", "n", "iteratee", "index", "result", "require_isIndex", "__commonJSMin", "exports", "module", "MAX_SAFE_INTEGER", "reIsUint", "isIndex", "value", "length", "type", "require_arrayLikeKeys", "__commonJSMin", "exports", "module", "baseTimes", "isArguments", "isArray", "isBuffer", "isIndex", "isTypedArray", "objectProto", "hasOwnProperty", "arrayLikeKeys", "value", "inherited", "isArr", "isArg", "isBuff", "isType", "skipIndexes", "result", "length", "key", "require_keys", "__commonJSMin", "exports", "module", "arrayLikeKeys", "baseKeys", "isArrayLike", "keys", "object", "require_baseAssign", "__commonJSMin", "exports", "module", "copyObject", "keys", "baseAssign", "object", "source", "require_nativeKeysIn", "__commonJSMin", "exports", "module", "nativeKeysIn", "object", "result", "key", "require_baseKeysIn", "__commonJSMin", "exports", "module", "isObject", "isPrototype", "nativeKeysIn", "objectProto", "hasOwnProperty", "baseKeysIn", "object", "isProto", "result", "key", "require_keysIn", "__commonJSMin", "exports", "module", "arrayLikeKeys", "baseKeysIn", "isArrayLike", "keysIn", "object", "require_baseAssignIn", "__commonJSMin", "exports", "module", "copyObject", "keysIn", "baseAssignIn", "object", "source", "require_cloneBuffer", "__commonJSMin", "exports", "module", "root", "freeExports", "freeModule", "moduleExports", "Buffer", "allocUnsafe", "cloneBuffer", "buffer", "isDeep", "length", "result", "require_copyArray", "__commonJSMin", "exports", "module", "copyArray", "source", "array", "index", "length", "require_arrayFilter", "__commonJSMin", "exports", "module", "arrayFilter", "array", "predicate", "index", "length", "resIndex", "result", "value", "require_stubArray", "__commonJSMin", "exports", "module", "stubArray", "require_getSymbols", "__commonJSMin", "exports", "module", "arrayFilter", "stubArray", "objectProto", "propertyIsEnumerable", "nativeGetSymbols", "getSymbols", "object", "symbol", "require_copySymbols", "__commonJSMin", "exports", "module", "copyObject", "getSymbols", "copySymbols", "source", "object", "require_getSymbolsIn", "__commonJSMin", "exports", "module", "arrayPush", "getPrototype", "getSymbols", "stubArray", "nativeGetSymbols", "getSymbolsIn", "object", "result", "require_copySymbolsIn", "__commonJSMin", "exports", "module", "copyObject", "getSymbolsIn", "copySymbolsIn", "source", "object", "require_baseGetAllKeys", "__commonJSMin", "exports", "module", "arrayPush", "isArray", "baseGetAllKeys", "object", "keysFunc", "symbolsFunc", "result", "require_getAllKeys", "__commonJSMin", "exports", "module", "baseGetAllKeys", "getSymbols", "keys", "getAllKeys", "object", "require_getAllKeysIn", "__commonJSMin", "exports", "module", "baseGetAllKeys", "getSymbolsIn", "keysIn", "getAllKeysIn", "object", "require_initCloneArray", "__commonJSMin", "exports", "module", "objectProto", "hasOwnProperty", "initCloneArray", "array", "length", "result", "require_Uint8Array", "__commonJSMin", "exports", "module", "root", "Uint8Array", "require_cloneArrayBuffer", "__commonJSMin", "exports", "module", "Uint8Array", "cloneArrayBuffer", "arrayBuffer", "result", "require_cloneDataView", "__commonJSMin", "exports", "module", "cloneArrayBuffer", "cloneDataView", "dataView", "isDeep", "buffer", "require_cloneRegExp", "__commonJSMin", "exports", "module", "reFlags", "cloneRegExp", "regexp", "result", "require_cloneSymbol", "__commonJSMin", "exports", "module", "Symbol", "symbolProto", "symbolValueOf", "cloneSymbol", "symbol", "require_cloneTypedArray", "__commonJSMin", "exports", "module", "cloneArrayBuffer", "cloneTypedArray", "typedArray", "isDeep", "buffer", "require_initCloneByTag", "__commonJSMin", "exports", "module", "cloneArrayBuffer", "cloneDataView", "cloneRegExp", "cloneSymbol", "cloneTypedArray", "boolTag", "dateTag", "mapTag", "numberTag", "regexpTag", "setTag", "stringTag", "symbolTag", "arrayBufferTag", "dataViewTag", "float32Tag", "float64Tag", "int8Tag", "int16Tag", "int32Tag", "uint8Tag", "uint8ClampedTag", "uint16Tag", "uint32Tag", "initCloneByTag", "object", "tag", "isDeep", "Ctor", "require_baseCreate", "__commonJSMin", "exports", "module", "isObject", "objectCreate", "baseCreate", "object", "proto", "result", "require_initCloneObject", "__commonJSMin", "exports", "module", "baseCreate", "getPrototype", "isPrototype", "initCloneObject", "object", "require_baseIsMap", "__commonJSMin", "exports", "module", "getTag", "isObjectLike", "mapTag", "baseIsMap", "value", "require_isMap", "__commonJSMin", "exports", "module", "baseIsMap", "baseUnary", "nodeUtil", "nodeIsMap", "isMap", "require_baseIsSet", "__commonJSMin", "exports", "module", "getTag", "isObjectLike", "setTag", "baseIsSet", "value", "require_isSet", "__commonJSMin", "exports", "module", "baseIsSet", "baseUnary", "nodeUtil", "nodeIsSet", "isSet", "require_baseClone", "__commonJSMin", "exports", "module", "Stack", "arrayEach", "assignValue", "baseAssign", "baseAssignIn", "cloneBuffer", "copyArray", "copySymbols", "copySymbolsIn", "getAllKeys", "getAllKeysIn", "getTag", "initCloneArray", "initCloneByTag", "initCloneObject", "isArray", "isBuffer", "isMap", "isObject", "isSet", "keys", "keysIn", "CLONE_DEEP_FLAG", "CLONE_FLAT_FLAG", "CLONE_SYMBOLS_FLAG", "argsTag", "arrayTag", "boolTag", "dateTag", "errorTag", "funcTag", "genTag", "mapTag", "numberTag", "objectTag", "regexpTag", "setTag", "stringTag", "symbolTag", "weakMapTag", "arrayBufferTag", "dataViewTag", "float32Tag", "float64Tag", "int8Tag", "int16Tag", "int32Tag", "uint8Tag", "uint8ClampedTag", "uint16Tag", "uint32Tag", "cloneableTags", "baseClone", "value", "bitmask", "customizer", "key", "object", "stack", "result", "isDeep", "isFlat", "isFull", "isArr", "tag", "isFunc", "stacked", "subValue", "keysFunc", "props", "require_cloneDeep", "__commonJSMin", "exports", "module", "baseClone", "CLONE_DEEP_FLAG", "CLONE_SYMBOLS_FLAG", "cloneDeep", "value", "require_arraySome", "__commonJSMin", "exports", "module", "arraySome", "array", "predicate", "index", "length", "require_equalArrays", "__commonJSMin", "exports", "module", "SetCache", "arraySome", "cacheHas", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "equalArrays", "array", "other", "bitmask", "customizer", "equalFunc", "stack", "isPartial", "arrLength", "othLength", "arrStacked", "othStacked", "index", "result", "seen", "arrValue", "othValue", "compared", "othIndex", "require_mapToArray", "__commonJSMin", "exports", "module", "mapToArray", "map", "index", "result", "value", "key", "require_setToArray", "__commonJSMin", "exports", "module", "setToArray", "set", "index", "result", "value", "require_equalByTag", "__commonJSMin", "exports", "module", "Symbol", "Uint8Array", "eq", "equalArrays", "mapToArray", "setToArray", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "boolTag", "dateTag", "errorTag", "mapTag", "numberTag", "regexpTag", "setTag", "stringTag", "symbolTag", "arrayBufferTag", "dataViewTag", "symbolProto", "symbolValueOf", "equalByTag", "object", "other", "tag", "bitmask", "customizer", "equalFunc", "stack", "convert", "isPartial", "stacked", "result", "require_equalObjects", "__commonJSMin", "exports", "module", "getAllKeys", "COMPARE_PARTIAL_FLAG", "objectProto", "hasOwnProperty", "equalObjects", "object", "other", "bitmask", "customizer", "equalFunc", "stack", "isPartial", "objProps", "objLength", "othProps", "othLength", "index", "key", "objStacked", "othStacked", "result", "skipCtor", "objValue", "othValue", "compared", "objCtor", "othCtor", "require_baseIsEqualDeep", "__commonJSMin", "exports", "module", "Stack", "equalArrays", "equalByTag", "equalObjects", "getTag", "isArray", "isBuffer", "isTypedArray", "COMPARE_PARTIAL_FLAG", "argsTag", "arrayTag", "objectTag", "objectProto", "hasOwnProperty", "baseIsEqualDeep", "object", "other", "bitmask", "customizer", "equalFunc", "stack", "objIsArr", "othIsArr", "objTag", "othTag", "objIsObj", "othIsObj", "isSameTag", "objIsWrapped", "othIsWrapped", "objUnwrapped", "othUnwrapped", "require_baseIsEqual", "__commonJSMin", "exports", "module", "baseIsEqualDeep", "isObjectLike", "baseIsEqual", "value", "other", "bitmask", "customizer", "stack", "require_isEqual", "__commonJSMin", "exports", "module", "baseIsEqual", "isEqual", "value", "other", "require_cloneDeepWith", "__commonJSMin", "exports", "module", "baseClone", "CLONE_DEEP_FLAG", "CLONE_SYMBOLS_FLAG", "cloneDeepWith", "value", "customizer", "require_isSymbol", "__commonJSMin", "exports", "module", "baseGetTag", "isObjectLike", "symbolTag", "isSymbol", "value", "require_isKey", "__commonJSMin", "exports", "module", "isArray", "isSymbol", "reIsDeepProp", "reIsPlainProp", "isKey", "value", "object", "type", "require_memoize", "__commonJSMin", "exports", "module", "MapCache", "FUNC_ERROR_TEXT", "memoize", "func", "resolver", "memoized", "args", "key", "cache", "result", "require_memoizeCapped", "__commonJSMin", "exports", "module", "memoize", "MAX_MEMOIZE_SIZE", "memoizeCapped", "func", "result", "key", "cache", "require_stringToPath", "__commonJSMin", "exports", "module", "memoizeCapped", "rePropName", "reEscapeChar", "stringToPath", "string", "result", "match", "number", "quote", "subString", "require_baseToString", "__commonJSMin", "exports", "module", "Symbol", "arrayMap", "isArray", "isSymbol", "INFINITY", "symbolProto", "symbolToString", "baseToString", "value", "result", "require_toString", "__commonJSMin", "exports", "module", "baseToString", "toString", "value", "require_castPath", "__commonJSMin", "exports", "module", "isArray", "isKey", "stringToPath", "toString", "castPath", "value", "object", "require_last", "__commonJSMin", "exports", "module", "last", "array", "length", "require_toKey", "__commonJSMin", "exports", "module", "isSymbol", "INFINITY", "toKey", "value", "result", "require_baseGet", "__commonJSMin", "exports", "module", "castPath", "toKey", "baseGet", "object", "path", "index", "length", "require_baseSlice", "__commonJSMin", "exports", "module", "baseSlice", "array", "start", "end", "index", "length", "result", "require_parent", "__commonJSMin", "exports", "module", "baseGet", "baseSlice", "parent", "object", "path", "require_baseUnset", "__commonJSMin", "exports", "module", "castPath", "last", "parent", "toKey", "baseUnset", "object", "path", "require_customOmitClone", "__commonJSMin", "exports", "module", "isPlainObject", "customOmitClone", "value", "require_flatten", "__commonJSMin", "exports", "module", "baseFlatten", "flatten", "array", "length", "require_flatRest", "__commonJSMin", "exports", "module", "flatten", "overRest", "setToString", "flatRest", "func", "require_omit", "__commonJSMin", "exports", "module", "arrayMap", "baseClone", "baseUnset", "castPath", "copyObject", "customOmitClone", "flatRest", "getAllKeysIn", "CLONE_DEEP_FLAG", "CLONE_FLAT_FLAG", "CLONE_SYMBOLS_FLAG", "omit", "object", "paths", "result", "isDeep", "path", "length", "require_get", "__commonJSMin", "exports", "module", "baseGet", "get", "object", "path", "defaultValue", "result", "require_baseIsMatch", "__commonJSMin", "exports", "module", "Stack", "baseIsEqual", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "baseIsMatch", "object", "source", "matchData", "customizer", "index", "length", "noCustomizer", "data", "key", "objValue", "srcValue", "stack", "result", "require_isStrictComparable", "__commonJSMin", "exports", "module", "isObject", "isStrictComparable", "value", "require_getMatchData", "__commonJSMin", "exports", "module", "isStrictComparable", "keys", "getMatchData", "object", "result", "length", "key", "value", "require_matchesStrictComparable", "__commonJSMin", "exports", "module", "matchesStrictComparable", "key", "srcValue", "object", "require_baseMatches", "__commonJSMin", "exports", "module", "baseIsMatch", "getMatchData", "matchesStrictComparable", "baseMatches", "source", "matchData", "object", "require_baseHasIn", "__commonJSMin", "exports", "module", "baseHasIn", "object", "key", "require_hasPath", "__commonJSMin", "exports", "module", "castPath", "isArguments", "isArray", "isIndex", "isLength", "toKey", "hasPath", "object", "path", "hasFunc", "index", "length", "result", "key", "require_hasIn", "__commonJSMin", "exports", "module", "baseHasIn", "hasPath", "hasIn", "object", "path", "require_baseMatchesProperty", "__commonJSMin", "exports", "module", "baseIsEqual", "get", "hasIn", "isKey", "isStrictComparable", "matchesStrictComparable", "toKey", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "baseMatchesProperty", "path", "srcValue", "object", "objValue", "require_basePropertyDeep", "__commonJSMin", "exports", "module", "baseGet", "basePropertyDeep", "path", "object", "require_property", "__commonJSMin", "exports", "module", "baseProperty", "basePropertyDeep", "isKey", "toKey", "property", "path", "require_baseIteratee", "__commonJSMin", "exports", "module", "baseMatches", "baseMatchesProperty", "identity", "isArray", "property", "baseIteratee", "value", "require_baseSet", "__commonJSMin", "exports", "module", "assignValue", "castPath", "isIndex", "isObject", "toKey", "baseSet", "object", "path", "value", "customizer", "index", "length", "lastIndex", "nested", "key", "newValue", "objValue", "require_basePickBy", "__commonJSMin", "exports", "module", "baseGet", "baseSet", "castPath", "basePickBy", "object", "paths", "predicate", "index", "length", "result", "path", "value", "require_pickBy", "__commonJSMin", "exports", "module", "arrayMap", "baseIteratee", "basePickBy", "getAllKeysIn", "pickBy", "object", "predicate", "props", "prop", "value", "path", "microservices_exports", "__export", "COMPLEX_ASSIGNMENT", "microservices_default", "module", "__toCommonJS", "import_regenerator_runtime", "import_size", "x", "import_isPlainObject", "import_cloneDeep", "fixed", "value", "fractionDigits", "k", "percent", "source", "result", "percent_default", "UNITS", "times_default", "currency", "currency_default", "calculatorFabric", "unit", "calculator_fabric_default", "_Block", "block", "key", "Block", "__publicField", "core_default", "_Layer", "blockIndex", "layerBlock", "Layer", "Layers_default", "Builder", "product", "Builders_default", "Discount", "Discount_default", "Modifier", "Modifier_default", "Multiplier", "Multiplier_default", "_Discounts", "calculator", "Discounts", "Discounts_default", "_Modifiers", "Modifiers", "Modifiers_default", "_Multipliers", "Multipliers", "Multipliers_default", "_Bonuses", "Bonuses", "Bonuses_default", "Bonus", "Bonus_default", "BlockBuilder", "constructors", "arg0", "price", "modifiers", "multipliers", "discounts", "bonuses", "multiplier", "modifier", "discount", "bonus", "BlockBuilder_default", "BlockFinder", "returnBlock", "condition", "BlockFinder_default", "import_isEqual", "BlockCleaner", "blocks", "V", "isEqual", "BlockCleaner_default", "UpsaleModifiers", "UpsaleModifiers_default", "PAGES", "PROBLEMS", "QUESTIONS", "SLIDES", "SOFTWARE", "DISCOUNTS", "LIMITED_DISCOUNT", "walk", "data", "transformator", "accumulator", "calculationWalk", "walk_default", "isBlockData", "isBlockData_default", "isWriterKey", "isWriterKey_default", "Blocks", "acc", "args", "Blocks_default", "RatedOrderSize", "options", "OrderSize_default", "Bundles", "Bundles_default", "AdditionalPayments", "AdditionalPayment_default", "defaultOprions", "isset", "Ot", "_size", "Ae", "_isPlainObject", "ORDER_SIZE_BLOCK_OPTIONS", "BUNDLE_BLOCK_OPTIONS", "Calculator", "toOrderSize", "orderSizeBonus", "toBundleSize", "bundle", "finder", "cleaner", "element", "writerModificators", "writerModificator", "fixKey", "totalPrice", "basicPrices", "additionals", "fixes", "manualChanges", "totalPriceBlocks", "totalPriceData", "limitedDiscount", "isPercentDiscount", "Ne", "_cloneDeep", "discountsData", "percentDiscount", "CalculatorAdapter_default", "methodKey", "Calculator_default", "CalculatorAdapter", "adaptee", "transformedData", "transformedResult", "import_cloneDeepWith", "isBlockOptions", "isBlockOptions_default", "Proxy", "director", "Proxy_default", "KEY", "Exchanger", "rawData", "Ee", "_cloneDeepWith", "blockOptions", "exchanger_default", "import_omit", "import_get", "OfTotal", "baseDirector", "baseCalculator", "Director", "blockData", "rt", "_get", "cleanData", "Ve", "_omit", "baseData", "modificatedData", "of_total_default", "proxy", "Director_default", "ClientDirector", "ClientDirector_default", "CockDirector", "CockDirector_default", "DirectorFabric", "slug", "directors_default", "import_pickBy", "CalculatorAdaptee", "adapter", "CalculatorAdaptee_default", "extractPercentDiscounts", "discount_rate", "limit", "percentDiscounts_default", "extractAdditionals", "basicPrice", "additional", "id", "free", "feature", "additionals_default", "extractBasicPrice", "paperTypeGroup", "academicLevel", "basicPrice_default", "extractCurrencyDiscounts", "discount_sum", "currencyDiscounts_default", "extractLimitedDiscounts", "limitedDiscounts_default", "PREFERRED_WRITER_ID", "extractPreferredWriter", "writerId", "writer", "preferredWriter_default", "extractPrice", "singlePriceUnit_default", "extractSoftware", "software", "software_default", "extractSources", "sources", "sources_default", "extractSpacing", "spacing", "spacing_default", "calculate", "calculate_default", "SPEAKER_NOTES", "extractSpeakerNotes", "slides", "blockBuilder", "speakerNotes_default", "extractSubject", "subject", "subject_default", "WRITER_MODIFICATOR", "writerMultiplier", "writer_mtl_default", "WRITER", "extractWriter", "writer_default", "extractAdditionalFeatures", "ADDITIONAL_FEATURES_IDS", "additionalFeatures", "additionalFeatures_default", "blockFinder", "blockCleaner", "percentBlockCondition", "extractCockPerUnit", "dependedUpsales", "cockPerUnit_default", "BlockRecompiler", "BlockRecompiler_default", "blockRecompiler", "extractComplexAssignment", "complexAssignment", "unitKey", "complexAssignment_default", "extractDiscount", "percentDiscounts", "currencyDiscounts", "je", "discount_default", "extractForUnit", "forUnit_default", "extractPerUnit", "perUnit_default", "getBlock", "child", "extractRoot", "root", "root_default", "extractspeakerNotes", "extractTotalWithoutDiscounts", "totalWithoutDiscounts_default", "modificate", "compactBasicPrices", "modificator", "getBlock_default", "_MicroservicesAdaptee", "limitedDiscounts", "$e", "_pickBy", "pages", "featureKey", "basicPriceWithoutDiscount", "perUnit", "perUnitForCock", "forUnit", "MicroservicesAdaptee", "Adaptee_default", "microservicesAdapter", "require_replace", "__commonJSMin", "exports", "module", "toString", "replace", "args", "string", "require_trimmedEndIndex", "__commonJSMin", "exports", "module", "reWhitespace", "trimmedEndIndex", "string", "index", "require_baseTrim", "__commonJSMin", "exports", "module", "trimmedEndIndex", "reTrimStart", "baseTrim", "string", "require_toNumber", "__commonJSMin", "exports", "module", "baseTrim", "isObject", "isSymbol", "NAN", "reIsBadHex", "reIsBinary", "reIsOctal", "freeParseInt", "toNumber", "value", "other", "isBinary"] }